Fork me on GitHub

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”. 

Thursday, August 8, 2013

Girls in the big picture.



         
    
Listening to Beyonce’s  Who run the world is always refreshing, thought provoking. It’s one of those songs that leaves boys and girls quarrelling.  Boys will make a valid point of how women are still the softer gender and how they don’t flourish in science fields. Girls, as expected will be mentioning all the roles they play in society, naming all the women history makers they can think of. Interesting, there are a few points I would like to add a few points  to that debate, not because I’m a girl, but because I’ m a keen observer.
           
            Without just a few of women, we would be at least 4 centuries behind.  We now consider programming to be a man’s job while actually he first computer programmer was a woman, Ada Lovelace. Quite interestingly, a woman, rear admiral  Grace Hopper wrote the first compiler and invented the term that makes every computer scientist appear nerdy - bug. We have Heddy Lamarr who laid the foundation of Bluetooth and wireless communication. Not only are women pioneers in computer science but also in other ‘men’s’ job.  Without Marie Curie, we wouldn’t be considering Nuclear Energy.  I have intentionally left out  the contemporary scientists like Anita Borg, Nancy Hafkin because the list goes on and on. And we still debate on who runs the world? 


            It is also true that these brilliant scientists had to work with them. Marie Curie worked with her husband, Pierre, Grace Hopper worked with Howard Aiken,  Ada Lovelace worked on Charles Babbage engine.  But somehow the ideal computer scientist now is that nerdy guy who plays computer games.  I don’t know who really runs the world but I know Beyonce’ had to sing that song so women get actual appreciation.

            After all they have done for us we do not pay these champions by women marginalization or by explicitly discouraging women from pursuing science. Women are good computer scientists for no other reason other than that we are good. Computer scientist is all about commanding hardware what to do and women do a lot of commanding on a daily  basis. We are good scientists because we have a sixth sense on things. We have that seed that if well nurtured, will grow and even outgrow that of men’s.
            I’m not making this up. Michelle Obama, who is the epitome of success in this century, testifies to this with the words I quote, “I am an example of what is possible when girls from the very beginning of their lives are loved and nurtured by people around them. I was surrounded by extraordinary women in my life who taught me about quiet strength and dignity.”  We all have abilities and talents, irrespective of gender or race. I think we should just accept that fact and move on from there, investing energy on work than endless arguments.
           
            Eleanor Roosevelt once said, “A woman is like a tea bag – you never know how strong she is until she gets in hot water.” I can’t really add to that.  This article goes to all the girls who doubt their abilities because they have been forced to believe men are better, the women who have to work twice as hard to prove themselves.  I say to you what I tell myself almost every day; Shine, you got it in you.