My First Month at the ALX Software Engineering Programme

My First Month at the ALX Software Engineering Programme

Hello everyone. I'm George Nduka and you're welcome to my blog.

I started my Software engineering journey about 54 days ago at ALX. I discovered the programme through the hashtag #ALXaccepted on twitter and got curious about it. I immediately did a quick google search and found out all I could about the programme from the ALX website. It turned out to be 12 month intensive training that would prepare me for a career in Full-stack development by helping me to develop the relevant technical and professional skills. It just so happened to be all that I had been wishing for. To me, it was a promise of access to fast paced structured content which I could learn from the comfort of my home, a community of mentors and fellow learners who I could get feedback from in real-time and build long lasting professional relationships and friendships with and of course... a certificate. But most importantly, it came at no cost and that was the stuff of my dreams… I didn't have to spend any money!

But the programme came with a catch. It required a time commitment of 70 hours per week!!! 70 hours a week is 10 hours every day… for 12 months. 10 hours everyday is literally my entire day. Yes, I wanted to become a Software Engineer but not at the expense of everything else. How would I manage 70 hours of learning to code with my daily activities, my social life, my rest, my Internship search and my University studies? It seemed unrealistic to me that the course would require that much time from me and from other people who probably had much more to do than I did so I brushed it off as an exaggeration and applied anyway. I was soon to find out that it was an understatement.

To my utmost joy, the words “Congratulations, you’ve been accepted to the ALX Software Engineering Programme” stared back at me in an email less than 24 hours later. Yes, I had done it! I had taken the very first step towards becoming a software engineer and 12 months didn't seem so far away anymore.

The email also contained a call to action to share my success on my social media accounts using the hashtag #ALXaccepted through which I had originally discovered the programme. I didn't know exactly how to go about it so I started doing research on what to write. From there, I found out that documenting your learning journey by sharing courses and projects you are doing, engaging with content and following people on the same path and people you can look up to on twitter is something every coding newbie should do. It helps you to get your name out there, show your personality, establish your brand and stay up to date and it’s something I made a commitment to do.

I got more emails from ALX on how to login to the learning spaces and I officially started the course on June 6. At first, I was overwhelmed. There was a virtual welcome ceremony, orientation meetings, materials to read, a Slack workspace and WhatsApp groups to join where messages were coming in at unbelievable speeds but the overwhelming feeling went away after I began to connect with people. I began to document my journey on twitter and people from the boot camp started to send me dms. I was making friends left, right and centre and we were helping each other out. It made everything easier having people to talk to who were going through the same thing I was going through. And before long, I was writing code.

The first technical concept we learnt was Linux Shell navigation. The shell is a program that takes commands from the keyboard and gives them to the operating system to perform. I learnt how to perform tasks on my computer by typing one line commands. The possibilities of what I could do were endless because tasks that would take me a lot of time to perform with my mouse and my computer’s graphical interface were taking just a few seconds with the shell. ALX provides their own virtual environment(a duplicate computer inside your computer that is isolated from your regular files) accessible through the internet for running commands but I also learnt how to install Vagrant and Virtual box which are tools for creating a Virtual environment on my computer for my personal practice.

Each ALX project contains resources for learning concepts and assignments to be completed before deadlines. The resources are usually links to documentation pages and YouTube videos. I usually had to carry out extra research to understand concepts as the provided resources were not sufficient. At first it was frustrating because the disparity between the resources ALX provided and the assignments we were asked to complete was large. I soon came to understand that it was all intentional as carrying out research is an important part of being a software engineer. ALX was teaching us to find things out on our own. ALX mentors also organised virtual sessions on the average of two times a week to go over concepts with us and they were very helpful.

The next thing we learnt was Git and GitHub. Git is a code management tool that allows different programmers to work on the same project independently. GitHub is a website that provides you with a server to host your code. I learnt a bunch of new commands and how to transfer my ALX assignments to GitHub so that they could be scored.

