aspose file tools*
The moose likes Jobs Discussion and the fly likes Do I need to learn design patterns  ? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Careers » Jobs Discussion
Bookmark "Do I need to learn design patterns  ?" Watch "Do I need to learn design patterns  ?" New topic
Author

Do I need to learn design patterns ?

Andy Jack
Ranch Hand

Joined: Nov 22, 2012
Posts: 257
I looked at a couple of job requirements and a few of them ask for design patterns. Now, from my limited knowledge I feel that only singleton and MVC are important and the rest are not used much.
Despite that, I was about to get head first - design patterns. But this article discouraged me.

Is is really worth reading this book or should I read a book on something else instead, like algorithms ?


Java Newbie with 72% in OCJP/SCJP - Super Confused Jobless Programmer.
I am a "newbie" too. Please verify my answers before you accept them.
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2052
    
  22

You will probably use your knowledge of design patterns more than algorithms. Although that kind of depends on your job.

Based on my personal experience, once a junior to mid level developer gets to understand design patterns, you make it easier for the architect/lead to communicate with you. Instead of spelling out every class and every interface in detail, they can just come to you and describe the design in terms of patterns they want to use. That cuts down their effort on design by at least 60%, and they might even task you with documenting the detailed design. You are still not doing the design, but you are taking an important step towards it. More importantly, once you get to the point where the lead can consistently describe the design to you in a 30-60 minute convo, and you can take the whole thing from start to finish you have become what management likes to call an "independent contributor". That means you are a senior developer. That means a promotion.

You still should be careful about taking on design of large projects yet, but being an independent contributor starts opening doors for you
Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3054
    
  33

Design patterns vary from code level to the architecture level. But everyone starts with the gang of four design pattern book. I personally would recommend to start with that book. Head First Design pattern is a bit slow on teaching these concepts. But for all the design pattern stuff you need to be familiar with the basic OO Concepts. The gang of four design pattern book has C++ code samples but that shouldn't stop you from reading that book. Also there are books which have gang of four design pattern book examples written in Java.

For architecture patterns there is a good series titled Pattern-Oriented Software Architecture. The first volume of that book does deal with the Design patterns at the code level, but most of it is for the design patterns at the architecture level. Another really useful book for architecture pattern is Patterns of Enterprise Architecture.

For more really good reference suggestions do check out this FAQ.

In short its good to learn about design patterns and be able to communicate your code using them.


Mohamed Sanaulla | My Blog
Andy Jack
Ranch Hand

Joined: Nov 22, 2012
Posts: 257
Jayesh A Lalwani wrote:You will probably use your knowledge of design patterns more than algorithms. Although that kind of depends on your job.


Why do you say so ?
My guess is that if I do a routine kind of job, like develop shopping cart or make job portal, then I won't need algos. But if its like - make advanced graphics processing software or
software to suggest movies and songs, then I will need algos. I suspect that most developers do the former type of development.
Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3054
    
  33

Andy Jack wrote:
Jayesh A Lalwani wrote:You will probably use your knowledge of design patterns more than algorithms. Although that kind of depends on your job.


Why do you say so ?
My guess is that if I do a routine kind of job, like develop shopping cart or make job portal, then I won't need algos. But if its like - make advanced graphics processing software or
software to suggest movies and songs, then I will need algos. I suspect that most developers do the former type of development.

I agree that whether application of algorithms depends on the type of work. Its also possible that you can apply patterns while implementing algorithms. That way your code looks and remains clean and understandable. The challenge there is that even though you implement the algorithm, the code should be understandable to others reading and to you as well.
Andy Jack
Ranch Hand

Joined: Nov 22, 2012
Posts: 257
Mohamed Sanaulla wrote:
Its also possible that you can apply patterns while implementing algorithms.


Wow ! Did not know we could do that. Can you show me an elementary example where we can combine an algo with a pattern ?

Thank you.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Do I need to learn design patterns ?
 
Similar Threads
Design patterns and examples.
Learning design pattern
oo concepts book
OOP software design
Design Patteren implemented in String?