Showing posts from December, 2023

Mastering Algorithms and Data Structures - References for beginners

Aiming to deepen your understanding of algorithmic principles is a crucial step for any aspiring programmer or computer science enthusiast. Here is a curated list of valuable resources that can significantly aid your learning process. 1. Algorithm / Data Structure Theory Books: Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. (Considered as the Bible) Algorithms by Robert Sedgewick and Kevin Wayne. Data Structures and Algorithms in Python by Michael T. Goodrich, Roberto Tamassia, and Michael H. Goldwasser. (I am a beginner in Python. So there may be other options as well) 2. Online Courses: Google's Tech Dev Guide : Google provides a comprehensive guide covering algorithmic and data structure concepts. Coursera - Algorithms, Part 1 and Part 2 : Offered by Princeton University, these courses delve deep into algorithmic design and analysis. Udacity - Intro to Algorithms : U

Software Engineering - Essential skills

When I interact with young professionals coming out of college and entering the industry these days, I see a significant positive shift from the days when we started our careers two decades ago. Most of them are clear about what they want to do with their careers; some are interested in entrepreneurship, while others want to specialize in specific streams. The biggest advantage is that they have ample resources for whichever path they choose to pursue. However, I also see many industry experts struggling to obtain the right resources and feeling at a loss on how to guide new entrants. As a mentor, these are a couple of points I emphasize to my mentees, which I believe are the most essential skills for success in the industry: 1) Strong Fundamentals: Develop a solid foundation in programming languages, algorithms, data structures, and other core computer science concepts. This forms the basis for solving complex problems efficiently. Coming from a non-computer science background, I had