Stan said:
> [Lots of good advice snipped]
Wow, this is really good advice on becoming a decent human being! I
could not have put it as well or succinctly. This is much better advice
for someone finishing high school soon than on any specific technical
direction. It reminds me a bit of Robert Heinlein's quotation: "A human
being should be able to change a diaper, plan an invasion, butcher a
hog, design a building, conn a ship, write a sonnet, balance accounts,
build a wall, set a bone, comfort the dying, take orders, give orders,
cooperate, act alone, solve an equation, analyze a new problem, pitch
manure, program a computer, cook a tasty meal, fight efficiently, die
gallantly. Specialization is for insects".
http://www.everything2.com/index.pl?node=specialization is for insects
We live in a beautiful and mysterious world -- seemingly infinite in
time and space and meaning, perhaps with multiple nested levels beyond
our current understanding (individual or collective). Stan's advice
touches on how to come to grips with these deeper issues indirectly by
engaging deeply in the human experience through the ways he outlines
(volunteering, compassion, art, dance, music, frugality, etc.) to grow
some deep roots to rely on when branching out into a specialization like
computer science or Python internals.
One good resource in the area towards career understanding is Richard
Bolles "What Color is Your Parachute".
http://www.amazon.com/exec/obidos/tg/detail/-/1580082424/103-2338008-0446217?v=glance
and his related books on Life/Work planning.
Still, I might add, from a technical side, become aware of Moore's Law
if you want to try to predict where the computer field is going to go
over the course of your career. Computers have increased in computing
capacity for a constant cost on the order of close to one million times
over the last thirty or so years. In the next twenty years or so they
will probably again increase by a factor of about another million from
where they are now.
http://www.transhumanist.com/volume1/moravec.htm
Ever more sophisticated virtual reality simulations and robotics (e.g.
cars that drive themselves just for one application) will be just a few
of the sorts of possibilities this kind of computing power will enable,
as well as all sorts of things we can barely imagine now. Cars can even
drive themselves now using laptops, but they will be presumably even
safer and more capable then...
http://www.ri.cmu.edu/labs/lab_28.html
On Moore's Law and exponential growth see for example:
http://www.kurzweilai.net/articles/art0134.html?printable=1
Moore's Law type growth is one reason sophisticated languages like
Python are now succesful (over using all C/C++ all the time) and may be
ever more succesful as time goes by. As a corollary, today's level of
desktop computing may well cost one-millionth of what it does in twenty
years, and so may be effectively free (well, a penny) and so may be
embedded everywhere (so studying embedded sytems might be useful, and
for example, learning the computer language Forth might be relevant).
Also, to elaborate on Stan's suggestion to study literature, read lots
of things (including, but not limited to, science fiction). For one
optimistic view of the future, see James P. Hogan's writings, especially
"Voyage from Yesteryear".
http://www.jamesphogan.com/books/voyage/baen99/titlepage.shtml
I always return to that novel and his other writings as a way to regain
some hope for the future. And for a cyberpunkish vision, try "The
Diamond Age" by Neal Stephenson.
http://www.amazon.com/exec/obidos/tg/detail/-/0553380966/102-9187646-8303318?v=glance
But don't skimp on other classics, from "The Machine Stops" to "The
Skills of Xanadu".
It's quite possible in twenty years that much of your work in computing
may be almost inseperable from nanotechnology matter replicator
programming (i.e. your programs might compile to the hardware).
Self-replicating space habitats made easy by related technological
advances in computing and materials fabrication may then well produce
trillions of Earth's worths of living space around our solar system.
http://www.luf.org/
Those sort of possibilities realizeable through dedication and
commitment of young people like yourself (as well as oldsters

make
all this current fighting over oil and water and land and weapons all
seem so childish and outmoded as a civilization... Hogan's vision of a
universe of plenty if we can just cooperate and show compassion and try
to avoid living in fear is a good one to embrace. Choices by millions of
people such as yourself will shape whether and how much and for whom the
future heads in this direction.
On the science front, read anything by Freeman Dyson (like "Disturbing
the Universe") because he is a very decent human being as well as
citizen-scientist. And of course, read more broadly than that --
biographies, "Harry Potter", history, and so on. Two useful historians
to read include:
"A People's History of the United States"
http://www.howardzinn.org/
and "Lies My Teacher Told Me: Everything Your American History Textbook
Got Wrong"
http://www.uvm.edu/~jloewen/
The concepts in these books may well shape the US political spectrum in
the next couple of decades, and our technosphere may well then be
reconstructed to reflect these changing social values. See also,
"Autonomous Technology: Technics-out-of-Control as a Theme in Political
Thought" as it grapples directly with this issue of technological
development reflecting social values (it's kind of dry, but some of his
other writings may be more accessible).
http://www.rpi.edu/~winner/
A computer language like Python (as opposed to C++) in a way reflects a
different mindset about accessability and changeability (see Guido's
"Computer Programming for Everybody")
http://www.python.org/doc/essays/ppt/acm-cp4e/
in the same way that local solar panels or home biomass fuel cells or
better home insulation alter the political power landscape as opposed to
large centralized nuclear or coal power plants or oil tankers. Always be
aware that the technological systems you build reflect your values. It's
kind of not a surprise to me that Python came from the Netherlands
(progressive social system) or Smalltalk from sort-of-hippies in
California

or GNU/Linux from Finland (well, OK, and RMS/GNU in
Boston post-MIT, which sort of wrecks that analogy

.
And beware the PhD pyramid scheme. See a comment by the Vice Provost of
Caltech on the state of science jobs today as testimony to Congress:
http://www.house.gov/science/goodstein_04-01.htm
In short, Prof. Goodstein says because of this focus on the PhD in US
science, much US education and educators down to the high school level
are somewhat inadequate to the task of imparting useful skills for other
than those heading to do the most elite abstract research, unlike say
the technical education available in some of Europe.
An excerpt from that page: "The problem, to reiterate, is that science
education in America is designed to select a small group of elite
scientists. An unintended but inevitable side effect is that everyone
else is left out. As a consequence of that, 20,000 American high schools
lack a single qualified physics teacher, half the math classes in
American schools are taught by people who lack the qualifications to
teach them, and companies will increasingly find themselves without the
technical competence they need at all levels from the shop floor to the
executive suite. To solve this problem will take nothing less than a
reform of both education and society. We must have as our goal a nation
in which solid scientific education will form the basis of realistic
career opportunities at all levels, in industry, government and in
education itself, from kindergarten to graduate school. As long as we
train a tiny scientific elite that cares not at all about anyone else,
and everyone else wears ignorance of science and mathematics as a badge
of honor, we are putting our future as a nation and as a culture in deep
peril."
I'm not saying don't get a CS PhD someday down the road to realize a
dream of becoming a computer scientist if that is what you want
(although please understand the difference between a software developer
and a mathematician who studies algorithms and how that relates to the
courses you take and universities you choose to attend) -- just
understand what you are getting yourself into and how that PhD system
has distorted science and technical education in the US at present (and
that link above explains why in some detail).
Also, on the issue of volunteerism Stan raise, contributing early and
often to various open source / free software projects that are of
interest to you (such as contributing to Python) is a way to both gain
visibility in the computer world as well as to leave a meaningful legacy
behind no matter where your career and life takes you. Obviously, get
your parent(s)'s or guardian's permission first if legally or morally
needed.
All the best.
--Paul Fernhout
http://www.pointrel.org