5 ms·
SICP shows up every few months on HN, and I upvote enthusiastically every single time! I am a self-taught programmer, and survived a long time on C/C++/Java et
by sriram_malhar 7y ago
SICP shows up every few months on HN, and I upvote enthusiastically every single time!
I am a self-taught programmer, and survived a long time on C/C++/Java etc. I was smugly confident in my confined space.
Then I came across SICP. I discovered a world of closures, streams, object-orientation done using closures, infinite series using streams, lazy evaluation, functional programming, and so much more. It was such a sharp pivot that I registered for a PhD because I just had to know what else I took for granted. I was 42 when I registered (graduated at 48)!
- mirrorlake 7y agoRead any other good books in your time in school? I'm always looking for a good CS book to add to my reading list.
- sriram_malhar 7y agoOh yes. Grad school is all reading. I recall reading these books in their entirety. Security Engineering. Ross Anderson The Formal Semantics of Programming Languages. Glynn Wynskell. Communicating Sequential Processes. Tony Hoare. This book is surprising in its compactness and lucidity. Pi Calculus. Robin Milner. Semantics With Applications. Hanne Riis Nielson On Concurrent Programming. Fred Schneider. Specifying Systems with TLA+. Leslie Lamport. Distributed Algorithms. Nancy Lynch. Reliable Distributed Computing. Ken Birman and Robert Van Renesse. I'm sure I'll recall more as soon as I hit "reply".
- elteto 7y agoWow that is a fantastic story! Kudos for completing your PhD! Would you mind expanding a bit more about your PhD? Which school did you go to? Did you find that your age made it more difficult to get in/stay in once accepted? How did you handle family commitments (if you had them)? Reason I ask is because I've been considering going back to school to get a PhD. Again, that is quite an achievement, so congrats!
- sriram_malhar 7y agoThank you much. Sorry for the wall of text, but you got me going! I had been living and working in California, and found myself at the crest of the dot-com wave of the late 90's and early '00s. But post-SICP, I _had_ to dig deeper. I didn't feel prepared for the schools I wanted to apply to: Berkeley & Stanford. I am totally self-taught, and not having taken an exam in any CS subjects, the subject GRE was a huge mental barrier. So I applied to the Univ. of Cambridge in the UK. That was a miscalculation. I was expecting to sit through a number of courses before figuring out what I wanted -- the US model -- but no, I was thrown into the deep-end right away, as an independent researcher. In my earlier life, I'd prided myself in knowing a whole lot of stuff just by building things in my own time (a TCP-IP stack from scratch, a Java compiler etc). But at Cambridge, I was told the "Dragon Book" (Compilers, by Aho, Ullman and Sethi) was so 1970's! I can't tell you how inadequate and how unprepared I felt. In just the areas I was interested in (PL, concurrency, distributed systems), I was surrounded by researchers (at the cs dept and the microsoft research lab in the adjoining building) who _defined_ world-class. Robin Milner working on Distributed Pi Calculus, Tony Hoare on separation logic, Simon Peyton Jones on Haskell and type systems, Alan Mycroft, Jon Crowcroft advising the creation of the Raspberry Pi, Ian Pratt and Steven Hand on the Xen hypervisor, Peter Sewell on a rigorous (machine-checked) definition of systems and protocols. But me, I didn't understand any of it, at least in the first year! I had never read a non-systems paper in my life; I didn't know the meaning of academic rigor. Those four years were the hardest of my life. Age was a factor. There was a distinct difference in stamina. Later I discovered that it was more fear that stymied my progress. I used to love math in my younger days, but I realized that lately, I was putting the more formal books back on the shelf "to get back to later". In contrast, Younger kids (and particularly the ultra-bright ones who land up at Cambridge) had no such fear at all because their formative math education had been top-notch. On the other hand, my age served me well elsewhere. I had money, I was happily married (and still am, thank you!), so half my brain wasn't stuck on relationship issues. I didn't have to impress my peers with my ability to drink. I could travel freely to conferences on my own dime. I could quit any time (or so I told myself; I'd probably have regretted it if I had quit). It helped that we didn't have kids and that my wife was immensely supportive. There was another "mature" student also with the same background and outlook as me who'd sold his company for a few tens of millions (he was on the original Pentium design team!) and come in search of knowledge. He had two kids. He had a tougher time than I did not because of his family, because of the choice of his subject (quantum computing). But ultimately, he too has done well from himself. Any how, I knew all along I would be very glad when the program ended, on two different axes. First, that the hard period was behind me. Second, that all this learning would fundamentally change me. I'm happy to say it did. I'm happy to report that I fared well -- my dissertation was nominated for a British Computer Society dissertation award. Privately, I felt I was trained just well enough to _start_ a PhD program. That imposter syndrome never left me! I have met many many PhDs who have felt that. I wish someone had counseled me on it. I'll leave you with this. The amount I learnt makes my toes curl with pleasure. Then there's the meta-learning. When you spend so much time reading papers and rigorous arguments, you begin to have confidence in reading a paper completely beyond your ken, and getting to its essence. That's the real value.
- peterkelly 7y ago> SICP shows up every few months on HN, and I upvote enthusiastically every single time! This book is so important I sometimes think there should be a link pinned to the front page. It too really opened my eyes like no other book had and was a major influence on my PhD work and also subsequent projects I've done in industry. I really liked your other detailed comment about your experience, and am jealous you got to work alongside such major players in the field :)
- krishna2 7y agoSuch an inspiring post. Awesome to hear your story. Did you do it part time or full time? And yes, a +1 to the comment and to the idea that you should write a blog post. Thanks!
- sriram_malhar 7y agoThank you. The PhD was full time. I am not a fan of part-time anything .. either you are doing two sub-par jobs, or you are busting a nut doing two full-time jobs. In my earlier responses, I haven't credited my wife enough. It is one thing for me to take a chance, but it is altogether a different ball of wax for her to say we are in this adventure together.