Software Engineering part 2

According to a new 2014 report, Software Engineering is one of the best jobs in the world today. Software Engineers get high pay, good benefits for just four years of college as compare with Medical doctors who need eight years of schooling but making only a few thousand dollars more.

Software engineer is a broad term that describes people who develop and maintenance software. This includes positions such as programmers, testers, developers, designers, architects, analysts etc. Today software is everywhere and control many things from office computers to factory’s machines, from websites to smartphones so the demand for skilled software engineers is high in every country and the number of college students enrolling in software fields begin to increase but the trend in software is also changing from generalization toward specialization.

An industry analyst explained: “It used to be that software is about writing code but as the needs increase, software is getting larger, more complex so writing code is not enough. Software Engineers must have skills in the entire development lifecycle, from requirements to maintenance, and specialize in certain area or technology. Today the number of technologies is changing quickly so it is no longer possible to be a programmer to write code for all types of software but you must specializing in specific area. You can either be a web developer, a mobile app developer, embedded software developer, or enterprise application developer but not all because these areas require more in depth knowledge in specific technology. Today college students must focus on specific area or technology to build a deeper knowledge rather than be a generalist because the jobs are changing, the industry is changing and the needs are changing too. Few years ago if you know one programming language, you could easily get a job but today you must specialize in a particular area. For example knowing Java programming is not enough but you must also know specific platforms such as Android, IOS, or Window to work in mobile app development. You need to know Objective C and IOS to work in Apple mobile application; or JavaScript and PHP to work in Web development area etc. It means university must now provide trainings in several areas rather than just teach general Programming language.”

Today cloud computing has change Information technology dramatically as companies are moving everything to the cloud. Instead of buying hardware, software, establish data center which add to operation costs, companies can let cloud computing provider to do all the technical works and rent services with relatively low per usage. Therefore generic software works such as general programming, installing software, updating software and system maintenance are no longer needed because they can be done by Cloud computing provider. It also means small companies can get the same level of service in the cloud as big companies so they can compete quickly and fairly. It also means either workers will have to be specialized in particular area or there will be fewer jobs for them. The key issue now is getting software to customers as quickly as possible so beside technical skills, software engineers must be able to work well with users to understand their needs. By having soft skills, software engineers can develop the right software that users will use. This also means that university’s training must also include soft skills such as Communication, presentation, listening, collaboration, teamwork, Leadership and Time management etc. By having these soft skills, software engineers will make sure that what customer’s expression of need is what actually gets built.


  • Blogs of Prof. John Vu, Carnegie Mellon University