The Single Most Important Piece Of Software Developer Career Advice

Michael Hoffman A graduate of the University of California at Santa Barbara and the Santa Barbara College of Law, Michael Hoffman began his professional career as an attorney in Los Angeles. After a brief period in the Hollywood film production business, Michael now works as a freelance writer while he pursues his dream of becoming a published fiction author and screenwriter. Expert Sources and Partners Head CS Division/EECS Department Northwestern University Co-Founder and Chief Scientific Advisor Narrative Science, Inc. Joseph A. Konstan Distinguished McKnight University Professor Department of Computer Science and Engineering University of Minnesota Ed Lazowska Bill & Melinda Gates Chair in Computer Science & Engineering University of Washington Ashley Morris B.S. Computer Science (2014) University of Arkansas, Little Rock Associate Software Engineer Acxiom Corporation Tim Lindquist Professor and Software Engineering Programs Chair School of Computing, Informatics, and Decision Systems Engineering Arizona State University Bruce Porter Chairman, Department of Computer Sciences University of Texas at Austin Amr Sabry Professor and Chair of Computer Science School of Informatics and Computing Indiana University Bloomington Lakshmi Subramanian Associate Professor, Computer Science Department Courant Institute of Mathematical Sciences New York University Kenji Yoshigoe PhD Associate Professor and Chair Department of Computer Science University of Arkansas, Little Rock Introduction “The single best piece of advice I would give a student just entering college would be to commit yourself to learn both the practical and theoretical sides of computer science. This commitment makes you marketable in industry and/or prepares you for advanced study.” Kenji Yoshigoe The first 60 years of modern computers focused on computing itself, with the last 20 years or so centered on computers as tools for communication. These two “chapters” in computing history have led to entirely new industries and technologies, as well as the fast and furious evolution of computer science as a discipline. Today, it is almost impossible to find an avenue of commerce or professional endeavor that has not been affected by the digital revolution. For professionals in the field, the big questions are: What is the next great chapter in computer science and how can I be a part of it? As the industry continues to grow and evolve, so will competition for the most satisfying and highest-paying jobs. It is therefore imperative that anyone considering a career in computer science stays up-to-date with current and future industry trends. In this in-depth guide, you’ll find insightful information and useful statistics on specific computer science areas that are in-demand now as well as a glimpse into what will be trending in the years ahead. Also included are helpful hints and advice from experts in the field. Planning is the key to professional success, and the earlier potential computer scientists begin that planning, the better. CS Careers on the Rise “Ideally, students should follow their passion. Maybe that would take them to autonomous vehicles or to computer security. If they haven’t found their passion, I would recommend they pursue a solid grounding in computer systems and software engineering. That will open a lot of doors.” Bruce Porter One of the best sources for career information is the U.S. Department of Labor’s Bureau of Labor Statistics (BLS). According to BLS data, 74 percent of new STEM (science, technology, engineering and math) jobs through 2022 will be in computing. That’s a pretty general statement, however, and does not apply evenly across the broad landscape of computer science occupations. For example, the BLS predicts that nearly a third of all of those new jobs will be created in the computer science subfield of software development. In fact, the BLS breaks down the computer science field into seven distinct subfields and provides percentage estimates for jobs (in relation to all new STEM jobs) in each as follows: Software Development: 7% Nevertheless, no matter what specific area of interest a computer scientist prefers, the job market going forward looks promising when compared to employment statistics across the entire job spectrum. The BLS predicts an 18 percent job growth in computer-related occupations compared to 11 percent for all occupations in total. Below is a list of specific CS-related careers that are on the rise to provide an even clearer picture of the job market that awaits computer science college students upon graduation. Again, these statistics are provided by the BLS and relate to predicted job growth through 2022. High School Computer Science Teacher Salary range: $37,230 - $86,720 Growth rate 6% Computer science teachers prepare lesson plans and practical exercises to instruct students in computing theories as well as the use of computer software applications. High school teachers work closely not only with students but also fellow teachers and school administrators. Employment at public schools requires studies beyond a bachelor’s degree: depending on the state, teachers may need post-graduate training resulting in a license or a single subject credential to teach computer science at the secondary level. Computer Programmer Growth rate 8% Coders use their familiarity with programming languages to transform software designs into computer-readable instructions. For some employers, the level of education matters less than practical skill and specialized knowledge. Programming talent is sought after in a range of industries, including software publishing, health care, and insurance. Programmers work alone or in teams, often communicating electronically with remote colleagues. Post-Secondary Vocational Education Instructor Growth rate 12% Working in public and private institutions, these educators provide career training at a level above high school, but below bachelor’s degree studies. Some occupational education instructors have professional experience in addition to a two-year degree, for example, an A.S. in computer system engineering technology. Qualifications for teachers vary by subject, school, and state. Network and Computer Systems Administrators Salary range: $45,270 - $117,150 Growth rate 12% Network administrators manage communications networks, while system administrators keep an organization’s IT infrastructure running smoothly and securely. Sys admins are in charge of equipment ranging from servers to desktop workstations to mobile devices. Admins work with IT managers and staff, computer network architects and other employees. Some companies outsource data storage networks to cloud service providers, but admins are still needed in broad-ranging industries. In addition to computer science, students interested in this occupation can take subjects like computer engineering or electrical engineering, computer networking and systems design. Post-Secondary Computer Science Teacher Growth rate 13% Post-secondary computer science instructors develop class plans and materials to teach the theoretical and practical applications of this discipline. Additional responsibilities often include research and academic publishing. Most of these teachers work at colleges and universities, with a smaller number employed at community colleges and trade schools. College professors regularly interact with students, teaching assistants, department colleagues and administrators. Computer & Information Systems Manager Growth rate 15% Computer science leadership positions range from top-level executives to technical supervisors who oversee day-to-day work in the trenches. Entry-level managers may provide guidance for teams of hardware engineers or software developers, while project managers work with technical and non-technical staff. Chief Technology Officers (CTOs) manage the computing infrastructure for giant corporations. A bachelor’s degree can lay the groundwork for managerial ambitions, along with experience. However, students should consider an MBA in information systems to truly stand out from the rest of the applicant field. Computer Network Architect Growth rate 15% Network engineers and architects create blueprints for data communication networks, and they design patches for existing infrastructure in response to security threats. Network architects analyze usage to predict organizational needs, often working with managers and CTOs. Given the extensive knowledge involved, employers require at least a bachelor’s degree and may prefer graduate studies in business information systems. Database Administrator Growth rate 15% Database administrators (DBAs) manage vast amounts of data collected in different industries, such as banking transactions, retail chains’ customer records or medical clinics’ patient insurance information. To maintain database performance and security, DBAs rely on their study of information assurance and data warehousing. Some work with management and IT staff to develop new databases. As organizations trend toward “big dataâ€? they may prefer DBAs with a specialized master’s degree, according to the BLS. Social Science Research Assistant Growth rate 15% Research assistants harness their knowledge of computer science and statistics to make sense of huge amounts of information. From surveys or lab projects, they gather, analyze and manage scientific data. They work with social scientists in research and development settings or academic environments, as paid staff rather than student assistants. “Computation is becoming integral to many disciplines ranging from biology, mathematics and psychology, to music and the arts. A great way to succeed in the long run is to build a strong mathematical background, develop a strong understanding of data structures and algorithms and the essentials of programming languages. And have a passion for applying these items in some domain.” Amr Sabry Computer & Information Research Scientist Growth rate 15% In fields such as business, medicine and science, computer and information research scientists use computing to analyze and solve problems. They improve on current technologies or develop innovative computer algorithms to address specific needs. Many work for the government, hardware and software design firms, academic institutions or R&D labs, where they team up with other experts in their area of research. Data Mining Specialist Growth rate 15% Working with massive datasets, these information scientists leverage their academic background in computational statistics. To meet requests from management, they design algorithms and software for data analysis in specific environments. They propose data-supported strategies in areas like public policy, science, business intelligence and medical information management. Geoscientist Growth rate 16% Geoscience, the study of the earth’s physical elements, uses advanced technology like computer modeling, data analysis and digital mapping. Geoscientists depend on specialized software packages as they perform fieldwork and lab research, and computer science grads who also study geology can aim for this profession. Working in industries such as government or oil and gas extraction, these scientists share their research with clients and coworkers. Computer Support Specialist Growth rate 17% Support specialists offer high-tech trouble-shooting in a range of different environments, from government agencies to industries like telecommunications and computer manufacturing. User support specialists provide customer service for the public, often from call centers, or work in a company’s information technology (IT) department helping other employees. Computer network support specialists focus on issues with data and communications networks. Web Developer Growth rate 20% Web developers build Internet sites for online retail, enterprise operations, non-profit groups, social media and more. Websites serve as e-business cards for partners and clients and digital storefronts for customers. Using tools such as HTML, XML, JavaScript and Cascading Style Sheets, developers create the code underlying a website, considering visual appearance, site architecture, usability and performance. Web designers work with management, sales, marketing, public relations and other departments. Systems Software Developer Growth rate 20% Systems software designers generally find employment with computer and electronics manufacturers, working on teams to develop new technology. The products in development include operating systems for uses ranging from computers to smartphones to cars. These developers may also invent a system’s interface, such as a graphical user interface that permits a human to control a computer. Applications Software Developer Growth rate 23% Software developers invent applications targeting specific purposes, from online marketplaces to entertainment apps for mobile devices. Applications range from the small scale to the enormous, as in databases constructed to meet the needs of specific companies. Some developers need not only in-depth familiarity with programming languages but also knowledge of an industry and its operations, for example, financial transactions or health informatics. Computer Systems Analyst Growth rate 25% Computer systems analysis zeroes in on the information technology (IT) used by a specific organization. Analysts take into account factors such as user requirements, workflow and IT capabilities. After evaluating the existing technical infrastructure, analysts suggest efficiencies and improvements. This occupation requires an understanding of a specific field like banking or health information management. Analysts work with managers and IT departments, and they may also train employees on new systems. Operations Research Analyst Growth rate 27% Operations research analysts help executives and management solve problems and create data-driven strategies in fields like finance, government and manufacturing logistics. They often work with a multidisciplinary team of industry specialists. Analysts take advantage of quantitative methods, statistical software programs and data modeling packages to monitor an organization’s processes and find potential improvements. Many applicants for this specialty have a master’s degree in a subject such as computer science. Market Research Analyst Growth rate 32% Market research analysts use sophisticated statistical methods to advise companies on marketing and business plans. They evaluate data on consumer trends and competitor strategies to devise proposals for introducing and pricing new products. Analysts share ideas with clients and managers, and they may also gather opinions from the public. A computer science degree is common in this data-focused field, and a master’s degree is often preferable for higher-level positions. Information Security Analyst Growth rate 37% In a networked world, these professionals play an important role in protecting organizations. They examine existing IT systems and propose security measures, including fixes for vulnerabilities. In industries like finance and cloud computing services, they serve as in-house staff or consultants. Security analysts cooperate with network administrators and computer systems analysts, and they often report directly to CTOs or IT managers. Due to the wide-ranging expertise needed, some employers opt for candidates with graduate degrees. A.I. and Beyond:The Future of Computer Science “The biggest thing about computer science is that it’s going to continue changing rapidly, so I think learning the basics is important, but you’re going to have to assume that the technical base you are working with when developing new technologies in the future is not going to be the same as the one you are using now.” Larry Birnbaum The field of computer science is constantly evolving and some of today’s most in-demand careers didn’t even exist a decade ago. Today, it’s all about programming and cyber security, but will that still be the case five or ten years from now? The following list of trends in computer science has been compiled after speaking with CS experts in both the academic and business worlds. They represent a broad consensus of opinions and provide a good overview of where the field is potentially headed. While the careers listed below are intended to help CS professionals explore promising and cutting edge job options, it is important to note that several of our experts warned against depending too heavily on trends when charting out your CS education and career path. The future is unknown, and that is particularly true when it comes to the rapidly morphing digital world. Therefore, while our experts speculate that the following areas will be in-demand in the future, they also emphasize the importance of a strong educational foundation in computer science fundamentals, especially at the undergraduate level. A host of websites publish college rankings that can help students find both quality and affordable computer science degrees in their area of interest. User Interface Design Futuristic career Human-computer interaction (HCI) professionals and UI median annual salaries come in at an estimated $61,000 per year, according to However, salaries can increase rather significantly with education and experience. For example, user interface engineers, a step above UI designers, earn a reported $76,000 annually. Companies hiring HCI graduates include Electronic Arts, Apple, Microsoft and a variety of computer game designers and manufacturers. Any company involved in the touch screen, application interface, and video game markets is also on the lookout for HCI-skilled workers. HCI-related job titles include: iOS developer Futuristic career As you might expect, software engineers and computer programmers are in demand by businesses and other organizations of every type and size, and not just those that fit strictly under the heading of computer technology. The top employers for software developers, however, are tech-focused companies with well-recognized names such as Google, Facebook, Twitter, Apple, Oracle and Microsoft, as well as many that may be less familiar, like Sparc, Kony and Zurple. Remember, though, there are probably thousands of potential employers for skilled software developers. The range of titles for software development professionals is as broad as the field itself. Common titles that job seekers may encounter: Software developer Application architecture and development consultant Other more specific titles include computer game developer, systems programmer, e-business software developer, and dozens of others. According to BLS projections, job growth in the field should increase by 22 percent between 2012 and 2022, much faster than the average for all occupations. National median annual wages for software developers, systems software in May 2013 were slightly over $100,000, while software developers, applications earned over $92,000 during the same period. Cloud Computing Futuristic career Although specific statistics regarding remote and cloud computing job opportunities are difficult to come by, a look at the numbers related to computer science and information technology employment may provide a good idea of where cloud computing is heading. National median annual salaries can be expected to fall within the $70,000 to $90,000 range with job growth between 20 and 25 percent over the coming decade, according to the BLS. Top employers for remote and cloud computing professionals include well known companies like Google, Amazon, AT&T and Microsoft, as well as less recognized names like SoftLayer, Rackspace and Job titles for remote computing specialists predictably have the word “cloudâ€? in them and include the following: Cloud software engineer Futuristic career Computer security and privacy issues arise in every corner of the digital world and cyber attacks are becoming more and more commonplace. As a result, information security professionals can be found just about everywhere. Government at all levels, businesses, and non-profit organizations need expert advice in securing their data resources. Top employers in computer security include Cisco Systems, BAE Systems PLC, Computer Sciences Corporation, Intel, Lockheed Martin, Symantec, Raytheon, Hewlett-Packard and the National Security Administration. According to the BLS, salary potential and the job outlook for the computer security field is positive. May 2013 statistics indicate a national median annual salary for information security analysts of $88,590, with some industry sectors (such as finance and insurance) trending higher. Job outlook predictions in the field are strong, with the BLS forecasting 37 percent growth between 2012 and 2022. Data Science and Big Data Futuristic career There is a rapidly growing demand for trained data scientists across the employment spectrum. Industries hiring data scientists include business and finance, e-commerce, government, healthcare, telecommunications and social networking. Some of the companies currently hiring data science professionals include Facebook, PayPal, Google, Trulia, Autotegrity, Intuit, McGraw-Hill and Capital One. Job titles in the data science field often contain the word “analytics,â€? such as chief analytics officer, director of marketing analytics and chief scientist-predictive analytics applications. Given the newness of the field, salary figures specific to data science can be hard to come by. With the current high demand for data science professionals, graduates with a bachelor’s degree in data science may attract offers at the upper levels of the computer science field. National median annual salaries for computer scientists are currently in the neighborhood of $80,000 to $90,000. Master’s and doctorate degree holders may do even better. “Machine learning, data mining, knowledge extraction from data as a field clearly is making huge advances. There’s a huge demand for students who want to learn it. You see this a lot in the biomedical space, but there is also demand from folks in industry. There was a rush where people gathered immense amounts of data and we’re just beginning to catch up with trying to figure out what you can do with it.” Joseph Konstan Robotics Futuristic career The salary projections and job outlook for robotics engineers depends on how you approach the profession. For instance, the BLS includes robotics engineers under the broader heading of mechanical engineers. From that perspective, one might conclude that job growth for robotics professionals will be sluggish over coming decade with just a 5 percent increase. Other industry experts, however, predict healthier job prospects in the field. Estimated salaries for robotic engineers also fall somewhere between median annual salaries for mechanical engineers and computer scientists ($80,000 to $90,000). Businesses hiring robotics-skilled workers include major manufacturers in the auto and aeronautics industries, as well companies like Dyson, Elbit Systems, Autonomous Solutions, Amazon, 3D Robotics, Bosch and Caterpillar. Job titles in the field include: Controls engineer Futuristic career Jobs in the artificial intelligence field often come with titles that don’t explicitly indicate an AI specialization (like software developer or software engineer), so make sure to read the job description carefully. Others do indicate an AI connection, such as user experience designer, UI programmer and android engineer. Top employers for AI professionals include the usual suspects like Microsoft, Apple and just about any computer game company you can think of. Graduates may also want to contact the companies listed above under in this guide’s robotics section. There’s one other big employer of AI workers: the U.S. government. The BLS includes AI professionals under the broader heading of computer and information research scientists, for whom job growth estimates come in at 15 percent between 2012 and 2022, slightly under estimates for computer occupations in general, but substantially higher than those for all occupations. National median annual salary estimates for the same group are encouraging at $102,000 for 2012 significantly better than for all computer occupations combined ($76,270). Choosing a CS Specialty or Subfield “We find that a large number of our students, especially the better students, pick up jobs or internships when they’re qualified, which generally means in their junior or senior year. So they’ve already started taking courses that will help them out in terms of the job.” Tim Lindquist It is easy to see that the computer science field has become too broad to easily define. It has become so fully integrated into every facet of human culture that it is almost impossible to separate it out from any other activities. This is good news for those interested in computer science as a profession. What it means is that whatever talents an individual possesses, or wherever a person’s interests lie, there is the potential for building a solid and lucrative career. Which raises an enticing but nevertheless difficult question that must be answered: With so many options, how does the prospective computer scientist determine which one best suits his or her unique talents and interests? Below are some of the most important factors that CS students and graduates should think about: Lifestyle It’s easy to get lost in trying to define the lifestyle you want. The first problem is that you have to know what you want, and that’s not an easy thing to do, especially when you are young and getting your first taste of independence. But it is important to give it some serious thought since career and lifestyle are so inextricably connected. Consider elements such as family, social interests, environment (big city vs. small town, for example), stress, workload, etc. Remember, once established, it can be difficult to change a career’s direction or focus. Don’t make the mistake in believing that a job’s effect on lifestyle will change as the years go by. Technical skills While many skills are necessary for all CS specializations (critical thinking and math, to name two), there are plenty of others that are much more subject oriented. For example, software engineers need lots of code-oriented skills such as working effectively with existing code (internal infrastructure, third-party libraries, etc.) and the ability to code in multiple languages. Robotics engineers, on the other hand, will find the need for skills such as engineering design processes, materials analysis techniques, the ability to work with CAD systems, as well as the ability read and create schematics and blueprints. The key to developing the right skills is determining the ones most needed for each specialization under consideration and seeking out the classes and training required to develop those skills. In doing so, most students quickly discover which ones are easiest to obtain and are the most interesting to them. Industry trends After carefully examining all of the above factors, it’s time think about current and future trends in the computer science world. This may sound contradictory to discussions in other parts of this guide, but it really isn’t. Yes, it’s true that trends in a rapidly growing and transforming field can change at a moment’s notice, and yes, it’s wise to gain a solid foundational education in the CS basics. But at some point all computer scientists have to focus on a specialized area of the profession, and knowing where the jobs are now and where they likely will (and will not) be in the future is important. Besides, it never hurts to get a leg up on the inevitable competition. Salary Finally, let’s not forget about financial stability. On the whole, computer science-related occupations pay pretty well and, due to the increasing demand for skilled computer scientists, good salaries are bound to remain for years to come. Nevertheless, salaries within the CS field vary significantly from specialty to specialty, so it’s important to get a clear picture of the lifestyle one wants to create and its corresponding cost when choosing the right CS career. The Importance of Soft Skills Anyone out there in the job marketplace today, especially those looking for work in the tech world, are undoubtedly hearing the term “soft skills” a lot. But just what are soft skills exactly and why are they important? Soft skills can be defined as those personality or character traits that relate to a person’s emotional intelligence quotient (EQ) as opposed to his or her regular intelligence quotient (IQ), which is more closely associated with more traditional abilities, or “hard skills.” While they may have more to do with personality and character than hard skills, soft skills can be learned and developed, which is a good thing since more and more employers are placing greater and greater significance on them. They’re quickly learning that employees with well-developed soft skills are substantially more valuable than those without. According to experts, top soft skills for computer scientists include: Communication At the top of the list are communication skills, both oral and written. Employers in the tech market today bemoan the fact that many otherwise well-educated CS graduates lack even minimally acceptable competence in writing and speaking. The ability to listen and comprehend instructions and directions is equally important. The days in which techies were only required to sit alone in a room and design software are over. Digital technology is big business and tech companies have large work forces whose members must be able to create and design products as a team, and that requires real communications skills on all levels. Managerial and delegation skills Closely related to communication are managerial and delegation skills. All large corporations, and most small ones for that matter, develop multi-level management structures that require employees to take leadership positions and delegate work to effectively and efficiently complete projects. This requires professionals to understand the strengths and weaknesses of their colleagues and be able to trust them to carry out the tasks they are assigned. Self-reliance and initiative Teamwork is important, but just as important is the ability to overcome problems and complete work without being micro-managed. The worn-out terms “self-starter” and “thinking out of the box” fit here. Other important terms fit as well, including resourcefulness, creativity, enthusiasm, independence, critical thinking, problem solving, flexibility and adaptability, working well under pressure and a strong work ethic. Taken as a whole, these skills add up to an employee who can be trusted to produce quality work without someone constantly looking over his or her shoulder. Networking Everyone knows what networking is, but not everyone is good at doing it. Those who are, however, hold a distinct advantage over their colleagues with less developed social skills. Computer scientists who attend industry conventions, speak at career days and educational events, and represent themselves and their company at public and chartable functions will almost always reap benefits from their involvement, if not immediately, at sometime in the future. There are, of course, many other valuable soft skills such as self-confidence, effective time management, patience and even a sense of humor. All of these traits will make professionals more attractive to employers and more valuable as employees. Best of all, they can all be obtained with a bit of practice. CS Career Checklist With the industry booming, there are plenty of well-paying CS jobs available, even at some of the most prestigious and competitive companies. Graduates, however, cannot simply sit around and wait for the job offers to roll in. Well-qualified graduates are those who have been planning their careers throughout their college years by getting good grades, landing a top internship, and making the right connections. So how does a recent computer science grad set himself or herself apart from all the other well-qualified job seekers? The following are a few tips and recommendations for doing just that: Volunteer The best employers are good community members and like their employees to be the same. Volunteering time with a local charity or non-profit is the perfect way to show it. The work doesn’t have to relate to computer science, but it certainly helps. There are plenty of charitable organizations that need assistance of a technical nature, like designing or maintaining a website. What’s most important is that you participate in making your community a better place to live. Be an entrepreneur Starting a small business, developing a product of your own, or simply establishing a presence online with a website or blog is a great way for a job candidate to show initiative and enthusiasm for his or her chosen field. Employers love this. It’s a great way to check off several of the “soft skill” boxes on a corporate recruiter’s must-have list. Just remember, starting isn’t enough. There has to be follow-through or the would-be entrepreneur will come across as just that: a would-be. Speak a foreign language Top companies in the tech world have an international presence, so it’s no surprise that multi-lingual job candidates have it all over their one-language counterparts. Speaking one or more foreign languages will not only help in landing a great job, but it can also do wonders for professional advancement. Speak your native language (well) And write well, also. This goes back to the soft skills listed above. The ability to express oneself clearly and professionally is essential in any job. So, don’t take a pass on that college English Comp class or underestimate the value of a writing course. Review your online presence Privacy is a lot harder to come by these days, but it’s not gone entirely. And make no mistake, an employer seriously considering a job candidate is going to check out that person’s online presence before making an offer. Job seekers should beat them to the punch by finding out what a Google search will turn up on them and preparing for any potential damage before their interview. It’s also a very good idea to set your Facebook privacy setting to “friends only.” Recruiters are bound to check there, too. Resources Below is a list of computer science career-related websites for additional information and help with job hunting:

Commentaries "The Single Most Important Piece Of Software Developer Career Advice"