本文转自阮一峰的博客,原文地址:http://www.ruanyifeng.com/survivor/startup/advices.html

什么样的人适合当软件工程师?

下面的职业建议分别来自台湾的侯捷老师,以及美国的著名程序员尼古拉斯.泽卡斯(Nicholas C. Zakas)。我觉得这些建议非常好,很有启发,不仅适合 IT 行业,也适合其他行业。

兴趣

虽然很多人在选择职业时受到家庭、环境等方面因素的影响,不一定能从事自己非常感兴趣的工作,但是如果可能的话,一定要以兴趣为要。这样在工作时会很开心,在个人发展方面也会取得很好的成就。

因为只有兴趣才能使你乐在其中,乐在其中你才会产生热情,充满热情才能使你做到卓越。

认知

认知影响态度,态度决定一切。

侯捷老师认为,一个人在选择发展道路时,尤其重要的是要对自己有一个正确的认知。每个人的兴趣可能会变,有些人看到某个行业有发展,有前途,因此对这个行业、这条路产生很大兴趣,这是非常可能的。但是每个人的本质基本不变,你是否甘于寂寞,是否能够与寂寞为伍?你的抗压性怎样?你的毅力强不强?你的心理素质如何?这些特质都是不易改变的,而且只有你自己才能给出这些问题的准确答案。只有对自己有了正确的认知后,才能决定往哪个方向发展。

他认为,做 IT 产业非常寂寞,也非常辛苦,大家可能在周末的晚上都要加班,这就要求从事该产业的人必须甘于寂寞,具备一定的忍耐力。侯捷先生在年轻的时候非常努力,曾被称为部门的“门神”,通常都是最早来,最晚走。他认为如果一个人喜欢交际应酬,喜欢公关,就应该尽早离开这个行业,因为选择道路一定要忠实于你的本质、你的兴趣。

我补充一点,软件工程师主要跟机器打交道,而不是跟人打交道。有时,你会整整一天坐在电脑屏幕前,不说一句话,全神贯注地调试软件。所以,如果你特别喜欢社交场合,喜欢跟人互动,你可能不适合当软件工程师。

EQ(情商)

有能力读完大学的人,聪明才智基本上处于同一水平,没有人可以凭借聪明就可以取得成功。尤其是在进入社会后聪明才智已经退为次要位置,人们更重视 EQ 方面的东西,包括你的人际关系能力、沟通表达能力,抗压性、处理危机的能力等等。

学技术要掌握本质

我们在学习技术时应该注意掌握技术的本质性、不变性和可复用性。本质的东西不易变,不易变就可复用,这三者是一体的。
在接触先进的技术时,如果我们能将它的底层结构 、本质性的东西搞清楚,会给我们带来莫大的帮助。本质性、结构性的东西属于基础建设方面的问题,它对我们做项目可能不会带来直接的帮助,但在无形中会带来很大的影响,无形的通常是最宝贵的!世界上没有万变不变的手法,只有万变不变的宗旨。

刻苦修炼内功

学武的人都必须从最基本的马步、吐纳等内功方面学起,招术很重要,但如果没有内功方面的基础,招术也只能停留在基本的层面,不会到达很高的成就。

在技术追求方面也一样,我们有时候会太热心于学习业界的新技术,每一样都想沾一点。其实不必太急,基本功的东西更重要,研究得扎实一些,招术就比较容易创作了。

唯坚持得成功。

坚持、毅力对一个人的成功是最重要的。有一句话说:在大树底下站久了,树阴就是你的。

侯捷老师自认才能平庸,但很能坚持。他的这个个性在朋友之间是被称道的。虽然有时坚持并不代表一定成功,但只有坚持才能有成功的机会。年轻时尽量刻苦一些,使肉体承受最大的痛苦,年龄稍大一些的时候才能享受成果。有一句话“退一步海阔天空”,但侯捷先生更希望大家“撑一下海阔天空”,一试再试做不成,再试一下。

不要别人点什么,就做什么

