• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Tim Cooke
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • paul wheaton
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Ron McLeod
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Tim Holloway
  • Carey Brown
  • salvin francis

Developing good coding and design skills in Java

 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Marshal
Posts: 65365
248
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to the Ranch

Such skills are basic to any object‑oriented programming. Have a look at the “Head First” books published by O'Reilly.
 
Bartender
Posts: 1810
28
jQuery Netbeans IDE Eclipse IDE Firefox Browser MySQL Database Chrome Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

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!
 
Sheriff
Posts: 13677
226
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
These are the things I encourage developers who I mentor to study:
1. Design principles: SOLID, DRY, SLAP
2. Refactoring
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:
Joshua Bloch
Martin Fowler
Robert "Uncle Bob” Martin
Joshua Kerievsky
Kent Beck
Joel Spolsky
and whoever these guys recommend reading
 
Campbell Ritchie
Marshal
Posts: 65365
248
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I like Joel Spolsky too, but there are people who disagree with him no end.
 
Junilu Lacar
Sheriff
Posts: 13677
226
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:I like Joel Spolsky too, but there are people who disagree with him no end.


I don't agree with all his opinions but Avoiding Leaky Abstractions are one thing that I take to heart when designing.
 
Mohamed Shakeel
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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?
 
Ranch Hand
Posts: 50
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Campbell Ritchie
Marshal
Posts: 65365
248
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You're welcome
 
Junilu Lacar
Sheriff
Posts: 13677
226
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Aaron Shawlington wrote: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.


And ask "Why?" FIVE times -- 5 Whys
 
Don't touch me. And dont' touch this tiny ad:
professionally read, modify and write PDF files from Java
https://products.aspose.com/pdf/java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!