Who is a Software Engineer?

Posted by kcluniesa on July 7, 2020

Ever wonder how you got here? Well, one day you realized you had the skills it takes to be a software engineer. You knew you had the problem solving, attention to detail, continual learning, communication, and teamwork skills. These are what are known as soft skills. You were born with these and practice them without even thinking about it.

Software engineering involves working with a team to build something from nothing and you can’t do this without clear and open communication. You have to be able to listen to requirements, adapt to change and support others when needed. You should be able to pay attention to every detail, and think about how each change effects the broader picture. Since you’re going to problem solve all day, be prepared to think critically and develop solutions.

What about technical skills? Your job is to understand programming languages and the development process. You must know at least one programming language used in software development. Some hot languages to choose from are Java, Python and Ruby. Take you pick according to jobs you are interested in, your role may determine what language you need to know.

Now after writing code, comes the fun part - testing. You’ll need to know how to test your code to make sure it functions the way you intended. You’ll need to know how to write tests and fix bugs in your code.

One concept that is popular is object-oriented design. Object-oriented programming is a type of software design where programmers define the data type of a data structure, and functions that can be applied to the data structure.You should know how this design system works including the four principles of object-oriented programming which are encapsulation, abstraction, inheritance, and polymorphism.

This brings us to algorithms. An algorithm is a sequence of computer-implementable instructions, typically to solve a class of problems or to perform a computation. You should understand basic algorithms such as different methods of sorting and searching through data sets. You should also understand different formats of storing data, and how applications process data.

Next there are web services and APIs. A web service is a standardized medium to generate communication between the client and server applications on the web, and it’s considered a software module that is designed to perform a certain set of tasks. An application programming interface (API) is a computing interface which defines interactions between multiple software middlemen. It defines the kinds of calls or requests that can be made, how to make them, and the data formats that should be used. As a software engineer, you must understand these concepts to build tools that interact with web-based services, tools, and databases to retrieve and update data.

Let’s paint the picture. Software engineers create, maintain, and manage software applications. They can be responsible for anything from creating and designing an application’s user interface to analyzing an organization’s needs and ensure requirements are met. So your day, should you choose it, could be one filled with tasks such as implementing new features, learning new languages and frameworks, maintain existing code, resolve bugs, refactoring code, testing code, and writing documentation. The possibilities are endless!