Alec Wang

What I Plan to Learn (in tech) By Q2 2021


Following my first semester in Vancouver, I have been slightly disappointed in my ability to manage personal projects with my academic responsibilities. I was able to get great grades, but as this is my first semester since high school being unemployed I felt just a bit uncomfortable with how little I actually accomplished in terms of extra-curricular activities. To keep myself from becoming dull as a builder, I decided to pick up some tools I always had a bit of a hunger to pick up.

I decided then to write this article in order to establish clear (or at the very least public) goals to follow through on. I will attempt to use Objective Key Results-style goal planning, which requires an objective metric with a subjective 70%-ish chance of success, but since these are more exploratory I'll feel free to fudge my metrics to be a bit less strictly quantitative.

Cloud Technologies

Metric: Achieve at least a Cloud Practitioner level of familiarity with the breadth of cloud services offered by Amazon. (exam-based metric)

Rationale: Amazon is an industry leader globally and has a presence with the 5 big tech companies I've attended events for so far in Vancouver. They seem to be the sole cloud provider for a large percentage of products based in Vancouver, though Microsoft having an office in Vancouver may change that.

Familiarity with HTML and CSS styling:

Metric: Establish a repository of at least 50 components/projects copied from Codepen and or other sources. These copies must be recreated line-by-line in a good mental state and explored to the extent of knowing what each line of code is responsible for. (repetition-based metric)

Rationale: I'd want to at least be literate in the more obscure aspects of CSS that wouldn't be immediately obvious at first viewing such as display, transitions, etc.

ES6 Javascript:

Metric: Be able to comfortably write self-driven web applications using ES6 semantics. Arrow functions, async-await, and other modern JS-specific aspects of the web currently are scary for me to read and wrap my mind around. I was energized by Ben Awad's videos to learn more about JS-stacks, specifically React.

Rationale: Javascript is that thing that many SWEs eventually have to deal with, but is for some reason not taught in many schools.

The better reason I want to learn it though is that I found React and D3.js to be cool, so I'd wanna try.

React and D3.js:

Metric: Copy one long-form project in each to see the breadth of functionality and whether I like it or not.

Rationale: Basically the same as my Javascript functionality, but I'd want to at least mention that I'd wanna learn D3.js solely for the data visualization possibilities it presents.

Github Actions/Travis CI and Docker:

Metric: Implement all deployable projects in containerized environments and Github Actions or Travis CI and deploy one simple machine learning or deep learning model on a free-tier deployment environment through docker.

Rationale: Docker and Github Actions are important tools to become a real end-to-end product developer. I feel that I've not really developed a web app if I haven't figured out how to get from a backend application to a deployed web application.

Cracking the Coding Interview 6th edition:

Metric: Finish reading each page at least once

Rationale: This supplements what Gayle Laakman thinks a supreme undergrad CS education is supposed to cover in order to work for a big tech company. As the impressionable young CS student that I currently am, I'd like for this book to influence the way I go about problem-solving as early as possible.

Update: As of Jan 10 2021, I will have shifted this to Elements of Programming Interviews in Python due to it being easier to find a physical copy of in the Philippines.

DBT, Datadog, and Freshpaint:

Metric: Implement these tools in at least one project each when it makes sense.

Rationale: These are all tools that I've seen used well in production. It seems like something that I'd want at least cursory understanding of in order to bring these under my tool belt.


If you see mistakes or want to suggest changes, please create an issue on the source repository.