Things I Should Have Known Before Becoming a Software Engineer

by Noc Team on November 23, 2010

Contributed by Syed Awab Hasan

Actually, rather than waste your time, I would cordially like to inform you that the only thing you should have known before you became a software engineer is that you shouldn’t have worked towards becoming one. You just wasted your time. Just kidding!

When we human beings exist at the level in which our studies are at the Secondary school level, we have many aspirations about our careers, know a lot about it and generally believe in a lot of myths

Google is freaking easy. I’ll make one. For software engineers with an aptitude towards the internet and web development, a common misconception is held. This misconception states that making web applications that are highly successful, like Google, or even simple websites are really easy (heck, kids do it – you know that Zucky kid who made Facebook…). Believe me, it isn’t. Web development or programming is, in some cases, even more difficult than normal software development. What’s more a large number of other issues and disciplines arise here as opposed to mainstream software programming. You just cant create an overnight Google. However, if you learn, dedicate yourself, work heard, be creative and come up with innovative ideas you may just become the next ‘Zucky’ kid. The conclusion; software engineering involving the internet is just as hard or even harder than the usual non-internet development – it encompasses marketing, and a good number of other disciplines (even psychology!).

The worst paid jobs on the planet. Pakistan and other South Asian countries are famous as Outsourcing havens. Outsourcing may be the one reason why our software industry is alive today. However, it is highly competitive and sometimes pays little. Local, non-outsourcing work is even harder than that – that is if you manage to find a job. People don’t exactly consider software engineering as a credible discipline sans medical or even mechanical engineering. However, you should understand that if you work hard at university, involve yourself in hobby programming and stay in touch with the software industry and get good marks you may not have such a problem with pay or finding a job. Still, all engineers to be should be prepared for initial bad pays or lack of jobs.

Coding is not a mystic or mythical art. That’s right, to put it bluntly. Forget the movies in which programmers are continuously tapping keys on the keyboard (there are graphic user interfaces now for Linux that rival the designs of the Mac such as KDE and GNOME). It involves the writing of a lot of lines of code (and, sadly, no pictures) and then reading these lines again and again. A lot of boring rudimentary work particularly if C is what you are working on.

C. The Horror. This is more and more important in Pakistan. C (and in some cases languages even more primitive than C) are the introductory jumping point of programming. And C is difficult, tough and somewhat primitive. But it is important and if you don’t have the stomach for it, you won’t be able to proceed. But don’t worry – once you move on to Java, you’re interest will be elevated.

Code never ends. Software usually contains a large number of lines – good sized software have 100, 000, 000 lines of code (don’t worry, you wont have to write it alone). In short, there is a lot of code behind software. Why is this important? You should understand that a single misplaced word or statement results in a ‘bug’ that may have wide scale repercussions to the software. Furthermore, coding is a process that goes on and on. Software is updated. Updates are created and then checked for compatibility with the software. New concepts, languages and standards are introduced on a frightening scale. Coding never ends (unless you kill the software – discontinue it like Netscape Navigator).

Hacking isn’t what you think it is – that’s cracking. Some guy in some movie hacked into a government’s server and stole important secrets. Someone else crashed the traffic system. Someone crashed a website and added an offensive picture on the site. And the most common one, someone cracked the password of an email address. This is NOT hacking. It’s called cracking – and is not even programming. Good programmers frown at it and it is a form of ridicule. Plus, it’s highly illegal. In some cases it may be easy to install some software or script and crash someone’s computer but it is very difficult to destroy traces of your activity. And if you’re caught, it’s a prison cell for you. And no, all such ‘crackers’ are hired by some intelligence agency like CIA (only the very best and that depends).

Hacking is NOT easy. Hacking for programmers is better termed as Ethical Hacking and it more or less defines the actual problem solving process of programming – done in a challenging and satisfying way to overcome one problem after another. Think of ethical hackers as the scientists of programming. To reach such a level a lot of hard work is required. Years of sweat and more sweat. And it is enjoyed by some and not all.

Not all Software Engineers are geeks who wear glasses and stay in their rooms. Many software engineers, before going this way, assume that many good programmers are like this. That isn’t true. Many programmers look like the average person (although there are programmers whose descriptions fit these). Therefore, programming isn’t just for geeks – it’s for anyone with an interest in problem solving.

The, possibly, most boring job on this planet. Believe me, many engineers expect software engineering to be like a breeze of fresh air. It is if you don’t put your mind and soul into it. A large amount of work is boring, hard and repetitive. In fact, the truly challenging and interest part of programming is the problem solving, architecture and designing process – which accounts for some portion of programming. Otherwise, be prepared for a good amount of time doing boring work unless, as mentioned above, you actually like coding. If you do, consider yourself lucky.

Bugs, Bugs and more Bugs! I will kill you, you Virus. This will be the most annoying and brain eating part of software engineering. Debugging to remove vulnerabilities and fortifying your code to prevent attack of vulnerabilities or loopholes in your code. Prepare yourself for a good amount of time spent on this – to the point of giving up. Heck, after this, all those who may have entered into software engineering to create viruses or malware will detest the creators of such.

Bonus. In Pakistan, ‘Archaeological’ (primitive) programming is taught. Think about it.

{ 1 comment… read it below or add one }

ahsan April 19, 2011 at 6:29 AM

i totally agree with u.

Leave a Comment

Time limit is exhausted. Please reload CAPTCHA.

Previous post:

Next post: