updated 2021-05-02

Subscribe to my tech-related content!

https://unique-architect-579.ck.page/97ebef4d81

Table of contents

Target audience

What to study?

Where to go?

Target audience

You don't have an undergraduate degree and are interested in "going into tech" or writing code professionally.

If you're already going to college and declared a major, it may be harder (though not impossible!) to implement some of the advice below.

What to study?

Ideally: major in computer science

Caveat: Computer science vs software engineering

Full-time software engineering has surprisingly little to do with computer science. Elite colleges are not incentivized to teach you software engineering skills, unless that's their selling point (like at Waterloo). Instead, professors teach you their field (networking, algorithms, etc) mostly so that you could potentially work in their lab or become a CS PhD in their specialty. Some even disdain software engineers, who cashed out rather than putting in the hard work of advancing the field with a PhD.

At UC Berkeley, to do well in Computer Science classes, I needed to (in rough order of decreasing importance)

  1. understand abstract concepts like "currying" or "reduction from an NP-complete problem" or "memoization"
  2. demonstrate that knowledge in tests and projects
  3. (sometimes) write code in tests and projects related to the class subject matter

Many of these skills are applicable in industry too, but the weighting is very different. To do well as an entry-level software engineer, I needed to (again in rough order of decreasing importance)

  1. write code that is reasonably correct, well-designed, and accomplishes the desired task