Great blog post, Paul.
Rachel Lum

Photo by Fabian Grohs on Unsplash

Thank you for your comment and kind words, Rachel Lum! I’m very glad you found my article interesting —this shows that it was well worth writing about this subject.

As for the questions, please let me expand on what I’ve written in my article:

1— I can’t decide for anyone, obviously. But speaking from my experience, learning to code takes a lot of time and practice. And I mean at least a couple of years of actual work experience. Sure, anyone can go through a tutorial and learn some basics of one language or another, but that will not make them able to do the most important things:

  • write anything production ready
  • read production code —they may actually be a bit frightened when they see a piece of production code and find out how hard it is for them to even follow it. They will probably say WTF a lot. It’s completely different from what you usually learn from a tutorial or a course. It’s a kind of code literacy. For an experienced programmer it’s easy to just start reading code, following it and figuring out how things work and how they fit in the context of the entire application. A beginner will have no clue. It’s like learning any human language — you can’t expect to learn a couple dozens of useful phrases and think yourself ready — because what usually happens when you use those phrases is that native speakers will start actually talking to you casually in their language, assuming you can speak it — and you won’t be able to understand anything and answer.
  • debug code — it’s the most difficult part of all this and for every developer, even after years of experience, it’s the most daunting task. It’s hard to explain to a beginner — I think visually in terms of connections between things and make a kind of mind map or blueprint when reading/debugging code so I can “run” the code in my head and find why it’s not working as expected. I think most developers do this. I actually enjoy debugging more than writing code :D
  • solve complex problems — which is as difficult as debugging and is nothing like the code you learn from a course.

Don’t get me wrong — I think that if someone wants to learn programming they should 100% go for it! Just enjoy the process, write a lot and read a lot of code because that’s what really matters and how you get good. :)

2 — In that case, I think they should learn as much as possible about data structures. I would like to know if you think the same, or would you choose something different? I think D.S. bring the most bang for the buck. Also, maybe some procedural generation stuff, as it’s awesome, satisfying and sometimes hilarious :D

Yeah, so… this turned into a separate short article somehow 😄