#4 ~ How To Become A Good Software Engineer

raditya gumay
3 min readApr 7, 2017

--

http://www.bolton-associates.co.uk/services/mi-analytics-programming/

It is a long journey until i know how to write a good code based on good architecture. I remember long time ago, when i was in university , i create a “sponge bob” using borland C++, its quite awesome for that day. Set a tuple x,y coordinate and set the paint.

The low requirements to become a good software engineer is have good knowledge about Data structure and Algorithm. Being known about data structure and algorithm is very necessary for software engineer, you will learn about sort algorithm, graph, vector. In many cases, when you try to apply for a job, you may has invite to a test which require to solve algorithm problem.

I also found many sites, which contains difference problem for that. For example: you should sum for sequence of five digits in collections of 10.000 numbers, (beginner level). ProjectEuler and HackerRank are sites which i often to visit to learn how to solve algorithm problem.

The topics should you learn to become a good software engineer are:
1. Data Structure and Algorithm
2. OOP
3. Design Pattern
4. SOLID Architecture
5. Other references (Reactive Programming, Functional Programming, etc)

Data Structure
This first chapter every software engineer should learn. Data structure mostly about -Data abstraction, Bags — Queue — Stacks, Sort Algorithm, List, Collection, Iterator, and so on. Anyway, i recommended you learn from Robert Sedgewick and Kevin Wayne from Princeton University, you can find from here.

Object Oriented Programming
This second chapter every software engineer should learn is OOP. OOP mostly about polymorphism, inheritance, composition, encapsulation. That’s it, only four major items should you deep about. I also recommended you to read book OOP “Object Oriented Programming in C# by Sander Rossel” download here. This book very awesome and clear about OOP, but Sander also explain about Design Pattern and SOLID Architecture.

Design Pattern
This is my favorite topic than others, i has implement MVC, MVP, and MVVP Design pattern as my journey in Programming. But in this case Design pattern is not only these three major items. Its also includes, Factory Pattern, Facade Pattern, Singleton Pattern, Proxy Pattern, and so on. I fully recommended you to learn these Design Pattern from
A book from Vaskaran Sarcar “A Tour with 23 Gang of Four Design Pattern in Java”

SOLID Architecture
SOLID Architecture is the biggest part for Software Architect. This part will fully separate you code for each responsibility. By definition, SOLID Architecture is:
S — Single Responsibility Principle
O — Open Close Principle
L — Liskov Substitution Principle
I — Interface Segregation Principle
D — Dependency Inversion Principle
All these thing is available from book by Robert C Martin “Agile, Principle, Practice, and Pattern in C#”. I highly recommend to read Robert C Martin book, that very clear explanation.

These all part, is my recommended to boots you knowledge in Software Engineer also Software Architecture. I will explain each section in later articles, please stay tune.

If you learned something, click the 💚 to help others find this article.

--

--