Hack College Presents: How To Become A Software Developer

Keyboard Illustration

For the tech-savvy, software development is a hot field to be in. According to Bryan Cantrill, the vice president of engineering at the San Francisco-based cloud computing company Joyent, industry demand for highly skilled software developers is outstripping our supply of freshly qualified graduates. He says,  ”We’re seeing a gap between the number of software engineers we need and the number the education system is generating…this is a terrific area to invest oneself.”

Part I. The Software Industry

An Overview of Software Development

A love of programming is essential for software development. Some people break into the field equipped with skills learned on their own, but many find their way into the industry by first earning a bachelor’s degree in an area like computer science.

The world of software development is one of the most rapidly evolving in tech. Even the most highly pedigreed developers need to be prepared to spend a large portion of their careers dedicated to learning functional command of the latest tools and programming languages introduced into their fields.

Additionally, successful software developers tend to be analytical and exceptional at problem-solving. The stigma that software developers are anti-social is just unfair press. The best software developers are able to contribute to the creation of their product on all levels. That includes everything from product engineering and quality assurance to investor outreach and marketing collaboration. In short, the software developers who are in the highest demand can write and check every line of code, but they can also explain the purpose and functionality of that code with laypeople.

  • Applications Software Developer: In this role, developers create software applications, such as utility programs and general application software to meet the user’s needs. Applications developers also fix problems and optimize functioning through software modifications. Knowledge of programming languages such as .NET, Python, C++, and PHP is required.

  • Systems Software Developer: This role is responsible for creating software systems using systems development life cycle methodologies, overseeing the installation of software systems, and testing software systems to ensure that applications work properly. Systems developers may also be responsible for overseeing network compatibility and data security.

Salary and Career Outlook

The highest-paid 10% of software developers earned $133,110 in 2010. But unless you don’t mind sacrificing other areas that contribute to job satisfaction, pay shouldn’t be the biggest draw when deciding on a particular job.

As The New York Times points out in its 2011 article on Silicon Valley, startups really can’t compete with the salaries at larger companies, so they are coming up with creative ways to lure in tech talent.

“Free meals, shuttle buses and stock options are de rigueur,” explains the article. “So the game maker Zynga dangles free haircuts and iPads to recruits, who are also told that they can bring their dogs to work. Path, a photo-sharing site, moved its offices so it could offer sweeping views of the San Francisco Bay. At Instagram, workers take personal food and drink orders from employees, fill them at Costco, and keep the supplies on hand for lunches and snacks.”

The Bureau of Labor Statistics projects employment growth for software developers at 30% from 2010 to 2020, much faster than the average for all occupations. Application s developers can expect job growth at 28%, and systems developers job growth is projected to grow 32%.

While some fret that software jobs are going overseas where labor is cheaper or that the tech bubble will burst, Sarah Lacy, author of “Once You’re Lucky, Twice You’re Good: The Rebirth of Silicon Valley and the Rise of Web 2.0,” begs to differ.

“You can apply for Y-Combinator, you can raise money from hundreds of angels and VCs, you can bootstrap a simple Web or mobile app off of your credit cards, you can work at Google, Facebook, Zynga, Groupon, or one of the thousands of other startups desperate for coding talent,” says Lacy in an article for TechCrunch. “Every entrepreneur tells us hiring is the single hardest challenge they face right now.”

Part II. Top U.S. Software Development Programs

Many community colleges and online universities offer degree programs in computer-related fields, but you should choose the best education to fit your goals and budget. While some of the brightest names in software development are self-taught, building a well-rounded education from one of the leading universities can broaden your knowledge base and career scope.

Carnegie Mellon University

  • Accreditation: Accredited by the Middle States Commission on Higher Education

  • Specialized Degrees: Students can earn a B.S. in Computer Science, Computational Biology, or Computer Science and Arts. The school also offers a second major in Human-Computer Interaction. Masters and Ph.D. programs in Software Engineering are offered through the Institute for Software Research.

  • Industry Perception: The School of Computer Science has a long history of groundbreaking innovations, including the first program to use artificial intelligence in 1956, and the first large-scale computer built from commodity processors in 1972.

  • Cost: $45,554 for undergraduate programs and $38,800 for graduate programs

  • Financial Aid: Grants, scholarships, and fellowships are available on the school’s website.

Massachusetts Institute of Technology

  • Accreditation: Accredited by the New England Association of Schools and Colleges

  • Specialized Degrees: Students can earn a bachelor’s degree in Computer Science. Graduate programs include a Master of Science and Engineer in Computer Science. Some courses are also available online through MIT’s interactive learning initiative.

  • Industry Perception: U.S. News and World Report ranked MIT the best university in the world for computer science.

  • Cost: $42,050 for undergraduate programs and $42,050 for graduate programs

  • Financial Aid: About 64% of all MIT undergraduates received need-based financial aid in 2011. Students enrolled in graduate programs may receive aid in the form of fellowships, traineeships, teaching and research assistantships, and loans.

University of Illinois at Urbana-Champaign

  • Accreditation: Accredited by the North Central Association of Colleges and Schools

  • Specialized Degrees: In addition to undergraduate and graduate computer science programs offered at its brick-and-mortar school, online programs include a Master in Computer Science degree, certificates relevant to computer science, and individual courses for non-degree seeking students.

  • Industry Perception: Former noteworthy UI students include Ray Ozzie, Marc Andreessen, and Max Levchin.

  • Cost: $14,428 for undergraduate resident programs, and $28,570 for undergraduate nonresident programs

  • Financial Aid: Students can learn about financial aid opportunities through the school’s website.

