职业与工作方法danluu.com
我是如何学会编程的
How I learned to program
2016 — 2021,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
Dan Luu 回顾自己学习编程的经历:从高中时漫无目的的摸索、大学和实习中的种种弯路,到最终成为工程师的过程。他坦诚地记录了那些看似低效的岁月,并指出许多关于成长的“显而易见”的道理其实并不显然。
为什么经久不衰:它以罕见的诚实呈现了一条不完美的学习路径,让无数同样“摸索着长大”的程序员产生共鸣,也提醒人们成长往往没有清晰的路标。
HN 评论精选
普通人的学习经历与传奇程序员的叙事形成鲜明对比,令人困惑差距从何而来。
他说的“低效摸索”和高中经历和我如出一辙:一堆不匹配的书和电脑,没有目标、没有导师、也没有什么成果。而读到那些著名程序员的故事时,他们从小用 Apple II 和 Commodore 64,却直接上手汇编、精通机器、把代码优化到极致——也许他们的图书馆有更好的书,也许他们就是更聪明、更专注。
bluedino查看英文原文
His 'ineffective fumbling' and 'high school' seem to mirror my experiences. Using a bunch of mismatched books and computers with no real goals, no mentor, and no real results. However, it's amazing when you read about <insert famous programmer>. They grew up with Apple II's and Commodore 64's, but they mastered them. Or at least that's the narrative from the author of the articles that talk about them. They don't just write silly BASIC programs like the rest of us, they started using assembler and learn the machine like the back of their hand. They learn how to optimize the living crap out of their code. Maybe their schools just had better books in their libraries or they subscribed to the good magazines of the day. Or they were just that much better at programming and smarter and more focused, one of the above, or all three.
没有引路人和早期接触机会,很多有潜力的人错过了编程,深感惋惜。
回顾我的人生,我和文中作者年纪相仿,却对结果感到失望。我有过类似的梦想但没能实现。要是当年我认真读完借来的那本 Flash 教材就好了。我身边没有任何对电脑感兴趣的人,也不擅长社交,大学里有 AP 计算机课却因为觉得太难而没选。那些成功程序员的少年时代,往往始于有人送他们一台电脑。真希望编程早点进入我的生活。
mattfrommars查看英文原文
Looking back in my life when I was born a year after Tavish Armstrong, I just feel so, disappointed how my life turned out to be. I had similar dreams and hope but they didn't work out in the end. Only if I told my younger self to actually go through the Macromedia Flash book I borrowed once in high school, I would have had my first glimpse in computing. But during my early days, I never had anyone who was remotely interested in computers. I wasn't great at socializing either which would have lead me to people who were in machines. There was AP CS course at my university but I never took it only because I thought it was too hard and instead took AP Calc. Without any concept of computing or the power of programming, how can a kid get into life of software development? All the random success stories I've read of popular programmers these days, all of their younger days began with someone giving them a gift or some 'assembly' language computer and started from there. Wish the pursuit of programming caught me much earlier in life than right now, went into wrong major and always thought about programming, programming. Having friends and family who aren't into computers didn't help either until last year. So much life was wasted.
计算机教育严重脱离实践,连版本控制这样的基本工具都长期缺席。
作者提到在 IBM 实习才第一次接触版本控制,拿到学士学位前从没用过也没见别人用过。这一点至今仍然成立:我们学校的大多数学生和所有课程都不使用也不理解版本控制的好处。都 2016 年了,无论项目多小都应该用 git。
gravypod查看英文原文
> The other thing I encountered for the first time at IBM was version control (CVS, unfortunately). Looking back, I find it a bit surprising that not only did I never use version control in any of my classes, but I’d never met any other students who were using version control. My IBM internship was between undergrad and grad school, so I managed to get a B.S. degree without ever using or seeing anyone use version control. I love this bit. This is extremely true even today. Most students at my university, and all of my university's classes, do not use or understand the benefits of a VCS systems. This is crazy on a different level. I hate to say this but it is in fact 2016 and it should not be a question that git or something should be used on every project no matter how small.
面试太简单未必代表公司弱,可能只是没有制造大量误杀。
“那场面试是我在所有公司里经历过的最简单的,我因此怀疑他们招聘门槛低、工程师偏弱。结果那却是我共事过的最优秀的一群人。”——也许他们只是没有把大量合适的人错误地筛掉。
collyw查看英文原文
"I was hesitant about taking the job because the interview was the easiest interview I had at any company, which made me wonder if they had a low hiring bar, and therefore relatively weak engineers. It turns out that, on average, that’s the best group of people I’ve ever worked with." Maybe / quite probably they weren't filtering out ton of false negatives.
历次讨论
同类还值得读
用十年时间自学编程(1998)
Teach Yourself Programming in Ten Years (1998)
Peter Norvig 1998 年的经典文章,回应“21天/24小时学会编程”一类速成书,主张真正精通编程需要约十年持续、有意识的练习。
职业与工作方法上首页 11 次 · 2007–2025norvig.com编辑精选如何成为一名程序员:简短、全面而个人的总结
How to be a Programmer: A Short, Comprehensive, and Personal Summary
一篇广为流传的程序员成长指南,作者以个人经验系统总结了成为优秀程序员所需的各项技能——从调试、测试、沟通到团队协作与身心健康。
职业与工作方法上首页 6 次 · 2008–2015samizdat.mines.edu编辑精选不要自称程序员
Don't Call Yourself a Programmer
经典职业建议文章劝软件工程师不要把自己局限在“程序员”这个标签上,而要从公司业务角度说明自己创造的价值;文中讨论了成本中心与利润中心、头衔、求职与职业选择,也顺带批评了学术界的价…
职业与工作方法上首页 5 次 · 2011–2021kalzumeus.com编辑精选创作者的日程与经理的日程
Maker's Schedule, Manager's Schedule (2009)
Paul Graham 在这篇文章里把时间表分成两类:管理者的日程以小时为单位,会议可以填满一天;创作者(程序员、写作者等)的日程则以半天为单位,需要长时间不被打断的连续块。
职业与工作方法上首页 5 次 · 2009–2021paulgraham.com编辑精选为什么程序员的薪酬不与生产力成正比
Why programmers are not paid in proportion to their productivity
讨论为什么程序员的薪酬往往不随其生产力成比例增长:生产力难以客观量化,薪酬更多受组织预算、岗位定价和个人议价能力影响。
职业与工作方法上首页 5 次 · 2009–2022johndcook.com