尼古拉斯.泽卡斯的第一份工作,只干了8个月,那家公司就倒闭了。他问经理,接下来他该怎么办,经理说:

”小伙子,千万不要当一个被人点菜的厨师,别人点什么,你就烧什么。不要接受那样一份工作,别人下命令你该干什么,以及怎么干。你要去一个地方,那里的人肯定你对产品的想法,相信你的能力,放手让你去做。“

他从此明白,单单实现一个产品是不够的,你还必须参与决定怎么实现。好的工程师并不仅仅服从命令,而且还给出反馈,帮助产品的拥有者改进它。

推销自己

泽卡斯进入雅虎公司以后,经理有一天跟他谈话,觉得他还做得不够。

”你工作得很好,代码看上去不错,很少出Bug。但是,问题是别人都没看到这一点。为了让其他人相信你,你必须首先让别人知道你做了什么。你需要推销自己,引起别人的注意。“

他这才意识到,即使做出了很好的工作,别人都不知道,也没用。做一个角落里静静编码的工程师,并不可取。你的主管会支持你,但是他没法替你宣传。公司的其他人需要明白你的价值,最好的办法就是告诉别人你做了什么。一封简单的 Email:”嗨,我完成了 XXX,欢迎将你的想法告诉我“,就很管用。

学会带领团队

工作几年后,已经没人怀疑泽卡斯的技术能力了,大家知道他能写出高质量的可靠代码。有一次,他问主管,怎么才能得到提升,主管说:

当你的技术能力过关以后,就要考验你与他人相处的能力了。

于是,他看到了,自己缺乏的是领导能力,如何带领一个团队,有效地与其他人协同工作,取到更大的成果。

生活才是最重要的

有一段时间,泽卡斯在雅虎公司很有挫折感,对公司的一些做法不认同,经常会对别人发火。他问一个同事,后者怎么能对这种事情保持平静,同事回答:

”你要想通,这一切并不重要。有人提交了烂代码,网站下线了,又怎么样?工作并不是你的整个生活。它们不是真正的问题,只是工作上的问题。真正重要的事情都发生在工作以外。我回到家,家里人正在等我,这才重要啊。

从此,他就把工作和生活分开了,只把它当作“工作问题”看待。这样一来,对工作就总能心平气和,与人交流也更顺利了。

自己找到道路

泽卡斯被提升为主管以后,不知道该怎么做。他请教了上级,上级回答:

”以前都是我们告诉你做什么,从现在开始,你必须自己回答这个问题了,我期待你来告诉我,什么事情需要做。“

很多工程师都没有完成这个转变,如果能够做到,可能就说明你成熟了,学会了取舍。你不可能把时间花在所有事情上面,必须找到一个重点。

把自己当成主人

泽卡斯每天要开很多会,有些会议根本无话可说。他对一个朋友说,我不知道自己为什么要参加这个会,也没有什么可以贡献,朋友说:

”不要再去开这样的会了。你参加一个会,那是因为你参与了某件事。如果不确定自己为什么要在场,就停下来问。如果这件事不需要你,就离开。不要从头到尾都静静地参加一个会,要把自己当成负责人,大家会相信你的。“

从那时起,他从没有一声不发地参加会议。他确保只参加那些需要他参加的会议。

