

"Is that a real program or is that something somebody wrote?" - asciilifeform
http://lists.canonical.org/pipermail/kragen-tol/2007-March/000849.html

======
cema
A memory walk. Recognizable in many ways. Some lessons are applicable to more
than one stage in career and life in general ("I didn't need teachers to teach
me things; I needed teachers to force me to get out of my comfort zone, and
partners to get me unstuck"). A good read.

~~~
ggrot
I agree, that particular line struck me as the most interesting lesson in the
whole thing.

~~~
cema
I think what people do is help with inspiration (in the broad sense). Other
than that, we can read books, play with source code etc.

------
Xichekolas
Wow! Thanks for that!

Not only was that a great read that I can empathize with, but I got a ton of
great book suggestions out of it.

I'm assuming that was written by the same kragen that frequents here...
Kragen, if you read this, well done!

~~~
kragen
Yes. Thanks!

------
dasil003
Really great read. I started programming BASIC and Logo at a young age as
well, but I don't recall the details nearly so clearly as the author, and my
path was quite different taking a massive detour through HyperCard (and
HyperTalk!) then web design and finally back into programming by way of a CS
degree, PHP, Ruby, and the desire to actually write decent Javascript.

Although I think working through an MIT-based CS curriculum allowed me to
short-circuit a lot of the early challenges he mentioned, the "learning to
read" part might be my next step. Pair programming with a team of better
programmers sounds like the perfect career development move.

------
wglb
A fine, honest article. The best part was "learning to read", and that
happened recently in the author's cronology. One of my friends tells me that
"if you can read, you can cook" to which I retort "then, if you can read, you
can program". The answer to that is "no, not so". And I know that is not
exactly what the article meant. But good reading habits are important.

~~~
kragen
In the sense I meant, I think that if you can read, then you can debug.
Cooking is more like executing a program than like writing it.

------
mcantor
I've never read "Algorithms in C" before. I'm trying to track it down in
Amazon, but it seems like there is a paperback called "Algorithms in C" by
Sedgewick, as well as a 5-piece bundle also called "Algorithms in C, parts 1 -
5" by Sedgewick. Does anyone know if the former is just part 1 of the latter?

~~~
mahmud
Algorithms in C is a classic, Algorithms in Foo is, sadly, not. Sedgewick's
text, much like Appel's compiler text, is a one-language book with a bad
gettext translation for other programming languages.

Read Sedgewick in C and Appel in ML. Skip the C++, Java, and C# versions of
both books, they usually pop up in bookstores at the end of summer.

~~~
kragen
The bit I've skimmed of Algorithms in C++ seemed like it did a pretty
reasonable job of using C++ templates effectively; I don't think it was a bad
gettext translation.

------
timwiseman
An excellent read, especially for people considering going into software
engineering. It gives a good overview of the life cycle of a "typical"
software engineer.

~~~
kragen
I hope my life cycle didn't end in 2007!

~~~
timwiseman
Heh, ok, life cycle up to maturity perhaps?

~~~
kragen
I don't think I was mature before I had written
<http://canonical.org/~kragen/urscheme/>.

------
sown
I can for see a future when this question will actually be competent, perhaps
when AI can write programs (sort of) in a commercial setting.

------
aditya
Interestingly, kragen is on here too:
<http://news.ycombinator.com/user?id=kragen>

I wonder if he's seen this yet, and what he's done since this post in '07.

~~~
kragen
Just saw it. The last couple of years have been pretty busy; some of the
product is on kragen-tol and kragen-hacks and on github, but by no means all
of it.

------
username
What's the next phase? What else does he have to learn?

~~~
mahmud
Embedded systems. Distributed computing. Real-time systems programming.
Software reverse engineering. Compiler construction. Digital signal
processing. Machine learning. Natural language processing. Operations
research. Numeric computing.

Give each a decade and you will be in hacking bliss for the rest of your life.

~~~
kragen
I can't claim to be an expert in any of these, but I have dabbled in many:

Embedded systems: <http://canonical.org/~kragen/light_sensing/>

Software reverse engineering:
<http://canonical.org/~kragen/demo/klappquadrat.html>

Compiler construction: <http://canonical.org/~kragen/sw/urscheme/>
<http://github.com/kragen/peg-bootstrap>
<http://github.com/kragen/stoneknifeforth>

Machine learning: <http://angstro.com/> (this isn't solely my project; I'm
only doing a minority of the work)

Numerical algorithms, digital signal processing: a bit at ERIM

I can't say I've done anything very interesting with distributed computing,
real-time systems programming, natural language processing, or operations
research.

~~~
mahmud
OT:

kragen, Opera de-hearts your website: says you destribute malice :-(

<http://i27.tinypic.com/2s6svap.png>

wtf?

~~~
kragen
I heard about that a few weeks ago. I think I need to talk to Opera about it.
Just in case, I grepped for the obvious things, without any success.

~~~
kragen
Uh, I mean I searched to see if there were any obvious browser exploits being
propagated from the pages. I can't rule out the possibility of something
subtle but I didn't notice anything.

