CS Industry: Introduction - acmutd/help-guide GitHub Wiki

author: mustafa sadriwala, edits:

Introduction

Congratulations! You've decided you want to take your Computer Science/Software Engineering/ECS degree and go into Industry! Welcome to the sell-out club 😀.

What

The general industry of technology is wide and far-reaching. You likely won't know exactly where you headed until you've already reached there - at least that's been my experience. A lot of people know exactly the sub-sub-field they want to go into before they even get to college but for the rest of us simpletons that just isn't realistic, it's a big-enough decision to figure out the college and major you are going to pursue as a teenager.

The tech industry has a lot of different job options and it's well worth looking into the sort of job you'd like to do in the future. The first thing you'll want to figure out is what you're doing. Do you want to code? Do you want to design? Manage? Market? Some of the most popular careers are listed below:

  • Software Engineer/Developer
    • Backend Engineer
    • Web Developer
    • Frontend Engineer
    • Product Engineer
    • AI/ML Engineer
    • (Test) Automation Engineer
  • Database Administrator (DBA)
  • Information Security Analyst
  • Data Analyst/Engineer
  • Product Manager
  • Project Manager
  • Product Designer
  • IT Analyst
  • Business Intelligence Analyst
  • Technical Consultant

This is FAR from an exhaustive list and there are plenty more job titles and descriptions you'll come across while hunting for a future career. It's hard to get a clear image of what all these job titles even do or mean and in reality a particular job title at a certain company may mean a completely different thing than at some other company. This is why it's always important to ask your recruiter/hiring manager what the job would require you to do and to closely read the job requirements!

One of the best ways to figure out what you like is to try it out! Internships and Co-ops are the gold-standard for figuring out what you want to do and the whole the reason they exist is so you can try out what the job would be like. Plenty of people complain about bad internship experiences for a variety of reasons: bad projects, bad managers, bad work environment. But all these experiences are valuable because they can help you realize what kind of project you would rather be working on or at the least the type that you definitely don't want to work on and similarly what you're looking for in your ideal manager, work environment, etc.

These days however internships are harsh in their competition and aren't always that accessible. The next best solution is to just ask people. Attend networking events and industry events hosted by the various ECS orgs. Talk to actual engineers/analysts/managers/etc. about what they do and why they like or what they'd change about it. Even if you don't get an internship, if you can just get an interview with a company then grill your interviewer about their career and what they do on a day-to-day basis. If you can't get in front of an engineer then talk to your peers who maybe have done internships before, reach out on Discord/Slack/Reddit and see if there's anyone that can help answer your questions.

Crafting yourself a career is all about figuring out what it is that you like to do and one of the best ways to figure that out is self-reflection. After finishing a project or task ask yourself what parts of it did you enjoy and what parts did you loathe? Maybe you enjoyed the planning portion and the coding portion but hated figuring out deployment and fixing bugs, or maybe you really liked finding the right color palette and creating the logo. Keeping track of small things like this can lead you to figure out a pattern in your behavior which can, in turn, lead to a worthwhile career path.

Choosing the right career for yourself is not a straightforward answer. Most people realize after a decade of doing something that they no longer want to continue doing what they've supposedly loved for years. And really that's because a career is not the same thing as a job. Finding your career is never going to be a simple answer, it's going to be a series of answers that doesn't really have an end destination until you retire. That's because as you get older you're going to change: your hobbies, your passions, there's a very small chance that the things that interest you today will still interest you in 10 years and that's perfectly normal. The key factor is recognizing when your interests have changed and taking action to realign your job with what you want your career to now look like.

Where

A lot of people have in their heads the ideal company. They only want to work for a brazilian river company and nothing else. But there are a lot of things you should be looking at when deciding the company that you are going to work for. The following is a general list of criteria:

  • compensation 🤑
  • work-life balance
  • benefits
  • location 🏙️
  • work environment
  • career growth 📈
  • prestige 🏆
  • challenging/interesting work

Again, this is a non-exhaustive list. The key factor here is how you want to prioritize the items on your list! Do you care about compensation the most or just care about living in a cool city? After you know the things you want to prioritize you can then start scoping out companies that optimize for those particular criteria. Figuring out the companies that match you criteria again comes from doing research (through Glassdoor or LinkedIn or Reddit or Blind) and by talking to people that have or are working there. If you can ever get an interview at a company you think you want to work for then ask about the things you are prioritizing! This is your chance to figure out if this company is a good match for you and also shows your interviewer that you've actually put thought into finding the right company/job for yourself.

Besides just criteria, you might also care about the sub-field of industry that you want to work. Some intriguing intersections and subfields of tech today include:

  • Business Software (CRM)
  • Social Media
  • eCommerce
  • HealthTech
  • EdTech
  • FinTech
  • IoT
  • Telecommunications (5G)
  • Automotive/Self-Driving

Any of these - and other - subfields could be something you're interesting. I personally don't think the subfield matters as much unless it's something you are particularly passionate about. Most of the times you can find similar sort of jobs at most companies in any of these subfields but perhaps if you were working for a particular cause/mission you might find yourself more motivated and potentially more content with your work. If you find yourself to be particularly passionate about some area then figure out the career paths people have taken to get into those companies/fields. For example HealthTech companies are generally mid to small-size and don't often hire that many New Graduates (straight-out-of-college), if you're only doing a Bachelors then you probably have to intern at these kinds of companies to start off working there. Otherwise you can work at a company that does some sort of similar work, gain experience, and apply as a more senior employee in a few years.

Why

Why are you selling your soul to industry? pride? money? I don't care. But it's maybe something you should know for yourself. Knowing why you are going for a certain opportunity will help you better prepare for it and likely make you more confident in your own qualifications for the role. Don't get me wrong sometimes you just have to apply everywhere you can and hope for the best. But actually figuring out why you want to work at a certain company/job/subfield will undoubtedly help you stand out in interviews as a prepared and capable applicant.

When

Figuring out the right time for the right opportunities is important and I will try to discuss this in detail in the Game Plan section.

How

The entirety of the CS Industry section will attempt to help you with the How