avatarDaniel Wieser 🔥

Summary

The article provides insights into the methodical problem-solving approach of programmers, emphasizing continuous learning, adaptability, and the use of collective knowledge to tackle challenges.

Abstract

The article "How to Think Like a Programmer" delves into the mindset and methodologies employed by programmers when addressing problems. It challenges the misconception that programmers must know everything from the start, instead highlighting the importance of on-the-job learning and embracing uncertainty. Programmers are portrayed as lifelong learners who leverage past experiences, patterns, and community resources like Stack Overflow to overcome obstacles. The text underscores the iterative nature of programming, involving trial and error, research, and the application of known solutions to new problems. It also suggests that the skills acquired through programming are broadly applicable to various complex tasks, both within and outside the tech industry. The article concludes with a list of programming languages in demand for 2023, while asserting that the choice of language is less critical than the commitment to learning and problem-solving.

Opinions

  • Programmers do not start with all the answers but are adept at figuring things out as they go, often through trial and error and research.
  • The process of programming is iterative, involving continuous learning from errors and the adaptation of known solutions to solve new problems.
  • Programming is not just about writing code but also about breaking down complex problems into smaller, manageable parts and finding solutions for each.
  • The article promotes the idea that the methodical approach to problem-solving in programming can be beneficial in a wide range of situations beyond coding.
  • The choice of programming language is secondary to the dedication and interest in the learning process.
  • The author suggests that the knowledge and experience gained from programming can be likened to a "Genius Mastermind" persona that is continually evolving.

How to Think Like a Programmer

Adapting a Methodical Approach to Problem-Solving

© Daniel Wieser — Midjourney + PS

Introduction

When you watch programmers, you get the feeling that they have a plan about the problem they are about to tackle. But that’s not accurate. They are often wrongly perceived as knowing everything.

As far as programming is concerned, it’s more about figuring things out on-the-go than knowing everything from the beginning. Programmers embrace uncertainty — and succeed!

Programmers have a distinctive method of solving problems.

By not being afraid of the unknown, they are able to continuously learn and grow. It allows them to approach new challenges with an open mind, free from the constraints of pre-existing knowledge.

Programmers often dive into new challenges without having complete knowledge about the problem at hand, push themselves out of the comfort zone, and adapt to new situations

This article will explain the programmer mentality and provide tips on how you can adopt it too.

What programming is…

You cannot know everything from the beginning and so can’t programmers. What they have done though, is to solve many problems by themselves.

And over a longer period of time, they have adapted and gained experience. And they draw from other people’s experiences and knowledge which is shared on various websites.

What you think programming is:

  1. See a problem
  2. Write the code
  3. It works!

But lot of programming works like this:

  1. How do I make this work?
  2. Google, StackOverflow, etc.
  3. Ah well… I’ll try it
  4. Doesn’t work…new error
  5. Google…StackOverflow, etc.
  6. Ah well… OK, I’ll change it…
  7. Then error again…
  8. Again searching for a solution
  9. And so on, and so on…

Over time you learn what works and why it works.

You identify patterns.

You then try to adapt a problem from a different angle, solve it in a way you already know.

You combine multiple solutions to create new and more effective approaches.

This process of continuous learning and adaptation is essential to the development of a programmer’s skills and expertise. By constantly seeking new ways to solve problems, a programmer is able to stay ahead of the curve and bring new ideas to the table.

Other users already have use cases and you try to find what they have done that is similar to what you have done.

If that doesn’t work, then you “break down” the problem further and further and look in the documentation for explanations of how things (terms, syntax) are used.

© Daniel Wieser — Midjourney

Programming a calculator

If someone tells you: “Program a calculator” what do you need?

  1. Input
  2. Validation
  3. Arithmetic operations
  4. Output

But how do I know that?

I have already programmed a calculator and faced several difficulties along the way. New errors occurred. How do I solve them? It was a continuous learning process… A continuous solving of problems and errors. If you are a good programmer, you already know these things.

The more problems you solve, the easier it is to solve new errors.

Conclusion

You might think you do not need to know how to program.

You might believe your life is good without knowing how to use code to solve problems.

Well, I am here to tell you that programming is useful for any difficult task you want to tackle.

The process of programming involves breaking down complex problems into smaller, manageable parts.

And then finding solutions for each part.

This methodical approach to problem-solving can be applied to a wide range of situations.

Both in and outside of the programming world.

What programming languages should you consider to learn?

A programming language is a way for programmers (developers) to communicate with computers. Programming languages consist of a set of rules that allows string values to be converted into various ways of generating machine code, or, in the case of visual programming languages, graphical elements. — source

According to Simplilearn, the following programming languages are in high demand in 2023:

  1. Javascript
  2. Python
  3. Go
  4. Java
  5. Kotlin
  6. PHP
  7. C#
  8. Swift
  9. R
  10. Ruby
  11. C and C++
  12. Matlab
  13. TypeScript
  14. Scala
  15. SQL
  16. HTML
  17. CSS
  18. NoSQL
  19. Rust
  20. Perl

But of course, you can learn any programming language you want to learn. It is the act of learning and applying what you learn, what will give you all the benefits. The programming language itself is not that important.

What’s important is your interest and dedication.

🔥 Genius Mastermind is a persona that is still being developed. More things need to be learned, more books need to be written. Follow for more articles on Book Writing and how to write your own book.

📚 Books: 📘 Speed Reading Genius 📕 The Secrets to Learn Any Language 📗 Why Everything You Know About Making Money Is Wrong

Do support our publication by following it:

Programming
Mindset
Programmers Life
Developer
Random Thoughts
Recommended from ReadMedium