Fork me on GitHub

Saturday, September 27, 2014

Just three things!



"An amount of 7000 Euros has been paid to your account". A couple of days ago I received this email from Google. Its still on my mind, that's why a writing about it. Even though I has already been notified that I'm a scholarship recipient, even though I have been to the scholars retreat in Zurich. Am writing about it because its one of those magical things that happen in your life; Because a year or so ago it was my dream, I was literally living to earn that scholarship. Here's the full story.

It all started with getting accepted to the University of Cape town (UCT), great, but without a sponsor, not so great. UCT fees are too high for any Tanzanian company to sponsor you and South African companies offer bursaries to South African citizens only. Well, that only leaves one option for international students, to afford the best education in Africa , your parents should either very rich or very giving. I searched for bursaries and sponsorships and just none of them seemed to suit me. Well, until I googled 'scholarships for women'. At the top of the list was the 'Google Anita Borg Memorial Scholarship'. That was the beginning of this journey. 

To get the scholarship you have to be a woman who has excelled in Computer Science. And I was far from it, at least not then. I struggled, I struggled with Computer Science ever since the first day I step foot into the Computer Science classroom. I had no background in Computer Science or IT and everyone else just seemed to understand what a variable is and how a loop works. I know these concepts seem trivial right now but then it was kept me up at night. I didn't give up, I couldn't afford to because I had to get that scholarship. I had to excel in Computer Science just so that my parents could have a peace of mind (at least for a year). Eventually, I started enjoying Computer Science (even did an intern ship at a place where I was the only female in the office). The rest is just history.

So yeah , that email from Google, isn't just a random notification, it has a story in it. A story with 3 lessons I'd like to share
1) Dreams do come true( I surely wont forget that)
2) Women make good computer scientists , its time we started believing that.
3)Google saves lives. Yes, Google saved my life. Even though I don't know how I'll pay for my studies the following year, I' just glad my parents can relax for a year. In short, thanks Google!

More information about the scholarship can be found at http://www.google.com/anitaborg/emea/

Thursday, July 3, 2014

In the shoes of a programmer.



            Programmers have the reputation of being weird. That's probably because we speak Java, C#, python and all those other “foreign” languages and the fact that coffee is our water. But beneath that surface, programmers are not that weird, we are actually normal people with a different standard of normal. If you are interested in programming, here's a list of attributes you must have or at least learn. 

Patience
           You will probably spend hours looking for that one bug. Sometimes a day, sometimes 3 days. Dont be alarmed, be patient and believe that that's how you learn. As a matter of fact, you will start coding before you figure out everything, so leave room for mistakes. They are bound to happen.

Problem solver:
As a programmer you will write code, that code won't always run the first time you run it. This could be caused by as many reasons as syntax, wrong logic, typos, or your computer could just be messing with your head. You are gonna have to figure out where the problem is, probably through sleep-less nights and frustrating days. That's how you earn the title of a problem solver.

Attention to detail:
Every little detail matters and sometimes its what makes all the difference. You could create an infinite loop just by typing i instead of j. A single bracket could mess up your entire day. In short you have to able to notice things. 

Seeing opportunity in problems.
Well, in this century its a trend to make businesses out of problems. Facebook was born out of a problem, and so was whatsapp, and android, and everything else that is made with code. Maybe you won't create all the stuff your head thinks of but the fact that you have ideas is a good symptom of a programmer.


If you have all the above symptoms then you are a full accredited programmer.  You don't need any certificate to prove that. After going through the list, I have realised we are not just weird, Programmers are actually smart. 


Wednesday, June 18, 2014

Tis Espresso that we need...



The world needs peace, it also needs more food , water, health facilities, education or at least efficient distribution of these resources. In other words, this world needs more computer scientists. The world needs more problem solvers and this consequently raises the demand for good old JAVA.

Just in case you ever wondered what happens inside a computer scientists head, I've been in one and I'll give you a clue. I'm gonna use the pronoun she not because I'm feminist, but because, am actually feminist and I like the idea of 'she' referring to both male and female for a change, particularly in computer science. 
So, she writes code (a couple of statements only another computer scientist will understand) , normally at this stage she's in the zone. The zone is simply a place where only gibberish makes sense. The only means of communication between this zone and the real world is through coffee. The zone will then be sustained at the expense of the coffee machine. 

 She then tests the code, it will most likely not work the first around. Thats a coffee refill.