At first, we were getting between five to eight easy assignments with two day deadlines but before long we started doing eighteen assignments in one day. I realised that the 70 hour requirement was not a joke and took it as motivation to work harder. The projects all had a second deadline to allow us to complete the tasks if we couldn't meet the first deadline. But while you got 100 percent if you finished the projects before the first deadline, you only got 65 percent if you worked with the second deadline and 50 percent if you finished after the second deadline. You could also get some extra credit by completing advanced tasks.

This is probably the time to mention that ALX required us to meet a minimum requirement of 80 percent at the end of the first month to be able to continue in the programme. It was a battle. People began to copy codes and while that got them the best scores, it was at the expense of knowledge. Copying someone else’s code without understanding is useless because your scores might get you through the door but it is what you know and what you can do that will keep you in the room. Each new project was built off the previous project so if you didn't understand the basics, it was only going to get harder to understand further concepts.

I soon developed a strategy of completing half of the assignments before the first deadline and finishing the rest before the second. I took my time to understand what I was learning by reading as many documentations as I could, watching tutorials on YouTube and going on Stack Overflow and Reddit to see how people solved problems that were similar to mine and understanding their thought process before writing my own code. I was getting both the grades and the knowledge and before long, I got used to the system.

The best part of the ALX software engineering programme is the Peer learning day. There is a peer learning day after each new concept has been taught where we get to join groups of 10 to share our thought processes on how we solved assignments and explain concepts to each other on video chat. I’ve learnt a lot through peer learning and I’ve also been able to reinforce my understanding by explaining to others.

After Git and GitHub, we moved on to C programming, the first programming language for most people in the course and my second. C is a general-purpose computer programming language created in the 1970’s by Dennis Ritchie. It is still widely used and many later languages have borrowed directly or indirectly from C. We were learning to think and solve problems like programmers by learning C.

ALX taught me that one of the fundamental steps to solving a coding problem is writing Pseudocode(fake code). It is an informal way of writing your logic and program in a simplified form anybody can understand. It involves outlining the steps you want your code to take and it is a great way of getting started with any programming task.

As C programming continued to get more difficult, I found myself requiring peer learning more frequently than I used to. The WhatsApp groups where I could go for help were filled with too many irrelevant messages. I got together with four friends from the course to create our own private peer learning group so that we could share ideas on a daily basis. We’ve been organising our own private video chats and going through concepts and tasks one after the other. I’m happy to say that we have created a strong bond and I advise everyone getting into the programme to employ this method of learning. Getting through the programme has not been very easy and I’ve felt like giving up sometimes but the pay off at the end is too much to throw this opportunity away.

I’m happy to say that I passed the 80 percent average score requirement for the first month and I was given the opportunity to continue in the programme. I decided to write about my experience because I want to make information about the programme more easily accessible to people wondering if it's the right fit for them. I’ll be attaching links to materials on Shell navigation, Git and GitHub and C programming below. You can contact me on twitter at george_veno to connect and ask any more questions you might have concerning the programme. Thanks for reading and don’t forget to document your journey. Good luck.

Please click here to read my conversation with an ALX graduate.

ALX's website - alxafrica.com/software-engineering-2022

For Shell navigation - linuxcommand.org/lc3_learning_the_shell.php, linuxcommand.org/lc3_lts0020.php

To install Vagrant(a virtual environment) - youtube.com/watch?v=nuO6-QlLTno&t=127s

For Git and GitHub - w3schools.com/git/git_intro.asp?remote=github, docs.github.com/en/get-started/quickstart/s..

For C programming - check out Jonathan Engelsma, Jenny’s lectures and Portfolio courses on YouTube

For Documentation - cult.honeypot.io/reads/social-media-first-job

ALX's Curriculum - docs.google.com/document/d/1TEjgW7IJnUBtrJH..

NB: I am not affiliated with or endorsed by ALX. The opinions and views I share are purely my own.