Cogito, ergo sum

Imagine you are asked to build a house.

You search the web for sites which can teach you how to build a house. There are hundreds of them! You find some of the better ones and start learning.

Shortly into your journey, you discover that you a learning a lot about how to use a hammer and saw, where to buy lumber, and how to pour concrete.

What you’re not learning is how to decide on a poured or block foundation.
You’re not learning when to start running plumbing and electrical wiring.
You’re not learning when you can use inexpensive lumber and when you should get the really good stuff.
You’re not learning about building codes and how to work with inspectors.

In other words, you’re really not learning how to build a house. You’re learning how to use the tools other people use to build houses. Maybe you get frustrated and think you need a ton of expensive formal training to even keep going.

Now imagine the same situation, but applied to computer programming.

There are hundreds of web sites where you can learn any programming language. You can learn how to make loops, define functions, and how to design a UI to get input from users. You can pick up tips, tricks, and techniques for your language of choice.

What you don’t really learn is how to break down a problem so you can apply those techniques.
When do you apply all those techniques you’ve learned?
If there is more than one way to solve a problem, how do figure out which one is better for your situation?

Beginning programmers struggle with learning the language, as well as how to apply it to the problem they want to solve.

That’s where Cogito Coders comes in. My goal is to show you how to think like a coder, so you can solve the problem, regardless of your programming language.

My name is Jon Fincher, and I worked for over 21 years at Microsoft in a variety of roles. I’ve mentored new hires, and developed and delivered training at large tech conference. I taught computer science in high schools around Seattle as a volunteer and a full-time CS teacher for 3 years. I write tutorials for web sites such as Real Python and Scrum Assembly, and work with readers to help resolve their issues.

The primary challenge I’ve seen in my students isn’t learning a programming language. It’s learning how to break the problem down into solvable parts. It’s knowing how to arrange data to reduce the work that is done. It’s understanding when to abandon an initial approach for a new idea.

Throughout this blog, I’ll relate stories and ideas from my own experience, and that of others, to highlight how problems were solved by changing the way we think about them. I’ll cover tips and techniques to help you refine your thinking about different problems. And hopefully, we’ll have some fun on the way.

Thanks for reading so far. Let’s get started.

1 thought on “Cogito, ergo sum

Comments are closed.