什么样的人适合当软件工程师?相关推荐

  1. 玩转IT 适合学软件工程师的四类人群

    高中生能不能玩转IT,学得会软件开发吗?北大青鸟双源中心校长告诉我们,北大青ACCP软件工程师课程的体系特点就是由浅入深,循序渐进,分阶段细化培养.课程比较类似从高中到大学的学习,只是学习的相关内容更 ...

  2. python前端用什么架构_Python web世界观——web架构概览(适合传统软件工程师)...

    Python web世界观--web架构概览(适合传统程序员) 传统web server面临的问题 我们知道传统的web server,一个进程打开socket,监听,来了请求生成新的进程(或线程.或 ...

  3. 哪些人适合报考消防工程师?

    一.公务员.事业单位职员和教职人员  首先,相对来说,大部分事业单位职员和教职人员闲暇时间较多,有充足的学习时间备考:此外,这一类人员一般底薪不太高,考一个注册消防工程师证书,也算能够收获一笔额外的资 ...

  4. 软件工程师的职业建议

    原文:http://survivor.ruanyifeng.com/startup/advices.html 什么样的人适合当软件工程师? 下面的职业建议分别来自台湾的侯捷老师,以及美国的著名程序员尼 ...

  5. 软件工程师道德规范(转载)

    1993年5月,IEEE计算机协会的管理委员会设立了一个指导委员会,其目的是为确立软件工程作为一个职业而进行评估.计划和协调各种活动.同年,ACM理事会也同意设立一个关于软件工程的委员会.到1994年 ...

  6. 构建之法---初识篇(软件工程师的成长和两人合作)

    这周主要看的是第三章和第四章:软件工程师的成长和两人合作,首先衔接上一次的第二章的内容,继续了解如何成为一个合格的软件工程师,当我们真正成为一个合格的软件工程师的时候,我们就应该进行团队合作了,首先从 ...

  7. 大专文凭,考过软考的软件工程师,接着想进千人工程

    本人大专,考过了软考的软件工程师,在当地的信产局看了一下,感觉"千人工程"名气挺大的,进去咨询,客服人员技术都不懂,很浮躁,对什么前景之类说了一大通,所以想上来问一下,大家觉得这个 ...

  8. 如何评估研发人员效能?软件工程师报告帮你看见每个人的贡献

    本文正文内容共计957字,建议阅读时间:2分钟. 阅读本文你将收获: 1.软件工程师质效综合评价由哪些维度构成: 2.软件工程师效率与质量分析指标作用是什么: 3.软件工程师活跃度分析指标能帮助管理者 ...

  9. 学软件工程的人计算机几级,学软件工程师对英语的最低要求是过几级?网络工程师需要对哪方面强一点?具休达到什么水准?...

    学软件工程师对英语的最低要求是过几级?网络工程师需要对哪方面强一点?具休达到什么水准?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起 ...

最新文章

  1. andorid简单计算器java源码_Android之一个简单计算器源代码
  2. python聚类分析如何确定分类个数_Python数据挖掘—聚类—KMeans划分法
  3. 第四周实践项目3单链表:逆置、连接与递增判断(包含三个程序)
  4. linux增加swap分区大小
  5. vue-awesome-swiper 的使用
  6. SAP Spartacus 的会话管理 Session Management
  7. Java内存模型_基础
  8. Mysql 零距离-入门(一)
  9. 提高编程技能最有效的方法
  10. Python中pip版本升级error:You are using pip version 7.1.2, however version 8.1.1 is available.
  11. android 自定义 build.gradle,Gradle for Android 第二篇( Build.gradle入门 )
  12. (二)Luence——代码实现索引及搜索
  13. 计算机课堂小游戏活跃气氛,适合小学生在课堂上玩的游戏,简单有趣活跃课堂气氛...
  14. qt QDir 枚举类型
  15. 【Linux】 Ubuntu intel网卡驱动安装
  16. 微课在小学计算机教学中的应用,微课技术在小学信息技术课堂中的应用
  17. Android开发-高德地图导航
  18. Java学习笔记分享之MyBatis篇(中)
  19. ECS云服务器新手上路
  20. 4g物联网模块dtu网络远程开关控制器485通讯 工业级TTL转4G串口服务器 全网通路由模块 通信通讯模组 二次开发

热门文章

  1. 携手互联网企业10巨头设VC基金
  2. java之旅(1)序言
  3. 论文总结 -论文写作注意事项(持续更)
  4. 单片机外围电路设计之三:电感
  5. java 复数_java怎么定义复数?
  6. Python使用随机森林预测泰坦尼克号生存
  7. 电脑显示器不亮的三种原因和解决方法
  8. 两个地址之间的距离测量(使用高德API)
  9. vue表单验证,中文验证
  10. 淘宝618列车/京东618叠蛋糕活动 自动领喵币/金币脚本