This is a reply to a comment on a previous page that for technical reasons got posted as a new entry as opposed to a comment reply.
Comment:
Your articles are of great inspiration, Thanks Reddy.
Am a 2.5 yrs old Software Engineer and worked on Maintenance Projects.
Could you please suggest me a route towards Quality Software Engineering and better growth pattern?
Being that this is an article dedicated to reading books, I might suggest the apparent…read. And I don’t mean read books on new languages or technologies like Share Point or the newest version of the Apache server. Though these technical books have their place, they do little to advance your comfort level with building quality applications.
It all starts with the code you type. If an application has a poor design or weak architecture it can still have high-quality code. If you are not sure the design you have chosen is the best, the design can be more easily understood and changed as necessary if its code base is solid. To that end I highly recommend that both Code Complete and Writing Solid Code are read and discussed. (Note that Writing Solid Code refers to the C language, but it requires no knowledge of C to understand what the book is teaching.)
Beyond this I think it is imperative that you continue reading about the way other developers write software, finding a style and method of your own that blends the best of what you find. Books like The Pragmatic Programmer, Domain Driven Design, Refactoring, Object-Oriented Analysis and Design with Applications, and any of the Agile programming books give you insight into how applications are approached by other developers. I would hope any developer reading these books would find good ideas that fit with what they do and how they think. I would also hope there is plenty to disagree with in these books, as no one size fits all.
I often argue that no aspect of software development is more important than communication. Whether it is the how the code communicates to the next guy who has to understand and update the code, or how a user interface communicates its purpose to a user, or how a developer communicates with the business analysts, without solid communication, I might go so far as to say nothing else matters. What good is a great book if no one reads it? Or more to the point, what good is an awesome design if no one can understand it? What good is a great software business idea if no one can translate the business processes to an application? What good is a great developer who cannot communicate clearly with other developers, users and business analysts?
Finally, the very best thing you can do, of course, is to click on this link and then read the next 120 blog entries. Ha, ha, ho, he, oh man, I crack myself up. J
Good luck!