Self-taught software engineering: Coursera & co.

I really enjoy Coursera courses and have been doing them since I have been doing software engineering. It’s a great way to broaden my knowledge since I’ve never received formal computer science or software engineering education.

Just a quick update: I added a list of what I have completed to the About page.

Not really to brag; I guess one doesn’t spend countless hours at solving programming problems to just have a certificate to brag about. Okay, I’m fairly proud of these accomplishments, happily paid for the courses, and consider it time well spent.

Here’s a short post about what I have found out about these courses.

Coursera vs. Udemy vs. Udacity

I found Coursera to be of very high quality, most courses are college level, usually taught by university teachers and such, and (at least SE courses) contain some challenging and rewarding homework. Often, they are online versions of undergrad classes. They are quite focused on theory and theoretical foundations.

Many courses (especially newer ones) are not free, and the subscription model for specializations is not cheap. You have to pay $40-50/month to access all material, regardless of how you progress. But usually you get awesome courses for the price, thematically arranged so that one builds on the other. Moreover if you’re lucky, you’ll have some helpful instructors in the forums. All in all, it’s money well spent if you find value in doing them.

Compare this with eg. Udemy, where most courses are at a constant ‘discount’ price at ~$10, with variable quality – really depends on the instructor. There is no formal way to submit homework or receive certificates. (Their web developer bootcamp course gave me a great head start, though!) Most courses are rather about quickly obsoleting frameworks or some more specific knowledge.

Side note: I also tried Udacity before, but found its frontend course lacking, shallow and hard to follow. I haven’t tried edX but I guess it’s most similar to Coursera.

Creating your own learning plan

I think that the most important is to set your own learning goals.

‘Why am I learning?’

  • Do you want to keep up with the latest developments in your favorite programming language or framework?
  • Are you just looking around for information or would rather do some pet project?
  • Or you just want to learn something totally fun & new?
  • Do you lack formal education and would like to get some solid theoretical foundations, even if they are not always usable in day-to-day situations? (But you are playing the long game…)
  • Would you like to specialize in some field, e.g. database engineering?
  • Would you like to broaden your knowledge in a different, more distant field?
  • Or are you planning to do a total career switch?

‘How am I going to learn?’

  • How much are you willing to pay? Would you pay for some subscription model or prefer up-front fees? Would you spend $10/mo, $100/mo, or even $1000s for an official MSc course?
  • Do you need a certificate, a degree (BSc, MSc etc.) or not?
  • Do you prefer comprehensive learning material from one source or rather putting together your own ‘syllabus’ from different places?
  • How much time do you realistically have for it? Can you set some time aside regularly e.g. every other day or every weekend?
  • What is your most effective way of learning? Videos? Books? Some documentation? Looking at examples? Taking notes? Discussing with others? Learning in person?

You can look at roadmaps maybe, to see where to go. Often free resources such as online tutorials, documentation, blog posts or Youtube videos are enough. Everybody learns in a different way.

Take time to look around before you start some course, especially if they are paid – most are pretty long, and once you commit to starting, you better finish it instead of leaving it halfway and letting a long backlog just pile up (like with video games… 😁).

Usually you can audit courses without payment, at least look at the syllabus and some videos. I suggest doing this, reading reviews (especially the unhappy ones) and comparing it with other similar courses/material.

Also, I suggest taking notes in some simple app like Evernote or Joplin. It will help with digesting the material, plus it will be great to come back and review it every now and then, or refer back to them when needed.

Good luck, and if you have any questions about my experience or would like to share yours, just let me know in the comments.

Share this post






Leave a Reply

Your email address will not be published. Required fields are marked *