HackerURLs

一次又一次被重新发现的经典。

同一个链接,相隔一年以上,一次又一次被人重新发现、再次冲上 Hacker News 首页。能经受住这种时间检验的,大多是值得一读再读的文章。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从名人堂开始
  • 4,700+篇经过时间检验的经典

Hall of fame

名人堂

在经典库里看全部精选

上首页次数最多、而且有中文导读的 30 篇。时间轴上每个黑点是一次上首页,空心点是一次没冲上去的投稿。

  1. 正在载入经典…

Archive

经典库

按第一次上首页的年份分布,点柱子筛选。

排序

    About

    这些经典是怎么挑出来的

    1. 01

      合并同一个链接

      读取 Hacker News 自 2006 年以来的全部链接投稿,把 http/https、www、跟踪参数等写法不同的同一篇文章合并成一条。

    2. 02

      只留经得起时间的

      同一链接至少两次拿到 50 分以上(约等于上首页),而且两次相隔一年以上;再由 AI 剔除状态页、产品首页和新闻事件。

    3. 03

      写导读、译评论

      上首页次数最多的 2,000 篇配上中文导读、"为什么经久不衰",并精选翻译 HN 高赞评论。导读由 AI 生成,可能有误。

    职业与工作方法theatlantic.com

    我如何失败、失败,最终学会编程

    How I Failed, Failed, and Finally Succeeded at Learning How to Code

    2次上首页
    2年跨度
    527累计得分
    123条评论

    2011 — 2013,它一次次回到首页

    黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。

    导读

    这篇大西洋月刊的个人随笔回顾作者多次尝试、多次放弃、最终学会编程的漫长过程,谈到用 Project Euler 等题目练习以及早期 BASIC 时代的交互体验。文章的重点不是速成技巧,而是学习编程过程中的挫败、坚持和最终获得的回报。

    为什么经久不衰:它把学编程的挫败、顿悟和持续练习讲得具体可感,又引出关于工具、环境和“会写代码”真正意味着什么的讨论,所以多年后仍能引起共鸣。

    关键词 编程学习Project Euler编程教育个人随笔

    HN 评论精选

    质疑 Project Euler 更适合练数学而非学习编程抽象。

    难道只有我觉得 Project Euler 并不特别适合用来学编程吗?我看过之后发现,很多题可以用编程语言暴力求解,但更巧妙的解法通常来自数学变换而不是编程洞见。这种对数学的侧重似乎并不能自然引向模块化、抽象等更高层的编程技巧。

    barrkel查看英文原文

    Am I alone in thinking Project Euler is not particularly well suited to learning to program? When I looked into it, many of the problems may be tackled in a programming language through brute force, but cleverer approaches usually come from mathematical manipulations rather than programming insights. The mathematical emphasis didn't seem to lead naturally to higher level programming techniques involving modularity or abstraction beyond the functional level.

    怀念 BASIC 的即时交互,呼吁为初学者提供无需安装、随处可用的编程环境。

    它简洁地解释了编程为什么做起来有回报。它也描述了某个年龄段的人拥有的“游乐场”:“READY>”。我听说现在的孩子学 Python 可以学得很好——前提是能找个大人帮忙装开发工具。应该有一种像 BASIC 那样易用、可交互且随处可见的东西。

    totalforge查看英文原文

    Succinctly explains why programming can be rewarding to do. It also describes the playground people of a certain age had: 'READY>' I hear kids these days can do well learning Python - if they can get an adult to install the dev tools. There's got to be something as accessible and interactive as BASIC was, and that should be everywhere.

    从 BASIC 到被 C 吓退,再到 Ruby/Rails 入门并成为职业开发者,说明入门语言和生态很关键。

    很喜欢这篇文章……我第一台电脑是 80 年代的 Apple II,我靠香港后街翻版的 Applesoft 和 BASIC 手册,以及旧电脑杂志上可照着输入的登月游戏程序,自学了一点编程。学校不教编程,直到物理学位最后一年做项目才再有机会接触,中间只碰过一点 FORTRAN。1995 年毕业时我一看 C 就退缩了:指针?什么鬼?我永远学不会,编程不适合我,大概我就是不够聪明。其实我早期做过不少网页编程,只是没把 HTML 和早期 JavaScript 当成编程。直到 2010 年连续创业第二次遇到技术联合创始人问题,我意识到得自己当技术联合创始人。Ruby!跟当年吓退我的 C 完全不一样。我能行!靠 Rails、Stack Overflow、大量好博客和 Hacker News,几年后我已经能靠给别人编程赚钱,同时做自己的 MVP 和产品第一版。

    richardjordan查看英文原文

    Love this article... my first computer was an Apple II back in the 80s which I taught myself to program in a very rudimentary fashion. How? Hong Kong knock off backstreet copies of Applesoft and BASIC manuals. That and those old home-computer magazines with program listings in that you could type in and make a lunar lander game etc. Programming wasn't available at school so my next chance to get my feet wet was on my final year Physics degree project. With a few math projects in FORTRAN along the way :-/ So given that my skillset was pretty much BASIC only at this point I took one look at C in 1995 as I graduated and balked. Pointers? WTF? I am never doing that ever. Programming ain't for me. Just not that smart I guess. In reality I did a lot of early web programming, I just never thought of HTML and very early javascript as being programming. I'd build the occasional page or two myself with HTML JS CSS in the intervening years. But it wasn't till 2010 and I was having technical co-founder issues for the second time in back-to-back startups (not his fault, visa issues with a family member), when I realized I needed to be my own technical co-founder. Ruby! WTF? Nothing like that old C that scared me away. I can do this! Thanks to Ruby-on-Rails, Stack Overflow, a ton of great web blogs and Hacker News here I am a few years later able to get paid for programming for other people while I build my own MVP and first iteration of product for my own startup. Am I as good as the folks I'll end up bringing on board if it takes off - hell no, a great programmer is light years ahead of me. However, if a muppet like me can do it, you can to. Great article!

    学会编程只是工具,软件开发的难点在于需求、架构等更广泛的基础知识。

    我这么说可能显得愤世嫉俗,但读到这类关于学编程如何挣扎的自述时,我忍不住做个类比:学编程就像学用锤子。它有用,但不会教你造桥。写一个能做点事的程序并不难。软件开发真正难的是思考需求、架构、性能、维护、安全、用户交互、数据建模、算法、关系代数、图论、分类学、符号学、心理学……软件是相当新的事业,触及人类知识的许多领域。要把它用好,你该追求这些基础知识,而不是死磕语言语法、背 API 或搞懂指针。

    hcarvalhoalves查看英文原文

    I'll sound cynical, but when I read testimonials like this, about people struggling with learning how to program, I can't help but make the comparison: Learning how to program is like learning how to use a hammer. It's useful, but it doesn't teach you how to build a bridge. Writing a program that does something useful isn't hard. The hard part of software development is reasoning about requirements, architecture, performance, maintenance, security, user interaction, data modeling, algorithms, relational algebra, graph theory, taxonomy, semiology, psychology... Software is a fairly new endeavor and touches many areas of human knowledge. To apply it well, you should seek this fundamental knowledge, more than wrestling language syntax, memorizing APIs or groking pointers.

    历次讨论

    同类还值得读

    1. 用十年时间自学编程(1998)

      Teach Yourself Programming in Ten Years (1998)

      Peter Norvig 1998 年的经典文章,回应“21天/24小时学会编程”一类速成书,主张真正精通编程需要约十年持续、有意识的练习。

      职业与工作方法上首页 11 次 · 2007–2025norvig.com编辑精选
    2. 如何成为一名程序员:简短、全面而个人的总结

      How to be a Programmer: A Short, Comprehensive, and Personal Summary

      一篇广为流传的程序员成长指南,作者以个人经验系统总结了成为优秀程序员所需的各项技能——从调试、测试、沟通到团队协作与身心健康。

      职业与工作方法上首页 6 次 · 2008–2015samizdat.mines.edu编辑精选
    3. 不要自称程序员

      Don't Call Yourself a Programmer

      经典职业建议文章劝软件工程师不要把自己局限在“程序员”这个标签上,而要从公司业务角度说明自己创造的价值;文中讨论了成本中心与利润中心、头衔、求职与职业选择,也顺带批评了学术界的价…

      职业与工作方法上首页 5 次 · 2011–2021kalzumeus.com编辑精选
    4. 创作者的日程与经理的日程

      Maker's Schedule, Manager's Schedule (2009)

      Paul Graham 在这篇文章里把时间表分成两类:管理者的日程以小时为单位,会议可以填满一天;创作者(程序员、写作者等)的日程则以半天为单位,需要长时间不被打断的连续块。

      职业与工作方法上首页 5 次 · 2009–2021paulgraham.com编辑精选
    5. 为什么程序员的薪酬不与生产力成正比

      Why programmers are not paid in proportion to their productivity

      讨论为什么程序员的薪酬往往不随其生产力成比例增长:生产力难以客观量化,薪酬更多受组织预算、岗位定价和个人议价能力影响。

      职业与工作方法上首页 5 次 · 2009–2022johndcook.com

    打赏支持

    打赏二维码

    觉得有用,请作者喝杯咖啡。

    WeChat

    关注向阳乔木

    微信公众号「向阳乔木推荐看」

    微信公众号「向阳乔木推荐看」二维码

    微信扫一扫;在微信里打开本页时,长按二维码识别。