As a student, it’s sometimes difficult to know where you want to go or what you want to do after finishing your undergraduate degree program. Just four years earlier you were in high school without an inkling of living on your own. And now here you are about to embark into the real world with determination in your heart and knowledge in your head. How can you be so sure that you’ve made the right decisions? After all, the best way to know if you’re good at something is to actually try it. Let’s dive in to discuss how to start a software career as a student.
If you’re a student in Science, Technology, Engineering, or Math (STEM), then you have an ocean of opportunity in front of you. Do you want to stay in academia for masters and doctoral degrees with an eventual focus on research and publications? Do you want to instead get into the private sector as a potentially high paid software engineer? Or maybe you’re looking to join a startup with your friends as soon as possible in the hopes of hitting it big.
You’ve got a lot of choices mainly because of how prevalent technology is in our daily lives. Someone has to keep all those electronics running, updated, and improving. Will that someone be you?
In this guide, we’ll try to help you answer the following question: How do I start a new software career? Regardless of where you’re writing software, whether public or private, the advice that follows should help you determine why you should start a software career, how to transition from a student to an employee, how to build up an online reputation, and how to seek out internships and job openings.
Why Start a Software Career?
If you’re a student working toward a STEM degree, the professional world is your oyster. In today’s world, nearly every industry is heavily reliant on some form of technology. That technology didn’t grow out of the ground naturally. It requires smart, dedicated people with the willpower to push for the future and dream up solutions to world-sized challenges.
Think about it for a second. Your mobile phone doesn’t work through magical forces. Many, many people of generations past have progressively worked their way up to the device you hold in your hand. Such a device was made possible through the combined studies of physics, chemistry, electricity, power generation, globalization, industrialization, assembly lines, plastics, communications, microprocessors, engineering, and a long list of a lot more. It is one of many achievements whose work and creators have spanned centuries.
But the device is only as useful as the software that runs on it. A mobile phone wouldn’t be very useful if it didn’t have an operating system. An operating system would be useless if there were no applications to use on it. E-mail, instant messaging, browsers, security scanners, and to-do lists are just a few examples. These are applications that have been created by software developers who have dedicated their careers to making these devices (and other electronics) that much better.
Why We Fight
Is that why you got into STEM? Because you want to improve the world and the human condition? Yes, that probably sounds very lofty and cliché, and we doubt very much that most students are even considering such existential reasons. Let’s consider some reasons that are a little more down to Earth.
Here are some common reasons people go into STEM studies:
- Potentially high paying job out of college
- Challenging work
- Solve important problems that affect many people
- Push and disrupt industries
- Hobby turned into a profession
Are any of these you? Don’t worry if you still don’t quite know the exact reasons why you got into STEM. Sometimes it’s not possible to truly know your passion until you get some actual experience.
If money is your thing, take a look at this list of STEM jobs that are similar to software developers according to the Bureau of Labor Statistics (BLS). Notice that they’re all highly compensated positions? Drilling deeper into Computer and Information Systems Managers reveals that the future prospects of these positions is up and up for the foreseeable future. Potential job counts are above average, job growth is above average, and job security is a sure lock.
Now is the best time to take advantage of these opportunities.
Our authors have often been contacted by people who want to get into software development but are discouraged by some negative things they’ve heard from friends and family. Fortunately, we’ve spent plenty of time debunking some myths regarding burnout, outsourcing, intelligence, and education.
In as few words as possible, things are looking good. Software developers are constantly ranked in some of the highest paid and most flexible positions. They’re able to work remotely from anywhere on the planet, relocate their lives with minimal disruption, collaborate with communities across the globe, and get started in the profession with relatively tiny barriers to entry.
Let’s focus specifically on software developer, which is one of the most common job titles covered in our articles. A recent analysis by CareerBuilder indicates that software developers are among groups that command the highest salaries and are experiencing the fastest growth in every U.S. state.
Here’s a break down some compensation numbers according to the BLS:
- Median salary of $105,590 (varies wildly between cities and states)
- Median hourly rate of $50.77 (varies wildly between cities and states)
- Higher than average growth outlook (up 24% from 2016 to 2026)
Note that salaries and hourly rates can fluctuate wildly between locations, industries, and individual businesses. Your experience and performance will ultimately determine how much you end up making. For new hires that have little to no experience, businesses sometimes associate the applicant’s college degree with the eventual pay rate.
What Type of Degree Is Required?
We get this question a lot from people who have all levels of education including those that don’t have any education beyond high school. Our answer is always the same: having a computer science degree is typical, any STEM degree is optimal (see our guide for readers with Information Technology majors), and no degree is still an option.
Many of the classes in the various STEM programs have overlapping requirements, assignments, knowledge, and outcomes. That means skills earned in one program are usually transferable to a degree in another program as long as both programs are concentrated in STEM.
For those of you who have non-STEM degrees or even no college degree at all, you’re still eligible to break into the industry. Just know that you’ll have to make up for your lack of formal education with self-learning, dedication, organization, communication, and patience. While it is true that having a STEM degree is sometimes a requirement for job placement, on the other hand, it’s rare for software firms to turn down talented and dedicated individuals without one.
When you read technology news, you’re likely to hear mainly about the huge companies like Google, Amazon, Facebook, Apple, and others like them. These companies can definitely command a lot of attention for job applicants, but there are an untold number of other sized businesses out there that need good, self-starting programmers and software developers to help them achieve success.
Transition from Student to Employee
Change is tough but necessary for growth. Some animals in the animal kingdom quite literally depend on change as a matter of survival. In some cases, that’s true for humans too.
In fact, change is one of the greatest lessons that can be learned by attending college. During our time in college, we hope not only to learn the fundamentals of a knowledge domain, but also to gain an understanding of how we can grow into adulthood, become a well-rounded individual, and provide value to society. Kids enter. Adults graduate.
But graduation isn’t the end of the journey. Sure, maybe pure academics is ending for someone that decides to enter the work force, but the game of adult life is really just beginning. In school, students are often told exactly what to do. Instructions are detailed and handed out equally to all students. Everyone is expected to be on the same page. But in the workforce, requirements are often vague, clients are not always friendly, and employees no longer have their hands held by teachers whose salaries are dependent on the performance of the students.
Unfortunately, no level of education can accurately prepare students for life as an entrepreneur or a career person. The variables of employment are far too vast to wrap up with a nice bow to present to students as a final exam. It’s possible that the lack of preparation is due mainly to the fact that schools teach in generalizations where employers need practical specifics. Think about it like this: schools teach us how to learn a wide variety of subjects, but employers have a demand for a narrow set of skills to solve specific problems.
To make a successful jump from that student mindset to something that an employer needs, you’ll need to consider the following.
Don’t wait for something to land in your lap. As a student, you’re used to being handed everything to get you going. You’re told which books to buy, which classes to take, which paths to go down, when to eat, what to study, where to focus, and which rooms to go to on a daily basis. But as an employee, you’ll have to get used to taking your own initiative to figure out what needs to be done, how to accomplish it, and how to deliver results in a way that provides value to the business. Opportunities are yours to take if you are assertive.
Homework assignments are now value driven products. Remember all those late nights you spent completing annoying homework assignments for the one time purpose of being graded and then thrown away never to be seen again? Good news! You’ll never have to do that again. The bad news is that instead of throwing away your work, you’ll instead be expected to deliver industry standard quality products that customers actually want to use for years to come. The stakes are much higher.
Working with others is no longer optional. Did you ever have to work on a group assignment but just ignored the group and did everything yourself? That worked in school for two reasons. First, you weren’t expected to keep an ongoing relationship with the classmates. Second, the scope of the assignments were usually small enough to allow a single person to be successful. In your future career, you’ll have to play nice with everyone on your team for potentially years. Additionally, projects could stretch for years and months in duration. It wouldn’t be possible for you to do everything yourself.
Study up on best practices. In academia, most of the projects are completed in a way that is throwaway. The outcomes are usually used a single time for the purposes of proving some idea, strategy, or approach. The last of our concerns in these disposable applications is to utilize best practices. That changes rapidly in the real world. Developing an application without studying up on the standardized and suggested ways to approach a solution is a recipe for creating an unmaintainable and bug-filled application.
Build a Public Portfolio
If you’re nearing the end of your degree or fresh out of college, you’re probably on the hunt for the next step: a job. One of the biggest problems, however, is that you have no experience, but all the job listings require experience. How can you get experience if getting experience requires experience? Ouch.
When compared to other careers and professions, prospective software developers have the unique opportunity to build and contribute to global solutions remotely, on their own time, with completely free tools, and all in a way that can be recorded and displayed for the purposes of being hired. Seriously, think about that for a second. Software developers can sit in the comfort of their home, download free tools, and start building useful applications without any real barriers to entry.
Over time, through school assignments, coursework, and your own personal projects, you can amass a collection of projects to show off in your portfolio. Fortunately, using a platform like GitHub to build a portfolio is free, easy, and teaches you critical skills that you can apply for yourself and an eventual employer.
GitHub is a distributed service that allows for remote Git repositories. This enables you to host your repositories in an environment that allows you to share your code with the public and allows others to contribute to your project in parallel. Don’t know how to use Git? Take a look at our Getting Started with Git guide so that you’re set up for success and ready to contribute to projects with confidence.
Learn Source Control
As is implied in its name, GitHub requires the use of Git.
Git works natively on Windows, Mac, and Linux. When using Windows, you’ll most likely be using the tools included in the Git for Windows initiative (Git BASH, Git GUI, and Git Shell Integration). Mac and Linux have native command line support.
To get started, go download Git by finding the link for your operating system.
- If you’re on Windows, use the Windows download link.
- If you’re on Mac, use the Mac download link. This link seems to redirect to Sourceforge.
- If you’re on Linux, use your distribution’s package management commands as seen on the Linux download link.
For example, with Ubuntu, you’d use:
apt install git. You might need to augment this with
sudo if your setup requires root to install software.
Note that Git is, by default, purely a command line tool. If you’re interested in using a user interface to manage your Git repositories, check out our tooling guide for some suggestions or our massive Visual Studio + Git guide. You can also check out the official Git GUI page.
Save Coursework & Assignments
We mentioned earlier in this article that many class assignments are treated as throwaway after serving their singular purpose to get you a good grade. Maybe you had to write a binary search algorithm or a basic version of a text-based poker game. You probably didn’t think you would ever need it again. Don’t throw away your previous work just because it was annoying and barely finished the night before it was due (apologies to any non-procrastinators out there).
Here’s a helpful list of places where you may have created something and immediately threw it away:
- Khan Academy courses
- Coursera courses
- Pluralsight courses
- College assignments
- Personal projects while playing with new frameworks and tools
- Experiments from our multiple guides: Software Developer, Software Engineer with IT Degree, Software Development Without Degree
Having previous projects that you or a team completed can work as filler for your portfolio. It might not be the highest quality work, but it does at least prove that you have some academic experience, understand the basics of source control (using GitHub requires that), and care enough to publish your previous work publicly. You’ll also have practical experience from which to use as a source of conversation topics.
Go to Local Meetups
Even though software and online contributions are inherently disconnected from face-to-face discussions, that doesn’t mean you have to be completely isolated from the rest of society. As a student, you’re probably already familiar with joining clubs, social groups, athletic teams, and college competitions.
Use that familiarity to your advantage so that you can join groups and meetups that are tailored specifically to technology and software development. By joining campus and local events dedicated to your interests, you’ll learn new skills and ideas from like-minded individuals on the same paths of progression as you.
Not only will you learn more about what you want your profession to be, but you’ll get exposed to people in related positions of the same industry. When you eventually get hired, you’ll need to interact with product owners, project managers, quality testers, DevOps, and business analysts. Interacting with more than just software developers gives you a different perspective and introduces you to the types of people with which you will be required to succeed.
In addition to checking out your local campus events, use sites like Meetup.com or Facebook to find local groups that are welcoming to your interests. Maybe you’re eager enough to even form your own meetups! The other benefit to joining these groups is that you might find potential employers or teams that are recruiting for new projects.
We know socializing isn’t for everyone, but it can be good to get some conversation practice for when you enter the “real world.” Networking with potential employers can get you noticed better than cold calling and applying on random job hunting sites.
The best part about meeting up? You might find a local group that’s interested in creating a startup, swapping ideas for projects, or recruiting for a job. In all honesty, there’s no reason to skip these meetups because there’s very little downside.
Apply for Internships & Jobs
If, after reading this guide, you’re still interested in pursuing a career in software development, then you’ll need to get serious about the job hunt. At some point you’re going to have to get out there, see what’s available for you, and put in some applications. You’ll be far ahead of other students if you seek out internships, career work programs, and apprenticeships as soon as you can.
You don’t have to wait until graduation to start looking. College campuses are full of other students who may be working at jobs that need more employees, professors with real world experience from which you can learn, and departments dedicated to the success of students after graduation. Keep in mind that we’re not talking about part-time jobs here. Instead, these are jobs that can directly relate to an eventual career path in your area of study.
Since you’re a current or recent college graduate, you should start a relationship with the student services or career services offices to take advantage of work experience programs with partnered businesses. This gives you the opportunity to start making money (sometimes very good money), get work experience, network with actual engineers, and figure out if you even like the profession.
Just remember that career work experience programs are focused mostly on giving students exposure to work life from a high level. You’ll be expected to keep your grades up, cannot focus more on work at the expense of your studies, and will ultimately still be expected to focus on academics as your number one priority.
If your campus doesn’t have a robust work experience department, try getting in touch with professors or the academic services department to see if undergraduate assistants area available in your area of study. At the very least, you’ll be able to learn from a professor, network with others in your degree field, and potentially earn some money doing work that relates to your studies.
Your final option might be to check out your campus information technology (IT) department. This department is usually responsible for the set up and maintenance of computers and networks around the campus. You won’t be placed in a position of full time software development, but you’ll get access to computers, networks, and other technology that you will definitely need to understand to be a successful software developer in your future career.
Work experience programs end once you exit the university since they usually require payment of tuition to be eligible. If you were part of a college work experience program and had a mutually beneficial relationship with the employer, there is always the possibility of asking that company to extend you an offer with proof of graduation and a college transcript.
Our authors have worked in several industries that have heavily relied on a study influx of students graduating from college work experience programs into full time positions to make sure that talented individuals continue flowing.
If you’re starting from scratch, your “safest” option is to apply to already established businesses. We say safest because it’s usually a more secure, consistent, and guaranteed source of income when compared to fly-by-night startups or your own ventures. Going down the path of entrepreneurship to create or join a startup is admirable and does come with the potential for a large payout. But do understand that it comes with a lot of risk if things don’t work out as you expected.
Use sites like Salary.com and Glassdoor to research normal salaries and benefits for software developers based on years of experience, education, and location. Remember that these are just starting points and should be treated as small samples of data. Use these sites as backup in your salary negotiations, but don’t be upset if your ultimate offer doesn’t align with your expectations.
Salary negotiation can be brutal, so try not to get discouraged. What you think is your worth may not be agreeable to potential employers. This is normal since you’re an absolute beginner and especially true if you don’t have a college degree. Remember what we said about STEM degrees giving you a leg up? This is potentially one of those moments. It’s not a deal breaker but it can be used as a measuring stick by some employers.
Glassdoor can help you prepare for the types of interview questions you might face from the experiences of other interviewees. If you’re interviewing with big players like Google or Amazon, you might be expected to regurgitate a lot of technical information on command. But if you’re comfortable going for a smaller, more local business, the interview process may be more casual and conversational.
Be prepared to fail a lot. Don’t take it personally. Job hunts are tough regardless of the profession. But take solace in the facts that software is in huge demand (the industry isn’t going anywhere anytime soon), and talented individuals can command respect and wealth.