How to adequately prepare for the ALX software engineering program

Dr. Ehoneah Obed
6 min readMar 14, 2023

--

What I wish I knew before starting with the ALX Software Engineering program

Congratulations! You did it and can’t wait to start the ALX software engineering program. You can’t hide your excitement, but did you know that you are not alone in that?

I felt the same way when I received my congratulatory email, and I believe the same applies to the tens of thousands of people who have been admitted to the program.

I had just about 3 days until the start of the program when I got my congratulatory email. Unfortunately, I didn’t know anyone who was already in the program. I wish I did, because I had a lot of questions, and I love to always be very prepared for whatever I am getting into.

Unfortunately, that wasn’t the case for me when I started the ALX program. I believe that a lot of other people have found themselves in similar shoes, and I want to believe that you are probably one of us.

I am therefore writing this article to share with you what I wish I knew before starting the program and how you can prepare adequately for the start of the program.

If you have no idea about the course, check out my earlier article, where I shared some insider tips and tricks and gave an overview of the SWE program.

https://medium.com/@ehoneahobed/the-alx-software-engineering-program-insider-tips-and-tricks-96577a8cc11

Does the program train me to become a full-stack engineer

This is one question that a lot of new applicants ask me, so I decided to address it first.

Yes, the program will train you to become a full-stack engineer. The curriculum is divided into two main parts: foundations and specialization.

In the foundations, you will be trained to become a full-stack engineer. Then, for the specialization, you will choose between the Frontend and the Backend to learn some more specialized concepts and frameworks.

So essentially, the program trains you to become a full-stack engineer with a specialty in either Frontend or Backend.

What programming languages will I learn?

By the time you are done with the foundations, you would have learned the following programming languages:

  1. C language
  2. Python
  3. Javascript
  4. HTML
  5. CSS

With the above programming languages and all the other technologies that you will be taught, you will qualify as a full-stack engineer.

What other technologies will be taught?

Apart from the main programming languages mentioned earlier, you will be taught other frameworks, databases, DevOps technologies, and concepts.

Some of these include:

  • Flask (A python web framework)
  • Node js
  • Typescript
  • MySQL
  • React js
  • NoSQL
  • Redis
  • Nginx
  • Puppet
  • And many others

What do I need to start learning before the program starts

The first two weeks of the program are referred to as onboarding and you will be introduced to the program and the various platforms that students use. The two major platforms that you will be introduced to are slack and “the intranet”.

Slack is the primary platform for communication among everyone in the software engineering program. The intranet is the classroom platform where you are given daily tasks and resources to learn.

You will then be introduced to the concept of growth mindsets which is an important concept that you need to imbibe in order to successfully go through the program. During these lessons, you will be asked to pair up with some of your peers to complete various tasks.

You will then climax your onboarding with an introduction to the following:

  1. Some terminal-based text editors, primarily Vi and Emacs
  2. Git and GitHub
  3. Shell navigation and basics of Linux

After the onboarding, you enter the probation stage, where you are required to have a minimum average score of 80 marks within four weeks to stay in the program or otherwise get de-enrolled.

During the probation period, you will continue with the basics of Linux and delve a lot more into the usage of the shell. You will then end your probation with an introduction to C programming.

My recommendation for you is to start reading on:

  1. How to use editors like Vi and Emacs
  2. What Git and GitHub are and the importance of version control in software engineering
  3. Basic Linux commands

You aren’t expected to be a master of any of these before the start of the program but just get an idea about what they are before you start the program. The main reason why this is important is that the program is fast-paced and therefore prior knowledge of some of these things can buy you some time to master the concepts well.

You can also join our discord server where we host weekly sessions to address various challenges that members are having and also to make members accountable. https://techpady.com/discord

Resources that you can use to get started with

Vi and Emacs

We recently held a PLD session for Cohort 12 members of the ALX SE program and introduced them to terminal-based editors like Vim and Emacs. You can access the recording below:

https://youtu.be/oas2tO0Zkg4

Some other resources that will be helpful are:

Git and GitHub

Start by reading the article I wrote on Git and Github, where I explain the concepts in an easy-to-understand way, then follow that up with the live session that I held for a previous cohort in the ALX program.

https://blog.ehoneahobed.com/git-git-commands-github-explained-for-dummies

https://youtu.be/99hd3y8JFUQ

Shell Navigation and basic Linux commands

The chunk of the ALX software engineering program involves you working with Linux terminals. To begin with, if you are on a windows machine, you can start by installing the Windows Subsystem for Linux or do the learning with online-based Linux terminals.

Here is a PLD that we held for one of the recent ALX cohorts and you will find it very helpful when getting started with shell navigation.

https://youtu.be/ay72ObGf8m0

You can also use the following resources:

C Programming

For C programming, I personally used two main resources to help me learn most of the things. These resources are Harvard CS50 lessons on C which is available on YouTube and the C programming playlist by Jenny’s Lecture YouTube channel. I have also held a lot of peer learning discussions where I broke down various concepts in C. All these will be enough to get you started with ALX and ensure that you sail through successfully.

Harvard CS50:

https://www.youtube.com/watch?v=ywg7cW0Txs4

Jenny’s Lecture — playlist:

https://www.youtube.com/watch?v=EjavYOFoJJ0&list=PLdo5W4Nhv31a8UcMN9-35ghv8qyFWD9_S

Ehoneah Obed Led PLD for ALX students:

https://www.youtube.com/watch?v=LM6IjCbtpZA

Here is a link to the C programming PLD playlist:

https://www.youtube.com/playlist?list=PLqEaji1b3wvRaudEAMvyt1dIClA_y6SLS

My advice to you as you get ready to start this program

As you get started with the program, whether you are an absolute newbie to programming or not, here are a couple of advice that I have for you:

  • There is a lot to learn and hence you need to invest a lot of time into learning
  • You can’t learn everything by yourself so you need to find peers who are active in the program and share what you learn with one another
  • Working with peers to come up with solutions to given problems is not considered cheating. As a software engineer, you will mostly work with a team and this will be a normal occurrence
  • Procrastinators tend not to do well in this program. As the days go by, you will become overwhelmed with tasks if you have been procrastinating on previous tasks

For more advice on how to succeed in the program, check out another article that I published where I share some of the strategies that I have personally used throughout the program.

https://medium.com/@ehoneahobed/alx-swe-student-queries-answered-part-1-9ead0cfa80e0

Conclusion

Once again, I want to congratulate you on this new journey you are about to embark on. I am rooting for you and believe that this is just the beginning to a great life. Keep your motivation high and discipline yourself to achieve the dream that you have.

I am very active on Twitter, documenting my journey throughout the program, and you can connect with me there. I will also love to see you document your journey so as to motivate others who come after you. You can tag me in your tweets so I retweet them. I wish you all the best.

https://ehoneahobed.com/twitter

--

--

Dr. Ehoneah Obed

Pharmacist | Software Engineer | AWS Certified Solutions Architect — Associate | Content Creator | SWE student @ALX-Africa