顺手的工具会放大伟大程序员的生产力。
技巧9:优化环境
1.文本编辑器技巧:不断练习,形成肌肉记忆。承诺每周学习一个新技巧。
(1)学会只使用键盘在文件间移动。
(2)学习选择当前行和当前快。 (Emacs 里的kill ring)
(3)利用自动补全特性来减少敲字。
(4)大多数编辑器都能自动缩进代码。
2.编译器/解释器技巧
(1)打开警告...(warning .....blabla)
(2)学会用键盘快捷键构建项目。(vs ctrl+F5)
(3)学会用 快捷键跳到当前错误标识的源代码处。
3.调试器技巧
学会在调试器内启动程序的键盘快捷键,得到分析程序奔溃的栈轨迹,在源代码里设置断点。如果你的平台支持core文件,学会如何打开他们。强制奔溃产生core文件,然后将它加载到调试器里。
4.调优器技巧
知道如何运行并解释结果。
技巧10:流畅表达
1.一门语言都要花大约1万小时的专门实践才真正具有竞争力。
2.学习编程有两种方法:
(1)有关于该语言的优秀书籍(如C语言的《The C Programming Language》,中文版是《C程序设计语言》)
(2)查找并学习对应语言的开源项目
3.精通至少一门低级语言和一门高级语言,混合涉及到使用正日趋流行。比如游戏开发中对图形,声音有较高要求时,这部分往往需要用C编写。而"世界逻辑"则可以用Lua来设计,这样效率更高。
技巧11:熟悉平台
1.互联网是模块化设计和工作多样化的绝佳典范。
2.组件间的接口尽量通用,如在组件间交换数据时,考虑像xml或JSON这样的通用格式,而非定制的二进制格式。通用格式简化了不同语言的解析,使得在未来更容易变更。
3.在类UNIX平台上,用下面命令显示应用的依赖: ldd [program]
技巧12:自动让痛苦消失
1.作为程序员,你的价值在于思考,而不是打字(自动化的重要性)
2.自动化有两个目标:
(1)消除单调工作和给你一个可重复的结果(更改版本控制系统的文件->安装包改变->部署而是服务器->杀掉运行中应用进程->安装新包启动新进程)
(2)减少错误。修改一处而忘记改别的地方,构建包时忘记增加版本号
3.在UNIX上,cron能以固定时间间隔运行任务
技巧13:控制时间及时间线
1.集中化版本控制系统有:subversion, Perforce .分布式版本控制系统有: Git, Mercurial
2. 学会使用Git :创建仓库->在主干工作->commit->与同事交互->创建分支->合并到主干
技巧14:使用源码,卢克
1.使用一个开源软件前,了解对应开源软件的许可证
2.贡献一个你喜欢的开源项目