200 Words A Day archive for 2 full years. 731 days of unbroken consecutive days of writing. 7 Dec 2018 - 8 Dec 2020. I now write daily on https://golifelog.com

Decoding coding: Important questions to ask before deciding on what programming language to learn

Warning: Potentially contentious topic. I’m now trying to decide what programming language to learn, and how to do learn it. Go with plain vanilla HTML, CSS, JS, PHP, MySQL? Or go with tried and tested Ruby on Rails? Or try something new and shiny like MEAN? 

But I’m getting ahead of myself. I had set my intentions in my previous post. Now, what are my goals? After doing some research, these are some important questions that people recommend asking and thinking about before deciding on the language:

What do I want to do with coding? Be a professional developer? Work in a tech company? Or know enough to make products on my own as an indie maker?

I just want to make products on my own, products that will function as intended and won’t break. I’m not interested in becoming a professional developer nor working for a big tech company. So more indie maker, less pro developer. More generalist with low depth across the full stack, less specialist and master of one language.

What kind of products do I want to make, for whom? The next Facebook (yuck)? SaaS? Games? Products for social impact? Or just fun stuff like Emojifs?

I’d love to make SaaS products (in the form of web apps, Telegram bots for instance) that are useful for professionals in the social impact space. No interest in being the next billion-dollar unicorn startup. A lifestyle business is more accurate description (though I hate that term). But not everything has to be monetised - I’d love to make random stuff just for FUN too.

Which languages lend itself to the type of products I want to make?

So far, the advice I’m getting is to start learning some plain vanilla HTML, CSS, JS, PHP, MySQL as I’ll need to know a bit of it even if I use other frameworks in the future. I’m going to start with that first, and learn what I need as I go. For making web apps and other products quickly as an entrepreneur/indie maker, Ruby on Rails seems to be the right one to go for as it’s a mature language with lots of libraries to speed up development, and easier to add and maintain. Performance sounded like it might be less powerful than the MEAN stack, but I’m not building for a billion users. 

How do I like to learn? Structured and more academic? Or unstructured, ‘play-based’ learning by doing via project? Or a mix?

I prefer unstructured learning, and learning by doing using a project. Part of the reason I had many false starts is because online courses tend to be too structured and academic. I always asked myself what’s the point of learning all that? Learning stuff without context doesn’t work well for me. But ground zero is scary for me personally because I don’t know where to start, so I’ll probably take some low commitment beginner online course for some basics first before jumping into the deep end. Will divide probably 10:90 of my time on structured vs unstructured.

How do I intend to go about learning it? Online courses? Actual physical classes? Or just googling what I need?

I’m researching some basic web developer online courses on Udemy and Codeacedemy. Will do 1 or 2 probably. Then switch over to project mode, and Google my way through, or use community forums, ask friends, etc.

Who can I ask for help when I hit a roadblock? Are there supportive communities to help beginners like me?

This is an important factor. Other than general forums like Github and Stack Overflow, I think I’ll need help in whatever specific languages/frameworks I pick up later. I heard Ruby on Rails have a great, supportive community, so I’m leaning towards that. Some of the online courses also have communities I can seek help from. Or just ask friends.

Are the tools needed for this language/framework free, open-source and/or relatively cheap?

Low barrier to entry is important as I’m still figuring out what I need to learn as I go along and wouldn’t want to invest too much in new tools that I don’t need later. The basic tools for beginners to get started are mostly free. But there’s too many tools out there, so will have to keep this in view as I go along. 

These answers are my best guesses at the moment, from the lack of knowledge. Would love to hear if anyone got any advice with regards to the questions above!

? Day 28 of the #200wad challenge.