Study Software Engineering

A reader wrote to me: “In the article “The demand for IT jobs” you wrote that software engineering is the number one job, has very good salary, and is in high demand all over the world. What do I need to become a successful software engineer? Please advise.”

Answer: After review all jobs in the market for college students, CNN Money Magazine selected “Software Engineering” as the number one job in the U.S. In order to obtain this position, you need a college degree. It is important to understand that software engineering is not the same as programming. Every software engineer knows how to program, but not every programmer is a software engineer. The difference is that software engineering is trained in teamwork effort, with roles and responsibilities defined for each team members. Programming is mainly an individual effort to write code according to specific instructions. A programmer may work in a team but he is not trained to do any other roles as his job is just write code. A software engineer receives training in managing project, working with customers, obtaining requirements, develop project schedule, planning release dates, interact between team members responsible for various components, negotiate budget, efforts, project scope, resources, measure project performance and more. By having a broader knowledge, software engineer can advance in the career to different specialized areas such as requirements engineering, business analysis, project management, system architecture, software designer etc.

To succeed in software engineering you must start with programming. Contradict to a belief that programming is difficult, it is not. Many people can learn a programming in about few weeks. Of course to be better programmer, they need practice. The more practices the better. If you have not yet learned programming, you can go to the web, find a tutorial then learn how to program. It is easier than you think. To understand the coding logic and structure, you need certain math skills. Not a lot of complex math but basic math such as arithmetic, calculus is sufficient to start.

There are many specialized field in software engineering so you can focus on what you want to do: If you like computer game and want to work in that industry as a game designer, you need to learn more about embedded software. If you want to work for software companies such as IBM, Intel, Microsoft, Google, etc., then you need to learn more programming languages (C, C++, Java to start), web applications and platforms. If you are looking to work in a business area, building business applications such as Enterprise Resource Planning (ERP), Supply Chain Management (SCM) or Customer Relation Management (CRM) or provide services such as Cloud Computing than consider taking additional class in Finance, Business and accounting. You may choose to enroll in a degree in ISM (Information Systems Management) which already has many business courses. This degree focuses more on management and business skills and less on technical.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University