Software Engineering

General Overview

Computer science and software engineering is the design, application and of software and computers within an engineering environment. Computer scientists specialise in the theory of computation and the design of computational systems and software engineers develop computer software through the application of technical knowledge and scientific methods. Computer science has theoretical and practical disciplines. Some theory can be highly abstract whilst other disciplines emphasise real world applications such as computer graphics.  Computer scientists can work on programming language theory or the its use in complex systems. Human-computer interaction is another important area in transferring the theory to practical applications making computer systems more useful and accessible.

 

Software engineers or programmers use programming languages such as Javascript and C++ and apply engineering principles to write new computer software. A software engineer must design software based on end users needs and may often analyses existing software to modify to meet these. The speed and processing power of computers results in computer limitations but hardware is becoming cheaper meaning software systems are being developed more. Today software in many products can have a greater impact on the end user experience than hardware which is often comparable.

 

Javascript being programmed with the intention of creating a new piece of computer software. Source: www.harvard.edu

Artificial Intelligence (AI) is being widely developed at the moment in which computer systems learn and adapt from their surroundings, developing intelligence. Other exciting areas of research and development within computer science and software engineering today include data mining, computational biology, high performance computing, networks and security.

 

Day to day computer scientists and software engineers will spend a large amount of time coding and will often work with other developers on projects. Some roles may require leading a team whilst others and so project management knowledge can be important.

 

It is a relatively new type of engineering and over the past 2 decades has seen some of the greatest developments and improvements in technology and engineering history including the internet and general computers. It has emerged as a discipline after the Second World War when powerful machines were produced to tackle more than just mathematical problems.

Required Knowledge

Skills and Expertise

  • Comprehensive knowledge of programming languages (Java, Python, Javascript, C, C#, Visual Basic, C++, HTML, MATLAB)

  • Strong level of mathematics knowledge

  • Problem solving

  • Knowledge of fundamental engineering principles in particular electronics engineering

  • Project Management

  • Good communication skills and interaction with the customer to ensure the desired output is achieved.

 

Software Understanding

  • Programming Languages (Python, Notepad++, Atom, Textmate etc.)

Example Jobs
  • Software developer

  • Data analyst

  • IT consultant

  • Games developer

  • Web designer

Institutions

UK: British Computing Society/Chartered Institute for IT (BCS)

USA: Institute of Electrical and Electronics Engineers (IEEE)

© Engineering First Principles Limited.

All Rights Reserved.

  • Facebook Social Icon
  • Twitter Social Icon