The past several decades have seen an overhaul of the world economy and a shift into a more connected and globalized workforce. We have seen entire industries disappear in a matter of years only to be replaced by offshore companies reliant on large, cheap labor pools and costs of living. Global pandemics have compressed five years of career and work culture changes to as little as three months. As with any change, these shifts have forced millions of people out of industries on which they and their families relied.
Many were left out of the benefits that came from market globalization, but many with backgrounds in science, technology, engineering, and math (STEM) survived and even prospered. It’s no wonder that so many people are actively seeking to learn new job skills, get involved in technology, and are clamoring to self-teach their way into software development jobs.
Being a displaced worker comes with the benefit of having forced motivation. That’s good because it’s just one of the skills you’re going to need to succeed in a drastic shift to a career that can offer security, challenge, money, flexibility, and (usually) a calm working environment. Whether the reasons for wanting to switch careers to software engineer is in your control or caused by external factors, we’ve got you covered in this article with plenty of details to further convince you into moving.
If you’re looking for more guides related to this subject, check out some others that we’ve written. We’ve written guides about how to become a software developer, what to do if you have an information technology degree, how to succeed even if you have no college degree, and how to get start the career hunt as soon as possible as a student.
Evaluating the Benefits of a Software Career
Every job, career, and business has its ups and downs, pros and cons, benefits and detriments. There’s no single path that we can write about which will provide someone with a lifetime of success and happiness because that prescription is different for each individual. It is ultimately up to what you know, how you behave, and your interests that will drive you toward success.
In this section, we present just some of the most common benefits that you might obtain should you seek a software career. From job security, to more stimulating challenges, to work flexibility, and beyond, there’s a lot to be had in a new career.
There’s no doubt about it. The world is full of technology. Entire industries are built around the assumption that the Internet and millions of connected devices are online. In some cases, people have become entirely dependent on the conveniences and connectivity afforded by technology. Mobile phones, dishwashers, tablets, movie streaming, and navigational GPS maps are just a few examples. Can you imagine life without some of these comforts? Many can’t.
How do you think all of that technology functions? Here’s a hint: not by magic.
Hordes of talented people spanning decades have collectively and progressively constructed entire infrastructures that support the modern economy. Not only are these technologies constantly being maintained, but customers demand new features constantly. Competition across software industries is fierce, customer expectations are sky-high, and the ease at which a customer can simply drop a product and pick up another one reinforces the importance of maintaining customers at all costs.
Someone has to meet these fierce demands, and that someone is usually armies of product owners, project managers, and software developers employed by big players like Apple, Amazon, Google, and Microsoft, but also small local industries that you can find easily on sites like Glassdoor and StackExchange Jobs. These companies are always on the lookout for talented engineers that are willing to help them take their products and services to the next level.
We’ve got some more good news. 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. And that’s just the beginning.
According to the Bureau of Labor Statistics, software developers and related fields are ranked with a “much faster than average” job growth prediction between 2018 and 2028. This means that on top of the already millions of jobs available in these industries, there will be upwards of 20% more by 2028 in some categories.
Have you ever heard that cliché phrase, “Choose a job you love, and you will never have to work a day in your life.”? It appears in various infographics and images plastered across every major social media network at least one hundred times per week. While it is certainly overused like many social media memes, it does have a bit of truth to it.
A simple fact of life is that in order to have the means to live, we have to work for what we have. It doesn’t matter if that work is self-sustaining hunting and gathering in the middle of the wilderness or clocking 40 hours per week at a nine to five job in the city. You’re still required to work.
You don’t have to be doomed to a life of mundane, endless, and boring tasks. If you’re the type of person that enjoys feeling satisfied after the completion of interesting, creative work, then software development is probably for you. Don’t get discouraged by the myths you’ve heard about software development.
Here are just a few of the challenging benefits to software development:
Requires deep thought. With all the distractions pulling for our attention these days, it’s a miracle if we ever have time to just sit and think to ourselves. Solving the potentially complex problems of the world definitely requires avoiding these distractions. That’s especially true when developing software to solve said problems. Getting in to a deep thought routine at least a few times a day can be relaxing and rewarding when you see how productive they can be.
Building things you see in science fiction. Have you ever watched an older show and noticed that some gadgets are now widely available? Star Trek is the obvious example in that the crew of the Enterprise often used mobile phone devices, tablets, location positioning devices, and teleportation. Yes, we know that not all of the things seen on TV have become reality, but it’s amazing to see that even a smaller portion of what we only thought was possible is now being used in our daily lives because of dedicated engineers.
Improvements in healthcare. One of the greatest things about modern civilization is the constant improvements being made to healthcare and general personal health. The average lifespan of humans has been increasing for centuries due to the scientific method enabling massive advances to our understanding of germs, viruses, bacteria, and our bodies. Advanced hardware and software has the ability to collect massive amounts of data, analyze it, and visualize it in a way that helps us make predictions for even better future health initiatives.
Remember, at the end of the day, software development is still a job. As such, there will be ups and downs that will have a variety of impacts on you, your family, and your life. It’s not a magic, cure-all to life’s afflictions, but it can be rewarding to know that you helped create something that provided, at the very least, a small amount of value to a corner of society.
This is most likely why you’re here. We know that a huge motivational factor of going into any given career is the amount of money that can be made from it. After all, most people work so that they can afford to support and live a certain lifestyle.
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)
Take a look at this list of STEM jobs that are similar to software developers according to the 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.
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.
Use Glassdoor and Salary.com regularly to research your worth to make sure you are fairly compensated based on your education, experience, and skills. Build up your portfolio using GitHub for that extra edge in the interview.
Software development isn’t just good for your pocket book, though. When hired by big firms, there’s often a bundle of benefits to entice.
Good insurance benefits. This isn’t unique to software companies, but sometimes the big industry players will offer 100% covered insurance. This will probably change to be less generous over time as insurance rates continue to climb, but it’s at least something to look for in your job hunt.
Flexible hours. Because software development can be done remotely and in any time zone, it’s possible to negotiate a non-standard set of hours with your managers. For example, if your time zone is shifted by enough hours to make it inconvenient for you to attend meetings or discussions at a certain time, you could request to have specific times where you overlap for meetings. One of our authors worked at a business that was split between the United States and Germany. Critical meetings between the two were always scheduled in the German afternoon so that it overlapped with the US morning.
Paid time off. Be careful with this one. Some companies will offer what they call “unlimited vacation.” It’s obviously not literally unlimited. If it was, no one would be at work. Instead, it’s a use but don’t abuse type of policy. Basically, “don’t be that person.” In most cases, businesses will offer generous amounts between three and five weeks of paid time off for new hires with increasing weeks as you rise in seniority.
Think about the logistics of most jobs in the world. Here are some to get your thinking flowing: construction workers, physicians, athletes, landscaping, truck drivers, delivery. What do all of these have in common? You have to be physically present when performing your duties. Obviously it wouldn’t work if all construction workers just stayed at home. They have to be on the site with their hands on their tools.
The increasingly portable nature of your workplace and tools is what makes software development so special. Where others need to travel potentially long distances each day, you’ll be in the comfort of your home or proxy office with the ability to instantly connect to your coworkers and audience. You’ll be able to command a salary that is local to the business headquarters while living an area with a low cost of living. Think: working in Kansas for a company in Washington. High salary + low cost of living = financially happy.
Let’s talk details of the biggest flexibility perks.
Remote work. This is the one that grabs people the most. Having the ability to move where you want at any given moment is a huge benefit. You’re not tied to any specific place because you don’t have to physically commute anywhere other than your place of residence. Depending on your time zone, you’ll have to adjust to the business hours, but you likely won’t be alone so there should be a company policy dictating how to do it successfully.
Work from home. This is a more specific form of remote work. Imagine if you or your family is sick with a job that doesn’t allow work from home because you have to be physically present. Using up sick days or vacation time is definitely a pain. And not every job offers those benefits, so you might be unlucky enough to still have to go to your place of work. As a software developer, your job is perfectly doable from home due to the nature of the work and the tools that we have built to make remote work easier.
Travel. Like to move around a bit? Look into becoming an evangelist for your company or its tooling. Your job usually consists of traveling around to various businesses that use your products to get them hooked on even more products. You’ll be responsible for giving speeches and seminars to tout the greatness of your company and its values. It’s possible to be a software developer and an evangelist simultaneously, so don’t think you’d need to make multiple career changes.
Understanding College Degree Requirements
While it is true that having a STEM college 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.
Many large and popular knowledge-based jobs require evidence of higher education beyond high school (also known as a college degree). Companies hiring for these positions often have the luxury of having hundreds or thousands of applicants each month and can wait for candidates that check off every box on the list.
But guess what? Those aren’t the only types of companies hiring!
Google, Amazon, Apple, Facebook, and the other big players certainly 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. Those are the types of companies that are itching for good talent and usually can’t afford to wait for the mythical perfect candidate. Even better, some smaller companies might be closer to where you currently live, which can significantly reduce relocation expenses.
It is true that formal education, strict training, and directed learning can provide you with a smoother path to success. We say “smooth” because guided learning encourages you into certain habits, patterns, and studies that tend to lead you in a certain direction. Such training usually takes choices away from you in exchange for a “tried and true” path.
That style might not be for you, though. And that’s OK!
Our authors have personally been involved with interviewing hundreds of candidates across several companies. Many of these candidates have been stacked with degrees and certificates, but many of the most talented have come from the pool of individuals without any formal training. Where they lacked in formal academics, they excelled with confidence and speaking abilities backed by their experiences gained through building their personal projects on their GitHub portfolio.
And let’s be honest: on the job training shouldn’t be a thing of the past. There are many tools and frameworks that software engineers use and follow that can be picked up in the course of their first 30-60 days on the job. We aren’t suggesting companies should hire someone that doesn’t fit any desired skills, but waiting until someone checks every single box on day one is a recipe for never finding a candidate.
Setting a Personal and Professional Goal
If you’re still interested in being a programmer after reading all the above, you should really take some time to understand where you hope to go in the future. Ask yourself direct questions and give honest answers.
- What’s driving you to be a programmer? Money, fame, knowledge, friends, community, problem-solving?
- Do you want more money? Depending on where you live and work, this can be big.
- Do you want to be challenged? There’s an endless amount of complexity.
- Do you want to be involved in global communities? GitHub and Bitbucket connect you with plenty of other developers.
- Or do you just want a change in life?
These are questions that only you can answer for yourself. But make no mistake, they will help guide you in the direction that you want to go.
After narrowing down why you want to be a software engineer, we suggest to identify specifically what you like about using computers. Sure, you can be a programmer without actually liking the main tool (computer) just like a construction worker can build things while hating a hammer. But when it’s go time, you’ll probably find yourself frustrated, uninspired, and demotivated.
More question time!
- Do you like hardware or software? (input/output devices versus operating systems and video games)
- Do you want it to be a hobby or a profession?
- Are there any hobbies that you want to involve in your programming? (business, finance, sports, games, movies, health, fitness, science, math)
- Do you own any devices that are frustrating to use?
- What would you improve about them?
Again, these are personal questions that only you can answer. You’ll quickly realize how prevalent computers are in your life and reinforce your passion for starting a new career. In the process you’ll realize where you want to start a focus.
Sometimes you won’t be able to answer these questions without at least minimal exposure and experience. After all, how do you know if you want programming to be a hobby if you’ve never even tried it? Maybe you’ll be so interested and good at it that you want to try it full time. Or maybe you think building a website would be fun but absolutely hate it after trying to build a few.
That’s why we suggest blasting through some self starting resources online to get your feet wet and then following up with your own personal experiments. Not only does this give you a feel for where you think you will eventually fit, but you’ll eventually build up a respectable set of experiences with a personal portfolio to show for it.
Continue reading below and enter the endless world of online resources.
Before you dive into the Internet ocean searching for guides on how to be the next big thing, you would benefit from starting with the fundamentals of how computers work.
To get started, you obviously need a computer, the Internet, an abundance of positivity, and determination.
If you don’t have a computer or don’t have the means to pay for an Internet connection (maybe you don’t have any good options or the pricing is beyond your budget), you can find a local library or computer share business to borrow some computer time. At a library, you’ll also get access to a variety of programming techniques and career books. Also, you might just find someone else that’s on the same path as you. That’s a triple win.
There’s another benefit to learning outside your residence: you can get into a study mode where your distractions are limited and your time is dedicated to the cause. This should help you eliminate (or at least minimize) procrastination caused by easily accessible passive forms of entertainment that surround our daily lives.
We highly suggest that you read through our expansive guide to becoming a software developer. Many of the links in this section were lifted directly from that guide, but some are unique to this post. Make sure to go through all of them.
As you work through the materials, reference our big list of the best programming tools to install on your developer machine. Don’t install all of them. You would just be overwhelming yourself unnecessarily and crowding your toolbox. Pick ones that help you get started and give you the most value.
The list below isn’t in any particular order and isn’t an exhaustive list of everything we recommend. There are far too many guides, tips, and tricks out there to collect into a single list.
This is intended to be a starting point to get your mindset in the right learning place.
If you’re seriously interested in programming, then you are ahead of most people in this category. You’re also in better shape if you know more about computers than, “I turn it on and click things.” But fear not! Even if you are completely in the dark, there’s plenty of learning resources to make these opportunities open to you.
Just a little warning: the word “fundamentals” is extremely vague. Following guides regarding the fundamentals can lead you into an endless rabbit hole of information. You want to focus on just enough that makes you dangerous behind the keyboard but not enough to overload your information processors.
That’s why we suggest three broad categories of study: how computer hardware works, how computer software works, and some specific practices of programming.
Always remember that you’re just starting out. You shouldn’t expect yourself to be an expert with the ability to immediately create the next amazing operating system.
KhanAcademy provides a ton of short videos that will work as good introductions to various topics. This will help you get started and maybe even narrow your focus. We suggest the following starter sections.
- What is a computer?
- What are the parts of a computer?
- What makes a computer, a computer?
- How do computers represent data?
- Binary & data
- Circuits & Logic
- CPU, memory, input & output
- Hardware and Software
- What is the Internet?
- Wires, cables, and Wi-Fi
Go explore some courses on the site to see what you’re interested in. We suggest brushing up on your math skills if you are feeling rusty. If you’re feeling brave, try to tackle the Calculus and later math courses, but don’t feel obligated because they’re marginally useful in most software engineering jobs.
Don’t be put off by the sometimes childish look of the KhanAcademy courses. Many of the videos are primarily focused at younger students, but that shouldn’t stop you from watching them if you want to learn the topics. The material is just as useful to adults as it is to kids. Plus, the videos are extremely short (less than 5 minutes in some cases), so you have a vanishing number of excuses to skip them.
This is the first step of the process that may require payment. Pluralsight does offer free trials, but ultimately requires a monthly payment of at least $29 / month to start.
As seen in the image below, Pluralsight courses are highly focused on specific language, framework, and software tracks that help people that are looking for a more narrow understanding. “Narrow” here doesn’t mean shortsighted. Instead, let’s say you wanted to learn about concurrent collections in C#. Well, there’s a course specifically focused on that topic.
Drill into the language that you want to learn and investigate the paths and courses offered within that language grouping.
If you’re here purely out of your own self-interest and want to learn a programming language “just because”, then don’t worry about trending paths. Pick one that seems interesting to you.
- Monthly payments of $29 is required after a trial is completed (keep an eye on discounts)
- Be mindful that coursework on Pluralsight is much longer than Khan Academy but shorter than Coursera
- Make sure the skill level required for the selected courses aligns with your expectations
- Once you commit to a section, see it to the finish (don’t skip!)
One of the largest communities of questions and answers is StackExchange (and specifically StackOverflow for software). By turning the Q&A process into a game where participants are given points, StackOverflow has built a massive collection of what amounts to distributed documentation.
A simple fact of a programmer’s life is that they are not going to know how to solve problems. You may not even know where to find learn the basics of whatever it is you’re building, so how can you be expected to solve complexities within? This says less about your intelligence as a human and more about the inherent complexity of software.
Don’t be embarrassed if and when you have questions. Instead of treating questions like a failure on your part, think of it as an opportunity to learn something new from a potential expert. There’s absolutely no shame in have to ask what you may consider a dumb question. If you have a question, most likely many others have already asked it before.
StackOverflow is less of a place to learn specific topics and more of a general resource for when you’re stuck.
Start an account (it’s free) and start asking some questions. When you get more knowledgeable, start answering questions too. You’ll build a reputation profile and give yourself some much-needed practice. Both are extremely useful for you later.
StackExchange also runs a career site where you can link your StackOverflow profile to your résumé. Potential employers can then view your StackOverflow activity, questions, answers, tags you’ve participated in, and how active you are.
- Ask questions regularly and make sure to provide good, properly formatted information.
- Answer questions to the best of your ability by filtering down to tags that align with your skills.
- If you can’t provide a full answer, at least leave a helpful comment which may provide partial or supporting information.
- Create and set up a career profile on StackExchange careers and link your StackOverflow profile
Experimenting with Personal Projects
After you’ve completed resources on our various lists (and whatever you find in your journey), it’s time to start having a bit of fun. We assume that you’ve already gone through some assignments if you finished any of our suggested coursework above, but this is where you can use your creativity and individualism for your own practice.
Hands on experience is almost always the best way to improve your skills. Academic knowledge can get you started, but having something physical (or in this case, digital) to touch, feel, and manipulate gives you real world experience and an eventual sense of accomplishment when you release your product to the world.
Software engineering is more than just programming. You need to understand the best practices around your project’s source control, build and release process and cadence, project management, team collaboration, and testing strategies. These are skills that are rarely discussed with Computer Science and Information Technology degrees. Often the only way to obtain them is through self-starting activities.
Start by checking out our big list of the best programming tools that every developer should get to know. We don’t suggest you install every tool on that list, but it’s good to keep the list in your back pocket throughout your journey. Remember to customize your workspace and download productivity-boosting extensions for your development environment. It’s not cheating, it’s just smart!
Don’t worry if you have no idea how to use the tools that we suggested above. No one is born knowing how to use Sublime Text or IntelliJ IDEA. Even fewer people understand how to use them effectively. You’ll pick it up over time and eventually will eventually use these tools from muscle memory.
Keep your starter projects small. There’s no reason to spin your wheels on huge and unwieldy applications that you can never finish. We encourage you to go beyond the boring “Hello World” applications that every tutorial starts with, but you shouldn’t go designing the next Facebook immediately. Try to set boundaries and specific goals for what you are hoping to accomplish with your project. This will hold you accountable and let you stay focused.
A typical starting point is to make some text-based games. Games are great because developing them cuts across many foundational programming topics. You can learn project set up, user input, forms of output, implementing specific rules around the game, game logic, and user experience design. Think of some common games that would be easy to implement with text like Dungeon Crawlers or casino games (Poker, Blackjack).
You don’t need fancy graphics while you’re learning. No one is going to be purchasing your personal projects, so quality is likely not a huge concern. And if you want to take your proofs of concept further, it’s easy enough to iterate over them one step at a time to improve the individual parts.
We suggest you create a design document before putting and fingers on the keyboard. This can be as simple as pseudo code (see below) or as complicated as a mission statement, rules, guidelines, and backstories about your game. Get creative!
Pseudo coding allows you to think about how you want certain logic and functions to behave without having to worry about a specific programming language’s syntax. The underlying logic doesn’t care about which programming language or framework you’ve chosen, so you shouldn’t worry about it while designing either!
FUNCTION SUM_CARDS_IN_HAND DECLARE HAND_TOTAL FOR EACH CARD IN THE PLAYER'S HAND ADD THE VALUE OF THE CARD TO THE HAND_TOTAL RETURN HAND_TOTAL
Every project should have stretch goals. These are goals that you hope to achieve but are considered “bonus” in case you don’t have the time or the expertise to finish them. Think of them as goals to push yourself as a bit of an over achievement. Be realistic when you set these. There’s no reason to stress yourself out by setting a hundred stretch goals that you know won’t be possible to achieve. It’s OK to maintain a “backlog,” but don’t overwhelm yourself with ideas.
So what’s the scope on these larger goals and projects? You can’t be expected to go from building Poker to building World of Warcraft overnight. And for that matter, should your experiments continue to be game projects? We suggest the answer to that question as “no.” Games tend to get exponentially more difficult to create, manage, and maintain as you climb the complexity ladder.
Given that fact, it might make more sense to branch out into other areas like building websites, crafting libraries for other developers to use, or dipping your toes into buildings simple desktop and mobile applications for Android and iOS.
Don’t overwhelm yourself by the sheer number of choices and opportunities available to you as a blossoming programmer. Build incrementally as you go. Slowly improve your skills through the rough times and the good times. You may find that your worst projects are ultimately the best in that you came out stronger, smarter, and more experienced than before.
Here are some basic project ideas that can go beyond the goals of a small project. Yes, many of these are solved problems, but you’re not going for profit here. You’re trying to learn.
- Contacts website or mobile app to manage people you know, phone numbers, addresses, and more
- Inventory application to maintain and manage a collection of “things” that you own
- Random name generator with ability to tweak parameters
- Basic chat bot that will print out messages and automatically respond to messages
This is a big one that’s overlooked by many candidates we’ve personally interviewed. Just like an artist is expected to bring a sampling of his work, so too should you have your personal projects at the ready in case an interviewer asks about it. They may not, but it doesn’t hurt to have them ready. Plus, you get some exposure to development communities and just might find others that think like you.
Once you’ve amassed a grand collection of experiments and projects, it’s time to take them public. Don’t worry about being judged. The ocean of weird code is vast and endless. Yours will just be a drop in the universe-sized bucket.
OK, but how? Bitbucket and GitHub! Let’s focus on GitHub since we’ve previously written an ultimate guide to using it for your public portfolio. GitHub allows you to make your source code publicly available to the world. Not only is it visible, but you can provide access to others in the community (friends, family, and strangers) with the ability to contribute to your code. You may not think that public contribution to your projects is important for a portfolio, but interviewers sometimes like to see how you approach team-based problems rather than isolated projects.
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.
It’s easy to get started. Better, it’s free. Start with the free plan since it gives you everything you need to be successful. Make sure all your code is marked as public and available via a permissive license.
There’s a big caveat though. Usage of GitHub requires you to know what source control is and how to use Git specifically. The concepts are pretty easy to start, but difficult to master. Get acquainted with the tooling and make yourself dangerous. Keep at it in your daily learning processes and eventually it will become second nature.
Stepping up to a Career Search
If you’ve made it this far in the guide then you’re probably pretty serious about this whole programming thing. And if you actually enjoyed the learning and personal experimentation part of the guide, then maybe you’re cut out for this as a potential career.
It’s one thing to understand the academics of programming and another thing to proceed into the upper echelon of development skills. Eventually, you may want to join a team of like-minded developers, interview at a big company, join a local startup, or just progress into more advanced topics for your own personal satisfaction and challenge.
Whatever you ultimately decide to do in your path, there are some helpful guidelines that we think you should follow.
Joining a Community
This step doesn’t have to wait until you’re ready to progress beyond the beginning stages. In fact, many local meetups and groups are catered specifically to people starting out. Some people find it helpful to get out there are start socializing with other like-minded individuals on the same paths of progression.
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.
You’ll get real world interaction with other developers, product owners, project managers, and quality assurance testers. This will give you exposure to other areas of the industry, give you practice with crucial social skills, and introduce you to new ways of solving problems.
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 check 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.
Researching Your Worth
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.
With Glassdoor, you can go further by looking up open job positions and reading reviews from employees about companies. Try to keep all the usual caveats of reviews in mind. Anger is a huge motivator, and many reviews are specific to a certain person’s experience. Try not to extrapolate too much based on a small sample size.
Try not to get discouraged during this phase. The job hunt can be brutal at times. Fortunately talented software developers are extremely in demand even during the harshest of economic times. 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 try to understand it is sometimes used as a measuring stick by some employers.
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.