

Learning the craft (of programming) - luckystrike
http://www.tuxdeluxe.org/node/285

======
kensan
This article can be summed up by point 1 of George Leonard's keys to Mastery,
or Getting Good at Anything. All 5 major points are as follows:

1\. Find good instruction. (Read good code, find a good programmer) 2\. Love
to practice. (Write code.) 3\. Have the beginner's mindset. (Don't get cocky,
observe with new eyes.) 4\. Have a vision / goal. (You want to be an
architect? Graphics guru? AI master?) 5\. Push the boundaries. (Code beyond
your perceived "abilities".)

A more succint and general version of that quote is by TS Elliot: Talent
copies; genius steals!

Anyway good read!

------
scott_s
Per the "read code" suggestion, I often come up with excuses to browse through
the Linux kernel code: <http://lxr.linux.no/linux>

It's clean, discoverable and it does interesting things. Although it might
help to first go through a book like Understanding the Linux Kernel:
<http://oreilly.com/catalog/9780596005658/>

~~~
mamama
These two books look interesting, too: <http://www.spinellis.gr/codereading/>
<http://www.spinellis.gr/codequality/>

As for your suggestion on reading _Understanding the Linux Kernel_ , is it
readable even if I haven't taken a course on Operating Systems or something
equivalent?

~~~
scott_s
Probably not. It's a walkthrough of how the Linux kernel is implemented, both
in terms of design ideas and the code itself. They assume you already know
operating systems basics.

I could be wrong, as I've also never read it cover-to-cover; I always dive
into it when I specific questions about how things work. I've never read it
from the perspective of how well it teaches OS concepts. But if you're
interested, and you think you will remain interested in the future, then
there's no harm in getting the book now. As you learn more, you'll be able to
understand more.

