How to Become a Software Developer in 2019
A career in software development is not for everyone; It can be challenging and requires an immense amount of passion and dedication. The tech world is constantly changing, and a software developer must be able to adapt to these changes.
They must be willing to research and teach themselves. A software developer never stops learning, and by the time they have mastered one area of their career, a new programming language, framework, tool, or methodology has likely become relevant.
With that in mind, those who do enjoy programming will undoubtedly find it to be a fulfilling career path. The job market is in an excellent state, and software is only becoming more common in every aspect of life. In this article, we will go over what it takes to become a software developer.
Step 1: Try Out Programming
Before dedicating your life to programming, there are plenty of resources online for those just starting out. First, consider which type of software development you are interested in? Are you interested in making websites? Perhaps you are drawn to mobile apps, or video games? You might be fascinated by every day software used by data analysts, or applications that make lives easier?
Once you decide which kind of software you are interested in, you can choose a relevant language. A good place to start for a web developer is HTML and CSS. Otherwise you might look into Python, Java, Ruby, or C. Don't worry too much about which language you start with. You will notice that once you learn a particular language, it isn't difficult to transition to another.
Step 2: Education
There are two different journeys to becoming a software developer, through a formal education, or self taught. Both directions take years of hard work and sleepless nights. If you think that school is the correct path for you, keep reading. Otherwise, you can skip this step and move on to the self-teaching and practice section.
Once you are confident that you want a career in software development, and you have some of the basics under your belt, it's time to start thinking about a higher education. There are plenty of online courses, many of them completely free (resources at the bottom of this article). But most software developer positions require a bachelor's degree in computer science or a related field.
The traditional (and often simplest) path is through college. Simply choose your courses and select a major of computer science, web development, networking, game development, or whichever is most relevant to the type of developer you would like to be. A good college education should lay most of the groundwork for a successful career in software development.
There are different levels of schooling required to become a software developer. In Canada there are three different levels. University offers a 3, 4, and a 5 year Bachelor of Science in Computer Science degrees. While colleges offer 2 year diplomas in Computer Software & Programming.
2 year College Computer Software & Programming Diploma
If you're the type that learns more through hands-on then the 2 year College Diploma route is the route for you.
College offers more on project-based coding. This project-based coding includes practical knowledge and coding with database queries. College offers workshops that can be taken alone or in a bundle. This delivery of workshop(s) offers its students to learn in a fast-paced workplace.
There's often a capstone project to end the diploma which allows students to incorporate everything they have learned. This is a great opportunity to not only test the programming skills you've gained but it's also a way for you to compare yourself to your colleagues.
3 & 4 & 5 Year University Computer Science Degrees
Student at the University level develop skills that allow them to design and build effective software that: solves computing problems, data storage queries, sending data over networks. University students also learn solutions to cyber-security issues.
The 4 year degree students are exposed to studying software engineering practices. These practices include, but not limited to, computer vision, robotics, artificial intelligence and platform-based development.
If you decide to do the 5 year computer science degree you'll have a full year of a paid internship. There are three different internship lengths that you can take, each is dependent on which company has the internship open. These internships are 8 months, 12 months or even 16 months long.
Why You Should Stay for an Internship Year
There are 4 real benefits of an internship.
As a student, I'm sure you are going to appreciate the fact that University Internships are paid internships. College co-oops offer their students real-world work experience but they're unpaid. What makes this deal even better is that the Computer Science Internship is actually one of the highest paid Internship program.
During your Internship, you will gain valuable real-world work experience. You will understand what it's like working in an agile environment. You will also get first hand experience at what languages and softwares companies are using.
To add to your resume you will also get a chance to network. Once again, when you're trying to stand amongst other job candidates you have to use any advantage you can. What better way for this then to have old colleagues vouch for you.
The last advantage of an internship is exploring your career path. Why is this the most important benefit of an internship? University is about exploring as much as it is about learning. Internships are a great way for students to explore if a certain field is what they're interested in.
University can sometimes be daunting because of it's crazy overload of assignments, studying, and exams. Due to this it's sometimes easy to think that your education career isn't right for you. An internship is a great way to find out if this feeling is only because school has gotten you burned out or if you truly should consider a new career.
How Does an Internship Help Your Career?
Internships help your career by giving you work experience. This helps you add related work to your resume.
Unlike 10 years ago when software developers were at an all time low, they now overflow any software developer job post opening. Times have changed as there are now many software developers that apply to job openings. Due to this, it's crucial for you to have a better resume that stands out amongst your candidates.
By you having a full year of real work experience from an internship, you're guaranteed to be picked over other candidates with just school in their resume.
Step 3: Self-teaching and Practice
This is one that will continue for the rest of your career. Constant practice and self learning is incredibly important for a developer of any kind. A college education isn't enough, because the world of tech changes so rapidly that much of what you learned in college is likely going to be irrelevant within a few years. Luckily, when it comes to programming, much of the skills you pick up early on will be transferable.
Even during college, you should be working on your own side projects to build your abilities and your portfolio. Try to use new technologies or languages once you become comfortable with the ones you already know. Try to use tools that real developers use. Think of ideas that would make your life easier, or the lives of the people around you, and make it happen!
There are plenty of tutorials online that you can follow as an introduction to new programming languages. Use search engines to find answers when you get stuck. Look at other people's code and see what they are doing. The most important part is dedicating some of your free time to educating yourself and keeping up with the latest trends.
Step 4: Find a Community
Surround yourself with developers and programmers. Talk to classmates and professors in college. Ask questions and help your colleagues succeed. You can do plenty outside of a higher education too. There are countless online communities dedicated to programming. Check social media and chats like facebook, twitter, and slack.
Another excellent way to reach out is by going to local meetups. You can find tech meetups in just about any city. Not only are these meetups highly educational, you will also meet a mix of beginners and industry professionals. As you are learning programming, you should also be building a professional network, and meetups are a great way to do this. Knowing others in the industry helps greatly once you are ready to seek out a job.
Step 5: Build a Portfolio
Once you are well on your way with the previous steps in this article, it is time to start building a portfolio. Just about any interview for a software developer job will ask for a collection of work that you have done previously. This is a great way to gauge a developers skill set.
The best way to show off your work is by creating a personal website. It can also be a good idea to put your code up on GitHub, or start a blog. Employers will base their first impression off your online portfolio, so only include your best work, and try to avoid school assignments if possible. This is also a good time to create a resume and cover letter.
Step 6: Find a Job
Alright, you are nearing the end of your college program, you have honed your skills as a developer, started networking within your community, and built a portfolio of your best work. It is finally time to seek out a job.
First, you need to actually find a job. This is much easier if you are involved with your community. Look at some of the top tech companies in your city, ask colleagues if they've heard of any opportunities, search online for job postings. Many colleges have their own internal job postings as well.
Apply everywhere, even if you don't think you are qualified. Keep in mind that most job postings describe their ideal employee, and aren't necessarily realistic in the skills they are asking for.
Prepare for the interview. Do some research into common interview questions and come up with your answers beforehand. Most companies will start with an online or phone interview. If you manage to make it past that, there will usually be some kind of test project or code challenge. These can vary in difficulty, but even if you feel unprepared, they can be great learning opportunities.
Finally, there is the on-site interview. If you've made it this far, the company is definitely interested in you as a candidate. Provided all goes well, you will get an offer!
The path described in this article is probably the most typical for a software developer. But it is by no means the only path. This wasn't always the case, but it is possible to skip college these days as long as you have an impressive portfolio and ace the interview. Depending on how dedicated you are, you can fast track the process through teaching yourself.
- Different kinds of software developers explained
- CS50x: An introduction to computer science and the art of programming
- HackerRank: Practice coding, prepare for interviews, and get hired
- freeCodeCamp: Learn to code for free
- codecademy: Join the millions learning to code with codecademy