Routes into Computing / Computer Science/ Software Engineering

  • Bootcamp courses: Can be a good choice in rare cases.
  • Self-taught: Can be a good choice in rare cases.

Table of Contents

· University / College degrees
· Bootcamp courses
· Self-taught
· Working in the software industry
· Small companies and startups
Pros
Cons
· Large companies
Pros
Cons
· Crunch
Gaming industry conditions
· Developing software on your own

University / College degrees

University/College degrees take 3 years (for Bachelor’s degrees) or 4 years for Master’s degrees, and of course comes with costs in a lot of countries.

Bootcamp courses

Bootcamp courses are usually 6–12 months long, and mostly are there to train people for one particular employer. They are shorter than degrees because you only learn things that are relevant to that employer’s technology and not anything else — and are generally light on fundamentals, which in this field matter a lot.

Self-taught

This is theoretically possible, but very difficult. While there are excellent free resources on the web that will teach you many aspects of computer science, most cannot really teach you how to apply them effectively — it’s easy to learn how to code, but hard to learn how to code well and design your code properly without underlying knowledge of the subject as a whole (and half the challenge is knowing where to find said knowledge, something university helps a ton with.)

Working in the software industry

Like most industries, computer science has companies both big and small, and the differences in how they work can appeal (or be horrifying) to different developers.

Small companies and startups

Pros

  • Usually using more modern technology standards
  • Can be more open to flexible working and other “unorthodox” working methods
  • Smaller teams can make for a more social workplace in some cases

Cons

  • More likely to lean on crunch than large corporations, outside of certain industries like video games where crunch is everywhere. Small companies are more likely to try and lean on developers to work overtime for free “out of passion for the company and our vision” or “because we’ll fail without you” or other such nonsense.
  • Less likely to be accommodating of specific needs in the workplace due to lower funds and office space
  • More prone to instability due to growth, higher impact of a bad month or year

Large companies

Pros

  • Often superior job security and salary
  • Often better facilities
  • No constantly changing standards… meaning you do at least know what you’re working with rather than things changing every five minutes

Cons

  • Unless you are in a very skilled or specialised position, you are easily replaceable
  • No constantly changing standards… but also a nightmare to try and get good standards adopted
  • Frequently have very old legacy codebases that can be a pain to work with, so don’t be surprised if someone asks you to code in FORTRAN or Tcl (I may have had to work with one of those…)

Crunch

Crunch is a practice most often seen in the video games industry, referring to a large period of time before the release of a finished game in which teams and developers are pushed beyond their limits in working hours (frequently heavy unpaid overtime) in order to get the game finished.

Gaming industry conditions

It is well worth noting that if you want to go into computing in order to make games — you should be aware that the gaming industry is notorious for being one of the worst-paid and worst-treated computing industries in terms of working conditions.

  • Since game release dates are made public, crunch is unquestionably a bigger problem in the gaming industry than any other software industry due to the immense pressure this puts on companies not to change their release dates (including factors such as console release dates and competitors).
  • Unlike a lot of modern software that is continually released and updated, games need to go from nothing to fully functional at launch and are more often closer to ‘one-and-done’ projects with hardware and performance constraints to work within, which when combined with commercial pressure often leads to unrealistic project timeframes and inevitably crunch.

Developing software on your own

My main view on this is that unless you are absolutely sure of what you’re doing, don’t try it, and even then don’t try it 99% of the time unless you’re doing something very simple.

  • Incompetent project management and overconfidence. You can control this one.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store