I’m pretty much writing this for myself, but people who are in college and are similarly clueless about the real world might find it helpful.
The next time I have to look for jobs, there are a lot of things I’m going to do differently. First, I need to make a plan before the school year even starts of what companies I most want to work for, and then figure out when I’m supposed to apply for them. Jobs rarely have explicit deadlines, but they do seem to have implicit deadlines that you’re supposed to magically know through word-of-mouth and I need to figure out when those are. Missing out on jobs because you applied too late is stupid.
In general, I spent a lot of time procrastinating throughout the job application process. I think this was not actually because job applications are hard (they’re pretty mindless), but because I was scared of interviews and I knew subconsciously the more jobs I applied to the more interviews I was likely to have. After all the interviews I’ve done this year I’m much less scared now, so hopefully I won’t fall into this trap in the future. If I do at least I will recognize it.
I should also apply to whatever jobs I want most regardless of how likely I think I am to get them. Sending an application is very low-cost, and in any case whether I get interviews seems kind of random: I have a final-round interview for the one job I assumed it would be hardest to get so I didn’t even bother to apply for a while, and I’ve gotten form rejection letters from some random-ass startups.
I think both the application-to-interview and the interview-to-offer step are things I could work on. For application-to-interview:
1) Networking seems to be a much better way to get interviews than submitting applications online. I need to be more aggressive about using the networks I have at my disposal. Asking around among EA people would work. Asking around among my parents’ friends works. Cold-emailing [my school] alumni that I found on the internet and asking them to refer me apparently works, although the fact that it does seems to indicate flaws in our civilization.
2) My resume and cover letters could probably be improved. I should get a resume/cover letter critique session with my career center next year.
3) Some applications ask for projects you’ve done outside of school, or open-source contributions you’ve made. I should try doing some of those to stand out more. It would also be a good thing to talk about during interviews.
For interview-to-offer:
1) I seem to be pretty good at math questions, fine at “tell me about yourself”/”why do you want to work here”-type questions AFAICT.
2) Whatever kind of jobs I’m looking for next year I should probably get better at programming questions, since even the least CSy jobs I applied for wanted me to be good at programming. There are books on how to do coding interviews so I should start out by reading those. After that I should spend a bunch of time on Topcoder or whatever to get more familiar with all the algorithms/data structures and get used to solving problems quickly. I also need to learn more about the details of various programming languages so next time someone asks me about interfaces in Java I don’t stare blankly. Presumably they expect you to know the answers to these because you’ve just spent so much time coding in Java you know it like your own home. It might be easier to just get a book titled Top Java Interview Questions or something and memorize it.
3) It might help to know more statistics. I should either take some applied statistics classes next year or learn stuff on my own. Or at least review all the machine learning I’ve forgotten, people seem to get excited when you mention machine learning.
In conclusion, I think looking for jobs will already be a lot easier next year because I’ll be less scared of interviews and I’ll have an actual internship on my resume that I can talk about. If I follow everything I’ve put here it will be even easier.