A programmer, in this case, is someone who creates value by writing or modifying programming code. Thinking like a programmer starts with curiosity. Wondering how things work. Why they work that way? Figuring out what makes them work that way and how you could change them to work a different way. Thinking about software is thinking about systems. This curiosity leads to investigating how things work and investigating how changing parts of the system changes the outcome.
Programmers are willing to put in the time to make things easy or automatic. They are often frustrated by having to do repetitive tasks. They want things to “just work”. Beyond wanting it, they are willing to spend the time and effort to create the automation to make them work.
Programming is often a solo effort. Yes, programmers work in teams, but a great deal of what we do is done by ourselves in front of our computer. There is something called the zone. This is when all the distractions (including other people) fade into the background and you just “see” the solutions to the problems you are working on. When this happens you get a lot done. You also do not want your manager or teammates coming by to ask questions. So some of the most productive time you have as a programmer is spent alone.
A Practical Programmer is someone who gets the job done. Programming is full of distractions and interesting problems. It is easy to research the algorithms and historical solutions that exist for hours, or days in some cases. One of the challenges for programmers is balancing the time spent researching to avoid reinventing the wheel with movement toward a solution that can be used. We need to be open to what is out there, while still focusing on moving forward.
This blog will be a series of articles that cover thinking like a Practical Programmer.