Software Development is designing, writing, and testing computer applications software, as well as updating or modifying existing software. This includes:
Back-end: the parts of the software that the user does not directly interact with. Deals with server-side issues such as data storage, transformation, and processing.
Developer Operations (DevOps): In the spirit of creating, testing, and deploying software as quickly and often as possible, many software companies have teams, roles, and/or tasks that fall under the category of “DevOps.” This category entails writing the tools that automate building, testing, and deploying software.
Embedded: software run on a computer system designed for a specific task, as opposed to a general purpose computer such as a laptop. Often used in medical devices, consumer electronics, manufacturing, aviation, and automotive technologies.
Front-end: user interface, or any part of the software that the user interacts with directly. Deals with the look and function of the user view. Often listed as UX/UI in job postings.
Full stack: Able to work in both front- and back-end of development.
Web Dev: specializing in writing, designing, or editing web applications and content.
Salaries for software development vary widely depending on role, geographic location, and level of experience. From the Occupational Outlook Handbook, published by the Bureau of Labor Statistics, the median salary (that is, the middle salary of all people from all over the country with all levels of experience) for 2016 is $102,280.
Do your research to get a better sense of what specific companies in particular cities are paying entry-level software engineers. Check out Glassdoor and Salary.com to get an idea. Also, a cost of living calculator can be very useful when trying to compare salaries in different parts of the country.
Tips for Landing a Software Job
Software development is one of the fastest-growing career fields today. If you enjoy analytical thinking, solving problems, and thinking outside-the box, you might enjoy a career as a software developer. A few things to consider:
- Code something. Recruiters are looking for experience. You can gain experience from an internship, but coursework and personal projects are also great ways to show mastery of a programming language, understanding of how to develop an idea from start to finish, and a grasp of computer science concepts.
- Pick up a bug on GitHub. Go to https://github.com/explore and find projects that look interesting. Look at their open issues and choose something to fix. Also check out https://github.com/showcases/great-for-new-contributors. Many projects reserve bugs for “beginners”.
- Contribute to an open source project. Google Open Source or https://projects.apache.org/projects.html are reliable places to start
- Look at all industries. Software developers work in software development companies, but are increasingly being hired into industries such as finance, insurance, consumer goods, and government.
- Network. There is a large techy Bowdoin network in cities across the U.S. that are happy to connect with you and help you navigate the software development world. The Bowdoin Career Advisory Group (BCAN) on LinkedIn is a great place to find friendly Polar Bears in tech careers across industries.
- Practice Technical Interviewing. Tech interviews are very different than a standard behavioral interview, and practice makes perfect. Schedule a mock technical interview by going to careerplanning.bowdoin.edu/mock-interviews/
- Apply early and often. Large, competitive software companies hire for both internships and full-time positions early in the fall semester. However, software companies of all sizes hire throughout the year, and many are looking for immediate hires. Keep checking eBear, as well as company websites and external job boards for opportunities.
Organizations and Alumni
Software developers work in software companies, but nearly every industry hires developers to work in their organizations–even Bowdoin! Here are a few that have recently hired Bowdoin students for internships or full-time positions.
- Eze Software Group
- Fidelity Investments
- Liberty Mutual Insurance
- Two Six Capital
First Year/Sophomore Opportunities
- Facebook University for Engineering
- Google Engineering Practicum
- Google Summer of Code
- Khan Academy internships
- Microsoft Explore
- Technical Interviews: You will be asked to conduct a technical interview as part of the application process for a software job or internship. Learn more about technical interviews here.
- Intern Supply
- Code Fights
- Association for Computing Machinery (ACM)
- Github (check out the job board)
- Stack Overflow http://stackoverflow.com/
- Bitbucket https://bitbucket.org/
- TechCrunch https://techcrunch.com/
- Computer Science Teachers Association https://www.csteachers.org/
- Code.org https://code.org/
- Distributed Research Experiences for Undergraduates (DREU)
- Research Opportunities for Undergraduates
- Pathways to Science
Entrepreneurship and Startups
- Angel List https://angel.co/jobs
- Startup Hire http://www.startuphire.com/
- AngelPad https://angelpad.org/
- CrunchBoard https://www.crunchboard.com/
- Inside Startups http://www.insidestartups.org/
- OnStartupJobs http://onstartupjobs.com/
- The Muse https://www.themuse.com/
- American Academy for Advancement of Science: Careers
- American Medical Informatics Association: Career Center Jobs
- Association for the Advancement of Artificial Intelligence
- Association for Computing Machinery (ACM): Career and Jobs Center
- Association for Women in Computing (AWC)
- Career Cornerstone Center
- Computing Research Association (CRA)
- INFORMS Career Center (ICC)
- Institute of Electrical and Electronics Engineers (IEEE)
- The National Academies
- National Association of Programmers (NAP)
Education Beyond Bowdoin
Online Education–Free Programs
- Code Academy https://www.codecademy.com/
- Codewars https://www.codewars.com/
- Coursera https://www.coursera.org/
- edX https://www.edx.org/
- Kahn Academy https://www.khanacademy.org/
- MIT OpenCourseWare https://ocw.mit.edu/index.htm
- For those who get a bachelors in computer science, master’s and doctoral degrees in computer science can provide an opportunity for deeper learning and careers in research and academia. Those with a BA in computer science can also get advanced degrees in other fields, such as business, medicine, or law in order to use their technical skills in a new way.
- For those who did not get a bachelors degree in computer science, there are master’s and certificate programs for ‘career changers’. These programs have additional coursework to teach the foundational computer science skills typically learned at the bachelor’s level.
For students who don’t have coding experience, but want to enter the field, there are a number of ‘bootcamp’ programs that offer intensive training on one area of technology. General Assembly, Startup Institute, and App Academy are examples of software bootcamps. If you decide to pursue one of these programs, do your research and take note of costs associated with the program. Programs can cost around $12,000 for a three month program, and while some have partnerships with companies for networking and job opportunities, some do not.