`

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

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

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

我个人的一些先说一说:

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

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

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

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

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

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

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

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

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

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

暂时想到这一些,慢慢补充。各位一起来吧:)
分享到:
评论
26 楼 dearwolf 2007-11-01  
我大学里面真正干过的职业就是代写情书……

然后研究生才开始到企业里面实习,写代码的。
25 楼 bcccs 2007-11-01  
庄表伟 写道
楼上的诸位都说得很不错了,我就说说我的经历吧

在读书期间,我大一、大二在学校里搞推销,卖各种各样乱七八糟的东西。这个就不提了。
到大三的时候,我们系主任给我找了个活,用foxpro,开发一个饭店的点菜系统。为此我还赚了2000块钱。在此之前,我从来没有学过foxpro。
后来又去做另外一份兼职,是用一种叫做Toolbook的类似于VB的教育软件开发工具,做教育课件。在此之前,我从来没有学过Toolbook。
再后来,我兼职去另一家公司做他们的项目经理,做一个行政办公管理软件。也因此接触了以前很多自己从来不知道的领域知识。为了保护自己的软件不被盗版,还去研究软盘的防copy加密技术。

因此,我的经验是,找一家有事做的公司去做兼职,搞真正的开发,写真正的程序,面对真正的需求。这样对自己的帮助是最大的。

不太要脸的说:我的经历和庄大有点类似
24 楼 抛出异常的爱 2007-11-01  
我认为还要有很重要的一点:

把别人当成人来看。。。。

一般每个人都会有带路者
千万不要把带路者当所上帝,真理,因为真理,上帝都是靠不住的。
在教别人教课时,我一定会强调一点。。。
我是个人不要指望我会把所有的东西,原理,结果都告诉你。
如果你能自己想清楚,就是学会了,
如果你想不清楚,教的越多越是害人。

to:所有的教导者。。。。
23 楼 java虫 2007-11-01  
这个帖子好,都是心得。

我觉得曹晓钢,庄表伟说的很好,多动手,参加一些比赛或兼职是很有好处的,
当初在学校时我身边就有这种例子,毕业时就已经很厉害了。
22 楼 johnyq 2007-11-01  
买了电脑的同学少玩网络游戏,多上技术论坛
学会如何使用baidu 或者GOOGLE
21 楼 daquan198163 2007-11-01  
培养出兴趣 优于 勤奋刻苦;
寻找一条平滑的学习曲线 优于 从难从严;
结合实践学以致用 优于 钻研理论知识和艰深技术;
虽然我认为后者也其有价值,但是前者更有可能取得成功
前者可以称为“敏捷学习方法”,后者更像瀑布型
20 楼 庄表伟 2007-11-01  
楼上的诸位都说得很不错了,我就说说我的经历吧

在读书期间,我大一、大二在学校里搞推销,卖各种各样乱七八糟的东西。这个就不提了。
到大三的时候,我们系主任给我找了个活,用foxpro,开发一个饭店的点菜系统。为此我还赚了2000块钱。在此之前,我从来没有学过foxpro。
后来又去做另外一份兼职,是用一种叫做Toolbook的类似于VB的教育软件开发工具,做教育课件。在此之前,我从来没有学过Toolbook。
再后来,我兼职去另一家公司做他们的项目经理,做一个行政办公管理软件。也因此接触了以前很多自己从来不知道的领域知识。为了保护自己的软件不被盗版,还去研究软盘的防copy加密技术。

因此,我的经验是,找一家有事做的公司去做兼职,搞真正的开发,写真正的程序,面对真正的需求。这样对自己的帮助是最大的。
19 楼 coolzyt 2007-11-01  
其实计算机系理想的教育应该是这样
大一学java,javascript,struts,spring等技术
然后放出来工作一年
然后回到学校,学数据结构,操作系统,计算机组成等等

要是真这样教育,绝对个个是牛人了
18 楼 xyz20003 2007-11-01  
我还是觉得,想成为一名合格的软件工程师,只需要敬业就可以了。别总想技术没有,别总想做管理,别总想赚钱,踏踏实实干活,有这态度,早晚也能把自己塑造成高手,不只是合格。

如果只是要一个合格的标准,每天8:00~5:00,别太加班,享受生活,也不错的。
17 楼 renavatio 2007-11-01  
ozzzzzz 写道
我觉得先搞清楚面向的听众是谁,然后在针对性的讲。做给学生听的讲座最怕的就是提前定一个很死的内容,然后不看对方反应死命的讲。
其实不管对方的喜欢是啥,大概你都要给他们讲点人生和大道理。比如如何对待工作,如何对待收入,如何对待同事。这些事情一般没有步入社会的学生都会有兴趣听。而且既然你已经工作十年,应该有很多例子了。
然后自然要说点如何对待自己的事业和职业。其实不管你是做程序员还是做销售,步入社会都要经过一个养成自己工作习惯的问题。这里先不要说什么是好习惯,什么是坏习惯,你至少要先有一个习惯。才步入社会最缺乏的就是一个能够被别人也是被自己看明白的习惯了,经常是东一榔头西一棒子,没头没脑,想到啥就是啥。我想至少做为我,你不管现在交给我一个什么样的工作,我绝对不会说我去了就绝对做不了,我至少可以做到做不好但是至少也能合格。我想大家工作久了,这个信心还都是有的。记得当初我做销售,最羡慕老家伙们可以和客户打出一片,总是问应该如何和客户聊天。得到的答案,聊天就是聊天啊,随便瞎说就行了。而自己带第一个项目,问老人应该如何做领导,得到的答案是能带着大家干活,让大家知道各自该干啥就行了。第一次做设计,答案更加简单,让大家明白了就行。其实事情都是很简单的,只不过年轻人都会胆怯,都害怕做不好,而且又没有做事情的方法,不知道该从啥地方动手。其实这就是做事情前不会分析,也没有一个做事情的大的思路。其实写程序和写文章,写小说,画画,写歌曲,没啥在方法上的大区别;同时和做销售,做领导也没啥大区别。只不过是分工不同,做事情的思路都类似。

个人以为领导最基本的工作也就是每个人都有事情做,让每个人都知道自己该做什么,怎么做好。
16 楼 ozzzzzz 2007-11-01  
我觉得先搞清楚面向的听众是谁,然后在针对性的讲。做给学生听的讲座最怕的就是提前定一个很死的内容,然后不看对方反应死命的讲。
其实不管对方的喜欢是啥,大概你都要给他们讲点人生和大道理。比如如何对待工作,如何对待收入,如何对待同事。这些事情一般没有步入社会的学生都会有兴趣听。而且既然你已经工作十年,应该有很多例子了。
然后自然要说点如何对待自己的事业和职业。其实不管你是做程序员还是做销售,步入社会都要经过一个养成自己工作习惯的问题。这里先不要说什么是好习惯,什么是坏习惯,你至少要先有一个习惯。才步入社会最缺乏的就是一个能够被别人也是被自己看明白的习惯了,经常是东一榔头西一棒子,没头没脑,想到啥就是啥。我想至少做为我,你不管现在交给我一个什么样的工作,我绝对不会说我去了就绝对做不了,我至少可以做到做不好但是至少也能合格。我想大家工作久了,这个信心还都是有的。记得当初我做销售,最羡慕老家伙们可以和客户打出一片,总是问应该如何和客户聊天。得到的答案,聊天就是聊天啊,随便瞎说就行了。而自己带第一个项目,问老人应该如何做领导,得到的答案是能带着大家干活,让大家知道各自该干啥就行了。第一次做设计,答案更加简单,让大家明白了就行。其实事情都是很简单的,只不过年轻人都会胆怯,都害怕做不好,而且又没有做事情的方法,不知道该从啥地方动手。其实这就是做事情前不会分析,也没有一个做事情的大的思路。其实写程序和写文章,写小说,画画,写歌曲,没啥在方法上的大区别;同时和做销售,做领导也没啥大区别。只不过是分工不同,做事情的思路都类似。
15 楼 imyf_liang 2007-11-01  
动手是第一位的,同时不要赶时髦,不要社会上流行什么就学什么,到毕业发现自己什么也没学会。
要把专业基础课学好,这个学好不光是考试的好成绩,还要真正的理解并且能够灵活运用。
学会利用互联网(不要只学会利用互联网打游戏)。
学会阅读调试别人的代码。
利用好图书馆(不是去图书馆泡MM噢),可以节省一笔不小的买书开支。
在当前手中还有买回来的书没看完的情况下尽量不要买下一本新书,避免毕业的时候才发现自己还有一批书没翻过,留着没有太大的用途,导致以废纸的价钱卖掉。
学会同学之间的合作,个人英雄主义的时代早已经过去了,记住:你不是比尔盖茨、求伯君、丁磊等等人物(即使你有潜力成为他们中的一员,如果你不会合作,你就永远只是具有这种潜力,而不能变成现实)。
14 楼 ahuaxuan 2007-11-01  
corlin 写道
领导力是人人都有的能力。。

领导力不是人人都有的能力,领导力不是天性,而是后天培养出来的,也是需要学习的,领导力可以说一项技能,是技能就需要学习。很多leader管理水平不行就是缺少这方面的学习,当然也有些人的性格不合适做领导。
corlin 写道

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

这个我十分认同,很多时候程序员都是在相互学习。所以在平时的学习生活中,放下姿态,真诚待人,必能得到大家的认可。

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


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

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



13 楼 ronghao 2007-11-01  
说说自己,自己不是计算机专业的,没有学过操作系统、数据结构、体系结构、编译原理等基础,但是现在很多时候都感到这方面的缺失,感到实践还是非常需要理论的。另外想说说算法,什么红黑、二叉等一听就头疼根本没学过,实际处理时都是遍历加遍历,效率可想而知。觉得这是我很大的缺陷。所以基础非常的重要。
12 楼 shiweili 2007-11-01  
我们公司正准备为计算机相关专业的毕业生提供一次实战式短期培训。就是考虑到毕业生缺乏项目经验,就业风险大的问题才想到搞这样的培训。呵呵,在这里做一下广告了,http://www.jict.org/software.htm
涉及的技术有:Spring,Hibernate,Struts,Tapestry。
11 楼 voff12 2007-11-01  
建议把标题改为《如何塑造自己成为一名优秀的软件工程师》!合格似乎没有非常之原创力与竞争力。
个人觉得:学生时代一开始就应该以优秀的标准来要求自己。第一要事便是学会做人,做一个优秀的人。
软件的品质就是做人的品质。软件的创新始于做人的创新。
人是软件最深的本质。
建议阿敏总司令首先谈谈这个。
10 楼 DigitalSonic 2007-11-01  
并不是所有学生都是出于兴趣选择从事it行业的,有不少人是因为相对较高的收入和就业前景才选择相关专业学习的。没有兴趣的支撑,很多人近似混日子的状态,导致大多数学生实际操作能力不是很强。来听讲座的学生当中肯定有相当部分人(特别是即将毕业的)是希望从讲座中了解一些实际情况的,比如现实工作里的软件工程师是怎么样的,如何才算合格的,怎么算是优秀的,每个即将踏出校门的人多少对自己都是有一定期望的,希望成为能独当一面的人,可是现实往往不是他们想的这么轻松的。

大家都是学生时代过来的,都知道很多无聊的课和看似无聊的课都是混过来的,有些专业课学的时候觉得空洞无用就混过去了,等到后来发现有用了却又拿不起来了。虽然这个说了没几个能听进去,不过却又是事实。

顺便你可以教导下你的学弟学妹们到了课程实践的时候别总想着绑个高手或者索性扔个别人做,虽然眼前是轻松了,但今后总是要自己做的。
9 楼 shiweili 2007-11-01  
养成良好的编程习惯也很重要。注重编码规范,学习编程技巧。
8 楼 dengyin2000 2007-11-01  
说说我的感受。 毕业的时候我是没有搞过java jsp/servlet的。 当时准备面试asp的工作。 面试了几家都没有录取。 反而被一家java公司录取。 一进公司就搞tapestry spring hibernate。 eclipse也没用过。 当时那个晕呀。。小公司没有培训。 就硬着头皮上了。 只能是模仿别人的代码,当然自己是非常努力的。 其他时间疯狂的看着java基础。 所以说我是从高层-----》基础的。


7 楼 曹晓钢 2007-11-01  
推荐几个网站给他们:topcoder, code project, sourceforge等等

相关推荐

    如何成为一名优秀的软件测试工程师

    成为一名合格的软件测试工程师,首先需要具备一定的计算机基础知识和技术。这包括但不限于操作系统(如Windows、Linux等)、数据库管理(如MySQL、Oracle等)以及编程语言(如Java、Python等)。这些技能将帮助你在...

    如何成为优秀的工程师.pdf

    要成为一名优秀的工程师,需要掌握多个层面的技能与知识,包括代码编写、系统设计、团队协作、持续学习等。本文主要就代码编写和系统设计两个方面展开讨论,重点在代码编写阶段的语义表达、代码注释、代码的可读性、...

    软件工程师具备的能力.doc

    1. 明确职业定位:理解自己的目标是成为一名软件工程师或未来的管理者,而非仅关注科研。这有助于他们在选课时更侧重于实践性和技术前沿的课程。 2. 提升语言表达和沟通技能:积极参与讨论、演讲等活动,锻炼口头和...

    软件测试工程师培训教程

    - **软件测试人员职业要求**:列举了成为一名合格的软件测试工程师所需具备的专业技能和个人素质。 - **软件测试流程**: - **需求测试**:确保软件的功能需求被正确理解并实现。 - **单元测试**:针对软件中的...

    软件工程师面试常见问题

    ### 软件工程师面试常见问题解析 #### 一、处理发现的Bug争议 ...这些知识点涵盖了从发现Bug到解决争议,再到具体的测试方法和技术工具的应用,为成为一名合格的软件工程师提供了重要的指导方向。

    论述一名合格的总监理工程师应做好的关键工作.doc

    本文主要讨论了合格的总监理工程师在工程项目管理中应承担的关键工作。总监理工程师是整个监理工作的核心,其能力和素质直接影响着项目的质量和效率,以及监理单位的形象。根据2014年实施的《建设工程监理规范》,总...

    IBM中级软件工程师(结业考试)答案

    理解这些核心概念对于成为一名合格的软件工程师至关重要。通过深入学习和实践,考生可以巩固自己的技术基础,为解决复杂问题做好准备。这份考试不仅测试了对Java语法的掌握,还评估了解决实际编程问题的能力,体现了...

    软件测试工程师指南助你轻松找工作

    本文将为你提供成为一名合格的软件测试工程师的指南。 首先,你需要具备以下几项核心技能: 1. **软件工程技能**:这包括对软件开发流程的理解,比如需求分析、设计、编码和测试。你应该熟悉至少一种编程语言,...

    软件工程师实习报告3000字.pdf

    这篇软件工程师实习报告详细记录了一位实习生在产品开发过程中的学习和体验,主要涉及测试、代码优化、软件开发流程及问题解决等方面。以下是对报告中关键知识...这些都是成为一名合格软件工程师不可或缺的知识和经验。

    C语言软件工程师笔试题大全.pdf

    了解C语言的基础概念和技术细节是成为一名合格的C语言软件工程师的关键。 首先,我们来看一下C语言中的关键字`static`。`static`在不同上下文中有不同的作用: 1. 在函数内部,声明为`static`的变量在函数每次调用...

    一级结构工程师习题

    《一级结构工程师习题》作为备考工具,其价值在于它能够帮助考生将理论知识转化为实践技能,通过大量习题的演练,增强分析和解决问题的能力,从而在考试中取得理想的成绩,为成为一名合格的一级注册结构工程师打下...

    一个工程师的硬件之路(致初学者)

    成为一名合格的硬件工程师,需要掌握一系列的专业技能和知识。文件中提到的几个关键点包括: 1. **数字电路与模拟电路**:这两门学科是硬件工程师的基础,涉及到信号处理、电源管理等多个方面。深入理解电路原理,...

    电子工程师自学速成 入门篇 +设计篇+提高篇_电子工程师_fpga_模拟电路_数字电路_

    这些关键知识点是电子工程领域的基础,理解和掌握它们对成为一名合格的电子工程师至关重要。 首先,我们从“入门篇”开始。这部分内容通常会介绍电子工程的基础概念,包括电路理论、电子元器件的基本性质和工作原理...

    北大青鸟.软件工程师.4.0.ORACLE教学指导书源代码.rar

    软件工程师.4.0.ORACLE教学指导书源代码.rar》是一个压缩包文件,其中包含了北大青鸟软件工程师4.0课程中关于ORACLE数据库的学习资源,特别是源代码部分。这个课程旨在为学员提供深入的ORACLE数据库理论知识与实践...

    经典硬件工程师培训教程

    【经典硬件工程师培训教程】是一套全面而深入的硬件工程师学习资源,旨在帮助初学者以及有一定基础的工程师提升...通过深入学习和实践,学员将能够独立完成从概念设计到产品实现的全过程,成为一名合格的硬件工程师。

    北大青鸟.软件工程师.4.0.教学PPT和源代码

    总结起来,本课程的重点是理解和掌握C#中的线程管理和数组、集合对象的使用,这些基础知识对于成为一名合格的软件工程师至关重要。通过学习这些内容,开发者能够编写出高效、安全且易于维护的多线程程序,并能有效地...

    数据库系统工程师教程-带书签

    数据库作为现代信息系统的核心组件,其重要性不言而喻,因此,理解并熟练掌握数据库系统的工作原理和技术是成为一名合格的数据库系统工程师的必经之路。 本书涵盖的内容广泛且深入,可能包括以下几个主要方面: 1....

Global site tag (gtag.js) - Google Analytics