Photo by ThisIsEngineering from Pexels

Specialization Clarification 1.0— Software Engineering

Amith Mihiranga
4 min readAug 4, 2020

--

I warmly welcome you all to my second medium post. This will be the first post of a series of posts that I do to clarify specializations of Information Technology degrees to undergraduate students and whoever is searching for some information to make decision choosing a specialization. My motivation behind writing this post is, I have dealt with this problem in my junior years. There was no one for me to give advice on this matter and I had to go through a lot of second-guessing myself due to the lack of understanding and information about the specializations. I have seen some of my friends in junior batches also facing this problem. Hence I thought to write this series to share my knowledge as much as possible so this will help someone even in a tiny way.

I am currently a 3rd-year 2nd-semester Software Engineering undergraduate at Sri Lanka Institute of Information Technology (SLIIT). Also, I have recently completed my 9 months internship as an Intern Software Engineer in Infor Sri Lanka. Since I am a doing Software Engineering Specialization I will try my best to clarify on Software Engineering specialization in the first post and in next post I will try to clarify other specializations as much as possible to my understanding. This posts will be mainly focused on students who are studying at my university but I hope this will be helpful to other students as well.

What is Software Engineering? To answer this let’s see what a Software Engineer do. Software Engineers are the people who engineer the software. What is Engineering? 🤔 We can consider engineering as building something with a structured way so that it will be built in a great way to provide the functionality it provides to the best as possible. I don’t want to bother you all with technical words here. I just need to clarify these words as simple as I could. Basically Software Engineering is the process of building software, so that will provide the best value possible. This is not about making a simple todo app. When large scale systems are being built there is a lot of complexity in it. Software Engineers are the people who engineer these systems so it can be built in an effective way.

Most people think Software Engineer is a person who codes all-day sitting in front of a computer screen. That’s not the way. Yeah, coding will be the main thing you do, but there’s more to do as a Software Engineer. Software Engineer has to decide how the system will be built, what technologies should be used, how to design the system. Software Engineer will have work closely with Product Managers and Business Analysts to make the necessary decisions to develop a relevant feature of a system. Coding will be the last part. Software Engineer has to involve in the process of designing the software or a function in the software. So that’s what you will be going to learn if you choose Software Engineering as your specialization. Don’t get the idea that you will be doing programming throughout your semester. For me I love programming, in early years I thought if I choose Software Engineering I will be programming all day. But after studying about the specializations I realized that programming is just a part.

For an example in my internship when I was assigned some feature to work on first I had to understand the requirements and then created an implementation plan or design the implementation. Then I had to arrange a meeting with other engineers in the team to present my implementation design and get their inputs and improve the design and do the necessary changes. After only that I had to program the implementation. So I think you can understand that there’s more you to do as a Software Engineer.

So in Software Engineering specialization what you will be going to learn is the skills you need to be a skilful Software Engineer. You will be going to learn about different technologies, different design patterns, how to architect a system, what are the ways that a system can be design etc. You will be going to learn to program as well, but as again and again I emphasize that will not the only thing. The reason I am emphasizing this is I feel like when most of the students heard the word Software Engineering they only think about programming. You will be going to learn about how a system should be tested, different testing methods, how to gather requirements, how to design databases, what are the different databases you can use, how to choose the best database for your requirements like that.

If you want to be work as a Software Engineer or you would like to learn how to build software systems in a great way you should choose Software Engineering. Just keep in mind that you will not be just coding, you will have a learn a lot more just than coding. If you are a die-hard lover programmer who chooses Software Engineering be ready for other things as well. Don’t get me wrong here, that above mentioned all the skills will be a great help for you all to be a great developer.

So I hope you all have learned something from this post. If someone expands their knowledge even a bit from this post it’s a great deal to me.

I am not a great writer actually, but I am writing these posts to share my knowledge as much as possible to the best of my ability. If there are any critiques or mistakes please do point it out without any hesitation. 😉

If anyone needs more help please contact me for anything. I will be delighted to help you out. Cheers :)

--

--