A few weeks ago I sent an e-mail to my subscribers and ended it asking the following question:
What's your motivation for coding? What do you want to learn?
I had many incredible replies and took my time going through each of them and replying them all.
There was one reply that stuck in me head (I won't identify the person since I didn't ask his/her permission):
Two main reasons why I’m learning to code are: 1. problem solving
and 2. looking to change job sector.
Problem solving because I want to be able to find automated solutions
to everyday problems that I find to be a nuisance.
Change of jobs because I feel no passion about what I am currently
doing. I’ve felt more alive in the few months I’ve been learning
to code and solving problems in Python and other programs than what
I’ve felt in my entire career as a lawyer.
To which I replied:
Problem-solving is truly one of the main skills in programming.
The job market for programmers is only growing and far from its peak, so I would say you are at the right time to make a change.
This feeling you are describing is what I call "Puzzle Solver Feeling".
Programming is about solving puzzles daily.
A programmer is someone paid to solve puzzles.
The problem you are given is often a total mess and you have to make sense out of it.
It doesn't matter the language or the tools you are using, learn problem-solving and the rest will follow.
How to learn problem-solving?
By practicing with problems and projects the general problem-solving flow:
- Analyze and understand the problem
- What are the inputs
- What is the required output
- Plan the solution
- Break the problem into smaller parts
- Break the parts into tasks
- If you get stuck, step back a little and rethink your approach
- Test the solution
- Fix errors that might appear, face them like challenges, not annoyances
- Iterate the steps until success
Programming teaches you to think better.
Become a Puzzle Solver.