The 5 Problem-Solving Skills of Great Software Developers

Lorenzo Pasqualis on November 13, 2017

This post was first published on CoderHood as The 5 Problem-Solving Skills of Great Software Developers. CoderHood is a blog dedicated to the human... [Read Full]
markdown guide

You quickly go from making coffee to making any product under the sun using any process possible. Ouch.

That was a great example of how over-abstraction can take on a life of it's own. The best applications I've seen do one thing and do it well. Generally, products that try to do everything for everyone end up doing nothing really well for anyone.

Thanks for the nice read.


Thank you, Grant. Yes, over-abstraction is the only thing that is worse than under-abstraction :)


I'd like to translate the article into Japanese and publish on our tech blog if you're OK.

I make sure to indicate the link to original, title, author name in the case.

Best regards,


Thank you for your interest in translating this article into Japanese for cross-posting.

My requirements for cross-posting are highlighted here: CoderHood Cross Posting Policy

I am ok with you cross-posting on as long as all the requirements indicated in my policy are met.

Please let me know.

Thank you.


Thank you for the reply!
I'll look into your Cross Posting Policy.


I didn't think making coffee would be so complicated. I hope you can explain more of what you mean by the right times to abstract. Sometimes, I have a tendency to abstract things, and it sometimes don't fit with my new problem..


Ana, thank you for your note. I am writing an article about models and abstractions right now. Stay tuned!!!


I just published it :) Hope you like it, and looking forward your feedback.


Great article! I am sharing it with the code school students I work with, I think it will be helpful to them.

I wrote an article approaching the issue of software problem-solving from a different angle--I think yours is much more detailed when it comes to breaking down large, complex problems.


Excellent, thank you! Let me know if it was helpful, and if you have any suggestions/feedback from the students.


Just awesome!
I agree with that that those 5 skill are necessary for software developers. You took very nice real life scenario which is very descriptive and easy to understand.
I think that your article should be a compulsory reading in high school in terms of first two skills. I could help students to understand why is so important to learn about flowchart, understand and play with it.
In my opinion last three skills (especially 4th) should be a mantra for more experienced developers. They often forget about reusing existing solutions and are reinventing wheel again.
I take off my hat to you! Great job. I'm sure that I'll use your article in the future.


Super post! I've been a pro front-end developer for almost three years and around 18 months in I started to realise that my job is to solve problems, not necessarily to write code. It's a fantastic way to look at things and helps tremendously with abstraction.

I can sometimes be guilty of over abstraction so it's reassuring to read that it's ok to just minimise the abstraction to satisfy likely outcomes.


First: Great Article!

Second: Could we please, please tattoo #4 on every programmer?

Seriously, we've gone through an explosion of programming art in the past 50 years. However, how much work do we waste writing and re-writing the same things over again?

I've noticed other engineering disciplines take a much stronger approach to understanding prior art and the state of the art when solving problems.


Indeed. The temptation is for people to re-do the work. The focus should be on doing work that is at the core of the business. The vast majority of problems that developers solve AROUND the core business have been resolved before, and time should not be wasted on those.


Amazed to see that "extreme reading and comprehending ability" is not mentioned at all, which I suppose should be the top most skill for a software developer/programmar/coder.


The article is about problem solving skills, not skills in general. Regardless, thank you for your note.


In the article headline, It was mentioned Skills. Apologies, maybe I got confused.


Thank you for the great article. I'll surely follow the steps above and adjust my workflow.

Thank you so much!


You are so welcome, Michael. Thank you for reading and for writing a note. It makes all the difference.


You make serving coffee looks complex, sounds complex, but some how in the end, its easy, its fun, and a lot of thinking! Hats off!

Salute from Malaysia.


Thank you so much for your note, Jamal!! Made my day.


Thoroughly enjoyed reading this one. Thank you @lpasqualis . First time in a long time that I had several "Aha!" moments reading an article. Learnt several things.


Great article. Pretty much sums up the lessons learned from my first junior position. I couldn't have put it better myself.


Congrats man! Really good. It takes years to fullfiled all those points. But, when we look back, we get proud of ourselfs. I still can't be away from coding. Can I use that with my students?


Thank you, Matheus. Yes, absolutely, Iā€™d be honored if you used it with your students.


And that's why I love diagrams. Thank you for this article, so many times we use this cycle but I totally forget about it. I agree with you and you make it really easy to understand.


Great article. I have been looking for something like this. Thanks a lot.


Great one! Me being a beginner, I like to read a lot how to become a better developer. Thanks, it was a pleasure reading!


One of the best articles on software engineering I ever read. Excellent article, with useful, real life scenarios.


Nice article Lorenzo Pasqualis, just made a follower out of me!


This is the best article I've ever read till now. The process and the examples you gave were simply amazing. WOW!


Thank you, Chinmay! I really appreciate your comment!!

code of conduct - report abuse