What I wish I knew when I was studying software engineering

13 July 2019
Cover image
Mostafa Bleu

I was fortunate to study computer science at ENSIAS (Ecole Nationale Supérieure d'Informatique et d'Analyse des Systèmes) with a major in software engineering, we were given lectures about a variety of concepts ranging from computer architecture, algorithms, data structures and object-oriented programming to neural networks and project management, we also had to work on a lot of projects during those three years. At the end of the third year, we were required to get a 6 months internship.

1. Learn outside the classroom

We studied the foundations, the important concepts and used some tools during workshops to understand those concepts. No denial those concepts are important they are the foundation upon which you are set to build your career. Programming wise we studied mostly low-level languages but that's not enough, If you want to be building and shipping products, or if you wish to be different from all the other students and seeking employment for your skills, not your diploma you have to learn some modern concepts and a higher language. This is a list of things that you can start exploring :

  • Version control : Git
  • A framework: Just pick one, anyone, frameworks are always changing
  • Unit testing
  • Continuous Integration

2. Take your curricular projects seriously

I think in all Moroccan engineering schools you will be asked to work on some projects, and you will be required to write a report and give a presentation. My advice to you is to really work on those project rather than just look for a zip file containing the results of someone else from the previous year's class. It doesn't have to be perfect, it doesn't have to be 100% finished but you should get your hands dirty. You should go through the struggle and frustration of making the database connection work... the struggle is part of the learning.

3. Build something

Okay so now you are taking your curricular projects seriously, you know how to search on the internet to find an explanation to some random exception, you got used to reading framework documentation. It's time to build something, and ship it. You can build a clone of your favorite app, or if you want to step-it-up use your own idea, it doesn't have to be perfect ... just focus on building it, build the backend, build the UI and figure out how to deploy it or if it's an android app publish it to the play store. You don't need to have a credit card with international online payment, there are plenty of free services out there that you can use, check out this post on how to deploy a web application for free.

4. Have an online presence

It's important to have a blog, It doesn't need to be "Good" it just needs to exist, it will serve as a resume and portfolio that you can leverage to impress future bosses.

That's it. I hope this was helpful.