What's the one skill that any new Developer should focus on learning? Yes, actually learning to code is pretty high on the list. But how would you even know where to start without being able to understand what you've got to build?
Now, being a Developer is like being a Business Analyst, or a Marketing professional - it's a pretty broad term. There are a number of different types, and an exponentially increasing number of disciplines that you can specialise in.
You cannot possibly know everything there is to know. And you're not expected to. But what you do need to know is 'how to figure something out', or, 'how to solve the problem'. And therein lies the rub.
It's not easy. If it were, everyone would be Marc Andreessen.
But don't worry, it's something you can learn.
And like all things, practice makes perfect.
Why is it so important?
Well, every piece of software created is actually the solution to a problem. For example, SOLID was written to provide ISP's with all the very specific operational features they need in a single platform.
"A task may not always be presented to you in the form of a problem statement, but determining the problem behind the requirement is often the best way to narrow the focus of what you need to achieve. It is also most often the measure of how successful your implementation is." ~ Christopher Hamman, SOLIDitech Key Account Manager
If we knew the answer to everything all the time, how would we ever create anything new? Push the boundaries? Come up with something exceptional?
The essence of great development lies in the ability to be a great problem solver.
How do you know if you're any good?
To paraphrase Donald McMichael's "3 Attributes Powerfully Successful Problem Solvers Possess", all good problem solvers are good at:
- Getting to the core of what's going on
(Understanding why something is a problem in the first place)
- Influencing the construct of their MI (Mission Impossible) team
(This is where you use your creative and analytic mind to find possible solutions)
- Executing well
(Doing what you do, well.)
Essentially, you need to be able to take a problem, understand it, and then work towards finding a solution using any means at your disposal. Often, it's the 'understanding' bit that's the hardest.
4 Tips for success
Of course you can’t very well go around saying that 'problem solving' is the key skill without providing some tips and tricks for success:
- "Try to simplify the problem before looking at a solution, and always put yourself in the shoes of the user - you will sometimes find that the solution is simpler than you first thought." ~ Oliver Gardner, Key Account Manager
- "Find a tech news site that suites your personality and your style of humour and read it daily. It's the best place to hear about new concept/tools/hacks and to stay in touch with the bleeding edge (without any actual blood loss)." ~ Manuel De Jesus, CEO
- Make Google your best friend. Knowing how to look for a solution can sometimes be half the battle, here are some great tips from Hubspot
- "Break down a problem into smaller steps in order to solve them using your knowledge of logic, data structures, and other programming "tools"." ~ Louis Fourie, Software Engineer
Being a Developer is all about creating something useful and relevant out of nothing. You take a real-world business problem, leverage your coding skills and apply your mind in order to create an elegant and brilliant, practical solution.
This is why we think 'problem solving' is the #1 skill all Developers should learn.
If you liked the pieces of advice we included above, check out this post for some more top tips from the SOLID Dev Team.
Let us know what you think in the comment below.