如何成为优秀开发人员[1]:关于兴趣
有兴趣的开发人员和没兴趣的开发人员,差别怎么就这么大捏要是因为有兴趣的人,比较有动力去学习新东西、碰到新鲜玩意喜欢去刨根问底、碰到有开发过程的困难(比如一些难调试的bug)也显得比较有耐心、……久而久之,两种人的差别就渐渐地体现出来鸟。
所以,如果你属于下列情况之一:
1、即将进入学校学习软件这门专业
2、已经从学校毕业,即将入这个行当的新手菜鸟
3、已经工作了若干年,但还不属于优秀开发人员
4、已经在其它行当工作了若干年,觉得软件这行不错,想转行过来
并且企图在将来成为一个如我所说的优秀开发人员,那么你首先要判断一下,自己是否确实喜欢软件开发。
用如下简单的问题就能够判断出你是否确实喜欢软件开发:
假设有两个工作岗位A和B供你选择。
工作岗位A:你可以随意地去干 除了软件开发之外的任何事情(只要你喜欢的,都可以);
工作岗位B:你必须全职从事软件开发,不能干其它事情。
并且岗位A的收入比岗位B高很多。
对上面这个问题,你会选择哪个工作岗位你毫不犹豫(其实稍微犹豫一下也没太大关系)地选择B,那么恭喜你,你确实对软件开发非常热衷。我建议你把“如何成为优秀的开发人员”这个系列的帖子都看完,对你会有帮助。
看到这里,可能有读者要问了:如果我原先对软件开发兴趣不大,有什么方法能让我变得对软件开发非常热衷
想回答这个问题,大伙先要明白这样一个事情:根据心理学(不好意思,又扯上心理学了)的研究,大部分人的性格、兴趣、气质等因素,大都形成于20岁左右之前。在20岁左右之后,一般不会有太大的改变。
所以,你如果已经从学校毕业,又工作了若干年,那么你的兴趣多半已经定型,改变的机会和效果不大(但也不是绝对不可能改变)。兴趣这种东西是自然形成的。依靠主观愿望去改变自己或者别人的兴趣,最终的效果并不理想。与其这样,不如找一个自己真正感兴趣的行业去做。
反之,如果你年龄尚小(不到20岁),还在读中学(甚至小学),那你现在还不必考虑“如何成为优秀开发人员”这个问题。在这个年龄段,重要的是发现自己的兴趣点在哪里,并让它充分发挥出来。
关于兴趣的话题就聊到这里,下一个话题咱们来聊聊“自学能力”。
如何成为优秀开发人员[2]:关于自学能力
通过本系列 上一篇帖子,你应该已经搞清楚自己是否 确实有兴趣从事软件开发工作。现在我们来聊一下开发人员的自学能力(终于开始介绍实质性的东东了)。
★ 自学的重要性
为啥我把“自学能力”排到“兴趣”之后捏大伙儿都明白,IT这行知识的更新速度巨快。有很多新玩意儿在你读书的时候还没有发明出来呢步讲,即使某个新技术在你上学的时候已经发明出来,你的计算机老师也未必会教你(或许他/她自己也不懂)。再退一步讲,即使你上学时的计算机老师比较牛,会把当时新出来的某个技术教给你,但是你将来工作中需要用到的新技术未必就当年老师教给你那个……
上面啰嗦了一大堆,无非想说,你工作中终归会需要用到某个新技术是你以前没学过的。所以,自学能力是非常重要滴。以此相对照的是:国内的大多数开发人员都比较缺乏自学能力(这个也跟国内的教育体制有关)。所以,对于立志成为优秀开发人员你,需要先搞定自学能力这个东东。
★ 自学的主动性
我把国内的开发人员按照自学的主动性不同,分为如下几类(你顺便想想自己属于哪一类):
1、抗拒自学者
这类人不愿意自学(部分人是由于懒惰、另一些是由于抵触新事物)。当工作中要用到某项新技术而需要自学时,他/她就找若干理由推诿。我估计这类人占的比例不多,万一你正好属于这种人,那还是趁早改行,别在这个行业浪费青春了(因此也别再继续看这个帖子了)。
2、被动自学者
这类人平时没事不会想到去自学新东西。只有当上司逼着他去学XX技术,他才勉为其难地去学。我建议这类人也不用继续看这个系列的帖子了,找个凉快的地方呆着去吧。
3、需求驱动型自学者
这类人自学的动机和方向是基于需求驱动。比如因为工作中要用到XX框架、XX库、XX软件,然后就利用业余时间找资料去看。如果你属于这类人,就得考虑考虑向第4类人转型。
4、计划型自学者
这类人自学的动机和方向是基于自己的规划。 定期看看自己的知识结构有什么缺陷、将来自己想朝什么方向发展、最近哪个新东西将来会用得上、……然后给自己定一个学习计划。如果你属于这类人,恭喜你。
★ 自学的常用招数
现在,咱们来聊聊和自学有关的几个 常用招数。
1、搜索引擎
由于使用搜索引擎是互联 时代的 必备基本功,搜索引擎的重要性我就不多废话了(千万别跟我说你还不懂得用搜索引擎啊)。
2、百科类 站(例如 中文维基百科、 百度百科)
百科类 站,顾名思义,就是拿来当百科全书使的。当你听说某个时髦的新术语,但又不甚了解,这时候就可以用上百科类 站了。各种专业术语一般都可以在百科类 站上查到比较具体的解释。不过百科类 站的功能也就仅限于此,当你需要深入了解某个技术时,它是远远不够的。
3、订阅“BBS、Mailing List、Blog”
这3种东东的特点是具有一定的交互性,而且大都支持软件订阅。通过订阅一些专业的、针对某个领域的“BBS、Mailing List、Blog”,你可以了解该领域的实时动态、了解该领域的热点话题、了解该领域的发展方向。你自己如果碰到疑难杂症,还可以在上面找人问(运气好的话还能交几个朋友)。
为啥我特地强调“ 订阅”捏使用订阅可以让信息自动跑到你面前,省去了打开浏览器挨个访问 站的麻烦(因此也节省了时间)。这3种东东的局限性是:难以通过它们 系统性地掌握某个比较复杂的技术(比如你要学习某个有一定复杂度的编程语言)。
4、看书(包括电子书和纸版书)
当你要系统性地掌握某个比较复杂的技术时,首选方法是:找一本针对性的 好书。由于每一个具体的领域,都有N本书可供选择,这时候如何取舍就非常重要。如果你选的书比较差,不但看起来吃力,甚至会把你带到沟里。这时候你就得利用搜索引擎或者专门的 站(例如 豆瓣、 亚马逊)来识别好书与坏书。关于如何鉴别一本书的好坏,我在帖子“ 如何选择IT技术书籍”里有深入讨论,这里就不再啰嗦了。
再来说说电子书和纸版书。首先电子书的资源非常多,大部分国外出版的IT书都可以在Internet上找到免费的电子版。另外还有电子书还有如下好处:便于携带、能全文搜索、能共享、能备份、还省钱。从目前的发展趋势看,电子书占据主流地位只是一个时间问题。基于上述理由,所以我很喜欢看电子书(可惜大多数人都没有看电子书的习惯)。你如果还没有形成看电子书习惯的话,要开始培养了。
说完电子版和纸版,再来聊聊中文版和英文版。英文版相对中文版的优势就如同电子版相对纸版的优势一样明显。国内懂开发又文笔好的IT作家寥寥无几,导致国内出版的IT技术书籍要么翻译国外(翻译过程一般会导致1-2年的滞后、翻译质量还未必好),要么粗制滥造。所以,你如果不能流利地阅读英文书,赶紧恶补英语吧!
上述4个招数,如能熟练运用,从此自学无忧矣!
下一个话题,准备聊一下“ 设定个人发展目标和计划”。
如何成为优秀开发人员[3]:设定个人发展目标和计划
大部分人从来没有 明确地设定 自己的发展目标,每天都是得过且过。等到几年过去了,才发现自己这些年啥也没学会,还是老样子,然后就感叹时光飞逝、岁月如梭。因此,今天我们来聊一下如何设定个人发展目标。(如果你平时已经很善于定期设定个人发展目标并执行得很好,恭喜你,那么本帖子你可以略过)
先说说什么是“个人发展目标”。顾名思义,就是和你个人的职业发展有关的目标,包括知识、技能、工作岗位等都可以被设定为个人发展目标。(由于本博客主要关注IT方面,因此我会以个人的技术发展为例来说明,但是这些方法也适用于其他方面,例如个人财务目标)
我一般会把个人发展目标分为“长、中、短”三种类型,以此来对应不同的时间阶段。不管是哪种类型的目标,都要把目标设置得 难易适中。太容易的目标对自己的成长帮助不够大;而太难的目标则容易中途放弃或者超出时间(导致打乱计划)。还有,设定的目标要尽量容易评估(否则到时候连自己也搞不清楚到底目标算不算已达到)。
先说说短期目标。短期目标的时间跨度大约在几个星期到一个季度之间。短期目标要定得比较具体,便于自己评估目标是否达成。下面举几个短期目标的例子:“在本月读完《Thinking in C++》”、“在本月熟悉Spring框架”、“在这2个月用Flex写一个五子棋游戏”……
然后说说中期目标。中期目标的时间跨度大约在几个季度到1-2年。中期目标比短期目标更抽象,且必须是短期目标的有机结合。比如有个短期目标是“本周看完《Dive into Python》”,那么对应的中期目标可以是“1年内成为熟练的Python程序员”。
最后谈谈长期目标。长期目标同样也必须和中级目标沾边,它的层次当然更高,时间跨度大约在5年以上。而且长期目标一般不会关系到具体的XX语言、XX平台等,倒是经常和职业岗位有一定的关联。比如“5-7年内成为技术总监”、“5年内成为公司产品的架构师”等。
当你把3种目标都设定好之后,就形成了个人发展计划。既然是计划,你就得在每一个阶段结束时自己总结一下,评估一下该目标的完成情况好不好,有什么收获、有什么经验教训。必要的话还需对尚未开始的后续目标进行一下调整。定期回顾还有一个好处,就是能获得一种满足感,从而有利于你坚持完整个计划。
关于“设定个人发展目标和计划”,今天就聊这么多。不管你是尚未毕业的在校生,还是已经工作多年的老员工(亡羊补牢还不晚),从 现在开始,按照我上面说的,赶紧计划一下吧!
下一个话题,打算聊一下“ 做正确的事”。
如何成为优秀开发人员[4]:做正确的事
一般来说,优秀的开发人员往往具有较高的效率。我这里提到的 效率包括两方面:“ 做正确的事”和“ 正确地做事”。并且“做正确的事”比“正确地做事”更加重要。
我们先来看一些反面教材。据相关研究机构统计,大部分人(80%以上)具有如下 不好的工作习惯:
- 先做自己喜欢的事情,再做自己不喜欢的事情
- 先做紧急的事情,再做不紧急的事情
- 先做容易做的事情,再做不容易做的事情
- 先做自己了解、熟悉的事情,再做自己不了解、不熟悉的事情
- 先做有趣的事情,再做枯燥的事情
- 先做易于告一段落的事情,再做不易于告一段落的事情
- 先做自己熟悉的人托付的事情,再做自己不熟悉的人托付的事情
如何成为优秀开发人员[5]:正确地做事(概述)
从上一个帖子“ 做正确的事”写完到现在已经过去2周了,有 友已经等不及,在评论中催我了。在此向等待本系列的 友致歉。
和“ 做正确的事”相对应,“正确地做事”主要讨论的是有关工作 效率和工作 质量的问题(也就是如何 多、快、好、省地完成工作)。由于”正确地做事”这个话题比较大,涉及到几个不同方面的 方法论问题,考虑了很久,感觉一个帖子难以全部写完(我不喜欢写长篇大论的帖子)。最后决定搞个 子系列,针对每个方面写一个帖子。
如果你是一个在校的学生或者刚入行的新手,这个 子系列应该对你很有帮助;如果你是一个团队的小头目(Team Leader),你可以根据这个 子系列来培训你手下的新员工。
为了便于阅读,把和”正确地做事”有关的帖子目录列在下面:
1、 善用工具
2、 善用自动化
3、……
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!