此文乃group中sagasw大大所作,曾看过一遍。今天在社区又见到有人贴出连接。再次观摩,感触良多,作为本博开山一转,也么有申请授权(嘿嘿。。)
全文如下--
从2003年加入现在的公司,已经有了快6个年头,自己也从一个计算机软件开发方面的新兵变
成了老人。在公司里也做过几个不同的项目,有一些新的同事加 入项目组,会有这样那样的
疑惑和问题。在这里想简单说说,一个新人如何能快速的融入一个新的开发组,让其他同事能
够接受自己。
首先是读文档。计算机方面有个著名的黑话叫做RTFM,什么意思呢?按字面翻译就去“去读他
妈的文档”,这是在新闻组或者论坛里可能常见的回复,一些人 娇滴滴的说“我是妹妹,能
指导一下这个问题么”或者贱兮兮的”跪求某某问题答案”。当然,同事之间不可能搞这些,
不过也经常碰到有人问一些感觉非常简单 问题,这些问题实际上都在项目文档或者软件规范
里就明白写着。 一个新人加入某个项目,或者转换到一个新项目,都会感觉到手足无措,就
像老虎吃刺猬不知如何下嘴。领导不会让这样的新人去完成一些复杂模块的开发或者修
改一些相对困难的bug,基本上都是先分一些界面上的小改动,或者是让他开发耦合程度低一
些、相对独立一些的功能作为练手,这个时候作为一个新人就要尽 快的掌握整个项目的大
概,然后泛读一下项目的重要文档。如果要开发某个业内标准的实现软件,那这个标准的相关
文档至少要通读一遍,不需要投入很长时间, 可以快速掌握一下大概,做做简单的笔记,不
懂的地方先记下来以后有空再说。读文档不要作为一个整体任务完成,可以用一些零碎时间来
读,以免很长时间没有 什么进展,领导看了还以为在磨洋工呢。
**注意事项一,尽管有这样那样的软件支持,一支笔一个本子仍然是
最方便最快速最实用的学习工具,我几乎每年都要写掉八九个大笔记本,里面写着项目开发
的心得、文档书籍的感受、领导指示的一些开发问题等等,不需要有什么文章格式,先写下来
就可以了。 如果是第一次进入公司,项目组长会分一个任务作为对新人水平的考察,就好比
网游中的新手任务。我们公司大多数的新手任务都是半个月一个月左右的时间,注
意要尽量赶在期限结束前完成所有的编码和单元测试,而且最好完成代码清理和代码注释工
作,注意命名规则,这样看起来比较专业一些。
**注意事项二,接到一个项目第一个要问的就是这个项目结束期限
(dead line)是什么,这样心里比较容易对进度有个估计,免得最后无法完成任务。领导可
能会反过来咨询老程序员对分到的项目难度估计。一般来说,估计一个大概的编码时间,然后
把估计时间乘二,留出一定余量比较好。 读文档不要作为一个整体任务完成,可以用一些零
碎时间来读。实际上接手一个新任务,必须要做的就是理解需求。一个开发人员如何不理解他
想做什么,基本上这个任务一定会失败。我们高考时候都会写一篇大作文,对题目的理解非常
重要,偏题跑题就没法拿到高分,开发也是如此。对需求的理解需要反复的进行,定期
和项目组领导或者客户进行沟通,以免自己做了无用功。但是沟通之前一定要注意,自己先掌
握一定的背景知识,比如前面提到的规范文档,或者是读一读已经有的代码,跑一跑成型的产
品,免得问的都是不必要的问题。搜索一下可以找到一篇题为”提问的智慧“的文章,里面介
绍如何在网上问问题。其实项目组内沟通也是如此,要注意问有意义的问题。打个比方说,有
时候自己会有一种感觉,跑到别人面前,把问题说了一遍,还没等人回答,突然拍着脑袋
说”啊我明白了“,也许是反应挺快,可是还是耽误了别人的功夫,像这样的问
题,自己组织组织语言或者写出来,答案就很容易发现。另外也有的人,总是这是怎么回事那
是怎么回事,其实到搜索引擎一搜或者是把动手做做就知道结果,但 是非要张嘴问,这样的
人说得难听点就是问题不经过大脑,其实一思考就能得到答案了。问问题之前也可以试着理清
一下思路,看看前因后果,简化一下问题模 型,也许经过这些方式,自己就能找到答案。有
同组的同事问问题,很多时间我反问几句,把思路理清,他自己就知道答案是什么了。忘记在
哪有看到一个轶事,在某个著名软件公司里,开发组的桌上会放着一只小熊,大家互相问问题
之前,先对着小熊把问题说一遍,看能不能把问题描述的清晰,基本上说的比较有条理以后,
答案也就随之而来了,大家可以试试这个办法。
**注意事项三,提问之前,自己先试图看看能不能找到答案,我建议
的寻找顺序是文档、google,最后才是张嘴问,问之前最好已经积累了一些材料,比如关于这
个问题自己做了什么研究,搜索了什么关键字等等,这样问的有诚意,回答才能有诚意。另
外,对于一个新人,需要多跟老同事沟通,了解项目的关键点是什么,比如开发一个通讯程
序,用了什么协议,哪个网站比较有用,哪个文档需要精读,都是非 常有意义的问题,这问
题可以少走一些弯路。早上到了公司,第一件事是接收业务邮件,然后记下一些需要回复或者
要做的工作。邮件阅读以后,可以跟项目组 长做个简单的沟通,了解一下哪个任务或者功能
需要快一点完成,交流一下自己的想法,时间花费不多但是可以把一天的任务明确下来。如果
比较努力而且有一定的开发能力,两三个月以后应该开始接触到项目比较核心的东西了,这个
时候需要做的工作就是读代码。一个项目最重要的东西就是代码,至于文档、注释、测试,其
实都是保证代码质量以及代码可维护型的一种辅助手段,作为一个开发人员,不熟悉代码就是
致命的错误。
读代码我这里有一些简单的体会。
读代码要注意的第一条是从界面开始,深入到功能。打个比方说,一个桌面软件,其中有个格
式转换功能,可以从菜单选择”格式转换“进行操作(注意,所谓格
式转换就是一个例子,没有实际意义),那么就可以搜索菜单里的”格式转换“,找到相对应
的界面函数,这就是一个相对独立的功能入口点了。然后从这个入口点顺藤摸瓜,就可以搞清
楚格式转换这个功能需要的一系列界面函数以及逻辑实现函数。读代码的时候注意要随时做笔
记,可以用word或者是powerpoint这样的软件做记录,搭配一个抓屏软件抓取界面变化、程序
运行栈或者是一些关键数据就更好了。
一个相对独立的功能基本上是由几个数据类或者数据结构,加上几个比较重要的逻辑函数实现
的,抓住了这些关键就抓住了这个功能的核心。比如说一个通讯软
件,重要的就是通讯数据格式和通讯协议实现。经过我的体验,这个小窍门还是很有用的。一
般经常出现问题的也就是这些相对来说复杂一些的函数。
阅读代码的同时还要经常问自己一些问题,比如这个地方为何这样实现,有没有其他的方案,
哪个方案更好一些等等。这些问题可以让自己更好的理解当时开发人
员的一些想法思路,另外也是将来代码进行重构的一个铺垫。
**注意事项四,作为一个开发人员,多思考是非常必要的一个特质。
一个新人,经过这些阶段,基本上可以成为项目组的中坚力量了,希望每个入行的新人都能成功晋级成为老手。
--
正所谓师傅领进门,修行看个人。希望对诸位能有所帮助吧。
分享到:
相关推荐
此文件是虚拟仪器技术计算机编程指导手册,有助于各位使用labview爱好者的学习帮助。
计算机编程英语词汇大全,学计算机必备
计算机编程艺术.编程不仅是工作,还是艺术,好书分享,经典好书,
计算机编程艺术卷第三版第一卷(中文);主要讲了数学基础和一些基本的结构
计算机网络试验编程指导,有关TCP协议、IP协议、UDP协议以及Socket编程的试验指导
计算机网络软件编程指导书
计算机C语言计算机编程实验.pdf
计算机编程语言简介 比较 汇总
计算机病毒编程技术 计算机病毒编程技术 计算机病毒编程技术 计算机病毒编程技术
计算机C语言计算机编程实验研究.pdf
该书涉及到的问题是计算机科学诞生之初就自然面对的几个基本的算法和数据结构的问题。时至今日,这些问题还在应用中扮演着重要角色;在很多研究课题中,它们是基础或原型。 算法分析(analysis of algorithms)...
马骏 C#网络应用编程实验指导与开发实例
C语言的计算机编程技术.pdf
实验课必备啊 可复制版 网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一 门专业基础课程
C语言的计算机编程技术研究.pdf
C语言的计算机编程技术探究.pdf
本文件清晰明了地指导关于计算机网络的学习,通过学习可以在很深刻理解计算机网络结构概念的基础上,掌握必要的编程技巧
计算机编程英语词典 关于编程的单词都有 方便学习
Scratch*广为人知的就是可用于孩子们孩子的编程学习,它可以使任何年龄的人都轻松了解计算机编程知识。Scratch用五颜六色的命令块和卡通精灵来创建功能强大的脚本,而不是使用晦涩的在编程语言和难懂的大量行代码。...
探讨基于C语言的计算机编程技术.pdf