This guide applies if you’re a senior looking for a new grad position, or a freshmen/sophomore/junior looking for an internship. Obviously you’re not going to get a internship that pays 6 figures, but you CAN get one that pays 10k a month (which would be 6 figures if it was year-round) Some things that will really help your chances: 1. You’re in the United States 2. You are majoring in computer science, electrical engineering, computer engineering, or related field. 3. You go to a higher rank public or private college/university. Not a community college, unless your plan is to transfer to a good school. The higher rank it is, the better your chances are. Contrary to popular belief, it does NOT need to be Ivy League (though that will help). But NYU/Berkeley/GA tech caliber schools are highly recommended. To be clear, none of these are requirements. But I’d say anyone who meets all of these has a high chance of getting at least one offer from a FANGG or unicorn, assuming they follow all of the below steps. If you’re in “less prestigious” college, or graduated and are okay with a few extra years of school, you can consider the Georgia tech online Master’s in Computer Science: https://omscs.gatech.edu/, which has a ~60% acceptance rate, entirely online, and is quite affordable. You could probably job jump to get there too, but that’s not my area an expertise, and you’d probably be competing with higher-level engineers (as opposed to university grads) **Getting the Interview** You do not need an extensive technical background to get an interview at a unicorn or a FAANG. Read that again. **You do not need an extensive technical background to get an interview at a unicorn or a FAANG**. You just need an excellent looking resume. Unfortunately, it’s challenging to have a great resume without having a strong technical background, but you can at least be assured that everything you *need* can be accomplished in your first year of classes. For classes, all you need to a foundations of CS class and data structures and algorithms class. That’s it. The rest comes from having enough good projects and achievements on your resume that a recruiter won’t instantly throw it away. Class projects are an okay start, provided that they weren’t just trivial homework projects. But if you want to be recognized, try building something yourself. A non-trivial solution to something you were interested in and took more than 40 hours of work. Learn about data persistence, how to use APIs, how to use popular frameworks like React, how to deploy your website on Heroku or Amazon. Most importantly, find a job-like experience that uses your CS knowledge. For a FAANG or unicorn, it’s almost required you have at least 1 unless your application is truly exceptional. I utilized my background in biology to find a research position in computational biology, which led to me getting an unpaid (well, paid in class credit) semester-long internship, which was enough job experience to satisfy recruiters. If you don’t know where to start, I took a complete web developer’s guide that was extremely helpful to me. It taught me HTML, CSS, JavaScript, jQuery, MongoDB, Node, Express, data persistence, REST, what GET/POST/PUT/DELETE is, how to use APIs, authentication/authorization; all extremely important concepts if you want to be a regular full-stack engineer (and at least in my experience, that kind of stuff is not apart of a CS curriculum). The class I took here: https://www.udemy.com/course/the-web-developer-bootcamp/, I’m not affiliated with him, and there may be better classes. This is what I took. Take something like that, and put the effort to build an original website of your own, complete with authentication, front-end, back-end, etc. You’ll not only learn a lot, you have a bunch of new tools and technologies to put on your resume. Also, what I did on my resume is have a section called “mini-projects”. I’d take some of the trivial 1-2 day long projects that I thought *sounded* non-trivial/impressive and put it on my resume. It was an easy way to fill up space, especially if you have a “Large Projects” section on your resume as well, for projects that took actual effort and time. **Studying for the interview** First, go to hackerrank and do all of the questions on the different algorithm categories. bfs, dfs, stacks, queues, recursion, linked list, dynamic programming (more common with trading firms), just to name a few. After trying (and failing) to get the solution, go to YouTube. Do either the same or a similar question and keep rewatching YouTube until you understand the solutions. Then go back to the hackerrank and repeat. After you’re comfortable with those, go here: https://www.teamblind.com/post/New-Year-Gift—Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU. Do the same strategy of trying, failing, watch YouTube videos, write (NOT TYPE) down the solutions, banging your head not understanding, leave for 4 hours, go back to it, watch videos, kinda get it, watch videos, until it finally clicks. You might be naturally good and this part takes you 2-3 weeks, especially if you have a strong CS foundational background. Personally I’d take AT LEAST 2, probably more like 4 months towards this process of grinding these types of questions. Don’t get discouraged if your progress is slow; mine was too. I have questions on /r/cscareerquestions saying how discouraged I was for not being able to get it (on an alt account, won’t link it here). You just need to keep practicing. At the very least, you might get lucky enough to encounter a question you’ve done before. They typically take from commonly asked questions, so don’t be discouraged if you can’t organically come up with an answer. Just keep applying and eventually you’re bound to get an interview with a question you’ve heard of (or at least a similar one). Just. Keep. Practicing. You only need to get lucky once. And the more practice you get, the less “luck” you will need. **Interview Structure** The interview process is structured like this. If you’re a mediocre-decent applicant, you’ll typically have to apply through their website. In which case 2-3 medium leetcode style question is automatically sent to your inbox and you have around 15-30 minutes per question to solve it. Then, a recruiter will let you know that you passed and you’re moving onto the next round. If you didn’t pass don’t expect to hear back. Just move onto the next company. If you’re a great-excellent applicant, you skip all of that (or it may just be a formality) and automatically go to the next round The next round will be conducted typically by an engineer at the company. They may ask about your background, so make sure you master the “tell me about yourself” question. They’ll ask about the experience on your resume, so make sure you don’t you completely bullshit whatever you put on there or you will fail this round. Subsequently they’ll ask you to whiteboard a leetcode easy-medium question. You don’t need an optimal solution; you just need something that works. The engineer may ask you to optimize it, so be prepared for that. Know about Big O, because they’ll ask you runtime and space. They’ll ask if you have any questions, so have some good ones prepared. If you pass this, they’ll move you onto the next round. The final round will be similar to the previous round. From here, typically a recruiter will be working with you and gathering a bunch of info. Master the “tell me about yourself” and “why do you want to work for this company” question. Also be prepared to ask questions about the company. Don’t think because you have the final round, you have the offer in the bag. It’s easy to feel that way especially because (before and I think after Covid), they fly you out from wherever you are to meet everyone. Pretty sure they give you accommodations too, but I applied during Covid, so everything was virtual. Trading firms have slightly different structure and requires a stronger math foundation. Each is slightly different; some might have an engineer give you a bunch of mental math questions, some might have you take a coding exam, some might give you a math test. Be very familiar with math including discrete structures, linear algebra, and multivariate calculus. Also extremely familiar with mental math questions like 115*54 and 35183.283 + 639983734.57 After the interview, assume you failed and keep applying. You most likely did fail, especially during your first few first and final rounds. Take it as learning experience, practice your weak points, and keep applying. That’s it. If this post gets enough attraction, I can post the resume I had to get my computational biology research position, the resume I had to get my unpaid internship, and the resume I had to get into FAANG. Hope it helps, comment if you have any questions
FWIW this is useful information if it was targeted at the right population, but Blind is most likely not the right population
Nice! I too believe that HTML and CSS knowledge is essential to get a job in a trading company
would recommend fullstackopen by university of helsinki over udemy, otherwise, good post
Thank you so much for this!!!
CSMajors subreddit will appreciate this not Blind, where we’re not new grads and all make 500k+ Benjamins
This was useless
Maybe I was just painfully ignorant of the process, but this kind of post would’ve helped a past me tremendously. But I knew literally nobody in tech and knew nothing about the process
This post basically just says 1. Have a good resume, 2. Apply to jobs, 3. Practice Leetcode, which I assume anyone on Blind would know.