第1章 选择市场
1. 稳定成熟的技术还是未成熟的技术?
- 无论哪种选择技术,最终的目的是产生利润。
2. 供应和需求
- 善于发现市场上技术的不平衡,找到外包公司无能为力的工作(高要求)。
3. 只会编程是不够的
- 仔细思考在哪个商业领域投入时间。
- 软件工程师不能只会开发软件,应该要成为这个业务领域的专家。
- 你的行业经历应该成为你的重要才能。
- 有机会多与公司行业内人士接触,选择一本与你公司行业有关的杂志,找一个行业网站。
- 只有了解了一个行业后,你才能创造性地有所建树。
- 学习行业是如何运转的,了解一些财务基本知识,推荐一本商业教程: The Ten-Day MBA。
4. 在思维上投资
- 要学会抓住机遇。
- 多学习新的技术,编程语言,可以改变你的思维方式。
5. 不要听从父母
- 在职业道路上,需要一些有目的性的冒险.不要让恐惧征服了你.跳槽可以让你从各个角度了解这个行业。
- 如果工作中没有感到乐趣,就不可能出色地工作。
6. 做一名通才
- 你的技术水平应该超越技术平台。
- 经常学习一些新技术。
7. 成为一名专家
- 不仅应该会处理高端抽象,同时也应该了解实现高端抽象的低端细节。
8. 切忌孤注一掷
- 不要把自己的职业发展完全依赖于一家技术公司。
9. 热爱它,不然离开它
- 一门技术或者一个商业领域可能使你感到兴奋,相反,它们也可能拖累了你.想想自己到底适合什么。
- 找一份自己真正有激情去做的工作。
第2章 在产品上投资
10. 学习钓鱼
- 要了解 如何和为什么。
- 要主动问,不要等着别人来告诉你。
11. 寻找良师
- 可以依赖别人,但要确保这个人是靠得住的。
- 良师的首要任务是榜样作用,还可以将你的学习过程形成体系,也是值得信任的朋友,可以帮助你作出职业导向,帮助你磨练技术。
12. 做一名良师
- 想要弄明白自己是不是真正懂得某一知识,那就把它讲给其他人听。
- 通过传授知识学习.通过讲授,我们的那些知识死角就会暴露出来。
- 做别人的导师也会产生积极的社交效果,在这种关系网中,可以很好地解决难题或者寻找工作。
- 找一个网络论坛,挑选主题,开始帮助别人。
13. 练习,练习,再联系
- 开源社区是找到用来练习的代码的绝佳场所.浏览一个开源软件的待实现的功能,给自己规定时间来实现这个新功能.首先是要快速读懂正在看的代码。
- 要寻找不同风格,不同编程语言的软件进行练习。
- 训练思维敏捷和提高即兴编码技术的好方法是通过自我限制(限制变量个数,限制程序大小,限制开发时间)的方式来练习。
- 在极限处练习.练习一些功能强大但很少人使用的编程功能。
- 推荐进行编程练习的网站:Topcode.com; codekata.pragprog.com
14. 做事的方法
- 一个使你的团队工作更有效率,帮助你们生产出更好的产品的步骤就是最好的方法.在实践中不断提炼总结。
- 选择一些软件开发方法论,讨论它们的优势和弱点,考虑如何将它们结合起来。
15. 站在巨人的肩膀上
- 从已有代码中得到领悟,从已有代码来反思自己的代码。
- 可以研究一些开源软件,从批判的视角看这些程序。
16. 在工作中,将自己自动化
- 挑选经常重复做的工作,看看能否把它自动化.(比如代码生成器)。
- 研究模型驱动架构(MDA)。
第3章 执行
17. 就是现在
- 如果把自己做的项目当作是一个竞赛,你就可以更快地完成工作。开始行动,不要总是安于现状,要做推动者。
18. 读心术
- 读心术用的好,人们就会信任你。
- 开始下一个项目的时候,记录下你认为用户和经理想要让你做的事情。有点创造性,试着从他们的角度看问题。记录下这些可能会被提出的不太明显的功能之后,想想如何才能最有效地实现它们。
19. 每日成绩
- 每日都有可汇报的成绩。经常记录工作成绩可以确保你不会停滞不前。
20. 别忘了你在为谁工作
- 经理的目标,就是整个团队的目标。经理的成功就是你们的成功。
21. 安分守己
- 要有雄心,但不必路人皆知。
- 专注于现在的工作,不仅让你更加快乐,也会让你身边的人更加快乐。你的同事,上司和客户都能感觉到。你的工作成绩会反映出你的态度。放弃你想要成功的期望可以提高你的能力,让你走向成功。
- 不要关注结果,要关注做事的过程。
22. 今天我能把工作做到多好
- 试试把无聊的工作做到100分,做到最好。
23. 你的价值是多少
- 问自己:今天实现自己的价值了吗?问自己今天又新增加了多少价值?
24. 一桶水中的鹅卵石
- 感觉自己无可替代是一个不好的征兆。
- 要让自己不可替代,就要建立一种友好的工作关系。
25. 爱上维护
- 维护也可以成为自由和创造的沃土。
- 评估,改进,评估---在所维护的程序中,把所有可以评估程序质量的元素列举出来,如响应时间,未处理的异常数量。从中挑选最重要的特征,确定可实现的目标,对其进行改进。
26. 8小时激情燃烧
- 当工作时间非常充裕的时候,工作的时间价值就会降低。好好规划工作时间,减少工作时间,你的收获会更多。当你离开工作一段时间后,才会更喜欢工作。
27. 学习如何失败
- 带着防御性措施进行编程很重要。出现问题的时候,才是考验软件质量的时候。
- 发现问题后第一时间提出,不要企图隐瞒错误。接受批评。提供解决方法,或者一份有计划性的进程。寻求帮助。
- 充满压力的时候是赢得忠诚的最好时机。
28. 说“不”
- 为了避免失望而说“是”,就是在说谎。要勇于诚实。
29. 说出来,行动,展示
- 制作计划,执行计划以及与上司就计划进行沟通都会帮助你找到工作的独立性和归属感。
- 状态报告可以帮助你推销自己。
- 计划不一定非得是大计划,也不需要有很长的延续性。一天的计划,可以非常详细,也可以是泛泛的。
- 通过计划,不仅知道今天要做什么事情,也可以看到自己已经做了什么。如果没有完成计划上的所有事情,可以把今天未完成的工作添加到明天的计划中(如果这些工作仍然需要完成)。当一天的计划按节奏完成后,可能想制定一周甚至是一个月的计划,当然这样做计划的水平要更高。
- 做计划时要谨记,出现在计划上的每一项工作必须要与后续工作相关,要么被完成,推迟,去除,或者被替代。
第4章 推销......不仅仅是迎合
30. 不要忽视感觉
- 绩效考核永远都不会是客观的。
- 应该在乎别人的看法,别人对你的认识就是现实,好好解决它。
- 在人际交往中,要弄清楚哪一因素对哪一种关系圈是重要的,这样就可以给你周围的人留下可靠的感觉。
31. 探险向导
- 沟通很重要,要站在经理和客户的立场上思考问题。
- 做客户的IT向导。
32. 学会沟通,善于写作
- 文字表达能力非常重要。沟通,特别是以文字形式进行的沟通,是你所有绝妙想法必须要通过的瓶颈。
- 开始记录开发日记。每天写一点,记录你做了什么工作,解释你的设计决定,检查棘手的技术和专业决策。
33. 到场
- 能够与上司和客户面对面地沟通是你的优势,不要浪费这个机会。
- 通过有效,高带宽的交流建立的团队关系可以更快更好地生产软件。
- 如果方便,尽量用电话而不是邮件与别人交流。
34. 适当的语言
- 请用行业术语推销你的成就。
- 作为软件工程师,要把你完成的工作放在你所服务的行业的框架里。
35. 改变世界
- 带着任务去上班,并确保别人知道你的任务。
36. 让人们听到你的声音
- 把目光放得更远一些,不要把自己局限在某一特定公司中的程序员。
- 人际关系网络非常重要,认识的人越多,得到好工作的机会就越大。
- 如何从一名程序员到出版作品再到公众演讲:阅读网络日志,挑选几位最喜欢的技术类书籍作者的网络日志,订阅这些日志,以及相关的日志,你的日志链接列表也会不断增加;开始撰写自己的网络日志,进一步可以将这些文章发表在社区网站,杂志甚至书籍上;可以在当地开发小组会议上开始你的演讲生涯。
- 尽早行动,而不是一味地去想自己是否已经做好了准备。你一定有某种可以传授给他人的东西。不用做好100%的准备,现在就开始行动。
- 挑选自己最好的文章,提交到类似Digg和Reddit这类由用户审查文章的网站上。
37. 发布你编写的程序
- 对开源软件有所建树是一种技术的展示。领导一个开源项目展现的能力远不止技术能力,还有领导能力,版本管理,编制软件以及支持产品和团体的技巧。
- 开源社区是全球性的人际关系网络。
- thinkrelevance.com
38. 变为卓越的能力
- 从小事做起,但是要在你现在的项目或者工作中做一些卓越的事情。比如力争卓越的效率。
- 要想卓越,就必须和周围的人大相径庭。
第5章 保持技术领先
39. 已经过时的技术
- 你引以为傲的技术可能已经过时了。必须认识到,即使你现在处于当今潮流的尖端,也极有可能已经在下一个潮流之后了。学习前要先动动脑子,现在看起来不可能的事情,2年间会发生什么变化呢?向前看,清楚地知道你的技术发展方向。
- 每周找出时间来研究尖端技术,并动手尝试。将正在以当前技术做的项目,用新技术作出原型,理解它们的不同之处。在日程安排中加入这项工作的时间。
- 要自我反省,弄清楚自己的盲点。
40. 你已经失去工作了
- 把自己与现在的工作过于紧密地联系起来已经不安全了。尝试不同的角色,看看自己的工作方式发生什么变化。
41. 给自己做一份蓝图
- 个人的产品路线蓝图是用来判断你是否在不断向前发展的依据。
- 没有蓝图,就无法形成一个逻辑上相关联的整体,你可能会迷失方向。
- 清楚地列出职业发展的时间表,标注从哪里开始,以及每一阶段的技术和工作是什么。注意哪一个阶段你在持续进步,又在哪一个阶段取得了重大进展。注意每一次取得重大进步需要的平均时间。展望职业发展时,以这份蓝图作为参考。清楚地了解过去取得的进步,可以帮助你制定出更加实际的目标。要根据实际情况不断更新蓝图。当你不断向新目标前进的时候,这种方法可以很好地反映你的进步。
42. 要注意观察市场变化
- 留意那些技术达人。可以大致了解将来的热门技术或者两年后的热门。
- 注意技术方面的新闻,不管是商业方面还是纯技术方面的。
43. 南印度捉猴陷阱
- 坚持固执的价值观念使你脆弱。
- 了解自己的技术强项和弱项,试着用最讨厌的技术开发一个程序。
44. 每天都有进步
- 如果在改善自己的道路上,每一天都比昨天多作出一点改变,就会发现---拥有卓越的职业生涯,越来越容易达成,而不再像汪洋大海一样没有边际。