Posts

What is Clean Code?

Image
Code is clean if it can be understood easily – by everyone on the team. With understandability comes readability, changeability, extensibility and maintainability.  Clean code can be read and enhanced by a developer other than its original author. Please note "working code" is not the same as "clean code"!   "Clean Code" by Robert C. Martin is a highly regarded book in the software development community, offering valuable insights and principles for writing maintainable, readable, and efficient code.  If reading is not your cup of tea, below Udemy courses can be followed:  1)  Learn to Write Clean Code with Java  :  Learn to Write Clean Code with Java. You can get Hands-on with Code Examples involving 4 principles of Simple Design, Refactoring & TDD. 2)  Clean Code  :  This course is a compilation of common patterns, best practices, principles and rules related to writing clean code. Basic programming knowledge (no matter which language) is required!

Mastering Algorithms and Data Structures - References for beginners

Image
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

Image
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