University of California at Berkeley

  • Accreditation: Accredited by the Western Association of Schools and Colleges

  • Specialized Degrees: The Department offers two undergraduate programs: Electrical and Computer Engineering and Computer Science and Engineering. Within the two programs students can specialize in areas like Electronics and Computer Science.

  • Industry Perception: U.S. News and World Report consistently ranks the computer science and engineering school at UC Berkeley in the top 10 for undergraduate and graduate programs. The award-winning faculty continues to turn out some of the brightest students in the IT field.

  • Cost: $11,767 for undergraduate resident programs, and $34,645 for undergraduate nonresident programs

  • Financial Aid: The school offers financial aid in the form of grants, scholarships, loans, and the federal work-study program. Students can access more information through the school’s website.

Stanford University

  • Accreditation: Accredited by the Western Association of Schools and Colleges

  • Specialized Degrees: From Bachelor of Arts to Ph.D., students can immerse themselves in programs like Computer Science, Mathematical and Computational Systems, and Symbolic Systems.

  • Industry Perception: Since 1965, Stanford’s Computer Science program has carried the reputation of being one of the top computer science programs in the world. Being in the IT hub of Silicon Valley helps graduates go immediately into their desired profession.

  • Cost: $41,250 for undergraduate programs, and $43,950 for graduate programs

  • Financial Aid: Grants, scholarships, loans, and student employment opportunities help students attend one of the finest schools in the country despite income level. Stanford’s website offers a detailed list of financial aid.

Columbia University

  • Accreditation: Accredited by the Middle States Commission on Higher Education

  • Specialized Degrees: After earning a bachelor’s degree in Computer Science, students can go on to get their master’s in areas like Software Systems and Natural Language Processing.

  • Industry Perception: Columbia computer science students have the opportunity to be taught and advised by world-renowned leaders and innovators in their field. Many graduates go directly into a computer science career.

  • Cost: $47,859 for undergraduate programs, and $56,808 for graduate programs

  • Financial Aid: Half of all Columbia students receive grants from the school and the average amount awarded is $40,441. Students can learn how to take advantage of financial aid opportunities on the school’s website.

Part III. Launching a Software Development Career

Whether you are fresh out of college or browsing the job boards mid-career, the job market for software developers has something for everyone. Innovators and visionaries might choose to go the start-up route, while those seeking job security and a cushy salary would fair well at bigger corporations.

Organizing the Job Search

  • Cover Letters and Résumés: Even though you spend most of your time writing code, mastery of the English language is critical if you want a hiring manager to notice you. Proofread your cover letter and résumé for proper grammar, spelling, and punctuation, and have someone else look them over before submitting them. Your résumé should demonstrate your unique and creative talents while keeping your skill set front and center. Check out Joel Spolsky’s blog post for more résumé tips.

  • Portfolios: Most employers prefer hiring people with some experience. Pick up some internships, find time to volunteer your services, and work on your own projects to help build an impressive portfolio.

  • Job Search: Joining your local software developer group is a great way to build a network and learn about job openings. Additionally, online job boards like StackOverflow and Indeed are full of great opportunities.

5 Tips From Industry Insiders

  1. To get experience, start with a few simple applications on your own or perhaps modify some existing open source code. Then start working on an open source project with other people, or volunteering your time to a non-profit to help them write software. This will provide you with hands-on experience, as well as something to put on your resume. –  Justin James, host of TechRepublic’s Programming and Development blog

  1. If you have to choose between jobs, go for the job that seems the most interesting and fulfilling. Do not base your decision on the actual companies offering the jobs. Always keep in mind that there are plenty of developer jobs out there (especially if you’re good) so you don’t really need to focus on stuff like job security. – Davy Brion, a Belgium-based independent software developer/architect

  1. Always remember that you and you alone are responsible for expanding your knowledge. You can’t depend on the people around you to teach you everything you need to know. This is an extremely dynamic field. You can’t afford to fall behind. – Sara Chipps, software developer and blogger for Datamation

  1. Program designers have a tendency to think of the users as idiots who need to be controlled. They should rather think of their program as a servant, whose master, the user, should be able to control it. If designers and programmers think about the apparent mental qualities that their programs will have, they’ll create programs that are easier and pleasanter — more humane — to deal with. – John McCarthy, inventor of LISP, the second-oldest high-level programming language

  1. If you enjoy programming, the biggest mistake you can make is to take any kind of job – summer, part time, or otherwise – that is not a programming job. I know, every other 19-year-old wants to work in the mall folding shirts, but you have a skill that is incredibly valuable even when you’re 19, and it’s foolish to waste it folding shirts. By the time you graduate, you really should have a resume that lists a whole bunch of programming jobs. – Joel Spolsky, author of Joel on Software and co-founder of Fog Creek Software

A Creative Career Decoded

If you enjoy writing quality code, dreaming up ways to make life better through technology, and have an eye for detail, software development is a great area to make a career. Developers who can design, test, and debug software will continue to be in demand as technology advances. The only catch for this career is you have to be willing to evolve with technology.