Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    P

    Philip Guo

    pgbovine.net · Personal blog · on HN since 2012

    Philip Guo, a computer science professor, writes about PhD life, CPython internals, programming education and tech careers.

    Visit blogHN submissions
    Career & WorkProgrammingScience
    What HN says

    Commenters praise his PhD memoir as well-written and honest about the effort involved, and recommend his video lectures on CPython internals.

    Stats for nerds
    132HN people shared it
    105linked in comments
    3Kstory points
    Jul 2020last shared
    2012people per year2020

    Top posts on HN

    1. 1
      Please don't denigrate what a beginner is currently learning
      3 people · 382 points · first shared 2014 · 157 comments on HN
    2. 2
      Migrating a 10,000-line legacy JavaScript codebase to TypeScript
      2 people · 311 points · first shared 2016 · 91 comments on HN
    3. 3
      The Ph.D Grind: A Ph.D Student Memoir
      8 people · 291 points · first shared 2012 · 80 comments on HN
    4. 4
      Unicorn Jobs
      5 people · 276 points · first shared 2013 · 92 comments on HN
    5. 5
      Helping my students overcome command-line bullshittery (2014)
      8 people · 265 points · first shared 2014 · 215 comments on HN
    6. 6
      CPython internals: Codewalk through the Python interpreter source code (2014)
      11 people · 230 points · first shared 2015 · 16 comments on HN
    7. 7
      The 1,000-hour rule (2009)
      1 person · 190 points · first shared 2014 · 119 comments on HN
    8. 8
      My experience being a solo maintainer of open-source software in academia
      2 people · 128 points · first shared 2019 · 30 comments on HN
    9. 9
      First impressions of the IPython Notebook
      1 person · 107 points · first shared 2013 · 34 comments on HN
    10. 10
      The Two Cultures of Computing (2013)
      9 people · 103 points · first shared 2013 · 69 comments on HN

    What HN people wrote when they linked it

    • cxrFeb 2020

      Philip Guo wrote a great post several years ago under the title "Helping my students overcome command-line bullshittery"[1] that seemed to get somewhat mixed but mostly positive reception. Much of the negative reception seemed to be chained to sophomoric arguments originating from folks stuck in the second panel of the glowing brain meme who wrongly thought of Guo being stuck in the first.

      The real truth behind the mess we're in[2] is that there is a ubiquitous, universal runtime that almost every computer comes equipped with, and the problem lies with the folks responsible for those ecosystems who either don't see these things as problems, or somehow believe that what the future somehow holds is native support for R/Python/what-have-you in the browser.

      Tooling is a massive problem, though, and one that the browser vendors themselves don't seem to care to get right. (Although there is the Iodide project, in part supported by Mozilla.) And it really doesn't help that the browser realm has come to be conflated with the NodeJS community because they share a common language.

      I've written a fairly thoughtful post[3] before, tying these two topics together:

      > After finding out where to download the SDK and then doing exactly that, you might then spend anywhere from a few seconds or minutes to what might turn out to be a few days wrestling with it before it's set up for your use. [...]

      > the question is whether it's possible to contrive a system (a term I'll use to loosely…

    • keithwinsteinJul 2020

      My advice: don't worry too much about picking a field (and definitely don't focus too much about what people who happen to be the same age as you are up to -- it's a big world).

      'elonmollusc's advice is really sound: at least at the beginning, choose the advisor or collaborators, not the subfield. You can probably get yourself interested in any problem if you put effort into it and enjoy the work or the people you're working with. And even if you don't enjoy it, you'll learn something about your own preferences and what kind of environment and style of work you want to build around yourself. Is there a class you've taken where you really enjoyed the material or the professor's style? Go to their office hours and talk to them about research. It's even better if you bring some of your own ideas for what you might be excited to work on (perhaps keying off some of the professor's own recent work; do you have an idea for a way to extend it or a new place to try it?) -- faculty love it when students are a source of new ideas.

      If you want to do grad school in CS, here is some stock advice:

      - Read some of the essays that people have written about "what grad school in CS is like." I did an interview on this with my friend Eugene Wu (http://www.pgbovine.net/PhD-interview-eugene-wu-keith-winstein.htm), and our friend Adam Marcus (http://marcua.net/writing/gradschool-guide/) also wrote a guide after finishing his PhD. Our other friend Phil Guo also wrote a depressing book about his…

    • nocmanOct 2014

      I'm a little confused about what the author is really trying to say. In this article, it sounds to me like he is saying that all of this interaction with the command line is arcane, stupid and just needs to go away.

      But then I read the other article he wrote which he referenced in this article ("The Two Cultures of Computing" -- http://pgbovine.net/two-cultures-of-computing.htm). In that article he discusses how there are two groups of people -- the "User" group that just wants to do everything with a GUI interface, and the "Programmer" group that likes the intricacies of the command line. There he discusses the difficulty he had with explaining to students the justification for learning the command line tools (which included the fact that they provided more flexibility than the GUI tools alone could achieve).

      He concludes the "Two Cultures" article by encouraging folks in the "Programmer" group to bridge the gap between the two cultures:

      "You need to gently introduce students to why these tools will eventually make them more productive in the long run, even though there is a steep learning curve at the outset"

      Although I dislike the notion that the command line is "bad" or "arcane" just because it has been around for a long time (which the "Two Cultures" article seemed to harp on a lot), I do agree that bridging the cultures is an excellent idea.

      And then I go back to the article referenced in this post, which seems to be saying that all this interaction with the…

    • ericgjJan 2014

      Hey, Philip - thanks for posting this and also the previous write-up of your experiences as a helper in the 'boot camp' (http://pgbovine.net/teaching-librarians-programming.htm). It is very valuable, including the photos. Very nice, multi-generational group - must have been quite a challenge!

      But I agree with calhoun137 when he says there is no fundamental user/programmer culture divide. Programmers are users with a deeper understanding and wider toolset. We all want to get stuff done quickly and move on with our lives rather than drown in computer-driven drudge work. So it seems like a course for beginners should start from that common point, and really be focused on (a) uncovering the problems they're already solving by hacking together the tools they know (e.g. getting data into Excel charts, or whatever) and (b) using the inefficiencies in their solutions to motivate learning or building tools with more leverage, etc.

      I can't help but think from your description, the student "regular users" are the ones with a pragmatic/hacker approach, using the limited tools they know -- while the instructor "programmers" are the users stuck in religious attachment to their arcane tools. Maybe the course would go better adopting some of that "regular user culture", AKA hacking ;)

      I'm sure it was more complicated than that and for one thing I can really empathize with having to deal with massive variety of platforms etc. Might be worth setting up a common VirtualBox image that…

    • spionJan 2014

      > That's actually a problem with things like
      > "Girls Who Code" or whatever it's called:
      > while getting girls coding, it also introduces
      > the idea that girls don't code, and that when
      > they do, it's "novel". Anyway, I don't have a
      > solution for that (and I'm not opposed to those
      > efforts in any way), it's just something to
      > keep in mind.

      You make a valid point. But there is some research that suggests that limiting membership to certain groups does make members of that group more likely to participate[1][3]. It sounds counter-intuitive to me, but the research and examples are there.

      I agree that in an ideal world, we would simply find the idea of "girls who code" equally weird as the idea of "girls who breathe"

      But the unfortunate truth is, there is a gender gap in programming. Its very real - we all know the stats. There is a reason for this gap, and it very likely has something to do with our society, culture, and us. I don't know about you, but I'd like to find out more about what those reasons are, and if there is something I can do to change that, I would. Why not? It would be great!

      The one thing I disagree about is that angry attacks or lynch mobs are a good strategy to go about this. Most male programmers are highly intelligent individuals - if the reasoning behind an idea is explained to them in a calm and logical manner, I believe they will be very likely to accept the explanation. In contrast, if the explanation or actions are…

    • ssw1nSep 2013

      Here is a different perspective, all be it in a cynical tone:
      http://crypto.junod.info/2013/09/09/an-aspiring-scientists-frustration-with-modern-day-academia-a-resignation/

      And here's another, with much more objective tone:
      http://www.pgbovine.net/PhD-memoir.htm

      My take on the subject matter is that:

      - When getting into the PhD. track, one should be aware of what he/she is getting into, and be prepared for the resulting lifestyle.

      - One should have an extraordinary drive (even to the point of personal obsession) to search for answers towards the unsolved problems in his/her field of study despite knowing the consequences that will be imposed onto his/her life by this intellectual journey.

      - One should find a PI whose personality clicks with his/hers, and whose research he/she is motivated to work on. It is pretty rare to match these two parameters perfectly, but one can weigh trade-offs, and work with the best available while still maintaining his/her aspirations.

      - One should realize that, regardless of popular belief, academia is business with its own business model: understanding the intricate business logic behind the model will facilitate one greatly in his/her quest.

      - One should realize that like every human society, academia has its own fair share of personalities and egos, and intrapersonal skills matter, a lot.

    Related

    Jxyzjxyzabc.blogspot.com21 people

    What My PhD Was Like

    Jxyz
    Personal · last shared 2019
    Sergey Bratuscs.dartmouth.edu/~sergey27 people

    Remote Code Execution Through Intel CPU Bugs (2008) [pdf]

    Sergey Bratus
    Personal · last shared 2021
    Mark Tarverlambdassociates.org88 people

    The Bipolar Lisp Programmer

    Mark Tarver
    Personal · last shared 2022
    Prof.soblog.prof.so16 people

    Thinking of Doing a PhD? Take this simple test

    Prof.so
    Personal · last shared 2015
    Neil Fraserneil.fraser.name78 people

    Google Engineer bails out student in jail

    Neil Fraser
    Personal · last shared 2026
    John Regehrblog.regehr.org401 people

    Teaching C

    John Regehr
    Personal · last shared 2026
    Danny Guodannyguo.com16 people

    My seatbelt rule for judgment

    Danny Guo
    Personal · last shared 2026
    Lawrence Kestelootteamten.com132 people

    Java for Everything

    Lawrence Kesteloot
    Personal · last shared 2026