Xah's Edu Corner: Teach Ourself Programing In Ten Years?

Xah Lee xahlee at gmail.com
Sat Jan 2 04:14:12 EST 2010


On Dec 25 2009, 12:44 am, r... at rpw3.org (Rob Warnock) wrote:
> jos... at corporate-world.lisp.de <jos... at lisp.de> wrote:
>
> +---------------
> | p... at informatimago.com (Pascal J. Bourguignon) wrote:
> | > LOL Yeah right! Give gavino ten years of rest to let
> | > his unconscious mind work on it!
> |
> | Norvig's 'Teach Yourself Programming in Ten Years' (
> |http://norvig.com/21-days.html
> | ) gets a new meaning...
> +---------------


See:

• The Condition of Industrial Programers
  http://xahlee.org/UnixResource_dir/writ/it_programers.html

plain text version follows.

------------------------------
The Condition of Industrial Programers

Xah Lee, 2006-05

Before i stepped into the computing industry, my first industrial
programing experience was at Wolfram Research Inc as a intern in 1995.
(Wolfram Research is famously known for their highly successful
flagship product Mathematica) I thought, that the programers at
Wolfram are the world's top mathematicians, gathered together to
research and decide and write a extremely advanced technology. But i
realized it is not so. Not at all. In fact, we might say it's just a
bunch of Ph Ds (or equivalent experience). The people there, are not
unlike average white-collar Joes. Each working individually. And,
fights and bouts of arguments between co-workers are not uncommon.
Sometimes downright ugly in emails. Almost nothing is as i naively
imagined, as if some world's top mathematicians are gathered together
there, daily to confer and solve the world's top problems as in some
top secret government agency depicted in movies.

Well, that was my introduction to the industry. The bulk of my
surprise is due to my naiveness and inexperience of the industry, of
any industry, as i was just a intern and this is my first experience
seeing how the real world works.

After Wolfram, after a couple of years i went into the web programing
industry in 1998, using unix, Perl, Apache, Java, database
technologies, in the center of world's software technology the Silicon
Valley. My evaluation of industrial programers and how software are
written is a precipitous fall from my observations at Wolfram. In the
so-called Info Tech industry, the vast majority of programers are
poorly qualified. I learned this from my colleagues, and in dealing
with programers from other companies, service providers, data centers,
sys admins, API gateways, and duties of field tutoring. I didn't think
i have very qualified expertise in what i do, but the reality i
realized is that most are far lesser than me, and that is the common
situation. That they have no understanding of basic mathematics such
as trigonometry or calculus. Most have no interest in math whatsoever,
and would be hard pressed for them to explain what is a “algorithm”.

I have always thought, that programing X software of field Y usually
means that the programers are thoroughly fluent in languages,
protocols, tools of X, and also being a top expert in field of Y. But
to my great surprise, the fact is that that is almost never the case.
In fact, most of the time the programers simply just had to learn a
language, protocol, software tool, right at the moment as he is trying
to implement a software for a field he never had experience in. I
myself had to do jobs half of the time i've never done before.
Constantly I'm learning new languages, protocols, systems, tools,
APIs, other rising practices and technologies, reading semi-written or
delve into non-existent docs. It is the norm in the IT industry, that
most products are really produces of learning experiences. Extremely
hurried grasping of new technologies in competition with deadlines.
There is in fact little actual learning going on, as there are immense
pressure to simply “get it to (demonstrably) work” and ship it.

Thinking back, in fact the Wolfram people are the most knowledgeable
and inquisitive people i've met as colleagues, by far.

What prompted me to write this essay is after reading the essay Teach
Yourself Programming in Ten Years by Peter Norvig, 2001, at
http://www.norvig.com/21-days.html. In which, the LISP dignitary Peter
Norvig derides the widely popular computing books in the name of
Teaching Yourself X In (Fast) Days. Although i agree with his
sentiment that a language or technology takes time to master and use
well, that these books form somewhat of a damaging fad and subtly
multiply ignorance, but he fails to address the main point, that is:
the cause of the popularity of such books, and how to remedy the
situation.

When you work in the industry, and are given a responsibility of
coding in some new language the company decided to use, or emerging
protocol (such as voice-chat protocols or cellphone internet), or your
engineering group adopted a new team coding/reviewing process, you are
not going to tell you boss “nah, i want to do a good job so i'll study
the issue a few months before i contribute”. Chances are, you are
going to run out and buy a copy of “XYZ in 7 days”, and complete the
job in a way satisfactorily to your company, as well feeling proud of
your abilities in acquiring new material.

To see this in a different context, suppose you need to pass a
important Math XYZ exam or review in your career or get a certificate,
but you don't remember your Math XYZ. You will likely, run out and get
a “Math XYZ for Dummies”. Chances are, the book will indeed help you,
and you will pass your exam or interview, and actually have learned
something about XYZ, but never looked at Math XYZ squarely again.

These books are the bedrock of the industry. It is not because people
are impatient, or that they wish to hurry, but rather, it is the
condition of the IT industry, in the same way modern society drives
people to live certain life styles. No amount of patience or
proselytization can right this, except that we change the industry's
practice of quickly churning out bug-ridden software products to beat
competitors. Companies do that due to market forces, and the market
forces is a result of how people and organizations actually choose to
purchase software. In my opinion, a solution to this is by installing
the concept of responsible licenses. Please see this essay Responsible
Software Licensing and spread the word.

  Xah
∑ http://xahlee.org/


More information about the Python-list mailing list