Hackers & Painters by Paul Graham

Hackers.and.Painters.May.2010(完美版).pdf 英文版Hackers.and.Painters.May.2010(完美版).pdf 立即下载

Computer programs are all just text. And the language you choose determines what you can say. Programming languages are what programmers think in.


Good hackers develop a habit of questioning everything.


The computer world is like an intellectual Wild West, where you can think anything you want, if you're willing to risk the consequences.


Alberti, arguably the archetype of the Renaissance Man, writes that "no art, however minor, demands less than total dedication if you want to excel in it."


If I could go back and give my thirteen year old self some advice, the main thing I'd tell him would be to stick his head up and look around.

 

Kids are sent off to spend six years memorizing meaningless facts in a world ruled by a caste of giants who run after an oblong brown ball, as if this were the most natural thing in the world. And if they balk at this surreal cocktail, they're called misfits.


We're up against a hard one here. The cause of this problem is the same as the cause of so many present ills: specialization. As jobs become more specialized, we have to train longer for them. Kids in pre-industrial times started working at about 14 at the latest; kids on farms, where most people lived, began far earlier. Now kids who go to college don't start working full-time till 21 or 22. With some degrees, like MDs and PhDs, you may not finish your training till 30.


I was taught in college that one ought to figure out a program completely on paper before even going near a computer. I found that I did not program this way. I found that I liked to program sitting in front of a computer, not a piece of paper. Worse still, instead of patiently writing out a complete program and assuring myself it was correct, I tended to just spew out code that was hopelessly broken, and gradually beat it into shape. Debugging, I was taught, was a kind of final pass where you caught typos and oversights. The way I worked, it seemed like programming consisted of debugging.

For a long time I felt bad about this, just as I once felt bad that I didn't hold my pencil the way they taught me to in elementary school. If I had only looked over at the other makers, the painters or the architects, I would have realized that there was a name for what I was doing: sketching. As far as I can tell, the way they taught me to program in college was all wrong. You should figure out programs as you're writing them, just as writers and painters and architects do.

Realizing this has real implications for software design. It means that a programming language should, above all, be malleable. A programming language is for thinking of programs, not for expressing programs you've already thought of. It should be a pencil, not a pen. Static typing would be a fine idea if people actually did write programs the way they taught me to in college. But that's not how any of the hackers I know write programs. We need a language that lets us scribble and smudge and smear, not a language where you have to sit with a teacup of types balanced on your knee and make polite conversation with a strict old aunt of a compiler.


You learn to paint mostly by doing it. Ditto for hacking.


Programs should be written for people to read, and only incidentally for machines to execute.


Plans are just another word for ideas on the shelf. When we thought of good ideas, we implemented them.


Someone graduating from college thinks, and is told, that he needs to get a job, as if the important thing were becoming a member of an institution. A more direct way to put it would be: you need to start doing something people want. You don't need to join a company to do that. All a company is is a group of people working together to do something people want. It's doing something people want that matters, not joining the group.


If you're in a job that feels safe, you are not going to get rich, because if there is no danger there is almost certainly no leverage.


Wealth is what people want. If you plan to get rich by creating wealth, you have to know what people want.


You get paid by doing or making something people want, and those who make more money are often simply better at doing what people want.


Programming languages are just tools, after all.


When you're writing software that only has to run on your own servers, you can use any language you want. When you're writing desktop software, there's a strong bias toward writing applications in the same language as the operating system.


There is even a saying among painters: "A painting is never finished. You just stop working on it." This idea will be familiar to anyone who has worked on software.

Hackers and Painters Hackers and Painters,黑客与画家,写的非常不错的一本书,这是英文版的。 立即下载

相关推荐

SpringBoot和Vue法律咨询案件进度与智能文书管理系统源码

包含前后端源码、SQL初始化脚本和启动说明。JDK 17、Spring Boot、Vue;默认H2演示数据库。

HardCore 的《黑客与画家》

《黑客与画家》可以说是黑客文化中颇有y;'xd'li [ying'xiang'li]

安柏霖的专栏 2654

汽车电子基于OTA的Bootloader更新机制:量产车软件升级断点版本限制与跨代更新规避策略

内容概要:本文深入剖析了量产汽车ECU中Bootloader在OTA升级过程中为何无法跨“断点版本”升级的核心原理。文章从Bootloader作为可信根的不可变性出发,解释了其在SOP后禁止常规OTA更新的原因,并揭示了Flash分区机制下OTA仅能擦写Application区的限制。通过介绍“两段式搬运”自更新机制,阐明了新版Bootloader需依赖旧版Bootloader执行迁移的“鸡生蛋”困境,进而引出断点版本的概念——即首次引入新Bootloader特性的关键过渡版本。文中详细列举了导致断点的典型变更(如签名算法、分区表等),并指出跨版本升级失败的根本原因在于旧Bootloader无法解析新镜像格式或执行更新流程。最后提出系统性解决方案,包括构建有向升级路径图、终端前置校验、A/B冗余、Golden恢复区等工程防护措施,强调需从架构、发布、OTA后台到售后体系全流程协同管理断点风险。; 适合人群:汽车电子工程师、车载软件开发人员、OTA系统设计师及从事ECU固件升级相关的技术管理人员,尤其适合具备嵌入式系统和UDS诊断基础的研发人员。; 使用场景及目标:①理解Bootloader在OTA中的核心作用及其不可随意更新的设计逻辑;②掌握断点版本的成因与应对策略,避免实际升级中出现“变砖”事故;③指导OTA系统设计与升级路径规划,提升整车软件迭代的安全性与可靠性。; 阅读建议:此资源结合真实工程场景深入浅出地讲解复杂机制,建议结合Bootloader自更新流程图与实际UDS刷写案例对照学习,重点关注版本兼容性判断、安全校验设计及故障恢复机制,在开发和测试中充分模拟跨断点升级场景以验证系统鲁棒性。

