ALX Software Engineering program, the good, the bad and the ugly: a personal account.
From the perspective of one who spent the last 12 months learning tech the ALX way by doing the hard things, I intend to write on the good, the bad and the ugly of the ALX software engineering program based on my personal experience in the program.
My experience before ALX
It’s no news that several posts, talks, and videos are flying around warning or perhaps instructing beginners to stay clear of ALX as it’s not beginners friendly. Maybe true, maybe not, but I was a beginner when I started the program.
I’m an animal scientist with no computer science background. I was not new to the world of tech because I already had knowledge of data analysis before starting ALX, but then, my Excel, R and Power BI skills put me at no advantage over others. So it’s as good as saying I started as a beginner like most colleagues. I also struggled; just like other students, I almost concluded that beginners shouldn’t participate in it, but I stayed put and endured to the end.
THE GOOD
1) Curriculum:
The ALX software engineering curriculum is fashioned towards preparing students to reason as software engineers and not just write codes.
Unlike most tech training I’ve come across, ALX does not pitch students towards writing the conventional frontend or backend codes right from day one. A student must have spent a minimum of 6 months in the program before writing a line of HTML code. The early stage was used to build students towards developing reasoning and problem-solving skills needed for a lifetime as a software engineer.
Starting with the C programming language took me down to understanding programming at a very low level which makes it very easy for me to pick up any language, framework or tool with ease. I don’t just write Python. I have an idea of the Python implementation working under the hood. I feel confident piping into new programming languages because I know many have C-related syntax.
2) The resources:
A lot of effort is continually put in place to ensure students have enough resources to help them in their quest to become software engineers. Tools such as:
👉 Linux-based sandboxes that are always available for students to write their codes. We have access to these docker containers running in the cloud for free, which can be connected via Webterm, SSH and SFTP
👉 Three (3) servers for practising DevOps and system engineering. I practised with these servers, played around, and got comfortable with deployment, firewalls, load balancing, networking and other related stuff. This made it easy for me to self-learn and understand a lot of AWS DevOps-related services such as EC2, S3, VPC, SGW, EKS, CloudFront, Lambda, NACL and others.
👉 Free one-year dot tech domain to practice with all domain-related services. Because of this, I could learn and practice with A record, CNAME, Subdomain, domain mapping email service and others.
Screenshot from ALX intranet showing the dot tech coupon
👉 GitHub student package, which gives room for several other free services.
Screenshot from intranet showing with link to the GitHub students pack
👉 A dedicated team of technical mentors is always available to provide solutions to problems. The dedication of those mentors is second to none. Even thou I don’t want to make a fallacy of converse accident, I can still conclude based on how Beta Salim, Philemon Derib and Maarten all gave their all as technical mentors for my cohort that all mentors do the same. The walk-in sessions and live coding sessions are always top-notch.
Maarten, in one of the walk-in sessions with Cohort 8
3) Networking:
ALX, right from my room in Ibadan, Nigeria, allowed me to connect, network and collaborate with peers from other African countries, especially Kenya, Ethiopia, South Africa and Ghana. This was made possible by the fact that I have a pool of thousands of peers from all African countries to interact with. Not only did I interact with them, but I also became close to some to the point where I subconsciously started using the phrase “Hakuna Shida” as though I’m from Nairobi in East Africa, all thanks to Lilian Wanjiku.
4) The drive to learn:
ALX will run a sudo apt install of a zeal to always learn more in you and will push you to keep learning. Because I struggled with C early on and was using Larry Tesler’s invention to move forward 👀, I was forced to seek more knowledge and take more courses. I had to take CS50X and some C programming specialization courses on Coursera. All because I want to be good at C.
Because of ALX’s configurational management project using Puppet, I had to research alternative configuration management tools, and I picked interest in Ansible. Writing an Ansible playbook for me now is like writing my name on paper.
I remember downloading a series of videos on reverse engineering, installing some software like IDA on my laptop and dreaming of becoming an ethical hacker as a result of one of the crackme problems where I had to retrieve a password from an executable file. You can’t help it; you just want to learn more.
Additionally, the program’s third session, which specializes in DevOps and system engineering, installed a strong desire to learn DevOps tools in me. It gave me sleepless nights watching tons of YouTube tutorials and practising different DevOps tools. Maybe not perfect yet, but I’m now very much familiar with Ansible, Docker, Kubernetes, AWS, GitHub Action and lots more.
5) The culture of writing clean codes
like a relentless police officer whose promotion depends on the number of suspects caught, Betty, Pycodestyle and Semistandard will not let you rest; they forcefully wire me towards writing clean and properly documented codes. There is a burden of guilt that hangs on me anytime I write code not following the standard. I always feel like I’m betraying the culture.
In ALX, It’s not just for your code to work; it must work following a particular standard!
THE BAD
Inasmuch as the good may look very enticing, it will be so unfair to overlook the ‘bad’. The level of time and dedication required for the program put many struggling Africans at a disadvantage. If I can’t speak for all African countries, I can talk about Nigeria, where I am. We are in a continent where most of us have to hustle to remain in this kind of program. If we don’t hustle, we can’t afford to pay for an internet connection; we can’t afford to fuel our electricity generator as the power supply is not readily available. Out of the 70 hrs required per week, we need to cough out some for hustling and some for “Lagos traffic”. Maybe not ALX’s fault, but then, for someone who doesn’t have a ‘dedicated server’ or source of income with no stress, it will be challenging to take the program. As such, it’s not recommended for someone hustling to make daily bread.
THE UGLY
Not ugly per se, but the fact that Julian, Maarten and other senior engineers in the team couldn’t come up with a program that would inject the whole curriculum into my head in one night but instead made me spend an entire year doing hard things, passes as an ugly for me! They made us believe we can build anything; they should build that magical one-night learn it all program.
Conclusion
As earlier said, This is my personal opinion, which may and may not represent the opinion of other past, present or future ALX students. I believe it’s a program anyone interested in becoming a well-rounded software engineer should take, provided they have the time required.
If you would like to connect with me, please feel free to send a DM on Twitter, or Linkedin, or use the form on my portfolio website. Also, If you have come this far and you like what you read, you can check my portfolio website to know more about me.