One of the key traits of a successful job seeker is the ability to maintain a good balance between the different important domains of a job search.
The 4 key domains of a job search are:
- Studying
- Coding
- Networking/Applying
- Practicing
In no particular order, here are a list of topics that you should be quite comfortable with in order to be successful on the job search:
- JavaScript
- React/Redux
- HTML/CSS
- Ruby (more important for fullstack or backend)
- SQL (more important for fullstack or backend)
- Rails
- Web Architecture
- System Design
During the job search, you should always be coding:
The more you code, the better you’ll get — it’s that simple. By coding, you’re practicing. But the best practice is focused practice. Have goals in mind, explore new areas, and challenge yourself. Over time, you should develop a portfolio of both unfinished and finished projects. GitHub is a great place to put this portfolio on display, but just having an eclectic body of work is huge.
Here are some suggestions on what you could be working on:
- Polishing or adding features to existing projects- First prioritize polishing and adding features to existing projects.
- New projects- Once your existing projects are in great shape, start building out new projects. Start with smaller-scale projects, and over time, add more fatures to them. (Unfinished projects are not a bad thing, as long as you are learning from them!)
- Coding Challenges- All throughout, be sure to put in a sufficient amount of time to coding challenges; always go above and beyond, especially for companies that you really want to work at.
You should have a good balance between networking and applying each day. Most job seekers tend to prefer cold applications, because it's a little less intimidating. However, networking is often times much more effective.
Each day, aim to at least network with 2 people, while sending out 5 cold applications.
Interviews come down to two key things: knowing the content, and being able to effectively communicate it.
Often times, job seekers will spend the majority of their time studying to make sure they know the content, but then find that they have a hard time performing in an interview.
Here are the different ways that we'll be practicing:
- Reviewing Anki flashcards
- Coding on Leetcode or Hackerrank
- Pair boarding
- Mock interviews on Pramp
At this point, you might be feeling overwhelmed with the sheer amount of things that we have to do, and that's okay! As previously mentioned, job search is the most difficult part of App Academy, and it requires the most work and effort.
To make sure that we can effectively and efficiently prepare, we'll be spending, on average, about 9 hours per weekday on the job search. During the weekend, we'll spend another total of 9 hours between Saturday and Sunday. Here's how this all breaks down:
Average for each weekday:
- 2 hours of studying
- 2.5 hours of practicing
- 2.5 hours of coding
- 2 hours of applying and networking
Over the weekend, you have 2 days to cover the hours listed above.
Each week:
- 1 Pramp
- 1 pairboarding session
- 1 networking event
Let's go through each part of the day in more detail.
There's a vast amount of content that we have to master. Mastering the content means being able to clearly and cocisely explain the topics or solve the problems in an interview.
In addition, we must also retain the content over time. In other words, if we mastered heap sort today, we can't forget about it in 2 weeks!
Here's our strategy for mastering the large amount of content. Every day, we'll spend:
- 45 minutes studying algorithms
- 15 minutes studying web architecture and system design
- 20 minutes studying JavaScript
- 20 minutes studying other miscellaneous, but important, topics (such as React/Redux, SQL, Rails, Ruby, HTML/CSS, etc.)
The goal of studying is deep understanding of the topic at hand. I recommend getting a 5 subject notebook and organizing it like this:
- Algorithms/Data Structures
- Web Architecture
- JavaScript
- Miscellaneous
- Practice
Then, while you're reading the articles or watching the recommended videos, take great notes and prioritize truly learning the content.
After your study session, spend about 20 minutes turning all of the content you had just learned into interview questions and answers, and storing them on flashcards.
For example, if on that day, you had just learned about the benefits of HTML5, you would turn your notes into an interview question/answer:
- Interview Question: Tell me about the benefits of HTML5.
- Answer (structure this like how you would respond in an interview): HTML5 has several benefits, including video/audio APIs, canvas, sessionStorage/localStorage, semantic taggings, and better accessbibility. In terms of video/audio APIs...
These flashcards will be essential in helping us practice for interviews.
I used to dislike flashcards. In the past, I personally found them ineffective, so I completely understand if you have skepticism on using them during your job search. However, I will say that one of the biggest regrets of my time here at App Academy is that I didn't start using flashcards right from the very first day of the program.
As a former teacher, I think a lot about how people learn, and I've come to realize that all throughout our previous stages of education, a majority of the learning was geared towards passing a multiple-choice test. Passing a multiple-choice test requires us to be able to recall information and recognize the correct answer out of a pool of 4 or 5 choices. Because of this, passive studying (such as simply readings and watching the lecture) is often sufficient.
Interviewing is drastically different from multiple-choice test. It requires you to not only be able to recall the information, but also to then articulate it and communicate it clearly. There have been so many job-seekers who come out of an interview perplexed because they were asked a question that they thought they had known, but either had not practiced explaining it out loud, or did not know it deeply enough to be able to articulate an explanation of the concept.
That's why I believe in using Anki flashcards. Anki employs spaced repetition to help us efficiently study a large amount of information.
Anki does 3 things for us:
- It gives us an avenue to practice explaining concepts out loud. Every day, you can treat each flashcard like an interview question, and practice answering it as if an interviewer had just posed it to you.
- It helps us with retention.
- It helps us effeciently learn and master a large amount of information through spaced repetition. Without spaced repetition, we might be trying to study 150 flash cards a day, but Anki will choose the ones that we previously struggled with or cards that we haven't seen in a while so that we only study the ones we need to.
You can't go wrong with either Leetcode or Hackerrank, but just be aware that several employers will use Hackerrank as a platform for timed coding challenges, so take some time to familiarize yourselves with the interface. For example, Hackerrank requires you to read in every input as a standard input, which often throws job seekers off if they haven't done it in a while.
You will sometimes get stuck on problems for a long period of time. For efficiency's sake, try not to spend longer than 45 minutes being stuck on a problem. At that point, it's okay to just read through the solution, learn from it, and then requeue it as a problem that you'll later come back to.
At this point, I've probably beat this point to death, but basically, you want to try to simulate the interview experience as much as possible. So in addition to doing problems on Leetcode/Hackerrank, you also want to practice talking out loud on a white board to get used to having to explain things out loud.
Here are some great sources for whiteboarding problems:
- Cracking the Coding Interview
- Elements of Programming Interview in Python
- Interview Cake
- Geeks for Geeks
You'll notice that there are time recommendations on all of the above sections. I highly recommend using a timer for all parts of your job search. This will have multiple benefits, such as helping us get used to being under timed pressure and helping us stay efficient with our time.
Remember, every minute of the job search is crucial, so a timer just helps us turn that fact into a concrete practice!
Each week, you'll also want to find a partner to pairboard with, as well as do a practice session on Pramp.
- Download Anki
- Set up your 5-subect notebook