background
background

Breaking Into Tech

The future belongs to those who believe in the beauty of their dreams.

So, how do I get into technology?

background

Table of Contents

Section 1: Building An Overview

Section 2: Pre-College

Section 3: University Experience

Section 4: Internships & Extracurriculars

Section 1

Building An Overview

What is the field?

In this document, when we talk about the tech field, we mean applying science and engineering to make cool digitized stuff like machines, devices, or apps, all to make life better for us humans. Think iPads, cellphones, graphics cards, and robots – basically, anything you can build with your tech skills. Tech is crazy fast and always changing, so every day brings something new and exciting! 

For muslims, every piece of technology that you build that eventually betters the lives of people will be a sadaqah jariyah for you. Going into the field with this intention will ultimately lead to success, insh’Allah. 

What are the different types of jobs in the fields?

Software Development, Data science/engineering, Mobile/Web development, Cybersecurity, Robotics/AI/ML, Product Management, Technical Program/Project Management, Hardware Engineering, Network Engineer, Quantum Computing, Systems engineer, UI/UX Design

Who might like it?

A lot of people in tech started out loving to build stuff and solve problems when they were kids, like making cool Lego creations or building epic sandcastles. But here's the thing about getting into tech – you don't have to be some engineering whiz who's been building gadgets since they were toddlers. The key to rocking it in the tech world is having a passion for creating things that make people's lives better. If you've got that drive but don't see yourself as an engineer, no worries! There are cool tech careers for you, like being a UX designer (making things look and work awesome), a program manager (keeping projects on track), or a product manager (coming up with ideas that people can't live without). It's all about making a difference with what you create.

How much money can I make?

Below we’ve shared a table on how much a software engineer will make throughout their career. Since the distribution of earning potential is quite wide, we’ve sampled some across a wide variety of sectors to highlight achievable salaries. It goes without saying, but the higher salaried jobs are far more competitive and will certainly require a higher time investment to pass their technical interviews. That being said, just because you don’t land your first job at Google, does not mean you cannot transition to it or another big tech job later in your career. 

Section 2

Pre-College

To dive into the world of tech before heading to college, there are several things you, as a high schooler, can explore. If your high school offers great programming classes or has tech clubs like a robotics club, I'd strongly suggest getting involved. But if not, no worries – some of the best tech minds, like George Hotz, taught themselves.  If you're leaning towards the engineering side of tech, just start coding. A cool and beginner-friendly project is creating your own personal website, and ChatGPT can guide you through it. Even if you're not eyeing an engineering role, having some knowledge of code and engineering basics can make you stand out as a UX designer or program manager.

To explore the hands-on side of tech, consider delving into hardware projects—coding and tinkering with physical devices. If your high school has a hardware-oriented club or classes, such as electronics or robotics, it's a fantastic opportunity to get hands-on experience.  For those intrigued by the intersection of software and hardware, experimenting with coding for microcontrollers or building simple electronic circuits can be both fun and educational. Platforms like Arduino or Raspberry Pi offer accessible entry points into hardware tinkering, allowing you to bring your code to life in the physical realm.

Something that is underrated and underappreciated for technologists is creativity. Having dedicated time in highschool to hone these skills is amazing - definitely don’t skip out on art. 

In the end, start building a portfolio. You can even showcase this on your college applications, giving you a unique edge. But, in summary:

  • Take Computer Science Courses: If your high school offers computer science courses, consider enrolling in them. These courses can provide a solid foundation in programming and computer science principles.
  • Participate in Coding Clubs or Competitions: Join coding clubs or participate in coding competitions to enhance your programming skills. Organizations like Code.org, HackerRank, and Codecademy offer resources and challenges.
  • Explore Online Learning Platforms: Use online learning platforms such as Coursera, edX, Khan Academy, and Udacity to access a variety of tech-related courses. Many of these platforms offer free courses, allowing you to explore different areas within technology.
  • Build Personal Projects: Create your own coding projects or technology-related initiatives. This could be a website, a mobile app, a game, or any other project that aligns with your interests. Building projects not only enhances your skills but also serves as a tangible demonstration of your abilities.

Section 3

University Experience

The most common path to break into tech is an engineering (typically computer or electrical engineering) or computer science major. Less common but also popular majors to get into tech are mechanical (robotics / thermal component design), biomedical (for medical devices) or really any other engineering field. Finally, outside of engineering, UX and product design majors provide the foundation to enter tech. 

Declaring your major

Declaring your major really depends on what you find personally interesting. Here is a list broken down by common engineering majors on why you might pick one or the other:

  • Computer Science - most common and versatile major. If going down the engineering path, CS majors will work on the front-end (e.g make the website look and feel nice) or the back-end (closer to the databases and server side of an application). CS also is a good foundation to break into product management  (defining what and why engineers should build, rather than actually building it) or program management (managing the successful completion of a project). CS majors can also branch into more technically complex branches like artificial intelligence and machine learning ranging from applications from natural language processing (like chatGPT) to teaching a robot how to see. 
  • Computer Engineering & Electrical engineering - Computer engineers generally gain the same skills as CS majors with a larger emphasis on the hardware aspect of computers. In exchange for additional coursework, however, computer engineers can gain access to a broader range of opportunities as well as provide themselves the signal processing background to work in things like control systems (e.g controlling an airplane or robotic arm), obtain a deeper understanding of machine learning, or the design of computer components like graphic’s cards. Electrical engineers generally share similar coursework, but will take fewer software engineering  and more hardware engineering classes than the average computer engineer. Therefore, electrical engineering is slightly less favorable for a major to specifically enter a tech field.
  • Mechanical Engineering - Mechanical engineers are seldom thought of as engineers aspiring to go into tech. By enlarge, this is true: traditional mechanical engineering jobs typically involve HVAC, airplane, or automotive design. However, mechanical engineers often gain significant exposure to robotics and thus can enter the tech field. Furthermore, mechanical engineers can apply heat transfer to better design computer chips. However, to get a typical software engineering job, mechanical engineering is not the most straightforward choice. 
  • Biomedical Engineering -  Biomedical engineering is generally a versatile major, gaining significant exposure to other disciplines of engineering. A common career path for a pure medical engineer is to enter medical devices, although opportunities are limited and generally require graduate experience. However, given the breadth of biomedical engineering, many often find themselves taking a heavy computer science-oriented coursework. These computer science classes can provide enough of a background to land an interview at a top tier company. 
  • Other Engineering major: there are a lot of other engineering majors not mentioned (e.g aerospace, civil, systems, retc). Breaking into tech with these majors is entirely dependent on how many software engineering classes you’ve taken. However, to land your typical software engineering job, these other engineering majors may not be the most straightforward path (and generally lend themselves to landing a job in their own respective fields). 
  • UX/Product Design - These majors are not available at every university, but, as the name suggests, can provide the foundation to enter jobs like product design and/or product management. Unlike the other majors, UX design and product design is less technical than a typical engineering major. However, some product design programs are within the engineering school and require taking technical classes.

 

What to do outside of class

To break into technology, especially in your first two years, its key to demonstrate experience and passion. The best way to do that is to build things. That being said, here a few ways to get involved with your campus community

  • Join clubs - many universities have clubs that will allow you to build your portfolio. Robotics clubs, hackathon groups, and other things of that nature will allow you to apply your coursework and build tangible practical things that are shareable to your github.
  • Build for fun - when getting professional opportunities like internships is hard, it is important to have things to put on your resume. Building things like a personal site or a video game and posting them to your github will show companies that you’re passionate and continuously honing your craft, an attractive trait for a potential candidate. Sometimes, if you post your services on Upwork or fiverr, you can even get paid to do someone else’s work. Furthermore, and perhaps the best use of time, contributing open source code bases to demonstrate to employers that you can work on a multi-contributor, large code base (e.g merging code to the open pilot codebase will certainly make you an attractive candidate to  autonomous vehicles and robotics jobs).

Specializing within your major

This section is specifically dedicated to those with a specific technical interest. If you just want to be a front-end or back-end developer, then the classes you choose in your upper-levels matter less. It makes the most sense to take classes that you find specifically interesting to further explore the idea of attending graduate school in the future. Otherwise, as an aspiring back-end/ front-end developer with no interest in graduate school, its recommended to not overload yourself with difficult coursework to allocate more time to interview preparation (e.g leetcode, bolstering your personal portfolio, etc). 

For those with a specific technical interest, especially with going to graduate school, it's worth doing independent research on graduate school requirements for your major. These specific technical interests are typically very mathematics-intensive; for example, a robotics program requires linear algebra, multivariable calculus, and, depending on the sub-field, differential equations are quite important, so making sure that you have these requirements fulfilled is critical. Furthermore, oftentimes, schools will provide foundational classes on these technical subjects (e.g artificial intelligence 101, intro to robotics, basics of machine learning etc) so gaining first-hand exposure to these topics will provide context into if you’d like to make the time and money investment. Notably, a lot of these specific technical specializations do not pay a significant amount more than a top tier software engineering job so it is really about what you personally find fulfilling. 

As an aside, for those interested in things like product management, it makes a lot of sense to broaden your horizons beyond super technical subjects. Product management interviews often have a large emphasis on building empathy and communication skills so taking classes in the humanities will certainly help. Furthermore, product managers also need to make sure that their product is profitable, so an understanding of economics is also quite important. 

Finally, it is never too-late to pivot, so do not feel that you're pigeonholing yourselves. I’ve seen history majors study chemical engineering in graduate school. That being said, knowing what you want to do earlier in your career will certainly make things less painful. 

Section 4

Internships &

Extra-Curricular

We’re going to lay out specific things you can do outside of the classroom and how to get these opportunities but the best things you do is become passionate about your subject. Find your passion and fall in love with what your doing. This will take you farther then following laid out steps just so you can land a job. If you already know your passion then you’re one of the lucky ones but for the rest of us, how do you find your passion or do a project that you would really enjoy? By trying as many things as possible, this is the time to play with ideas and learn about your skill sets. 

Internships 

This is one the best things you could do to get yourself ready for the real world. Typically most people land internships for their summer before senior year, but it’s not rare to land one sooner if you have enough experience from other extra curricular activities.

How to get it

  •  Technical Interview prep: Start to do leetcode, practice coding interviews with your friends, practice talking about your projects (what you did, how you did it with technical details, why you made certain technical decisions, the pros and cons of them, what you would do differently next time). Furthermore, understanding theory (like thermodynamics if you’re a mechanical engineer) or complex mathematics and statics (if you’re a machine learning engineer) is also quite important to passing a technical interview.
  • Do projects, join clubs, learn from those who already got internships, go to job fairs, apply apply apply, and reach out to recruiters on linkedin. 
  • Start to apply for internships early, apply during the winter for summer opportunities. 
  • Learn how to write a good resume and get it reviewed (and critically, what keywords you need to have to get your resume seen by a person and not just a computer).

Teaching Assistant

Getting a TA role is great, it shows a professor can trust you, you have leadership skills, you are well versed in the class,  and you are able to be well versed in your subject. If it’s a paid TA position it’s a great way to make some side money while going to school. You can get these roles by doing well in your courses to show you know the subject well, speak to current TAs on how they got the opportunity, and speak to the course professor about it. 

Personal Projects

 Do something that you find fun and challenging. It doesn’t have to be a brand new idea and can be something that already exist. It could also be a subject you find interesting and want to learn more about.Get a good group of friends to build with, turn them into fun hangouts where you build. 

Hackathons

This is a great place to do projects with other passionate students and make new connections. There are multiple day events where you compete to build the coolest project and are sponsored by multiple companies to attract talent. They have free food, snacks, and swag. Companies will also have stands where you can talk to current employees about their experiences working there and learn about opportunities. It's not a bad idea to bring some resumes with you. Hackathons are typically held in many colleges around the county and can be found with a simple google search! 

Online courses

Online courses are a great means of building specific subject matter expertise. Some examples of these online courses are sites like Udemy and  Coursera. Furthermore, universities like Harvard and MIT also publish free course materails.  

Research

 If you have specific technical interest (e.g robotics, machine learning, computer vision), then research is a great foundation to explore said technical area. Furthermore, research labs are also more conducive to hiring  career undergraduates (e.g freshmen, sophomores) and will give you enough context to understand whether or not you would like to take your career in a more technically-intensive direction. Finally, getting your name on publications or abstracts is always impressive to recruiters and graduate school admissions committees alike. The best way to land a research position is either ask a professor after class or cold email one (research email template coming soon)