Employment
Will I Be Able To Get A Software Developer Job With This Degree?
This will depend mostly on you. The current state of the job market for software developers appears to be that while there is much demand, that demand is lopsided in favor of experienced developers. Because of this, the job openings for new graduate developers appear to be competitive. Read on for some factors that will help you be competitive.
The Degree
If you complete this program, you will have a BSCS (Bachelor of Science in Computer Science) to your name, which will help you get through many companies' hiring filters. It's not impossible to get a software developer job without a BSCS, but it does seem to be a minimum requirement for many, or perhaps most, software development jobs.
Technical Skills
Your technical skills add up to one of the most important factors for any company considering you. What can you do for them technology-wise? Because of this, it's important to work on your skills constantly. The focus of this program, and apparently of the bulk of entry-level jobs in the industry, is in web development, so practicing this aspect of software development as much as possible beyond class assignments would likely be helpful in making you more competitive. Look towards various free and low-cost online courses to help you practice, fill in gaps, and make you a more well-rounded web developer. Here are some highly regarded free courses that you can use for this purpose:
Soft Skills
The other most important factor in getting a job are your soft skills. How well do you speak, write, and interact with others? How well do you interview? It seems that in the software development world if you have excellent technical skills employers may be willing to overlook some weak soft skills; however, it's better not to rely on that. Try to take any opportunity that comes your way for training in things like business writing, technical writing, interpersonal and group communication, and public speaking. These skills should prove useful throughout your career.
Portfolio
A portfolio of your work is an excellent way to showcase your skills. A portfolio website or a github profile where people can see your code and your finished projects is a good resource to demonstrate to potential employers the type and quality of work you are capable of producing.
Internship
If you have the opportunity to do so, one of the best ways to get real world software development experience to put on your resume, as well as to network and possibly get a job lined up for when you graduate is to get an intership. You can find internships at regular job listing sites like Indeed or LinkedIn, or at Handshake through the FHSU career services page (see below). Technical internships are usually full-time, during the Summer, and paid. They also usually start recruiting in the Fall of the previous year, so start looking early.
Resume
Your resume is the most critical document in your job search. The resume will often make the difference between you getting or not getting an interview, so it would be most beneficial to dedicate significant time and effort to write the best resume possible. There are countless articles on writing resumes, but stick to reputable sources focused specifically on software development resumes, as these have an expected format. Think less about pretty design and more about making it well-structured, information-packed, and well-suited for automated resume scanning systems. Here are some articles to get you started:
- 5 Rules for Writing a Software Engineer Resume That Will Get You Hired (Plus Example)
- How to Write a Developer Resume that Recruiters Will Read
- The Ultimate Software Engineer Resume Guide (Example & Tips)
Interview
Interview processes for developer positions appear to vary a lot among different companies. Some will conduct a traditional interview where they will ask you questions to gauge your technical skills and how well you would fit in the company and in the team. Some will conduct an "Objective Assessment", essentially a software development test of some kind: either an actual test, or a mini-project for you to create and submit. Some will do a whiteboard evaluation (either in person on an actual whiteboard, or through screen sharing on a video conference), where you are given a technical task or problem to work through and explain what you are doing in real-time. Some companies use a combination of two or more of these approaches, in an interview process that can go through several phases. The best way to get better at interviewing is to practice!
Practice Problems
It is fairly common now for companies to give you technical tasks to work on in your interview process that are very heavily focused on data structures and algorithms. For this reason, many people recommend spending significant time over a period of months practicing through problems at websites that are dedicated to this. The most famous of these websites is LeetCode (sometimes abbreviated as "LC"), which gathers many example problems, including many that are actually used in interviews at major software companies.
Many people also recommend reading the book Cracking the Coding Interview to help prepare for and work through the types of problems presented at LeetCode and other similar sites. Some people recommend waiting to read this book and start working on LeetCode until after you have taken data structures and algorithms classes, where much of this material is taught.
Other School Resources
FHSU has a career services website that lists various resources they make available to help students get jobs. Take advantage of all of these. They have resources to help you write resumes, practice interviewing, network, find internship and job opportunities, and also occasional virtual career fairs where you can speak directly with prospective employers.
Other Outside Resources
There are endless other resources on the internet to help you navigate the software developer job search. A couple of good places to start are communities where you can discuss this specific topic with others who are also searching or who have succeeded in their search: