Jan 03, 2019 08:33:47

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

by @jasonleow | 762 words | 110🔥 | 110💌

Jason Leow

Current day streak: 110🔥
Total posts: 110💌
Total words: 47367 (189 pages 📄)

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.

From Jason Leow's collection:

  • 1

    @jasonleow I think the language doesn't matter :) Just go for whatever you heard of. If you tried a language already, keep at it. The only criteria I would use maybe is how marketable the programming language is, as in "Can I find a job with it?".

    Basile Samel avatar Basile Samel | Jan 03, 2019 20:51:34
    • 1

      @basilesamel Yeah for the outcomes I want, I'm language-agnostic. Whatever gets the job done and product finished is good for me. Just that I have zero knowledge, so I gotta start somewhere with one language anyway, so might as well choose the best one that suits my goals based on what little I know, but being mindful that even that might change as I go along. Hmmmm I'm not at all concerned about marketability tbh...not looking to find a dev job with it at all. Being a pro dev is not the outcome I'm seeking.

      Jason Leow avatar Jason Leow | Jan 04, 2019 08:57:47
    • 1

      @jasonleow it's not about finding a job :) a marketable prog language basically means that it is used in the industry, so you have an existing infrastructure (libraries, frameworks, communities, doc) to support your dev

      Basile Samel avatar Basile Samel | Jan 04, 2019 09:14:40
    • 1

      @basilesamel ah i see! yeah those are important to me, esp since I'm just starting off and probably needing lots of help and support! 😌

      Jason Leow avatar Jason Leow | Jan 04, 2019 11:38:40
contact: email - twitter - facebook