Answer to "What programming language should I learn?"
Tags: decodingcoding, beginners, noob, codenewbie
Published: 2021-09-17 23:15:23

---
title: Answer to "What programming language should I learn?"
published: true
description: My current best answer to that age old question every newbie coder face
tags: decodingcoding, beginners, noob, codenewbie
cover_image: https://images.unsplash.com/photo-1497493292307-31c376b6e479?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=2600&q=80
---

Learning coding isn't just about learning the syntax of whatever programming language that you chose.

There's also all these learnings at the edges of coding that no online MOOC will cover. Things that you only learn not from the act of coding itself. Things like how to think through and decide on technologies to use as a developer.

Through my newbie experience dabbling with different frameworks and programming languages, I learned my current best answer to that age old question that everyone starting to learn programming will invariably ask:

***“What programming language/framework should I learn?”***

So here’s my answer, for all us newbies:

**Choose something mature, to start with.** It can be HTML, CSS, Javascript. It can be mature languages like PHP, Python or Ruby. Yes, React/Vue/Svelte are new, exciting and hot right now, but start where millions had trodden through. This way, you start on the shoulders of giants who had gone before you. Thousands of tutorials, guides, docs, blog posts, answers on Stack Overflow - all there to help you as a noob. The only skill to learn as a noob is knowing how to search well. Being a mature and established programming language, there’s definitely someone who had faced the bug you’re trying to squash. As a noob it’s highly unlikely to face some edge case that no one had encountered. Hence, that significantly lowers the barrier to entry, rather than trying to figure out a solution on your own. Why else do people always say, start with the fundamentals, with fundamentals being HTML, CSS and Javascript?

**Choose something that your friends are using**, friends whom you know will help you, friends who are making the kind of products that you want to make. There’s nothing wrong in trying to emulate them a bit when starting off. That’s how we learn as babies and it continues to be a common way to learn professionally (just ask any artist or designer). I got lots of inspiration from some folks in the maker community, and seeing the products they make that I want to make myself, made me motivated to learn what tech they use. That’s why I first started with HTML, CSS and PHP basics ([@levelsio](https://twitter.com/levelsio)’s no framework, no bs approach), then got into Ruby on Rails (ala the entrepreneurial steadfastness of [@yongfook](https://twitter.com/yongfook)), then Vue and Nuxt (influenced by [@dannypostmaa](https://twitter.com/dannypostmaa)’s shipping pace and quality). I got inspired by these guys and then slowly made friends whom you can lean on for help. Going with these tech help sustain me on my journey, continue to stay inspired, and persevere through challenging coding times.

**Choose something that doesn’t promise (just) to get you there fast**, but something that will get you there and beyond. As with Strapi, I was lured by the ‘fast’ bait, but with it came a lot of other trade-offs downstream which I only realised much later, after much sunk costs. But how do you know if you’re a noob? Yep you don’t. So you pay for lessons like this with your time. But once bitten, twice shy. At least now I know, next time someone/something comes along that hard-sells you the bs that it’s “Fast! Easy! Cheap!”, be very careful. Caveat here is that if you don’t mind changing course, you can of course start with what’s fast first, then switch out for something else later that suits your use case. I often feel that way with nocode too - it gets a MVP to market fast, yes, but invariably I will hit some wall later, which makes me wonder if I should have started with something more stable instead. Do I really want to have to rewrite everything, everytime? There’s a beauty to being able to use one tool (language/framework) all the way, progressively. And fast is often a function of competency, not necessarily language/framework. Once you stick to it and get good enough, you can ship fast even if you don’t use frameworks or libraries.


So there you go. 

My best answer at the moment to that famous noob question “What programming language should I learn?” I’ll probably cringe when I reread this years later. I would expect to cringe, because that would mean I had grown since. And this post would have served its purpose then.

---

Follow my daily writings on [Lifelog](https://golifelog.com/goals/30), where I write about learning to code, goals, productivity, indie hacking and tech for good.