Hey folks, I’m Himath Perera, a full-stack software engineer at Surge Global – and here’s how I became a software engineer without any prior engineering experience. (And mistakes I made along the way and how you can avoid them!)
After completing my GCE Advanced Level examinations, the last year of secondary school in Sri Lanka, I had a dream to start my career as a Software Engineer. To take the first step in my journey, I enrolled in SLIIT Academy to begin my computer science degree in 2018.
The first lesson in my degree program was about the basic concepts of coding, where we learned how to code in the C programming language. The variables and concept of arrays was difficult for me to grasp, as a beginner in the field. The other subjects were not difficult, and I completed my first semester with a general pass for ‘Introduction to programming’. My second semester explored more advanced topics, and was focused on data structures and OOP (Object Oriented Programming). The subject material was challenging to understand at first, as the lecturers started implementations using the Java programming language which I was not very familiar with. The experience made me feel a little overwhelmed!
I was about to drop out of my degree program since I had been starting to feel frustrated, however, there was one small hope that kept me going — I started from scratch.
In a nutshell, my experience in learning one programming language paved the way for easy learning of any framework, library, or other programming languages.
After overcoming the struggle I had with programming, I moved on to studying different frameworks and working with different languages. These included:
- NodeJS and Express Framework
- VueJS and Quasar Framework
- PHP and CodeIgniter
- Java as a service
- Rest API and GraphQl
- No SQL and SQL databases
- GIT (quick tip: learning git commands is a must as a beginner!)
During my time as an intern, I worked with PHP, GraphQl, GIT, and VueJS while gaining a lot of exposure to CI/CD (Continuous Integration and Continuous Deployment) pipelines and experience with tight deadlines on projects.
No one can guarantee a certain programming language will keep its popularity over time — the tech industry —including coding and programming as a whole— is always evolving. Career opportunities might change with new tech stacks, so isolating yourself in a certain tech stack may not be an enjoyable experience in the long run. It’s important to always explore new technologies and try to get as much exposure as possible.
I really enjoy sharing my story with the community. I’m still in the process of learning programming, and it’s a consistent journey of learning — I’m always open to suggestions to improve!
If you feel that your progress with programming is stuck for a long time, try going back to the basics and figure out if you have mastered the language or core concepts of programming. If not, it’s worth investing some time in the basic concepts.