
How to Be a Programmer: A Short, Comprehensive, and Personal Summary - Xmindz
http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
======
vdaubry
Lots of very well summarized stuff. But web development has changed so much
since 2002 !

While all of these subjects are still relevant : debug, log, memory, unit
test, etc. I think nowaday a beginner will rapidly face broader problems in
his career :

.Deployment / monitoring / Devops / Cloud

.Frontend VS Backend development

.Mobile development

All these subjects were a lot more isolated 13 years ago.

What he calls "heavy tools" like database, Full text search, they have all
become a lot more common today. I wouldn't be surprised that a young developer
will have to experience 2 or 3 different databases the first years he starts
working (SQL / redis / mongo, etc)

------
ulisesrmzroche
Nice! This one is awesome, the one that made me want to be a programmer in the
first place. The other one is Coders at Work, which I read at some random
Starbucks in Houston.

------
Ronsenshi
Informative, concise, to the point.

Any programmer who's been working in the field for a while most likely knows a
lot of the points mentioned in that text, but it's very nice to see this
information organized and categorized.

Very good read.

------
arvinsim
I remember reading these during college.We had such a dearth of programming
reading materials that I really appreciate the ones that I came to find.

------
danso
> _Learn to touch-type. This is an intermediate skill because writing code is
> so hard that the speed at which you can type is irrelevant and can 't put
> much of a dent in the time it takes to write code, no matter how good you
> are. However, by the time you are an intermediate programmer you will
> probably spend a lot of time writing natural language to your colleagues and
> others. This is a fun test of your commitment; it takes dedicated time that
> is not much fun to learn something like that. Legend has it that when
> Michael Tiemann[2] was at MCC people would stand outside his door to listen
> to the hum generated by his keystrokes which were so rapid as to be
> indistinguishable._

I know that this piece wasn't written that long ago (2003)...but thinking back
on those days of programming, I believe that so much has changed in
information availability and operating systems that while fast touch-typing is
still just an intermediate benefit, being able to memorize shortcuts and
execute them by touch is of _enormous_ benefit.

What I mean is that while Google was good in 2003, now I can type in an error
message and basically be assured that the relevant Stack Overflow question
will come up. Or maybe not, so I pop up a couple of Google searches, tabbing
between windows as I type in my query. As those load up, I Alt-tab to my
terminal window to re-run the problematic command, or at least examine it for
typos. By then, at least one of my Google queries will have finished, so I
Alt-Tab to my browser, click one of the search results, then Alt-Tab to the
other Google query, click on one of _its_ results. By this point, the Google
search results that I skimmed over, or perhaps from the OneBox/Direct Answer,
has given me an idea to what my problem was. So while waiting for the actual
pages linked from Google to load up, I alt-tab back into Terminal to see if
any of those hints apply. If not, Alt-Tab to the browser, etc. etc.

Today I was teaching a student how to work with Twitter data from the command-
line...and because Bash is not ideal for doing math or for parsing multi-line
data...it took me a few tries of tabbing into a Bash reference manual, and
many taps of the Up/History key, and Ctrl-A/Ctrl-E to navigate the prompt
line, to come up with the command to calculate someone's rate of Tweets (after
hitting the API with a command-line program)...to the student, it must have
looked like a constant stream of actual coding to get to the answer, when in
fact, it was just a flurry of stupid mistakes and fixes in a span of a few
seconds.

In the past, when a book was still often the best reference, or a very long
webpage explanation...being able to quickly navigate the operating system may
have not been such a big deal, as you were better served by just stopping your
coding work to just read. Now (just as with all aspects of life and society),
there seems to be a greater need to quickly navigate and filter information. I
guess it's a sort of multi-tasking...which may not always be ideal, but it is
much _less_ ideal if you're multi-tasking and using your mouse to get around.

~~~
mstechfreak2
I can suggest you a free educational service for those who want to learn to
touch type, which helped me a lot
[http://www.typingstudy.com](http://www.typingstudy.com) :-)

------
jonaldomo
Why isn't this a book? This is great stuff.

------
winash
Great and relevant advice

------
andychong1996
great summary!!!

