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

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

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为例) 读《为什么学生不喜欢上学》
再读《软件随想录》/《黑客与画家》/《软技能》
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年规划,以及每年定目标。然后再拆分成每个月的目标。

人际交往能力

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

债务

不要背负债务。