clueless coding // TODO: be smarter


Getting a Software Engineering Job - Things to Do and Stuff to Know

NOTE: THIS TABLE OF CONTENTS IS STILL UNDER CONSTRUCTION - CHECK BACK LATER FOR PROPER LINKS TO ARTICLES. Sorry about that!

The Purpose

I’ll push this table of contents off with a single, honest opinion: getting into the software engineering industry is tough.

But wait, random internet stranger! Everyone says the job market is wide open. Where are my huge salaries and workspaces with slides? I was told that going into a computer science degree/bootcamp/self-teaching would secure my future forever!

Well, some parts of that are definitely correct. Can software engineers be paid pretty generously? Absolutely. Are there companies that feel like they’re half playground? Sure. Is software engineering a secure, reliable career space? Probably. I don’t deny any of those descriptions.

Unfortunately, you only get those things if a company thinks you’re worth it. For that to happen, you have to not only be skilled, you have to be able to prove it.

The list below is meant to serve as a guide to that end; ideally, it’s most of what you’d need to know to get an entry level job as a software engineer.

It’s split into 3 sections: technical fundamentals, interviewing, and practical application. and practical application. Each section will be more useful to some than it is to others. If you’re enrolled in a formal computer science program, you’ll probably be very familiar with the fundamental, theoretical knowledge. If you’re in a boot camp, you’ll probably be well-versed in practical application, but maybe not so much on the theory.

Regardless, the idea is that if you work through the list, you’ll be a strong candidate ready to work for a company, build some pretty cool stuff, and… realize all of this is just the tip of the iceberg.

The Path

Technical Fundamentals

  1. Basic Data Structures
    • Arrays
    • Stacks
    • Queues
    • Linked Lists
    • Hash Tables
    • Trees
    • Heaps
    • Tries
  2. Complexities
  3. Common Algorithmic Approaches
    • Sorting
    • Binary Searches
    • Searches: Depth-first and Breadth-first
    • Tree Traversals
    • Dynamic Programming
    • Dijkstra’s Algorithm and Prim’s Algorithm
    • Backtracking
  4. Networking
    • UDP and TCP
    • HTTP Communication and Sockets
    • RESTful API’s
  5. Database Systems
    • SQL Databases
    • NoSQL Databases
  6. Good to Understand
    • Parallelism, Race Conditions, Locking
    • Operating Systems, File Systems
    • Common Trivia Questions

Interviewing

  1. Overview of SWE Interviews
  2. Getting an Interview
  3. Prepping for an Interview
  4. The Interview
  5. Post-Interview

Practical Applications

  1. Building an Application
    • Building a RESTful API Server - Golang
    • Building a Modern Web Client - React.js