I am a Java programmer with 4 years of experience. I work on the J2EE web development , Web Services for the enterprise, Spring. Though i have been working on development of applications in Java and J2EE, i feel that the writing good quality code, designing solid object oriented code that is reusable, maintainable and scalable is not something i havent developed proficiency in yet. It is not about the technology but more about design and quality of code and having them hammered in me. Would appreciate any advice / suggestions from J2EE veterans in this forums who have taken this path on how to develop this skill. What is the path that i should take? What are the books that i should read? There are a lot of books in the market but i cannot read them all. So i want to read the ones from which i can get the maximum return. I want to develop these skills in the next few months because 4 years in the industry is a high time and i feel i am way behind.
Mohamed Shakeel wrote:I want to develop these skills in the next few months because 4 years in the industry is a high time and i feel i am way behind.
I disagree. I think your expectations are a bit too high. At four years of experience I would expect you to be an intermediate developer at best. At this stage you should still be mentored by a senior developer to learn the advanced topics. And you aren't going to become an expert in these topics in a "few months".
I agree with Campbell on the Head First books. I also suggest you read this article.
And welcome to the Ranch!
"The good news about computers is that they do what you tell them to do. The bad news is that they do what you tell them to do." -- Ted Nelson
These are the things I encourage developers who I mentor to study:
1. Design principles: SOLID, DRY, SLAP
3. Test-driven development, with focus on testing behavior (not just methods) and design of the API, assigning responsibilities, and proper name selection
4. Working collaboratively with other developers, doing pair or mob programming.
Authors to read:
Robert "Uncle Bob” Martin
and whoever these guys recommend reading
The best ideas are the crazy ones. If you have a crazy idea and it works, it's really valuable.—Kent Beck
Thank you Junilu Lacar, Campbell Ritchie, Kevin Robbins for your suggestions and the warm welcome They were helpful. I will read the books suggested. My objective is to understand how a seasoned object oriented programmer would think when faced with developing a new solution - the different options he would consider in defining the system level interactions, layering the application, class design , defining interfaces, defining the methods, defining domain objects, data transfer objects, choosing patterns for problem at hand, various factors and trade offs that he would consider in doing each of these. What is your opinion on Applying UML and Patterns and Patterns of Enterprise application Architecture by Martin Fowler in realizing these objectives?
Just read up on those patterns, and then (this is the important bit) get a deep understanding of WHY? Why is my favourite question ever. Just learn what people are doing and then ask yourself why over and over again until you start finding yourself giving your own opinions to other people. At that point you'll have trained your brain to think like a good developer - rather than to just mimic what good developers do.