The Only Way To Learn Programming

I get these questions A LOT: "how do I learn programming?", "how do I start in programming?".

I receive these and other variations of them all the time.

This article Do you suffer from TSTC: Too Scared To Code? 5 symptoms and a cure is related to this topic.

It discusses the most common problems beginners face and how to overcome them.

I highly recommend you to read it if you feel stuck trying to learn programming and then come back to this article for complementation.

There is only one way to learn programming for real.

The wrong way

There is not enough in the world for anyone to consume the sheer amount of information related to learning software development in this world.

Tutorials, books, articles, posts, videos, youtube walkthroughs, you name it.

No, you are not gonna learn programming by watching a video or reading tutorials, and this is coming from a content creator.

Find a problem

There is a piece of common advice for wannabe entrepreneurs who want to start a company: "find a problem and then a solution for that problem".

Simple, right?

When people want to learn programming they do the opposite.

"I want to learn Python".

For what?

"I don’t know, find a job?".

Finding a job is an excellent motivation for your career and life as a whole, but not so much when it comes to learning.

You need to find a problem to solve.

Look around you and think: "can I make this better, faster, simpler, cheaper, with programming?".

Then you go learn what you need in order to do that, not the other way around.

It doesn’t have to be anything super complicated.

Talk to your mom, spouse, anyone and ask: "Hey, do you have an incredibly boring activity you have to do on your computer on a daily basis?".

It could be something related to spreadsheets like Excel, organizing files in a certain way, generate a report, anything.

Just listen and think about how you could automate the task.

Become a rower

Rower

But I know ZERO programming, how am I supposed to do that?

It is not a matter of not reading, watching any books or courses.

It is a matter of taking action with what you know.

Consider you are a rower.

Your left oar is studying, your right oar is applying what you know.

Now, try to picture yourself on a boat, with both oars, but you are just moving the left oar, you are just studying.

What happens?

Nothing, you won’t move.

You need to move the left and right oars, then you will move the boat.

You will make progress.

It’s gonna be bad

Yes, your code will be bad at the beginning, it will be horrible actually.

This is normal for any new skill.

I’m still very far from becoming a great writer, but I’m surely progressing a bit for each new article I publish.

Code as quickly as you can, as cheap as you can.

You will produce dirty code, but you will also be able to test your theories and find out if you are walking on the right path.

When you are done with something functional, you go back and make it look pretty.

So, should I stop reading books and taking courses?

No!

Remember what I said about becoming a rower.

You have to do both, study and taking action.

But keep in mind there will always be something to learn.

There will always be new shining tech.

Don’t choose tech because of hype.

Avoid the FOMO (Fear Of Missing Out), you aren’t missing anything.

When you become good at one tech, most of the knowledge is transferable.

Choose the right tech for the right context in a rational way.

Evaluate the use cases, performance, limitations, community, maturity, etc.

Technology is a means and not an end, don’t be a limited professional.

BUT, in the beginning, you must focus on something.

Pick ONE.

Breadth is good, but you need depth to become a valuable professional.

A simple tool used to its full extent through years of mastery is better than the best tool badly used because you don’t know how to handle it properly.

The only way

Yes, there is only one way.

You find something you want to do.

Then you try to do it.

And for each and every step, you keep wondering "can I make the computer do that?".

You will face roadblocks, and when you do you just keep pushing your way until you finish the project.

Go program.