Part 1 - Choosing a programming language
...is a hard thing to do.
The choices when it comes to really learning a programming language
are immense. Before I get to far ahead of myself, I'd like to make sure
you know that I'm talking computer programming languages. Spoken
languages are beautiful, inspiring and I'd like to learn Chinese.
However, my neural
connections are
maxed out with the two programming languages I'm learning now, coupled
to learning Spanish with 1.0 from our beautiful teacher.
To solve this problem, if you like learning its not really a "problem"
per se, you need to break it down. There are several factors that make
this decision somewhat difficult to quantify, we'll list them here and
explore them subsequently. The opportunity
cost of learning each
language of interest is probably the single biggest factor
when analyzing this problem. Another major factor is technology
decay,
while a certain language may be "hot" right now, five years from now the
language may be dead, non-supported or found to have major weaknesses as
technology progresses. The last factor that makes choosing difficult is
the experience level of the person making the decision.
Opportunity cost is very complex in this problem as the variables that
make up the equation tend to be diverse and seemingly never-ending.
Time is a huge factor for just about everything and it certainly
plays a role in my decision to learn programming. One, I'm not getting
any younger and my perception is that technology is moving faster and
faster. If I want to become proficient to the point where I can program
anything with the programming language, I need approximately
5000 to10000 hours of learning
and working with the language (sprinkle a dash of luck for good
measure).
The ever present "verses" argument goes something like this; Which is
better... C++ vs. Java, Java vs. C#, VB.NET vs. Python, PERL vs. LUA
and so on. I don't know if there is an empirical winner in these battles
as my perception puts these battles squarely in the opinion realm. One
theme I've heard mentioned time and again is; Choose the right tool for
the job! which is excellent advice for the seasoned developer to be
sure. The not-so-salty beginner still needs to decide which language
they will really concentrate on despite the excellent advice
above because we don't know which tool is right for the job. We can
study other solutions and glean information as to why they did this or
that, but that will only get you so far.
Technology decay is probably something most people don't see coming
until its too late. When I tell people of the baby boomer age that
I'm studying programming, I generally get this answer; "I remember punch
cards with Fortran back in College." I often wonder what happened to the
person that really knew Fortran when C and C++ came on the scene. Did
they scoff? Did they embrace the new paradigms? Did they need to do
anything? Fortran is still in use, albeit relegated to somewhat of a
niche language. As long as the language has users, the language will
never die... it will just die. We can find many people that still play
with the Atari 2600, does
that mean the Atari game developers are earning a livable wage? I don't
know for sure, but I would hazard a guess at NO.
At the end of the day, my choice boils down to economics and priorities.
I have a family with small children (1.0 and 2.0) who deserve the
ABSOLUTE best I can provide them. In the event that I lose my current
job, I would want to choose and really learn a language that could
immediately provide a livable wage for my family.
Let's talk languages... Continued in Part II