关于《如何塑造自己成为一名优秀的软件工程师》的讨论

发布时间:2013-7-23 15:16    发布者:绝对好文
关键词: 软件工程师
作者:tonewinner

毕业十年了,正值班级十周年聚会之际,我要回母校看看,同时也应邀做一个关于《如何塑造自己成为一名合格的软件工程师》的讲座。

各位都是从学生时代过来的,相信有很多经验与建议要说,我就要听听各位的意见。

我个人的一些先说一说:

1、对编程着迷,好奇,有兴趣,乐趣编程,快乐编程;

2、编码编码再编码,最好的编码都是从实践中得来的,努力增加自已在校期间的有效代码行;在学校里不要除了老师布置的作业之外,却很少自己动手去写程序;要自己多动手;创作从模仿开始,模仿不是创作;

3、要认真学好基础理论,特别是操作系统,数据结构,算法等等;

4、逻辑思维要强,思考问题要严谨,自学能力要强;

5、性格和特长,做程序员的要沉下去,静的下去,不能轻浮,眼高手低;

6、团队协作,现在的软件工程都是团队协作的结果;尝试与同学一起合作完成程序等等,传帮带的作风要继承。

7、一定要多了解用户体验,不要只顾闭门造车,挖掘用户的真正需求;

8、钻研解决问题最简单的办法,而不是“最高级”的办法;

9、多参与一些技术活动交流,比如:开源的工作。。。21世纪什么最重要,人才,通过活动可以结识圈内圈外的人。

最后,在学校里能做的就是,要把基础打好,培养出强劲的自学能力,严谨的思维能力,只要基本素质练好了,在今后的工作当中,再投入相当的时间,自己的成长就很快了。就可以从一名合格的软件工程师向优秀的软件工程师迈进了。。。

暂时想到这一些,慢慢补充。各位一起来吧:)

------------------------------------------------------------

不要在乎重写代码,写出来的程序不要能用就算。当自己完成一个程序后,通常总可以有更好的实现方法,如果时间允许,不要怕麻烦,用你觉得更好的方式重写一次,你将发现每一次的重写,都会有很大的收获。

老俞说的好:

我补充两句我想到的方面,关于人人必须的领导力,责任和习惯:

领导力是人人都有的能力。。 不是领导才有领导力,只要在群体,团队中生活,领导力是自然产生的责任感和团队性,所谓one team ,one dream.

责任就是勇于细化,注重细节。不做表面工作;

习惯就包括:编程习惯,学习习惯啥的,特别是学习习惯,从小养成。。

还有:

记得平等待人,) 不要把自己当成高手,专家啥的。。

现实一点的:
1, 考试只是最基本不过的技能。学生容易放低要求,把考试当成目的。特别不要把考过C,java当成目标。

2,在学校里面,去参加数学建模比赛、挑战杯、top coder或者其他有关的编程竞赛。

3,学完操作系统、数据结构、体系结构、编译原理后,先写10万行程序,再来读他们,再写20万行,再来读....

4, 读书前先看看是什么时候出的。在大学里面打基础的时候,尽量少买5年内出的书。不要浪费时间,试图搞懂一切,比如你没可能同时精通excel,ppt, dreamwaver, 3ds max , linux kernel, java.另外,只通过看书是永远不能掌握一门知识的。

5, 要是实在没事情做,去写个木马、病毒玩。不过不要泄露出去。

------------------------------------

说说我的感受。 毕业的时候我是没有搞过java jsp/servlet的。 当时准备面试asp的工作。 面试了几家都没有录取。 反而被一家java公司录取。 一进公司就搞tapestry spring hibernate。 eclipse也没用过。 当时那个晕呀。。小公司没有培训。 就硬着头皮上了。 只能是模仿别人的代码,当然自己是非常努力的。 其他时间疯狂的看着java基础。 所以说我是从高层-----》基础的。

------------------------------------------

如何成为一个优秀的软件工程师总的来说就两点。
1正确的学习方法
2坚持不懈的学习

学习没有捷径走,但却是存在弯路的,讲究正确的学习方法就是不要走弯路,首先是大学的基础,基础很重要,当时毕业的时候觉得基础不是很重要,但是经过两年多的工作发现基础很重要。所以基础要学习好。