Hackers and Painters 读后感 by Yadli

人类世界还没有充分领会到程序员的美学,但是Paul Graham却以生动的文笔与幽默的语言,和着犀利的思想,将这种美带到了我们面前,超越了时代。 正是如此。不管你是一个做做纸飞机的业余爱好者,还是一个在软件工程的体制内谋生的专业程序员,究其根本,都是从事着创造程序的职业。我说创造,因为写程序是需要灵感,需要极大的热情的——这一点和画家无异——虽说计算机是精确的、死板的、有条...

ajin1402的博客 211

电力电子基于CCM Boost拓扑的3.3kW PFC电路参数设计:功率因数校正系统电感与器件选型优化

摘要:工程计算最难的不是算出来,而是「算完讲得清、改得动」。本文以一份 《3.3kW CCM BOOST PFC circuit parameters calculation》计算书为例,梳理 Maple Flow 的核心功能,并看它如何把规格、公式、器件选型、损耗校验和环路设计收进同一份可交付文档。

产业园区运营负责人如何精准对接企业技术需求与科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Hackers & Painters(《黑客与画家》)英文原文(前七章)

里,有一条Note:I’m using “exponentially” in the colloquial sense here. Property it should be “polynomially”.此文复制自作者个人网站。这是作者后来在其网站上加入的Note,表明了作者对于JavaScript的新态度。本文原题为***The Word “Hacker”***今中文版《黑客与画家》中即为这句的翻译。

Tanke2024的博客 272

邻传 NearShare v1.3.0|Windows局域网扫码文件互传、Word/Excel预览与直接打印(含MIT源码)

邻传是一款运行在 Windows 10/11 x64 电脑上的局域网文件共享工具。手机与电脑连接同一 Wi-Fi,扫码后使用浏览器双向上传、下载文件,无需蓝牙、手机 App 或配对码。 功能:同名文件以最后成功上传版本为准并保留历史;Word DOC/DOCX、Excel XLS/XLSX/XLSB/XLSM、ODS/CSV 在线预览;电脑端点击直接调出打印界面;类型筛选、搜索、列表/网格、批量删除和清空;自动识别电脑名称及可获取的手机型号,自动更新 IP 与二维码。 包内包含安装版、免安装版、MIT 协议源码、使用说明和 SHA-256 校验值,内置 Node.js,无需安装开发环境,不含个人共享数据。 使用:电脑启动 → 手机同一 Wi-Fi 扫码 → 上传/预览/下载。适合家庭、可信办公网络分享照片与文档。 限制:无登录、HTTP,能访问服务地址的设备可读写删除,请勿映射公网。Office 复杂排版可能简化;预览上限20MB,表格预览1000行50列;打印上限20MB/10万格/100页PDF,仅电脑支持。为手动分享工具,非自动文件夹同步。安装包暂未数字签名。

Paul Graham: Hackers and Painters

http://www.paulgraham.com/hp.html May 2003(This essay is derived from a guest lecture at Harvard, which incorporated an earlier talk at Northeastern.)When I finished grad school in computer science I...

weixin_30426957的博客 207

产业园区如何高效匹配企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

SFR算法实现详解:从边缘检测到MTF计算的完整流程

本文详细解析了SFR算法从边缘检测到MTF计算的完整流程,包括边缘检测、ESF超采样、LSF差分等关键步骤。通过代码示例和实战经验,帮助开发者高效实现成像系统解析力评估,优化MTF测量精度。适用于摄像头模组调试、工业检测等场景。

Black的专栏 1010

阅读《黑客与画家》有感——Hackers and Painters

花了几周之间把这本书看完,在这里记录读后感,与大家分享。 首先,此书的作者名气很大,号称硅谷创业之父Paul Graham,Lisp专家,世界上首个互联网应用程序Viaweb开发者之一。 介绍几个本书提高的一些关键词,个人觉得解释得很到位: 抽象:隐藏细节。编程语言越抽象,你写出程序所需的运算步骤就越少,每一步功能就越强。(与函数库的强大有区别) 位操作:对某个内存区域的一些简单操作,比如...

weixin_34258782的博客 232

【项目实战】Qt6 录制屏幕、录制声音生成MP4、AVI、MA3等(完整源码,可直接编译使用)

本文将详细介绍如何利用Qt6多媒体模块中的QMediaCaptureSession、QMediaRecorder、QScreenCapture、QAudioInput、QMediaFormat等功能,实现对屏幕和声音的录制,并生成常见的媒体格式文件,如MP4、AVI、MA3等。我们将探讨如何利用这些功能来实现灵活的视频和音频参数设置,以满足不同需求下的录制和生成要求。我们将重点讨论如何配置视频和音频参数,包括分辨率、帧率、编解码器选择、音频采样率、声道设置等。

yegu001的博客 4940

《黑客与画家:硅谷创业之父Paul Graham文集》----读书笔记

文章大纲保罗·格雷厄姆其人其事人物经历个人作品编辑译者序为什么书呆子不受欢迎黑客与画家不能说的话你是一个随大流的人吗真话异端邪说时空差异机制为什么这样做守口如瓶笑脸相迎?永远质疑良好的坏习惯另一条路设计与研究点评 保罗·格雷厄姆其人其事 人物经历 保罗·格雷厄姆以Lisp方面的工作而知名,也是最早的Web应用Viaweb的创办者之一,后来以近5千万美元价格被雅虎收购,成为Yahoo! Store。他的著作包括On Lisp (1993),ANSI Common Lisp (1995) 和Hackers

shiter编写程序的艺术 1755

[官方培训]22-UE资产优化 Epic 肖月 笔记

Nanite+Lumen目标:面向TA,美术,不影响视觉的前提下,优化运行和编辑效率引擎:UE5.1延迟管线平台:主流PC,Windows 10 with DX12。

Tcohneyn的博客 1576

手把手教你用scATAC-seq分析拟南芥根尖染色质可及性(附代码实战)

本文详细介绍了使用scATAC-seq技术分析拟南芥根尖染色质可及性的完整流程,涵盖从实验设计、数据质控、细胞分群到差异分析和多组学整合的实战步骤。通过具体的代码示例,帮助植物研究者掌握单细胞表观组学分析的核心方法,揭示细胞异质性和基因调控动态。

weixin_29291185的博客 266

LISP的过去和现在

呵呵,题目大了点。其实我只想说点小小的瞬间感受。休假的感觉真好,可以在家里悠闲地读书。今天一口气读了大半Paul Graham 的书Hackers & Painters。读Paul的文章总是一种享受,几个小时不知不觉就过了。放下书的时候,仿佛一场让人迷醉的音乐剧戛然而止,而自己还沉侵当中,过了好一会儿才慢慢回到现实。我不一定同意书里的观点,但Paul的确是写文章的一流高手,总是激情洋溢,同...

威尔软件 221

从零开始安装 Windows 11 和 Ubuntu 22.04 双系统

本文详解Windows与Ubuntu 22.04双系统安装流程:需提前确认BIOS模式(UEFI/GPT或Legacy/MBR),关闭BitLocker加密、设备加密及快速启动;推荐Rufus/Ventoy制作启动盘。安装时需规划分区方案(建议单独划分EFI系统分区),注意引导器安装位置选择。双系统启动通过BIOS引导顺序管理,安装后需同步Windows与Linux系统时间。教程适配主流UEFI+GPT设备,强调操作前数据备份及Windows更新策略调整,避免兼容性问题。

萑澈的博客 3776

39《黑客与画家 : 硅谷创业之父Paul Graham文集》 -豆瓣评分8.8

与您一起终身学习~ 《黑客与画家》 【 和画家一样,黑客只是怀有一门特殊手艺、善于打破常规的普通人。】        黑客和画家,两个看似没有关联的职业,在一位创业巨子的身上实现了碰撞。黑客之所以能成功,是因为他们抓住了财富的本质、打破了思维的禁锢。在未来,拥有技能的他们,将成为人类的领路人。        本期音频将为你介绍硅谷创业之父保罗 · 格雷厄姆的人生历程,他如何完成了从一名程序员到

Linux Openharmony Android Graphics Stack! 1676

怎么选?一文读懂12种SPC控制图,从基础到进阶,再到Python代码实现

本文系统介绍了12种常用SPC控制图的应用场景和特点,包括计量型(Xbar-R图、Xbar-s图、I-MR图等)、计数型(P图、NP图、U图等)及进阶控制图(EWMA图、CUSUM图、多元控制图)。文章强调控制图是SPC的核心工具,能有效区分过程变异类型,实现"预防优于检测"的质量管理目标。通过数据示例和Python代码展示了各类控制图的实现方法,为质量管理人员提供了实用参考。

m0_56592100的博客 4157

CKS-CN考试之路----11

显然是alpine-b的镜像有libcrypto3-3.1.4-r5。新版本发布老版本会被回收,此时pod只剩下2个container。我们依次测试是哪个镜像里包含libcrypto3。可以看到alpine的pod有3个副本.

Q先生 656
上一篇: 读书笔记>> THE Success Principles™ HOW TO GET FROM WHERE YOU ARE TO WHERE YOU WANT TO BE Jack Canfield
下一篇: Software Developer Life by David Xiang
CodingIsFun
博客等级 码龄8年 37粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值