ALU’s Computer Science… Want to signup?

Innocent Ingabire
Computer Science Clubs @ALU
7 min readMay 3, 2019
You have all it takes. Why can not you explore?

I am not going to sugarcoat anything; Computer Science is hard but it is for everyone. Let that sink in, and I give a disclaimer before I proceed:

I do not know how CS in other schools looks like, maybe it is harder or not. While I will try to be on the majority side, I will be speaking mostly out of my experience, not everyone’s. So, consider that while you are reading. This post embodies my advice for ALU’s CS prospective students; you may want to read something else if you are not going to signup for CS, feel free to do so. This blog post is not intended to influence someone’s decision but help you get ready once you decide.

If you opted to continue reading, maybe you are a prospective CS student, or you want to take a sneak peek in CS students’ life, It is all okay. Here I share the journey of one year, just the first year in CS major and this is how it starts:
You think, and everyone says Computer Science is cool; you want to join a community of problem solvers and be a part of something you do not understand yet you think it is significant. Every topic is thrilling; from Web development with React and NodeJS to Cyber Security; from Cryptocurrency to Artificial Intelligence.

You have no programming experience, but you are an optimist; you ask for people’s advise and you have read all medium posts about programming. They all say you do not need experience; just motivation to learn and patience. You trust you will be okay and boom! You signed up for CS, and the journey begins!

You are in the first week of school, and all is going okay, you do your homework and submit the work before its due time because you promised yourself you will not play the catch-up game (and it would not work if you try it). you are motivated to do all it takes, and you are overloaded with assignments. You remember your friend saying that Python is easy and now you have either to believe you are dumb or they are insane because moving paddles in pong game is taking longer than your facilitator was expecting. You go with the assumption that Python is not easy; they were all lying because you have given all your best. You sit longer on your PC, and you find programming rewarding after too much frustration. You can do a pong game, you can paint whatever you like, and you can move Onsongo. You now have a feeling that you can do the next Photoshop and there is too much excitement, thanks to AluLib.

Things are not exciting always; you now have The Database assignment which is a way bigger and frustration has started; you are not worried about Mathematical Foundations because someone in your group has done it, but Discrete Mathematics makes you wonder if it is you who said you are Maths enthusiast. Maybe the myth that you need a Mathematics background to do CS is real… you are in the same boat with people who had it, and there is no much difference. It is just too much work, and it is a way complicated, but by God’s grace, you have above 50.

You have been doing all assignments, but still, you do not know programming and OOP(in Python) does not make any sense to you. Everything is confusing, and you are hoping that the second term will bring some clarity. You pray that it will be different and patiently wait…

You are now in the second term. No Maths courses, you think it will be fun. Everyone said Java is hard, but It is not as hard as you were expecting. Programming is starting to make some sense, and you can confidently post the programming memes on your Whatsapp status, congratulations! You now realise that you learnt much in Python and it is transferrable to other programming languages. Now you know that you do not need to know a little about every programming language but to master one.

You skip sessions in Computer Architecture because you believe that staying in class would not make any difference. You are tired of Web Development; there is too much to learn that you feel like you move on to the next chapter before you get to know anything. Who knew that you could learn PHP in one day and be assigned to do the backend of the website and secure it? No one can believe that Javascript which some folks would learn in months was completed in probably few weeks, not because you learn fast but because you have no control over that( and you did not learn anything, really -:)). For some reasons, you feel like you do not study, you do all the assignments for the sake of submitting. You no longer question your sanity but the sanity of your facilitators. Do they think it is possible? Can they do that themselves? You wish you had the power to test them, but you do not. The entire class complain, but no one seems to hear. They probably do not care. Who knows? You are now on your own like every other classmate. You now appreciate the wonders of working in peer groups that Leadership Core students cannot understand. Leave alone peer work; even individual assignments are done in peer groups because it is never one man’s work.

Data structures are hard; at least you know they are essential to know. You invest much energy in the course of Data structures and Algorithm, but it is not paying off. Maybe it was not a good idea to put it in the second term. You no longer want to have more than the average grade; you are just tired, and 50 per cent is enough. Welcome to the Mediocre club.

The motivation has gone; life became bitter along the way, and it took unexpected turns. You are praying to finish the term, and you are not excited for internship whatsoever for all you want is a break. A little break from the workload and frustration. A break to reconnect with yourself, friends and family.

Before you realise it, you caught the imposter syndrome. You now doubt your abilities, and you think everyone is better than you( Note: everyone has the same feeling; not everyone but most of your classmates). You are now average, and the average is mediocre. You think of how to make your experience better, and for the first time, you become amazed by the gift of self-reliance. The ability that makes you own your journey and experiences; nothing scares you, you need to understand, and you hope to learn enough in the internship period and get your sh*t together.

Recap

While I can not guarantee that you will not commit the same mistakes when your journey starts, I want to highlight the mistakes I made in the hope that you will come prepared better than I was.

These are traps you are likely to fall into:

Not writing your code: you will think it is harmless if a person writes a function for you but do it twice and it will become a habit. You will end up not learning what the crucial skill of problem-solving is. Once you catch the Codephobia (Fear of code… The word does not really exist, I had to make it up), programming will be overwhelming, just because small mistakes you tolerated. Learn how to be in harmony with boredom, debug and let the StackOverflow be the last option.

Complaining: The side effects of complaining is that you do not get anything done! Just do the best you can do and leave the rest for others. Do not feel like you are a victim; your life is yours to live, and you have the freedom to create your experience, only a few people understand.

Learning a little about everything: No one would need to hire a person who knows a bit about everything but someone who can do something well. The world will know you not by everything you can do but one thing you can do well. Think about it. Learn one thing and be good at it, you will thank me later.

Here is my ultimate advice:

Knowing how to learn is better than knowing: Instead of spending your summer internship doing some junk programming in the name of preparation; Learn the best methods to learn. Learn about yourself. Learn about the techniques that might work for you (not necessarily for others) and invest much in creating a good studying environment. It will get you ahead faster.

Learn how to go deep: Learn how to stay focused in a distracted world; it will pay off for a lifetime, not just for your studies. You do not need to burn your midnight oil to be a good programmer; you need to focus. You can party hard and get a good grade. You do not need to trade your sleeping time for an A+ grade. If you are not getting what a deep work means, read this article or/and read Cal Newport’s book “Deep work” ( It is one of my favourites). If you can spend Four hours without giving in to distractions, you are welcome to the CS World.

As I said in the first paragraph; I believe that programming is hard, but it is for everyone. You do not need talent; it is just practice. If I am better than you, It means I spent more time coding than you did and it is the only difference. I hope you understand that anything that requires practice is complicated but it is always do-able when you give it time and attention. I can not promise that the journey will be easy; there are millions of bugs waiting to make you frustrated; all I know is that the frustration will never outweigh the ecstasy of creating something from nothing. The happiness of solving a real-world problem is what makes the journey exciting, and I am still on the journey, waiting for the unexpected to happen and move with the flow.

Now, It is up to you to decide….

Note: If you are a CS student and would like to share any advice or insights, you can write below in the comment section. If you are a stranger and you want to add something; feel free to do so. Nothing is figured out yet; we are all learning.

--

--