Case study to show becoming technology
independent from scratch?
Dilemma
of a Computer student’s Study Life:
My last degree was Masters in Information Technology with
specialization in Computer Science. A Programming Geek? Yes I am! And a crazy
one too! From first semester till last I got highest grades in all programming
language courses. Attitude of “Love to code” made my life very easy in CS
oriented degree but made it too difficult for me at the same time about future
prospects. I wanted to put my energy and best abilities in the technology and
programming language that are promising to my future.
My degree was completely JAVA oriented; the environment and impression
student captured was that a qualified, experienced and technically strong JAVA Programmer has best
worth after three to four year of industry experience. Many seniors told me
that .NET Software Engineers
are very demanded and paid higher in the market, with .NET 4.0 in the market
enterprise applications are just click away. I wanted to learn .NET a lot but unfortunately
it was not in degree. Apart from degree I was doing part-time job at a local
web-development company where I did work in PHP/CSS/XHTML and I knew the
worth of these technologies and also the fact that one can work on his own with
these technologies rather doing job for someone. I selected PHP as Programming Language of my Degree Project and made a Content
Management System. Didn’t get much support from any faculty member instead
faced some hard criticism because for some reason they all don’t like a
Programming Language which is not Object Oriented by birth and is actually a
scripting language. It was the era of birth of Mobile Application Development and iPhone was most
popular among all technologies. We also heard about something called Android
Development but neither Faculty Member nor seniors was too sure to establish an
opinion about that.
Dilemma of a Programmer’s during job:
At Degree completion I focused on my existing job, started
giving full time and enjoyed a lot working on Programming Language that I was
learning from almost two years. Soon after degree it was pouring calls from
various software houses for open vacancies luckily I was among toppers. Most of
them was for JAVA
Developer but I had no interest to work in a technology where I will
have to prove myself for 3-4 years to make my worth count (as it was my perception
that time). Also got couple of calls for Jr. Android Developer and many for PHP Developer (but not a Jr. one) but one day I couldn’t resist job offer
from highest paying software house of my city which was offering the post of “.NET Software
Engineer” where interview–to-hiring ration is less than 5%
(yes they filter Cream of Market). I joined with a lot enthusiasm but I didn’t
know that at Enterprise level things go so slow and volume of Programming is
too low in ocean of technologies, as I left job of open source small scale Development
Company so it felt like “break because of a sudden speed breaker” to me.
Nonetheless I learned a lot about enterprise systems and enjoyed a lot working
on Microsoft technologies. Meanwhile market was growing up in terms of square
for mobile application developers mainly for Android. As I told that I was a “Crazy Programmer” so I tried my luck
by applying to a software house that was famous for making software engineers
do code for long hours and extra shifts. So I shifted my job after almost a
year. Here at my new job I am not only working on Android Development but also
on JAVA Desktop Applications and JUnit and trust me they all are not much
similar.
From PHP to .NET and now on Android, JAVA and JUnit if I think about tough times shifting from programming
languages I cannot find any.
What exactly Programmers should learn?
Working on so many Programming Languages made me realize many
things. Like all languages have if-else if-else, Polymorphism, frameworks etc.
I shifted many jobs based on technology but programming language never came in
the way and my worth was on high node every time. The first question I used to
ask from technical interviewer, upon asking solution to a complex program, “in
which Programming Language do you want?” and always got the same answer “Any!
You may write pseudo code”. It was strange for me for first couple of years but
not anymore as I have learned a lot and realized that Programming Language is
not a thing for which Software Engineers are count worthy, it is problem
solving skills, writing perfect solutions, application of design patterns and
much more things like it that make us worthy. Programming languages are just
used for the application of the ideas.
A good software engineer
is independent of Programming Language, You give him problem and he will give
you the solution in your desired language.
Software Engineers must not restrict themselves on
technology; they should explore more to make themselves System Creator not just
coder.
Now what should we do?
No! Off course not! Being a student one must learn as many
technologies and programming languages as one can. As they will proceed with
their career they will realize that mastering a language will give the benefit
to code less and get more output. But still career should not be focused on
Programming languages or technologies. It should be focused on Development of
Complex Systems regardless of the implementation technology.
Programming Language is merely a requirement for application of
knowledge, it is “Engineering The Software Development Process” which
makes one worthy.
No comments:
Post a Comment