"How do I know where do I fit in tech industry?"
When I was a freshman, I was determined to get a CS degree because it's hot and big money, and I took one CS course and liked it.
But I had zero clue what skills to acquire, where I can fit in, or what the industry looks like.
So here's a guide for clueless first-year students. I hope you will be less clueless than I was.
But instead of showing you all the roles you could be doing in tech companies, I want you to imagine yourself as a CEO building a new tech start-up. Let's say a business where you can order toilet paper online to deliver to your bathroom when you're out of it.
What's the first thing you need from engineers?
The app. Software engineers would be the ones working on this. Front-end engineers create the interface you interact with - the buttons to order, a box to put in a number of toilet paper rolls. After you input all this information, it will get sent to the back end. Back-end engineers work on how to process the input data, organize them in databases, and retrieve information from the database. Connect them, and voila, you can start ordering toilet paper.
Now your company got a few users (You've saved some people from shitting their pants! 💩🩳), and you want to expand the product. You want to strike a deal with the public bathroom system. So many features to consider: How do you know exactly which booth? How many toilets to give? Do you have to care about the gender of delivery?
Here, you need to hire a Product Manager (PM). A PM works with engineers, business people, and users to find the holy common ground for a product. They'd answer the questions above, clearly define the work scope for engineers, ensuring it's within $$ constraint and yield the best business result.
There are many types of PM - marketing PM, technical PM, business PM, each with a slightly different focus, but the goal is the same, meditating on different functions for the product.
Now your business got even more successful. You've reached 100,000 users 🎊. You can start making data-driven decisions because now you have enough sample size. Here's where the data side comes in. We have data scientists/ analysts, data engineers, and Machine learning engineers as typical roles. Who would you want to hire first?
The answer is, it depends. Because it's still a new field (only ~30 years of industry application), the data roles are primarily up to each company to define. A company's data analyst could be doing a data scientist's jobs in another. However, data roles often have a hierarchy of needs.
Source: Ogungbemi on LinkedIn
First, you should hire a Data scientist/ data analyst who can help you answer questions like "What time do people poop the most so we can hire delivery folks accordingly?" or "Does a blue or red button drive sales more?"
After the data gets too large, you can't just manage them in some random database. You need to create a duplicate or a pipeline of how the data flows, and who got access to what. These would be the job of Data (infrastructure) engineers. They're the "plumbers" of the data system.
You could start building fancy models using machine learning if you got all that ready. You can answer questions like "Based on this person's age, usage history, and dietary restriction, I predict they will poop at 6 am and need our service at 6.15 am."
Then you realize poop information is …kinda sensitive. You wouldn't want any hacker to know your customers' schedules and locations. So you hire a security engineer to patch all the holes and make sure no 3rd-year college student can find this out.
Now you've become the CEO of a poop Unicorn 🦄 (evaluated at 1B+). You need some DevOps or Site Reliability Engineer or Quality control to ensure the system runs super smoothly and every part is well integrated.
But these are only the role of a very customer-facing start-up. There are a million more niches for different levels of abstractions within tech. If you work with hardware, you need to learn how a chip is wired and go to the lowest level of coding languages. An excellent introduction to these different levels of abstraction would be the book Code by Charles Petzold. It goes through the history of CS, from the story of the light bulb to the internet.
So how do you know what role is suitable for you?
There are only three approaches: Try, Make, and Talk.
The most realistic way is to Try out the role, most often through internships. Just pick one and go for it. I tried Software engineer for the summer, then realized it can get repetitive (there's only that much to learn). So I switched to Data engineering to deal with more interesting infrastructural problems. After working in this role for a summer, I now look to try out a Machine Learning engineer role because they link very real-world questions to data, ie, it's not JUST about data.
But if you don't have the opportunity to try an internship, you can still study and Make projects. Hands-on learning is essential to see if things could be a good fit. For general Software engineer, CS50x from Harvardx is an excellent start. To study ML, go with fast.ai and do a project on Kaggle.
But if none of these sound appealing (honestly, lots of work), you have an easy way of Talk - talk to the engineers in the roles you find interesting. Talk to a lot of them because experience varies from company to company. Here is a superb guide on how to get people agreed to talk to you.
And if none works, it's ok if tech isn't for you =D.
Hi Im a first-year cs student and I actually find this article really helpful. Thank you!!!!