<aside> ❓ If you have any questions about anything in these wikis, be sure to ask in our discord!
</aside>
Audience*:* This page was written for the members of the UC San Diego chapter of the Association for Computing Machinery. This doc is targeted towards students early in their college careers, who have at least some interest in software engineering (SWE) as a profession but who haven’t really comprehensively explored the process of starting off a career in the field. It will also be heavily applicable to those later on in college and who discovered the field a little later; it is, however, written for a college student’s point of view (and many specific recommendations will be for UCSD resources).
Credits. Alistair Gray was the primary original author of this document. Thanks to Michael Shao, Brandon Ho, Nishant Balaji, Kendall Nakai, Bryce Tsuyuki for their contributions.
Don’t skip this! It can genuinely be very mentally taxing and stressful to go through the process of the software engineering grind, and approaching it with the right mindset can help.
The first thing to note is that there are lots of things about this profession, this process, and the behaviors that tend to accompany it which are really really scary! (for example, this guide itself might seem very intimidating sorry ;-;) SWE tends to have a lot of high-neuroticism individuals who are used to competitive environments in it, and that, combined with the fact that there are many many corners of software where knowledge can go really really deep, means that impostor syndrome is universal among software engineers. What you feel is valid! But, if you’re feeling impostor syndrome, know that, at the very least, everyone feels it too, even the people that you might think of as very successful. Take things step-by-step, have a plan, and try not to worry too much about the future - everything will be alright, and you’ll find success. :))
College is a time for exploration and discovery! Know that many of the things you might explore will be dead ends: you might find that fields or career paths you thought you would be interested in, or ones that you’re just exploring, turn out to not be the right thing for you. And that’s okay! Discovering what you’re looking for is a good outcome of your time here, even if that’s “a career path that you’re okay with doing” (as opposed to “a career path that is your One True Passion” - work doesn’t have to be the most important part of your life!) - and that will probably involve trying things out and finding that they don’t work out. That’s okay! By the same token, if at some point during this stage in your career you think you’ve found something that’s for you, absolutely explore deeper into it, but keep in mind that there are lots of opportunities around to pick up other things that you might like just as much.
Unfortunately, the early-career SWE path is fairly luck-dependent. Of course, we all make our own luck, but there is really no guarantee that you’ll get any particular position you want. Alas! such is life, and you should look skeptically on anyone trying to guarantee you anything with regards to career success. There is no One Weird Trick that will get you the SWE job you want, but knowing what’s in store, being proactive, keeping an eye out for opportunities that come your way, and working hard will definitely always help. :))
Don’t feel afraid to ask for help when you need it! Reach out to people! There really aren’t downsides to being proactive. If you feel impostor syndrome about talking to other people about their experiences, a) remember that everyone feels this way, b) go ahead and do the thing anyways. I believe in you!
This is the section to start out at if you’re like “Well, gee, I’d sure love to get a job in software engineering, but I have no idea where to even start or what other people usually do”.
Software engineers come from all kinds of backgrounds! Folks with degrees and folks without are both found as software engineers; among those who have college degrees, some have degrees in computer science and many don’t! A common misconception is that a computer science degree is necessary or sufficient to find a software engineering job; while it is definitely the most common major among software engineers with degrees, ultimately the skills that this kind of job demands can be self-learned relatively easily, and much of what is required to get a computer science degree has limited applicability in this kind of job. So basically: if you’re not a computer science major, that doesn’t disqualify you from these jobs; if you are, then there very well may be more to learn to put you into the best position to get a job.
Software engineering isn’t the only thing out there! If you’re early in your college career, you will find things you like as you explore the world of computing, and perhaps other worlds out there as well. Don’t feel like you’re obligated to go down this path or follow this guide; there are other brave new worlds out there. ACM has guides on some other computing career paths: