惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
爱范儿
爱范儿
Y
Y Combinator Blog
T
Tor Project blog
V
Visual Studio Blog
U
Unit 42
B
Blog RSS Feed
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
G
Google Developers Blog
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Fortinet All Blogs
人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
Recorded Future
Recorded Future
博客园_首页
罗磊的独立博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
P
Proofpoint News Feed
Jina AI
Jina AI
博客园 - 【当耐特】
S
Security @ Cisco Blogs
I
Intezer
MyScale Blog
MyScale Blog
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
腾讯CDC
T
Tenable Blog
A
Arctic Wolf
T
Threat Research - Cisco Blogs
S
Securelist
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
C
Check Point Blog
NISL@THU
NISL@THU
Microsoft Security Blog
Microsoft Security Blog
V
Vulnerabilities – Threatpost

Jiajun的技术笔记

你好,2026! TiDB 源码阅读(六):TiDB Coprocessor 源码解析 性能优化的核心思想 TiDB 源码阅读(五):索引 TiDB 源码阅读(四):AST、逻辑计划、物理计划 CockroachDB Serverless Architecture podman 无故退出 Cursor Control-L (CTRL-L) Keyboard Shortcuts in Terminal Replace docker with podman Using xmonad with xfce4 A RC script for freebsd frpc 自己动手写一个k8s controller AI 会取代你的(编程)岗位吗? 自建DERP服务器提升Tailscale连接速度(使用Nginx转发) 自动升级Docker容器 再读《程序员修炼之道-从小工到专家》 让浏览器下载文件 HTTP 压力测试中的 Coordinated Omission 2的补码 编程语言中的 context 是什么? flutter macOS 构建出错 Flatpak 使用小记 Golang CAS 操作是怎么实现的 PostgreSQL 当MQ来使用 Clash 结合 工作VPN 的网络设计 使用 PostgreSQL 搭建 JuiceFS PostgreSQL 配置优化和日志分析 有GitHub Copilot?那就可以搭建你的ChatGPT4服务 窗口函数的使用(以PG为例) 读《为什么学生不喜欢上学》 OpenAI Prompt Engineering 摘录和总结 读《打造真正的新产品》 VueJS 总结 Linux 自动挂载 alist 提供的webdav FreeBSD 使用 vm-bhyve 安装Debian虚拟机 FreeBSD 和 Linux 网卡聚合实现提速 GPT 帮我搞定了时区转换问题 长任务系统如何处理? macOS/Linux 编译 InputLeap 使用开源软KVM - synergy-core 解决 macOS 终端hostname一直变化问题 KVM 共享 Intel 集成显卡 PromQL 备忘 读《格鲁夫给经理人的第一课》 读《打开心智》 为什么要把复杂的联表操作拆成多个单表查询? 红包系统的设计 MySQL Index Condition Pushdown Optimization Go mod 简明教程 OpenWRT 使用 Android/iOS USB 网络 搭建旁路由 Golang gRPC 错误处理 编写可维护的单元测试代码 OAuth 2 详解(六):Authorization Code Flow with PKCE OAuth 2 详解(五):Device Authorization Flow OAuth 2 详解(三):Resource Owner Password Credentials Grant OAuth 2 详解(四):Client Credentials Flow OAuth 2 详解(二):Implict Grant Flow OAuth 2 详解(一):简介及 Authorization Code 模式 ElasticSearch 学习笔记 三种git流程以及发版模型 错误处理实践 权限模型(RBAC/ABAC) OIDC(OpenID Connect) 简介 任务队列简介 PostgreSQL 操作笔记 使用Drone CI构建CI/CD系统 Golang migrate 做数据库变更管理 使用PostgreSQL做搜索引擎 Nginx 源码阅读(三): 连接池、内存池 Nginx 源码阅读(二): 请求处理 Nginx 源码阅读(一): 启动流程 Go 泛型简明教程 KVM 显卡穿透给 Windows 使用 HTTP Router 处理 Telegram Bot 按钮回调 使用反射(reflect)对结构体赋值 GIN 是如何绑定参数的 你好 2022(2021 年终总结) 用Go导入大型CSV到PostgreSQL 使用 OpenWRT 搭建软路由 使用软KVM切换器 barrier 共享键鼠 SQL 防注入及原理 使用 gomock 测试 Go 代码 gevent不是黑魔法(二): gevent 实现 gevent不是黑魔法(一): greenlet 实现 用 entgo 替代 gorm 应用内使用crontab不是那么方便 单测时要不要 mock 数据库? Sentry 自建指南 用selenium完成自动化任务 用闲置的安卓手机做垃圾电话短信过滤 推荐三个时间管理工具 一次事故反思 当JS遇到uint64:JS整数溢出问题 SQLite3 存储以及ACID原理 Redis源码阅读:pub/sub实现 Redis源码阅读:zset实现 Redis源码阅读:bitmap 位图的运算 Redis源码阅读:set是怎么做交并集运算的? Redis源码阅读:list实现(ziplist, quicklist)
再读《软件随想录》/《黑客与画家》/《软技能》
Jiajun Huang · 2024-09-06 · via Jiajun的技术笔记

再读《软件随想录》/《黑客与画家》/《软技能》

最近重读了这三本书。上一次读大概还是在10年前,有了这些年的工作经验,再看这些书,感触颇深。


《软件随想录》

不要陷入技术口水战

比如你喜欢用什么编辑器,喜欢用什么编程语言,喜欢用什么操作系统,这些都是个人喜好,没有对错之分。不要陷入无意义的口水战。 而是要看什么场景用什么工具,对症下药。例如,UNIX程序员喜欢文本模式,Windows程序员喜欢图形界面。UNIX文化老是吐槽Windows 注册表,但是UNIX的配置文件到处都是。又或者C语言高效,Python是玩具等等。这些都是无意义的争论。

应该在合适的场景使用合适的工具,比如UNIX的文化来源于哪里呢?UNIX来源于他是面向程序员的操作系统,而Windows是面向用户的操作系统。 文本对程序员是友好的,但是你要一个老奶奶来用编辑器编辑配置文件,那就很折磨人了。

要快速迭代时,用Python,要高效时,用Go,嵌入式用C,开发浏览器页面就得用JS等等。

乔尔测试

  • 你们用源代码管理系统吗?
  • 你们能一键编译吗?
  • 你们做每日编译吗?
  • 你们有bug数据库吗?
  • 你们在写新代码前修改以前的代码吗?
  • 你们的进度表是最新的吗?
  • 你们有软件规格书吗?
  • 程序员的工作环境是安静的吗?
  • 你们使用了能买到的最好工具吗?
  • 你们有测试人员吗?
  • 你们面试时会要求应聘人员写代码吗?
  • 你们做过走廊可用性测试吗?

是就给你的团队加上1分,否则就是0分。得分越高,团队越好。12分是完美的,11分尚可,10分或更低就意味着开发团队出了很严重的问题。

这一篇文章写于2000年,现在看来,这些问题都是很基础的问题,但是很多团队还是做不到。里面的很多东西,也成了现在的基础设施, 比如源码管理系统,今天的git;编译,今天的CI/CD;bug数据库,今天的issue tracker等等。

自动从用户那里收集错误报告

这不就是现在的Sentry/Crashlytics等等吗?

任务切换有害论

多个任务并行,不断切换,的确会降低效率。


《黑客与画家》

黑客是一种文化,是一种态度,是一种精神。黑客是对技术的热爱,是对技术的追求,是对技术的探索。

思想自由比言论自由更重要。

此外还可以阅读 Raymond. Eric S. 的 How to become a hacker。


《软技能》

软技能是什么?软技能是与技术无关的技能。

把自己当作一家企业

我们习惯了打工,领取月薪。如果换个视角,会更好。把自己当作一家企业,现在的雇主只是你的第一个客户,你可以有更多的客户。 作为一个企业,就要想办法提高自己的价值,提高自己的收入。因此需要思考品牌,市场,销售等等。

设定目标

要有中期目标和短期目标。中期目标是你的职业规划,比如5年后,10年后你想成为什么样的人。短期目标一般是最近的几个月,比如 你想学习什么技术,你想做什么项目等等。

我个人一般会设置5年规划,以及每年定目标。然后再拆分成每个月的目标。

人际交往能力

说到底,计算机程序是为人服务的,工作中写文档、写邮件、开会、沟通其实都是和人打交道。甚至写代码也是为了给人用。 所以千万不要想着“我只想安安静静的写代码”。

债务

不要背负债务。