9 ms·
"Is that a real program or is that something somebody wrote?"
- cema 17y agoA 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.
- timwiseman 17y agoAn 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 17y agoI hope my life cycle didn't end in 2007!
- timwiseman 17y agoHeh, ok, life cycle up to maturity perhaps?
- kragen 17y agoI don't think I was mature before I had written http://canonical.org/~kragen/urscheme/ http://canonical.org/~kragen/urscheme/.
- tetha 17y agoand it again rises the question where one stands in this path.
- mcantor 17y agoI'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?
- EdwardCoffin 17y agoI believe the latter is just a later, expanded edition of the former. I do know that they are all part of a series that he has been revising for two decades, starting with "Algorithms" which was in Pascal, then branching out to have editions in C and Modula-3, then revisions in several volumes/parts. The first edition of Algorithms in C was just a single volume. The paperback you mention is probably just a copy of that edition - if I'm looking at the same one as you, it looks like a paperback of the hardcover I remember from fifteen years or so ago.
- notaddicted 17y ago[redacted]
- GeneralMaximus 17y agoIn stores, I've usually seen parts 1-4 in a single volume. (Note that these are the Indian LPEs (Low Price Editions) by Prentice Hall India.)
- sketerpot 17y agoParts 1-4 are in one volume, and then part 5 (graph algorithms) is big enough that it gets its own volume. I own the parts 1-4 book, and it's very pleasant and readable. The pictures of the algorithms in action really help make the concepts clearer. (They're also a cool hack; the author wrote implementations of the algorithms with a bunch of printf calls to spit out PostScript code, which used a high-level graphics API that he wrote, in PostScript, for the purpose of making diagrams of running algorithms.)
- mahmud 17y agoAlgorithms 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.
- wglb 17y agoA 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 17y agoIn 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.
- deleted 17y ago[deleted]
- Xichekolas 17y agoWow! 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 17y agoYes. Thanks!
- dasil003 17y agoReally 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.
- username 17y agoWhat's the next phase? What else does he have to learn?
- mahmud 17y agoEmbedded 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.
- eru 17y agoYes. Eg. operations research can be quite rewarding from a math point of view. Esp. combinatorial optimization (as a subfield) has a lof of interesting algorithms and concepts.
- kragen 17y agoI 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/ http://canonical.org/~kragen/light_sensing/ Software reverse engineering: http://canonical.org/~kragen/demo/klappquadrat.html http://canonical.org/~kragen/demo/klappquadrat.html Compiler construction: http://canonical.org/~kragen/sw/urscheme/ http://canonical.org/~kragen/sw/urscheme/ http://github.com/kragen/peg-bootstrap http://github.com/kragen/peg-bootstrap http://github.com/kragen/stoneknifeforth http://github.com/kragen/stoneknifeforth Machine learning: http://angstro.com/ 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 17y agoI have dabbled in all, mastered probably none. An older friend of mine made millions from an RTOS he wrote in the 80s. He also wrote his own tcp/ip stack, cross assemblers, built his own ICE debuggers and other stuff. However, he knows very little else :-P He is almost always surprised by "what computers can do". Specializing did something strange to this man; he does the impossible and remains ignorant of the trivial. He only programs in C and Assembly languages but was surprised to discover there were syntax-highliting editors for assembly. He knows most algorithms that we toss around in conversation in chip form; to him MPEG, AVI, MD5, and SHA1 are all silicon things, never "written". I taught him what a "packer" was for executable binaries.
- sown 17y agoI 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 17y agoInterestingly, kragen is on here too: http://news.ycombinator.com/user?id=kragen 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 17y agoJust 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.