Hacker News new | ask | show | jobs
by sosilkj 2182 days ago
I've got a few books like this now on my to-read list (SICP, etc).

But in a profession that revolves around getting jira tickets into the Done column while my boss hovers over me with a stopwatch (so to speak), and then cramming leetcode for interviews when it's time to hop from one shitshow for the next ... I've come to the sad conclusion that, in this season of in my life, I just can't justify spending the additional time on such books.

These books might make me "a better programmer" for some amorphous, platonic definition thereof, but in the year 2020 will these actually help me to materially progress career-wise?

3 comments

I can sympathize with this perspective. One strategy that I try to employ is to find books which are both small and good. In the case of Prolog, Clocksin and Mellish's "Programming in Prolog" falls in that category. The Art of Prolog is a great book but it's a big book and you could probably spin your wheels on it for years, whereas a smaller book can conceivably be digested even if you have a crazy day job and kids and non-programming hobbies, etc.

Regarding just how it might make one a better programmer (while intentionally not answering anything about how it can "materially progress" one's career), I think that learning Prolog can make one a better problem solver because it forces you to specify the solutions to problems in terms of their truth conditions. This, in turn, makes you more likely to tackle problems by constructing mini proofs. I find this to be valuable no matter the language or language family I happen to be working in and it's a habit I definitely learned from writing Prolog.

I doubt that reading a few books will help you materially progress career-wise. From my personal experience, my interest in Prolog has absolutely shaped my carreer, but not because I read a few books (or more). Rather, because it got me interested in computer science as a subject in its own right.

So here's my personal experience. I first learned about Prolog in a second year CS course at uni. I got hooked, much like other folks get hooked on Lisp and Haskell etc. I stopped saying things like "nobody uses Prolog in the gaming industry", like my classmates, and started asking questions like "wait, if facts and rules are predicates, then what are queries? [1]". So I started reading every textbook on the language that I could find in the university library. Most of them were AI textbooks also, from the time when AI was basically hand-crafted programs written in Lisp and Prolog. From that I got interested in AI, in general and -after working for a few years in the industry- I started an MSc course on AI.

My MSc course was almost exclusively about statistical machine learning (I was told they were planning to rename it to "data science"). I started the course (part-time, while working) in 2014, right around the time when machine learning started becoming a hot issue; a rather fortunate state of affairs. I didn't go back to the industry with my hot new skillz though. Instead I started a PhD on Inductive Logic Programming, which is basically machine learning of logic programs, a subject that perfectly fits my background (in logic programming and machine learning).

And that's where I am now- I'm in my final year and waiting to hear from the editors of the Machine Learning Journal about my submitted paper that describes a polynomial time ILP algorithm (exponentially growing hypothesis spaces are a bitch, but you can avoid them with One Simple Trick). We'll see how that goes- one does not simply publish to the MLJ. But if I get that publication it will be a major step forward to getting my thesis accepted.

Er. Once I've actually written it.

Anyway, morale of the story: don't just read a bunch of books. Find a deep interest in computer science instead. For me, my undergraduate wonderment at Prolog led me down the path of becoming a computer scientist, growing my knowledge and honing my skills. There's no way you can go wrong with that.

(I forgot to mention I'm doing my PhD at one of the top rated universities for engineering research; not bad for someone who started as an unskilled immigrant working at a warehouse :)

_________________

[1] Also predicates. Mind blown.

Can't speak about the Prolog books, but SICP helped me to learn (and to some degree understand) LISP. That in turn made it easier for me to learn other languages or certain concepts of other languages.

Sure, you can learn French and grammar in general without knowing Latin and most do, but it sure is easier if you do.