`
iyuan
  • 浏览: 469429 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

计算机编程新人入行指导(转)

    博客分类:
阅读更多
此文乃group中sagasw大大所作,曾看过一遍。今天在社区又见到有人贴出连接。再次观摩,感触良多,作为本博开山一转,也么有申请授权(嘿嘿。。)

全文如下--

从2003年加入现在的公司,已经有了快6个年头,自己也从一个计算机软件开发方面的新兵变

成了老人。在公司里也做过几个不同的项目,有一些新的同事加 入项目组,会有这样那样的

疑惑和问题。在这里想简单说说,一个新人如何能快速的融入一个新的开发组,让其他同事能

够接受自己。

首先是读文档。计算机方面有个著名的黑话叫做RTFM,什么意思呢?按字面翻译就去“去读他

妈的文档”,这是在新闻组或者论坛里可能常见的回复,一些人 娇滴滴的说“我是妹妹,能

指导一下这个问题么”或者贱兮兮的”跪求某某问题答案”。当然,同事之间不可能搞这些,

不过也经常碰到有人问一些感觉非常简单 问题,这些问题实际上都在项目文档或者软件规范

里就明白写着。 一个新人加入某个项目,或者转换到一个新项目,都会感觉到手足无措,就

像老虎吃刺猬不知如何下嘴。领导不会让这样的新人去完成一些复杂模块的开发或者修

改一些相对困难的bug,基本上都是先分一些界面上的小改动,或者是让他开发耦合程度低一

些、相对独立一些的功能作为练手,这个时候作为一个新人就要尽 快的掌握整个项目的大

概,然后泛读一下项目的重要文档。如果要开发某个业内标准的实现软件,那这个标准的相关

文档至少要通读一遍,不需要投入很长时间, 可以快速掌握一下大概,做做简单的笔记,不

懂的地方先记下来以后有空再说。读文档不要作为一个整体任务完成,可以用一些零碎时间来

读,以免很长时间没有 什么进展,领导看了还以为在磨洋工呢。

**注意事项一,尽管有这样那样的软件支持,一支笔一个本子仍然是

最方便最快速最实用的学习工具,我几乎每年都要写掉八九个大笔记本,里面写着项目开发

的心得、文档书籍的感受、领导指示的一些开发问题等等,不需要有什么文章格式,先写下来

就可以了。 如果是第一次进入公司,项目组长会分一个任务作为对新人水平的考察,就好比

网游中的新手任务。我们公司大多数的新手任务都是半个月一个月左右的时间,注

意要尽量赶在期限结束前完成所有的编码和单元测试,而且最好完成代码清理和代码注释工

作,注意命名规则,这样看起来比较专业一些。

**注意事项二,接到一个项目第一个要问的就是这个项目结束期限

(dead line)是什么,这样心里比较容易对进度有个估计,免得最后无法完成任务。领导可

能会反过来咨询老程序员对分到的项目难度估计。一般来说,估计一个大概的编码时间,然后

把估计时间乘二,留出一定余量比较好。 读文档不要作为一个整体任务完成,可以用一些零

碎时间来读。实际上接手一个新任务,必须要做的就是理解需求。一个开发人员如何不理解他

想做什么,基本上这个任务一定会失败。我们高考时候都会写一篇大作文,对题目的理解非常

重要,偏题跑题就没法拿到高分,开发也是如此。对需求的理解需要反复的进行,定期

和项目组领导或者客户进行沟通,以免自己做了无用功。但是沟通之前一定要注意,自己先掌

握一定的背景知识,比如前面提到的规范文档,或者是读一读已经有的代码,跑一跑成型的产

品,免得问的都是不必要的问题。搜索一下可以找到一篇题为”提问的智慧“的文章,里面介

绍如何在网上问问题。其实项目组内沟通也是如此,要注意问有意义的问题。打个比方说,有

时候自己会有一种感觉,跑到别人面前,把问题说了一遍,还没等人回答,突然拍着脑袋

说”啊我明白了“,也许是反应挺快,可是还是耽误了别人的功夫,像这样的问

题,自己组织组织语言或者写出来,答案就很容易发现。另外也有的人,总是这是怎么回事那

是怎么回事,其实到搜索引擎一搜或者是把动手做做就知道结果,但 是非要张嘴问,这样的

人说得难听点就是问题不经过大脑,其实一思考就能得到答案了。问问题之前也可以试着理清

一下思路,看看前因后果,简化一下问题模 型,也许经过这些方式,自己就能找到答案。有

同组的同事问问题,很多时间我反问几句,把思路理清,他自己就知道答案是什么了。忘记在

哪有看到一个轶事,在某个著名软件公司里,开发组的桌上会放着一只小熊,大家互相问问题

之前,先对着小熊把问题说一遍,看能不能把问题描述的清晰,基本上说的比较有条理以后,

答案也就随之而来了,大家可以试试这个办法。

**注意事项三,提问之前,自己先试图看看能不能找到答案,我建议

的寻找顺序是文档、google,最后才是张嘴问,问之前最好已经积累了一些材料,比如关于这

个问题自己做了什么研究,搜索了什么关键字等等,这样问的有诚意,回答才能有诚意。另

外,对于一个新人,需要多跟老同事沟通,了解项目的关键点是什么,比如开发一个通讯程

序,用了什么协议,哪个网站比较有用,哪个文档需要精读,都是非 常有意义的问题,这问

题可以少走一些弯路。早上到了公司,第一件事是接收业务邮件,然后记下一些需要回复或者

要做的工作。邮件阅读以后,可以跟项目组 长做个简单的沟通,了解一下哪个任务或者功能

需要快一点完成,交流一下自己的想法,时间花费不多但是可以把一天的任务明确下来。如果

比较努力而且有一定的开发能力,两三个月以后应该开始接触到项目比较核心的东西了,这个

时候需要做的工作就是读代码。一个项目最重要的东西就是代码,至于文档、注释、测试,其

实都是保证代码质量以及代码可维护型的一种辅助手段,作为一个开发人员,不熟悉代码就是

致命的错误。

读代码我这里有一些简单的体会。

读代码要注意的第一条是从界面开始,深入到功能。打个比方说,一个桌面软件,其中有个格

式转换功能,可以从菜单选择”格式转换“进行操作(注意,所谓格

式转换就是一个例子,没有实际意义),那么就可以搜索菜单里的”格式转换“,找到相对应

的界面函数,这就是一个相对独立的功能入口点了。然后从这个入口点顺藤摸瓜,就可以搞清

楚格式转换这个功能需要的一系列界面函数以及逻辑实现函数。读代码的时候注意要随时做笔

记,可以用word或者是powerpoint这样的软件做记录,搭配一个抓屏软件抓取界面变化、程序

运行栈或者是一些关键数据就更好了。

一个相对独立的功能基本上是由几个数据类或者数据结构,加上几个比较重要的逻辑函数实现

的,抓住了这些关键就抓住了这个功能的核心。比如说一个通讯软

件,重要的就是通讯数据格式和通讯协议实现。经过我的体验,这个小窍门还是很有用的。一

般经常出现问题的也就是这些相对来说复杂一些的函数。

阅读代码的同时还要经常问自己一些问题,比如这个地方为何这样实现,有没有其他的方案,

哪个方案更好一些等等。这些问题可以让自己更好的理解当时开发人

员的一些想法思路,另外也是将来代码进行重构的一个铺垫。

**注意事项四,作为一个开发人员,多思考是非常必要的一个特质。
一个新人,经过这些阶段,基本上可以成为项目组的中坚力量了,希望每个入行的新人都能成功晋级成为老手。

--
正所谓师傅领进门,修行看个人。希望对诸位能有所帮助吧。
分享到:
评论

相关推荐

    计算机编程及科学导论

    【计算机编程及科学导论】课程是一门针对初学者的编程入门课程,源自世界顶级学府美国麻省理工学院(MIT)。...不论你是准备踏入IT行业的新人,还是对编程感兴趣的业余爱好者,这门课程都能为你提供宝贵的指导。

    计算机编程艺术1(已经打包)

    《计算机编程艺术》是计算机科学领域的一部经典之作,作者是世界著名的计算机科学家Donald E. Knuth。这部著作深入探讨了编程的各个方面,尤其是算法设计和分析,为读者揭示了编程的艺术性和科学性。第一卷专门关注...

    培训发展新人培训管理制度共5页.pdf.zip

    【标签】中的关键词涉及多种IT技术,如“源代码”、“计算机资料”、“学习资料”、“python”、“stm32”、“C语言”和“小程序”,这些标签表明了新人培训可能也包括了技术方面的内容,尤其是对编程语言的掌握,如...

    新人培训专用(1).zip

    【新人培训专用(1).zip】是一个专门为新入职...以上这些知识点旨在为新人提供全面的IT行业入门指导,帮助他们在职业生涯的初期建立坚实的基础。通过深入学习和实践,新人可以迅速提升自己的专业技能,适应并胜任工作。

    ACM实验新人指导(acm教材).doc

    ACM国际大学生程序设计竞赛(ACM/ICPC)是由美国计算机学会(ACM)主办的一项全球性编程竞赛,旨在提升大学生的解题能力和编程技巧。这个竞赛自1970年代初开始,历经多年发展,已经成为全球计算机科学领域的重要盛事...

    编程高手箴言(pdf、word、txt)

    "编程高手箴言"这个资源集合,包含了多种格式的文件,旨在为编程新手提供宝贵的指导和启示。以下是对这些文件内容的概览和重要知识点的提炼: 1. **编程新手真言.doc**: 这可能是一个文档,详细阐述了编程初学者...

    嵌入式系统编程.pdf

    - **实战指导**:提供大量实际案例和源代码示例,帮助读者理解和实践嵌入式系统编程技巧。 - **适用对象**: - 初学者:希望通过学习快速入门嵌入式系统编程的人群。 - 经验丰富的开发者:寻求解决具体问题或提升...

    一位高级程序员对IT新人的几点建议

    【描述】: "这篇文章汇集了一位经验丰富的程序员对新入行者的实用建议,旨在帮助IT新人避开常见误区,扎实基础,规划长远的职业发展路径。" 【标签】: "计算机 学习 程序员 IT 建议" 【部分内容】: 在IT领域,...

    让新人快速实现μc_os Ⅱ在arm上的移植方法.pdf

    通过以上步骤和注意事项,新人可以在指导下快速掌握μC/OS Ⅱ在ARM上的移植方法,进一步深入学习嵌入式系统开发。这份指南旨在提供一个清晰的路径,帮助新人克服移植过程中的困难,从而更有效地实现μC/OS Ⅱ在ARM...

    八年级语文5月月考试题(扫描版,无答案) 新人教版 试题.doc

    如果您需要关于IT的相关知识点,例如计算机科学基础、编程语言学习、网络安全、数据分析、人工智能等,我会非常乐意提供详尽的解释和指导。请提供具体的IT主题,我将按照您的需求生成一篇内容丰富的文章。

    天津市红桥区2015_2016学年七年级语文下学期期末考试试题扫描版新人教版.doc

    很抱歉,但根据您提供的信息,这是一个关于七...如果您需要关于IT的知识点,例如计算机编程、网络技术、数据分析、软件应用等相关内容,请提供更具体的信息或者一个与IT相关的主题,我将非常乐意为您提供详尽的解答。

    游戏编程数学与物理基础.pdf

    ### 游戏编程数学与物理基础 #### 一、引言 随着计算机技术的迅猛发展,游戏行业也随之进入了快速成长的阶段。...无论是对于想要踏入游戏行业的新人还是希望进一步提高技术水平的老手来说,这本书都将是宝贵的资源。

    2020学年高中数学综合模块测试7 新人教A版必修3.doc

    1. **算法逻辑结构**:题目中出现了算法基本逻辑结构的选择题,包括顺序结构、条件结构、循环结构,这些都是编程和算法设计中的基础概念,用于指导计算机执行特定任务的步骤。 2. **进位制转换**:将十进位数转换为...

    吉林省镇赉县镇赉镇中学2012-2013学年八年级生物下学期第三次月考试题(扫描版) 新人教版

    很抱歉,但根据您给出的信息,这似乎是一个关于中学生物学科的月考试题文件,特别指出是2012-2013学年,针对八年级学生,使用的是新人教版教材。然而,具体内容并未提供任何实际的生物学知识点,只提到了试题的来源...

    安徽省淮南市2017-2018学年八年级信息技术下学期期末试题答案 新人教版

    这篇资料主要针对的是初中二年级的信息技术课程,涵盖了期末考试的相关试题及答案,适用于新人教版教材。以下是对其中涉及的知识点的详细说明: 一、选择题部分: 这部分试题主要测试学生的理论理解和应用能力,...

    通用版2021版高考英语大一轮复习预习案Unit3Computers课件新人教版必修2

    【通用版2021版高考英语大一轮复习预习案Unit3Computers课件新人教版必修2】这个资料主要围绕计算机相关的英语词汇展开,涵盖了计算机科学和技术的基础概念,以及与之相关的词汇和表达。以下是根据提供的部分内容...

    江西省南昌市2017-2018学年八年级语文下学期期末试题(pdf) 新人教版

    然而,这个话题并不符合我作为IT专业大师的身份,我的专长在于解答与信息技术、编程、网络、数据库、操作系统、软件开发等相关的问题。因此,我无法基于您提供的文件标题、描述和标签生成相关的IT知识点。 如果您有...

    软件开发专业怎么学.zip

    0想要学习编程,不知该如何学起,可以给一些指导意见么 1学内功,要把计算机专业基础课程都看完,不用精。比如计算机组成原理、操作系统、网络、软件工程、数据结构 2然后是招术:汇编语言、C语言、C++语言、JAVA...

Global site tag (gtag.js) - Google Analytics