- 论坛徽章:
- 0
|
掌握基础知识。勿在浮沙筑高台。开发者的基础包括但不限于:操作系统(Linux/Windows/BSD, kernel, 嵌入式OS)、程序设计语言(C/C++/PHP/Perl/Python/Awk, etc.)、开发工具(GCC/GDB/Make/VS, etc.)、程序库(STL/Pthread/Boost, etc.)、算法与数据结构(list/hash/tree/sort/hash, etc.)、计算机网络(TCP/IP/RFC文档 etc.)。养成良好的学习习惯和学习态度:随手笔记(新学的技术、工具,甚至阅读英文资料时不识的单词,以及受感触、引深思的言论)、动手操作(勿仅停留于理论;轻信容易受骗)、博览兼听(论文、代码、论坛、博客、邮件列表)。
积累项目经验。实战,是提高技能的必经之途。积极主动的参与各种项目(TCPServer/UDPServer/资源分发/代理穿透, etc.),参与各个流程(需求讨论、设计、编码实现、调试、测试),对比、学习市场上的同类产品(开源的、商业的)。对项目中遇到的问题,要记录、讨论、思考、解决,事后还要总结、反思(是否有更好、更有效的方案)。项目中,勇于承担责任,积极处理测试发现的bug或客户反馈的问题;主动跟踪发布后的产品,掌握各项关键指标(丢包率、响应时间、流量、崩溃等)。项目中,学习他人的思考方式、分析问题的思路;遇见的问题,知其然,知其所以然,勿以解决问题为最终目标,要分析问题的本质,寻根问底。项目中,与团队成员结成融洽的关系、真诚的友谊。项目中,学会制定计划、日程安排、人员规划,从周计划、月计划等短期计划,到季度计划、年度计划等长期计划。了解公司的战略方向,并积极做知识、技能的储备,因为机会青睐于有准备的人。项目中,了解自己擅长与不擅长的方面,取长补短,并为自己做职业规划(技术、管理、CTO、创业)。
学会与人沟通。提高口头表达能力(汇报工作、主持会议、开展技术交流等)与书面表达能力(邮件、设计文档、PPT、博客、论坛等)。能清晰的阐述自己的观点、意见。对有经验的老同事虚心请教,勿不懂装懂;对没有经验的新同事仔细指导,不居高临下。参与各种业界的活动,与业内人士沟通技术、产品,不固步自封、自以为是。学会倾听,尊重异己的观点;学会分享,知晓分享的快乐。沟通的关键不是施以何种技巧,而是开诚布公、真诚实意。
通晓历史。以史为镜,可以知兴替。通晓历史,更能看透事情的本质、原委与去向。仅技术而言,知道技术的起源、潜伏、兴起、爆发、没落、消逝或重生(《UNIX编程艺术》、《C++语言的设计与演化》等),知道左右技术的因素、社会环境、兴起衰落的缘故(《浪潮之巅》、《激荡三十年》等),才能具备相当的眼界、魄力(当然还需要多年生活的锤炼),才能为自己做出更好的决策(简单说来,选什么技术走什么路)。知道过去、现在那些伟大的人,以及他们伟大而激动人心的创举,你也有了追赶的方向(榜样的力量是无穷的,Dennis Ritchie/Ken Thompson/Knuth/Jobs, etc.)。以历史为引,其实,本条要说的是:勿对技术之外漠不关心。优秀的开发者,不仅是踏实的匠人,也可以有相当的人文气:简单的哲学(如K.I.S.S/UNIX)、优雅的设计(如Apple/TeX)、自由的向往(如GNU)等等。
尽道是,预测未来的最好方式就是去实践它。就从做好当下手头的一件小事起步吧。
2010/4/14 |
|