Software Developer Compact Career Guide

Let me share this guide before we move on to our usual Learn to Code lessons. This will help beginners with their choices. I have mentioned in episode 1 a little bit about myself as well as in a blog post of my career but in this post, I will try to summarize them all in a very simple guide.

Why Learn Programming?

Perhaps some of you don’t really want to have a full-time career in programming but I think learning how to program, at least the basics, will still be very useful for you. Let’s see some advantages:

Learning how to program is just like learning any other skill. You can learn how to fix a faucet but does not mean you are a plumber. You can learn how to change car tire but does not mean you are now a mechanic. Many professionals in other fields know how to program. Whatever your field of expertise, you can learn how to program just like any other skills.

The main purpose of a program is to automate tasks that people manually do. If you’re an accountant, for example, there are certainly some repetitive tasks you do that can be automated. Automating tasks will save you time for other important things and will also increase the accuracy of your work.

However, learning how to program can be time consuming. Why? Because of continuous development of new tools and techniques. This makes it challenging to “sift through” all the information and find the “right” track. And if you were able to focus, there is a danger of becoming so obsessed with it. This could be a good thing for some, but for me, anything excessive is not good. Because if the balance is not checked, programming could be a huge time waster rather than productivity enhancer.

Having said all of that, let’s see how to get started. What are the options in education?

Education

You might think to go straight to college because that’s what everybody else is doing and telling you to do. But there are other ways, all of them have advantages and disadvantages.

Going to College

This is the most straightforward path because it’s what the system is telling us. Deviating from this will most probably result to a lot of criticisms with good intention. But making a good decision does not necessarily be based on what others are saying because whatever the outcome is, only you will be impacted the most.

Advantages

  1. Many companies only hire developers with college diploma
    • Although I went to college, I don’t have a college degree because I only finished a 2-year course in 3 years (?)See Ep01 for more info but I was hired by a couple of companies so this is not always the case.
  2. Good base knowledge of Computer Science concepts
    • Learning these concepts will go a long way at work
  3. Structure
    • Just follow along
  4. Internships
    • Real corporate environment experience
  5. Some companies recruit directly from colleges
    • If you’re one of the top students, the job will find you sometimes.

Disadvantages

  1. Time consuming
    • Minimum of 4 years of life will need to be devoted to learning things that you probably not going to use.
  2. Cost
    • There’s always a cost involved.
  3. Outdated or non-relevant education
    • Because of the well-defined structure already in place, updating the educational materials will be a challenge and therefore could easily get outdated real soon especially with programming.
    • You might probably end up re-learning other updated materials when you work.
  4. Distractions
    • A lot of distractions that would risk finishing the study.

Bootcamps

I can’t say much about bootcamps because I have not been in one. I got the following information from somewhere else.

Advantages

  1. Focused learning
  2. Faster than traditional study
  3. Promise of a job after finishing

Disadvantages

  1. Scammy
  2. Time commitment
    • from a couple of weeks to months of solid focus.
  3. Cost
  4. Difficult
    • because of compact learning in a short period of time, it might be a challenge to keep up.

Learning on your own

I like this one the most because this is what I went through personally. Here are some pros and cons though.

Advantages

  1. Flexible
    • Learn what you want!
  2. Almost no cost
    • If you know where to look
  3. Teaching yourself is fun
    • Balance is needed though to be productive
  4. Learn at your own pace
    • Nothing to hold you back regardless of your learning speed.
  5. Workaround your current schedule
    • If you have pre-existing commitments like volunteering works, it’s up to you how to arrange your schedule.
  6. Can go deeper on particular subjects you’re interested in

Disadvantages

  1. Must have a plan what to learn
  2. No help finding a job
  3. Easy to lose motivation
  4. Social isolation
    • Can be easy to remedy depending on the person
  5. Possible gaps in knowledge
    • Easily resolved by learning those gaps!

My recommendation: Learn on your own. But the decision is still up to you.

Career Paths

Now it’s time for the actual career paths. Pardon my naming but I’m sure you’ll get the point.

Traditional

What everybody else is doing. Please fall in line.

  1. Go to college
  2. Work daily as an employee
  3. Retire (if you have savings)

Semi-traditional

  1. Go to college
  2. Work as an employee
    • Work on a side project
    • Start building other skills/reputation
  3. Transition to being a freelancer
    • This is a scary move but not impossible.
    • Start saving early to have some cushion.
    • With the current pandemic, guess who can still work at home or wherever you’re quarantined? 🙂
  4. Sell your own products or services

With the exception of number 4, roughly this is where I am now. If only I have known earlier, I would choose the next one.

Flexible

  1. Teach yourself
  2. Start building personal projects
  3. Work as a freelancer
  4. Build skills and reputation
  5. Create your own product and services

Most of the steps above can be done in parallel. Of course not everyone can make this work because working on a corporate environment have some great advantages as well. Such as having the equipment you need already provided. Compared to having to buy all you need on your own. Of course it’s not impossible to do.

My recommendation: Don’t be scared and go with the flexible career path.

Specialization

The field of programming is very vast so you need to choose where you want to focus. Here are some to choose from:

  • Web Development
    • HTML
    • CSS
    • JavaScript
  • Desktop Development
    • C#
    • Java
    • Other high-level programming languages
  • Mobile Development
    • Android/Kotlin
    • Swift
    • JavaScript – Web and Mobile development is becoming more closer
  • Embedded Systems
    • Printers, appliances, electronics
    • Robotics
    • Low-level programming languages such as: C/C++, Java, Rust
  • Back-end Development
    • C#
    • C/C++
    • Python
    • Go lang
    • Rust
    • Node.js
  • Video Game Development
    • Low-level programming languages
    • Using game engine
    • My first VB program is a modified hangman game that teaches users some basic Katakana and Hiragana. Personally, if a game does not teach me anything useful, I don’t bother playing or even more so, develop it.
  • DBAs and DevOps
    • Databases
    • Azure
    • AWS
    • Google Cloud
  • Data Science
    • Machine Learning
    • Artificial Intelligence
    • Popular language in use: Python

You can mix and match from any of the above. I personally learn what I’m interested in and what is required by the job. That is, if you’re working as a freelancer.

With the current state of the world, nothing is certain. The job security we were aiming for could be gone before we know it. Of course, there are many aspects of life to enjoy, it’s not just about your career. I personally work to support my family and my volunteering work. I could pursue more luxurious way of life if I want (not saying I will succeed but that’s the point) but choose to live a simple life.

I laid out the choices as far as I know in the most compact form I can. I hope this helps you with your decisions. Always remember, the decision which path to take is yours.

Here is the video version of this post in Tagalog audio (English subtitle coming soon).

Leave a Comment