Then she goes into a loop; another piece of code doesn't work, another cup of coffee, the piece of code works, another cup of coffee.

The sentinel is reached when the whole code works. Well, guess how that is celebrated? Espresso!

A programmer on average spends  1 hour debugging for every hour of coding. Assuming that's a cup of coffee for every half an hour, that's 4 cups of coffee per programmer per hour of coding. Up to the moment there are about 18 million software developers world wide. This boils to 72 million cups per hour of code. This is a pretty serious demand which can not be ignored.
At the end of the day, coffee, through the mind of a programmer(Another way to think of it) has made a program or at least part of a program that you among thousands of people will use. You will use it to keep track of something or manage something or treat some disease or organise some data that should be organised , either way the world is then definitely a happier place.  
 
I understand that not all programmers run on the coffee magic (I prefer tea) . But banking on average statistics, there is a serious demand for coffee.So yes, the world has got problems of its own. Bigger problems than some person's leisure drink. We can't solve them all in one day, but we can  make coffee, in all flavours and tastes. It won't relieve the world of hunger or poverty, but trust me its one step closer to solving all these problems. If you ask me, cascaded in all these demands,  tis espresso that we really need.

Sunday, October 20, 2013

Code IT!

  

            Normally, one would conform and accept that things have to be done in a particular way. Of course, normal people don’t include computer scientists or rather scientists in general. These are the people who don’t think it’s lazy to let a machine do chores for you while you do better things with your life. They are the people who see opportunity in what appears to be inconveniences. When you think all the major inventions were born out of lazy motives.


            Books will record that Linus Torvalds created the kernel of the Linux Operating System in order to create a first-class operating system, but the real reason he did it is rather interesting. It was simply Finland winter! He just didn’t want to have to get up to use University computers; he wanted to connect to these computers from the comfort of his bed. He thus made an inexpensive operating system for his PC.

            In a similar fashion, it will go down to history that Gauri Nanda made clocky because she was an MIT genius. Well, the real reason is because she too loves her sleep. She made an alarm clock that will not only make noise but also make you play hide and seek until you are wide awake; a simple solution for a big problem.  

            The general trend is apparent, while the principle of others is “Discipline yourself and conform to the current system”, scientists principle is “Don’t fight it, code it”. That’s it folks, I have uncovered the mystery of the most weird people on this planet. The father of invention Thomas Edison was once quoted “The reason a lot of people do not recognize opportunity is because it usually goes around wearing overalls looking like hard work.” It is true that opportunity is normally hidden in what appears to be rules or work or anything between those lines.  It takes a whole lot of courage and incentive to grab it.

                        Society has a general trend to condone laziness and lack of discipline. Although that’s important, it is also important not to hamper creativity. Innovation and creativity spans out of a very simple mindset, that is,  whatever is bothering you, Don’t fight it, code IT!

           
           
           


Friday, September 27, 2013

What computer science does to you...



             
You might have come across these people. They make jokes, you won’t understand,  they pull all nighters fixing one bug, they live on coffee and they find The Big Bang Theory funny. These people constitute a species of humans called ‘Computer scienticus ‘. They are Homo sapiens specialized in computer science and to some extent, they have become a totally different species.  I don’t know if that’s evolution or regression but these people are definitely not normal.
            How did they get to be so different? Well, there can only be one explanation; the elixir that has over time poisoned their minds, Computer science. It’s like a drug that has given them the illusion that nothing is impossible, all problems have solutions and it all starts with a strategy. They will tend to speak in weird languages called codes so they appear smart but that’s just another proof of their intoxication. They tend to think they are normal because they haven’t yet realized that they are drunk. The catch is what they do for a living is work magic.
            I know there are magic tricks and Santa but my definition of real magic is slightly different. Magic happens when a problem is solved at the right time and place. When there is a medical emergency and all have to do is call an ambulance. That’s magic. When you need to retrieve information and you press a button, it is fetched from wherever it was. That’s magic. Now, Computer scientists are the guys whose brains are trained to make magic. They are the guys, who worry about what goes on in the background, so that everyone else doesn’t have to.
            In short, here is what computer science does to you. It makes you ‘high’. It makes you think strategically, makes you see the world in objects, loops and Booleans .There appears to be no impossible problem because all you have to do type in some code and stuff magically happens. It all seems natural because the world was created with the words of mouth anyway. Everyone else notices that you are drunk but they keep hoping you’ll wake up to reality and the sad part is you won’t since this effect isn’t just temporary.
           
            You might have come across computer scientists and wondered how they can be so ‘drunk’. Well, now you know why. If I had the power to reformat education all over the world, I would make sure each and everyone knows how to code. I don’t mind having a world of ‘drunk’ people, after all they work magic. Computer science is simply magic; don’t expect its experts to be normal.
           


