[Tutor] A slighty off topic question/rant for the experienced.

Magnus Lycka magnus@thinkware.se
Tue Dec 17 21:35:01 2002


At 09:42 2002-12-17 -0500, Jmllr891@cs.com wrote:
>I first got into programming with Python because of Eric Raymond's "How to 
>Become a Hacker FAQ". At the time I was looking to become one of the 
>Matrixy, super-duper green scrolling code breakers that the intelligence 
>agencies were always after or something.

He he. That niche is already taken by me! ;)

>But anyway, once I started programming and web design it was pretty cool. 
>You know, I was one of the only people in my small-town prep area my age 
>that could really do useful stuff with computers (or so I thought). But 
>now that I am actively reading and learning about computers and 
>technology, I feel so overwhelmed.

Just take a step at a time, and let yourself enjoy
where it takes you. Never expect to "finish". Are
you planning on just feeding birds from the age of
30, or what? The fact that we continue to learn new
stuff all the way to retirement and far beyond is one
of the great things with computing.

>Just last week I was thinking: "Yep, I've got Python down and I know that 
>it's a solid language that a lot of people use. Once I get through 
>college, I might be able to get a job knowing Python alone.", but I hadn't 
>planned on stopping there. I'm also learning Java and C in my spare time.

What did Eric say in the text you mentioned above? (I should
know, I translated it to Swedish, see
http://www1.tripnet.se/~mly/open/faqs/hacker-howto.se.html)

"But be aware that you won't reach the skill level of a hacker
or even merely a programmer if you only know one or two languages
-- you need to learn how to think about programming problems in a
general way, independent of any one language. To be a real hacker,
you need to get to the point where you can learn a new language in
days by relating what's in the manual to what you already know. This
means you should learn several very different languages."

You can certainly do a lot of useful stuff with Python alone, even
if there isn't a huge demand for it in the market today. But if you
have a passion for programming and learn a few languages, you will
see that you can take on a new one rather quickly. And I think Python
is a good way to start.

If you for instance know Python, C and C++, you will have little
problems understanding Java, but you won't automatically know all
the standard (or non-standard) libraries for Java, so you will have
a lot to learn there, but you will start on a high level.

But there is a dfference between knowing something and really understanding 
it. I think
you know what I mean. We finally become "enlightened" in some way I 
guess... It will
take time--years. Don't expect anything else, but don't worry about that. 
Whatever stage
we are at in our development, there are things we can handle with ease, 
other things
that are challenges, and yet other things that are impossible. Just find 
the right mix of
things to do for your current level of competence. Not too easy, not too hard.

A book that migh be interesting after "How to Become a Hacker" is Hunt & 
Thomas:
"The Pragmatic Programmer". If you get it and it feels like too much, put 
it aside and
get back to it later. It will fit you eventually. (I think.)

>But now, I get to thinking about how many different technologies there are 
>and how huge the technology industry is. I thought I was on my way to 
>becoming a master after I had HTML, CSS, JavaScript, and Python down. But 
>every day I am being bombarded with news about new technologies that seem 
>to come out of nowhere and popup overnight.

Wisdom is eternal. The rest is details. ;) We catch up with
the details we need. Wisdom hopefully accumulates over time...

If you learn how to learn and how to handle systems and problems, you will 
handle
these things as you go along. A good Java Programmer is not first of all 
someone
who knows Java. It's first of all someone who is good at programming, and 
secondly
someone who has a routine in Java.

But not everybody has this generic ability to jump onto a new field and 
quickly become a
valuable resource there. Of course, it's partly a matter of intelligence, 
and rather much
passion and interest, but I also think it helps a lot to have the right 
kind of education. I
feel that my M.Sc education lifted my level of awareness quite a lot. I had 
been working
as a technician before University, and I felt that I went from being able 
to use technology
and theories to really understanding what lies behind them. This is somehow 
a generic
understanding of the world, that will help you use the experience you 
aquired in one
situation in a seemingly completely different situations.

A lot of things I learnt about measuring resistors have been very useful in 
helping my
wife in her epideiological research. It's confusing for her sometimes, when 
I "invent"
a mathematical formula out of thin air in a field that I don't really know. 
I've never heard
of the kinds of statistical analyses that she does, and still the thing I 
"make up" matches
the results that she reaches using a school book method. (Only I reach my 
result much
faster, and it seems the small difference between my result and hers is 
that her school
book method uses an approximation that isn't really exact...)

Sometimes I feel that I really understand what Yoda is talking about! :)
We can learn to understand how things work. Not some particular detail, but
things in general. Mathematics is a powerful tool here. And physics is 
obviously
a foundation for understanding the world. But it's not really a matter of 
memorizing
formulas and other boring stuff. It's about reaching a deeper understanding.

It's as if we can become aligned with "the Force" of nature, flow with it,
use it to our benefit, and find thruth through it. (I don't exepect to lift any
vehicles with my mind though...)

You know, Einstein has said that to understand the theory of relativity, he
imagined himself riding on a ray of light. When you think about it, you
realize that he must have had an extraordinary intuitive understanding of
nature -- physics -- to be able to learn something, and develop such deep
theories from such experiments of the mind. Anyone can "imagine" things,
but unless what we imagine really reflects reality, it won't lead to any Nobel
prize in physics...

>Do I have the current technologies down? Noooo! I also have to learn Perl, 
>XML, XHTML, DHTML, BTHTML (some new technology that I saw an ad for), and 
>god only knows what other languages and technologies. My question is where 
>does it end? How much does the average Joe Smoe have to cram his head with 
>before he's a wizard hacker? Ugh...I think my brain's gonna explode...

It's the same for all of us, whatever academic field we are in.
I feel that I'm constantly learning when I work. I learn more
about programming, I learn about team work, I learn about how
to share my knowledge, and I learn about the areas that my
clients work with, whether it's medical research or financial
transactions. If I don't feel that I learn, I get bored and stop
doing a really good job. That's why you shouldn't use overqualified
programmers in your projects. They will make overly complicated
software so that it's a challenge for them.

Maybe one day I will learn how to be brief.


-- 
Magnus Lycka, Thinkware AB
Alvans vag 99, SE-907 50 UMEA, SWEDEN
phone: int+46 70 582 80 65, fax: int+46 70 612 80 65
http://www.thinkware.se/  mailto:magnus@thinkware.se