但是只是基础好是没有用的,一定要多动手,要思考,要深度思考,边思考边实践。那么在工作之后这一点尤其重要,一个问题不能只有一个解决方案,一定要多想几个解决方案,这是锻炼个人思维能力的好习惯。

-----------------------------------------------

说点如何对待自己的事业和职业。其实不管你是做程序员还是做销售,步入社会都要经过一个养成自己工作习惯的问题。这里先不要说什么是好习惯,什么是坏习惯,你至少要先有一个习惯。才步入社会最缺乏的就是一个能够被别人也是被自己看明白的习惯了,经常是东一榔头西一棒子,没头没脑,想到啥就是啥。我想至少做为我,你不管现在交给我一个什么样的工作,我绝对不会说我去了就绝对做不了,我至少可以做到做不好但是至少也能合格。我想大家工作久了,这个信心还都是有的。记得当初我做销售,最羡慕老家伙们可以和客户打出一片,总是问应该如何和客户聊天。得到的答案,聊天就是聊天啊,随便瞎说就行了。而自己带第一个项目,问老人应该如何做领导,得到的答案是能带着大家干活,让大家知道各自该干啥就行了。第一次做设计,答案更加简单,让大家明白了就行。其实事情都是很简单的,只不过年轻人都会胆怯,都害怕做不好,而且又没有做事情的方法,不知道该从啥地方动手。其实这就是做事情前不会分析,也没有一个做事情的大的思路。其实写程序和写文章,写小说,画画,写歌曲,没啥在方法上的大区别;同时和做销售,做领导也没啥大区别。只不过是分工不同,做事情的思路都类似。

---------------------------------------------

培养出兴趣 优于 勤奋刻苦;
寻找一条平滑的学习曲线 优于 从难从严;
结合实践学以致用 优于 钻研理论知识和艰深技术;
虽然我认为后者也其有价值,但是前者更有可能取得成功
前者可以称为“敏捷学习方法”,后者更像瀑布型

--------------------------------------

补充下面几点:
1、沟通很重要,要学会有效的沟通
2、算法数据结构是基础,但实践同样重要,在大学要学好软件开发最重要的一环就是实践,找一个系统(或者跟一个老师做一个实际的应用系统)定一个计划去实现,保证能学到很多东西。
3、思维方式进步的基石,要多借鉴别人解决问题的方法方式,特别是要培训自己独特有效的思维方式。

--------------------------------------

其实读书也是很重要的,不过自己一定要勤于思考和消化,并且逐渐养成选择的眼光,清楚知道哪些书对于提升自己的境界是有帮助的。相同层次的书不必读的太多,读上两三本足够了。
例如GoF的《设计模式》和Martin Fowler的《重构》这两本书对于应用软件的开发人员非常重要,读过的和没有读过的理解面向对象设计的能力差别非常大。
读过《设计模式》之后,其余的《Java设计模式》、《C#设计模式》之类的书大多是以不同的语言重复圣人之言,没有必要再读很多这一类的书。

读完了一本书并不是终点,一定要勤于思考和消化,在适当的时候学以致用,最终将其中的知识真正转化为自己知识体系的一部分,并且融会贯通。当然不是说读了一本书之后这本书中的内容一定要在任何地方都用到。其实《设计模式》中对于每种模式的适用场景都讲的很清楚。具体某种模式是否适用,需要靠自己的思考来判断。

以前看到过一个笑话,一位读者写信给GoF的老大Erich Gamma说他最近在一个项目中使用到了GoF 23种设计模式中的21种,还有两种模式没有用到,感觉很苦恼,希望Erich帮助他解决这个问题。

这就是一个非常极端的本本主义教条主义的例子了。另外以前看到某位同学罗列10余本他所认为的软件架构设计方面的经典图书,希望一年之内读完这些书成为一名“优秀的软件架构师”。这种学习精神值得鼓励,但是具体的做法不值得提倡。一下子注入这么多的真气进来,这些真气还有可能相互排斥,运气好的人可能最终像令狐冲一样能够全部化掉,运气不好的人可能很快就会死掉。

本文地址:https://www.eechina.com/thread-117625-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表