Sunday, September 8, 2013

Computer science, games and all


            So, the stereotypical computer scientist is the guy who writes code and surfs the internet in the day and plays games in the night. The stereotypical computer scientist not only plays games but also makes them; some even devout their career to making games. The stereotype is a computer scientist is incomplete without games; that’s why there is never a product of computer scientists without games. There are two ways to think of computer games.
            Well, to start with games are a good source of entertainment, a healthy way to completely indulge in a completely ‘different’ universe that simulates an imaginary universe actively. It’s the reason they are the first baby courses. They have a tendency to push one’s thinking to the limits in other words, make people think. They too have a tendency to get creative juices flowing. They encapsulate the whole concept of problem solving. Besides that games are the guys who have mastered the art of boredom.
            With all the goodies, games also have a tendency to addiction. Just one more game and I’m done. Only after it has gone on for hours, does one really stop. And that’s not all, while on it gamers, adults and children alike tend to get so engrossed in a virtual world that they imitate it in the real world. Unfortunately in the real world, there is no undo button and neither do people earn a living by scoring points nor do people solve problems with guns. I thought computer science was all about problem solving. What a paradox?
            So; the smartest (or considered to be) people ‘solve problems’ by corrupting people’s minds. Is that all they can come up with? This is quite a paradox. Here is what I think, when we computer scientists design games, we assume the consumer of the product has enough common sense to know the right kind of use of the product. If not then that’s unfortunate.

            The beauty of games in the eyes of the programmer lies in its power of creation. Designing a game is similar to creating a whole new universe with its own set of rules and rewards, guess who makes the rules? Yeah, everyone likes being a boss; programmers are no exception to that rule. Stereotypes can be pretty narrow sometimes. Just in the same way we think computer scientists should be geeks and males, we might also be wrong on games. Games can actually do some good to the brain. In lieu of that thought, programmers have a big opportunity to influence people’s brain, let’s not abuse that power and solve problems instead.




            

Tuesday, August 27, 2013

Just objects...:D



            Before I learn't of object oriented programming, everything was just what it was. A fridge was a fridge, a car was just a car and so was everything else. After learning object oriented principles, my mind has totally been corrupted .A  car is now a baby of a vehicle and it too can have babies (Jeep, Suzuki you name them) by virtue of inheritance.  A car has other ‘objects’ like engine that perform various actions (methods).  These methods are abstract (hidden) and only defined in the mechanic package. I don’t know if it’s a good thing but everything now is just an object.
            Here is what OOP has done to me. People have become objects, Secrets have become private instance variables, conversations have become public accessor methods, character has become a protected instance variable; if not inherited from parents (super class) is set by mutator methods or constructors. It has become a perfect model of social dynamics, making programming appear very natural.
            OOP makes it seem that nothing is a mystery. As long as it can be organized, and stored in some sort of database, it is not a mystery. It is in fact just an object , an instance of a class, having predefined properties.  It makes organization easy. An ancient Roman Emperor Marcus Aurelius, once said “The secret of all victory lies in the organization of the non-obvious.” The secret probably lies in object oriented programming.
            Coming from Python, object oriented programming seemed very unnecessary. I always questioned myself whether it was necessary to encapsulate an object just to be able to perform an action on it. Well, in the real world everyone is an object and needs to be identified as belonging to a class before doing anything. Everything, absolutely everything on earth, is an object having members and methods. Like objects, we have an hierarchy that needs to be acknowledged so that everything flows naturally.
            There is no turning back from OOP. Everything belongs to a class, even if the class is a Mystery class  If you have done OOP, you have a powerful tool in your hands; use it, if you haven’t I say you are missing out.  It is an interesting concept, so in the meantime, let’s talk about ‘objects’ over “Java”.