技术工作中,看得见的知识,浩瀚无垠;看不见的经验,往往意会不可言传。你初入职场,希望得到前辈的指点;你是公司前辈,带着新人干活却一言难尽。玄而又玄的内隐职场经验如何外化?Andrew Hunt,David Thomas用这本《程序员的思维修炼》给了很好的解答。
此书写给程序员,也不乏各种通用道理,尤其适用于技术类职场。全书几十条经验tips,有具体实例,有生动类比,独立又彼此交织,形成一张实用经验网。每一点都是让自己成长的“内心的小声音”。每次实践一点,便内化一点,慢慢提高。看完本书,非程序员的我,立刻改良了自己的一些工作习惯,恩,就是这么实用。
核心理念
技术职场的生存法则,一言以蔽之:注重实效pragmatism。如果加上一个前提,便是:关心你的技艺Care about your craft. 只有关心自己的工作结果的人,才会寻求一切可以解决问题的方法,寻求各种优化策略。
通用的职场态度
-
承担责任
- 及时备份,纸质版记得扫描,电子版每3个月更新一次移动硬盘里的备份;
- 提问的艺术:不要问老板怎么办,而是提供多个解决方案选项;
- 主动准备应急方案,永远有plan B;
- Sign your work,在你的工作(图纸,代码,模型etc)签上你的名字;
- 勇敢承认自己需要帮助,在去除掉所有蹩脚的理由之后。
-
有序
- 项目文件命名有规律,项目+日期,每次修改增版本,保证资料可回溯;
- 写日报、周报、年报,总结+计划;省脑力的做法是使用固定模板;
- 整理自己的工作经验,写standard procedure;大脑不是用来记知识的,经验写下来直接存储为电子版,方便以后的搜索与复用,也方便分享给同事带新人。
-
知识就是财富,所有的投资知识也适用于知识。
- 定投——持续学习;——这是最重要的
- 管理风险——多元学习;
- 低买高卖——主动学习新知识;
- 周期性评估和平衡——盘点自己的知识与技能。
-
不要重复自己
- 不浪费脑力重新思考自己做过的事情,直接调取以前整理的工作经验;
- 重复的工作内容重复,让电脑做,自动化——EXCEL,SHELL,python;
- 主动用不同的方式工作,做的比期待的更好,主动提高工作难度,像游戏一样;
- 还是重复的话,考虑换工作,前提是把之前的工作做得很好。
-
交流:如何说与说什么同等重要
- 同理心,了解听众。
- 给老板汇报:省掉各种细节,金字塔原则开门见山,列举遇到的困难及解决方案,展示成果;
- 与同事交流:共同利益/目标是什么,彼此责任各是什么;
- 对外交流:优先级最高,直接展示成果,内部口径一致。
注重实效的工具
-
纯文本的威力
持久的储存知识的最佳格式是纯文本。同意,所以写作用Markdown,所以我们仿真建模型用命令行。
好处:保证不过时,不会因为软件版本差异而造成数据损失,查看10年前的模型也没问题。行动:选择一款强大好用的编辑器,专注学习它。只会基本功能是不够的。目标是:避免复制粘贴式操作,减少需要敲击键盘数。
作者推荐:Emacs,vi/vim。
我的选择是Notepad++,看完书立刻搜索其高级功能,总结在此:土木|Notepad++使用技巧收集 - 简书。 利用shell批量处理工作
比如文件目录树生成,有用!不需要一个一个复制粘贴子文件名字到Ansys的main文件了。
更多技巧待学。学会一种文本操控语言
python可以吧?正在学习。-
源码控制
可以回溯历史版本,给自己撤销犯错的机会。行动:买私人github库,存档。
-
调试
Don't panic
能再现bug才算真正的懂了问题在哪行动:收集bug/error清单,整理并共享这个检查列表
关于代码
土木仿真角度:
早测试,常测试,自动测试
写一点测试一点;
必须测试的:质量,振型易于测试的代码
各单元解耦,独立测试;
定点测试,一次只有一个error用证据说话
保持多疑,用证据说话;
如果觉得某事不会发生,不要停在心里想,保持怀疑精神,使用assert语句保持监测(断言式编程)。
比如ANSYS中,时刻调取ELIST,RLIST,用参数数据证明模型的正确,control我们的模型。把注释说明放在文本里面,不要拴在外面
文件抬头写修订历史;
特殊取值必须说明;
参数命名要相关.
书中的一些经验,因为我暂时还不懂C++,java,pearl,所以并没体会到其中精妙。好在这本书耐读,大道至简。等回头编程技能更棒的时候,我会再重读此书,一定还有收获。
真希望各个行业都有这样的朴素而智慧的经验分享。