职业发展规划之软件工程师

article/2025/10/8 19:30:52

编者按:所谓知己知彼,方能百战不殆。无论是面临就业的大学生,还是考虑再择业的职场人,都离不开一个清晰的职场目标并为之不懈的努力。小编在这里对各行业进行信息梳理,希望对您有所帮助。

想当一名软件工程师需要学什么呢?

 

软件工程师的工作在最近几年变得尤为紧俏,那么,如果想成为一名软件工程师,需要具备什么素质?同时,如何进行自我学习?

【一】软件工程师解读 

【二】软件工程师的三个进阶

【三】Google前工程经理王忻:如何准备软件工程师的面试

【四】想当一名软件工程师要学什么呢?

【五】软件工程师就业前景分析

【一】软件工程师解读

何谓软件工程师,软件工程师是通过学习和训练,掌握软件技术的理论知识和操作技能的软件技术人员。软件工程师能够从事计算机软件、网站的设计、开发、维护和测试工作。

具体来说,我们可以从企业技术部的岗位体系中作一些了解。企业(或政府)信息化过程中需要以下四种人:

想当一名软件工程师需要学什么呢?

 

1、企业信息化管理:负责信息化建设中的目标与方案决策,信息化建设、升级、更新;

2、工程技术人员:负责软件系统的分析、设计、开发、数据库、使用、维护和升级;

3、运行维护岗位:负责软件开发代码的编写以及基本的开发和测试;

4、操作应用人员:主要应用软件进行日常的管理工作。

一般来说,IT企业的IT技术职位根据职能可以分为管理岗位:企业信息主管CIO、总监、IT经理、项目经理等;工程技术岗位:规划设计师、网络工程师、系统工程师、软件工程师和数据库工程师等;运行维护岗位:数据库管理员、系统管理员、程序员等;操作岗位:办公文员、CAD设计员、网页制作员、多媒体制作员等。

根据企业规模大小,规模较小的企业,一个岗位可能涵盖几个岗位的内容,系统管理员既要负责系统管理,又要承担网络管理;大企业则会分的比较专业,有软件设计师、系统集成工程师、网络工程师、程序员和系统测试工程师等。

【二】软件工程师的三个进阶

想当一名软件工程师需要学什么呢?

 

软件工程师职业规划过程主要有以下几步:

两年以上的小型企业→四年左右的中型企业→大型企业或跨国集团公司

软件工程师职业规划过程主要有以下几步:

两年以上的小型企业→四年左右的中型企业→大型企业或跨国集团公司

第一步,小企业的软件开发设计编程人员;

第二步,进入大中型企业,同样的软件开发设计编程工作,工资就可能完全不同了,一般都在3000元以上。做了部门经理时,还可以高达5000元或以上;

第三步,学习更全面的知识成为普通的软件工程师工资就高达3500元以上;

第四步,学习更全面的知识成为专业的软件工程师,如软件设计工程师,系统分析工程师的工资就可以达8000元以上,做大型企业或专业软件公司IT经理的工资就更高了,基本在万元以上。

 

【三】Google前工程经理王忻:如何准备软件工程师的面试

原文作者王忻,Google前工程经理,2003年月加入Google,是Google Lively背后的主导力量,是Google Desktop的重要贡献人,并在Google招聘委员会任职。2008年11月从Google离职,现是Trackville.com的创始人。 2010年10月12日王忻在博客中透露,她已是Minted.com的CTO。(注:此文写于2006年6月。)

 想当一名软件工程师需要学什么呢?

想跟大家来谈谈如何准备软件工程师的面试?假设,现在您的杀手简历 (killer resume)已经吸引了某大公司的注意并约你面试。那么接下来该如何准备呢?

我在 Google(以前是微软)工作期间面试了不下 300人,其中某些应聘者确实表现非凡,但有些却显得准备不足。当然许多面试准备不足的人最后依然获得了录用通知,因为他们本身确实才华出众。但如果应聘者能提前准备妥当,那么面试过程将更为保险和轻松。以下所列出的就是我根据多年经验总结得出的建议:

1.使用相同的工具(如铅笔和纸张)和时间限制(例如半个小时)模拟面试训练

Google 和微软都会让应聘者在白板上手工解答编程问题,但通常大部分的应聘者都是习惯于在电脑上利用编程工具系统编写程序。因此面试的时候,某些应聘者离开了熟悉的电脑光标,站在白板前感觉手足无措不知该如何起行。又或者他们不习惯在编程之时旁边有人观看,这会让他们感到紧张而无法正常思考。

在现实生活中,如果你想要横渡英吉利海峡,自然不能总是在室内游泳池练习。你必须投身大海在波涛之中训练,在准备面试的时候也是如此。

在面试开始之前你最好向招聘单位询问面试形式和面试问题。如果招聘单位让你在某个房间考试且仅提供没有汇编程序的编辑器,那么就应该在家中按照这种情景进行练习。如果招聘公司单位让你在白板上回答问题并会安排考官在旁监督,那么你就要找一位软件工程师来扮演考官配合你练习。即使找来的考官经验不如你也没有关系,他们依然能帮助你消除在他人面前出错所带来的紧张感,这样可以让你适应有人在旁边盯着看的面试氛围。

如果你恰巧认识我并希望由我来帮你联系,那我的条件就是必须请我吃饭:如果你已经工作了就吃日本寿司大餐;如果你还是学生,那么吃比萨饼也可以。

2.在面试过程中不要对细小错误耿耿于怀

我曾不止一次的在面试过程中碰到这种情况:当应聘者知道编程问题后,他马上就想到了最佳的方案、确定了边界条件,然后开始编写程序。但在编写过程中,应聘者犯了诸如首先检查是不是操作顺序错误或忘记设定某变量等无关大局的小错误,当我指出其错误之后,应聘者立刻变得十分紧张,这种焦虑情绪影响了他在后面环节的正常发挥。

其实这种恐惧心理完全不必要。一名优秀的程序员在编程过程中出现错误也是很正常的,就像是小提琴手在演奏高难度的巴赫交响乐时也会偶尔失误。音乐会的听众可能会觉察到这些错误,但是听众绝对不会因为这种细小失误就把出色的小提琴手看作是门外汉。

即便应聘者彻底搞砸了某个编程问题,面试考官也可能会提出不同的问题并会容忍应聘者在某个问题上的失误。再退一步说,就算某次面试彻底失败,你也有机会在其它面试上补救。

我的一位同事(一个项目的技术负责人)最近面试了一个人,在开始面试时他觉得面试者的交流方式存在问题,因此开始表现的相当不友好。但经过了整个面试过程后,面试者证明了自身的能力,而我的那位同事也成了那位面试者最坚定的支持者。在过去的一年中,我从未见过这位同事如此强烈的支持哪位面试者。

所以,因此就算面试进展不顺,也务必坚持到底不要放弃。

3.在面试过程中不要失礼

这似乎是不用说的问题,但在面试过程中我确实碰到过影响很不好的失礼行为。曾有一位前来应聘软件工程师的人看到我就说:“哇,我真不敢相信你这么年轻!你看上去好小!我觉得你才18 岁!”我看了他的简历才搞清楚原来是来应聘的,在开始的时候我却忍不住想:“这个人是来面试我的吧?!”

面试者的这种言行实在要不得。

面试者也要注意不要说出诸如此类的话:“哇,你真的就是考官吗?你看上去好老!”“哇,你真的是来面试我的,你看上去好胖!”(相信应该不会有人说这样的话)。

在我的另外一次面试中,应聘者的手机在面试开始 15 分钟之后就响了,她没有理会,手机连续响了 20 秒,这样不免会对面试造成影响。5 分钟之后,她的手机又响了,她依然没有理会;5分钟之后,手机第三次响起。最后她终于抓过手提包在里面翻出了手机。我想:“是时候关掉手机了,她在进来之前就应该把手机关掉。”但是她在手提包中拿出手机之后却旁若无人的打起电话来,而且就在面试过程中间!

这种情况唯一可接受的理由就是他有什么非常紧急的事,但是即便情况如此,那么他也应该在面试开始之时就讲清楚,让面试官有所准备。

4.不要在面试中喧宾夺主

我曾经面试过几个应聘者,他们好像铁了心肠一定要告诉我他们最近的“超级项目”。当我开始发话他们就立刻打断:“我想让你了解我们近期处理的超级项目,10年之前当这个项目开始之时还默默无闻……”,然后接下来的5分钟时间都在那里滔滔不绝唾沫横飞。

有时应聘者好像打定主意要给每个考官详细描述其引以为豪的项目,然后一整天都在那里翻来覆去的说这个项目。

记住:面试官在面试过程中有具体的问题需要询问。但是如果应聘者喧宾夺主,那么考官就可能无法获得充分的信息来做出判断,同时这种行为也会让考官觉得应聘者很难共事。

如果你确实想谈论自己的项目,那么就应询问面试官:“我觉得最近的某某项目能充分体现我的能力,我能不能用 10分钟的时间来描述一下具体情况?”这样就会给面试官空间来调整面试过程,由此也避免毫无征兆就让面试离题万里。

5.在回答需要具体答案的问题之时,记得首先要有总括性的发言

有时我会问一个答案可以很简练的问题,例如:“在你的那个成功项目中总共有多少人参与?”但应聘者往往会就此打开话匣:“恩,张三参与了这个项目,他负责 UI部分,当然我也会给他一些指导。李四也在项目中,她在宾州远程工作,负责后端服务器。两年之后我们又有新人王五加入……”

在应聘者滔滔不绝的讲了三分钟之后,我还是不知道这个项目到底有多少人参与。

因此首先要简练的回答问题,然后再展开描述:“在我接手项目时有三个人,但当我离开项目时人数已经增加到12人。”

当然如果能简练的回答问题,然后征询意见之后再展开论述那就更好了:“在我接手项目时有三个人,但当我离开项目时人数已经增加到 12 人。我可以讲一下各人在项目中的具体分工吗?”

6.(不是特别重要)在面试中要衣着得体,舒适的商务便装是最佳的选择

人们有时候会为衣着犯愁。但是最重要的是要让自己感觉舒适。如果需要具体的建议,那么我建议穿衬衫甚至T恤衫。对于某些公司(例如 Google),西装革履显然是太隆重了。

这条建议不必太看中,因为面试官不会管应聘者穿什么。最好应该询问人事招聘部门穿什么合适,因为不同国家有不同习俗,就算美国东海岸和西海岸的公司着装文化也会有差别。像 Google 这样的公司在着装方面更加随意,因此如果你穿着“三件套”的经典西服去 Google 面试,考官可能会有异样的感觉。因此如果你真的具备软件工程的本领,穿什么其实并不重要。某个应聘者曾经穿着皱巴巴脏兮兮的T恤就跑来面试,他的T恤衫上还有着许多破洞。但最后他还是拿到了录取通知(当然我绝不建议如此穿着)。

 

【四】想当一名软件工程师要学什么呢?

首先让我们来看一下软件工程师考试(高级)要求:

(1)理解软件工程管理的概念和任务;

(2)理解软件生存期过程;

(3)理解软件工程标准;

(4)掌握需求分析、测试、维护基本技术;

(5)掌握软件度量、软件配置管理方法;

(6)理解软件复用概念;

(7)理解软件质量保证的手段;

(8)理解软件项目对人员的需求;

(9)理解软件知识产权的基本知识。

通过本级水平考试的合格人员具有从事软件系统分析与工程系统分析员、工程管理员的实际工作能力和业务水平。

不过目前最好的软件工程师证书就是软考得中级工程师(软件设计师)很权威,那么软件工程师要学什么课程呢?

1:数据结构  数据结构可以说是编程的灵魂,它不是一门语言所以没有关键字。它只是给程序开发人员一个开发思路而已,讲的主要是已经成熟的编程思想和算法,而且几乎适用于所有开发语言。就好像学习英语一样,学习编程语言让你会说英语,记住很多英语单词,熟悉英语的很多语法。而学习数据结构能让你编出很漂亮的英语文章。

2:操作系统(第三版),主要从资源管理的角度来分析系统功能的实现。假设你要设计一个新的操作系统,如何实现它?操作系统理论就是向读者逐步介绍和解释。重点是五大管理职能的实现及其原理。

3:计算机网络(第三版),要学习ISO/OSIRM七层的划分以及各种协议的功能。传输理论、互联设备、Internet知识,和参考模型理论

4:数学,数学是基础,你暂时不太能体会它的作用,但是以后会非常有用。所有的计算原理都要数学作为指导。

5:计算机专业英语,不是软件考试特有的,是专业知识+英语水平,考前不需专业准备,平时有意识地上网读点英文专业资料

6:软件工程(第二版) 要熟悉数据流图和流程图

7:数据库理论.这要求熟悉SQL的语言.几乎所有的编程语言都要和数据库打交道的。

8:C语言或者VB语言应该掌握,不过目前JAVA和.net是当前比较火的两个编程语言。

想当一个软件工程师,最后要学习统一建模语言UML,它代表了软件工程的发展趋势,目前是可视化建模的事实上的工业标准。

【五】软件工程师就业前景分析

软件行业成为目前最热的行业之一,3G工程师、嵌入式工程师、Java软件工程师、.net软件工程师的开发前景怎么样,下面就从这四个方面分析软件开发工程师的就业前景。

步骤/方法 3G工程师就业前景分析:

中国被世界公认为全球最大的3G移动市场,但是,3G相关的人才却严重失调。专业从事3G应用软件开发从业人员不足千人,据工信部预测,仅2010年,中国3G人才市场缺口就在100万以上,其中3G软件工程师缺口就在50万左右。

3G 人才短缺现状,使得3G行业已经成为新的高薪行业,基于3G软件开发人员变得格外抢手。人力资源专家表示,3G软件开发是未来几年最热门和最受欢迎的职业之一。根据前程无忧网发布的薪资报告,具有10年工作经验的高级嵌入式软件工程师年薪在30万元左右。即使是初级的嵌入式软件开发人员,平均月薪也在 5000元左右,中高级的嵌入式软件工程师月薪平均已超过万元,而且随着3G应用的进一步深入发展,3G软件研发人才的薪水还会进一步水涨船高!嵌入式工程师就业前景分析:

嵌入式领域较新,目前发展非常快,很多软硬件技术出现的时间都不太长(如ARM处理器、嵌入式操作系统、LINUX操作系统),大多数人没有条件接触或进入嵌入式行业,更谈不上能有机会接受专业人士的指导。因此,踏进这个行业的难度比较大,嵌入式人才稀缺。

权威部门统计,我国嵌入式人才缺口每年50万人左右。根据相关的的调查报告称,嵌入式软件开发是未来几年最热门和最受欢迎的职业之一,具有10年工作经验的高级嵌入式工程师年薪在30万元左右。即使是初级的嵌入式软件开发人员,平均月薪也达到了3000—5000元,中高级的嵌入式工程师月薪平均超过 10000元。 Java软件工程师就业前景分析:

目前,虽然Java人才的薪水很高,但是对该类人才需求旺盛的IT企业却很难招聘到合格的Java软件工程师。其中,最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人要求有较大的差距。因此,计算机专业的大学生欲成为Java软件工程师,最便捷的一条路就是参加以实战项目为主要教学方法的Java职业技能培训,从而有效地缩短同企业具体用人要求之间的差距。 .net软件工程师就业前景分析:

据有关权威部门统计,未来几年内我国软件行业的从业机会十分庞大,每年对软件人才的需求将达到 80万 -100 万人,而现有行业从业人员只有 50 万人左右,专业开发人员不到25万,目前大部分院校出来的应届计算机系学生,真正能当年进入软件公司工作的只有10%~20%左右,缺口很大。

.Net 作为新一代的程序开发语言其中的一员,同样也具有很多的优势,并且弥补了前一代语言的缺点,因而更加受到人们的喜爱。.Net具有很多明显的优点,可以提高开发人员的效率,减少bug,加快应用开发并简化使用。IT人员对.Net保持了应有的警惕,因为它毕竟还是个新事物,需要有一个比较艰难的学习曲线。但是对于大多数组织而言,其优点远远多于缺点。有了.Net,可以在未来的开发项目中赢得更高的生产力。

 

来源:优米网综合编辑


http://chatgpt.dhexx.cn/article/J1pl8anv.shtml

相关文章

软件测试的职业发展和规划(一)

作为很多软件测试岗位的朋友来说,职业发展和规划一直是一个比较模糊的概念,知道其重要,却不知如何规划更符合自己的实际情况。下面,我们就分三种情况来简单说一说。 一、高管理-低技能 即是我们通常所说的管理路线!在…

软件测试职业发展规划

【原创】软件测试职业发展规划 之前有同学问我软件测试工程师应该如何发展,感觉有些迷茫。问我什么时候应该学自动化?什么时候应该学性能?我是学习java好,还是学习html?还是python? 下图,我给出了一个测试…

软件工程职业规划

一、语言的选择 Python、JAVA、C#、PHP、C、VB……10多种热门的开发语言,哪一种最有发展潜力呢?其实开发语言只不过是一个工具,“与其分散进攻,不如全力一击”,无论是哪一种开发语言,只要您全力地去学习&a…

软件测试工程师的职业规划

读者提问: 软件测试工程师如何做职业发展规划,有什么比较好的建议给到咱们测试萌新吗 ? 阿常回答: 两个大的发展方向:1、技术类;2、管理类。 一、走技术发展路线 1、测试专家,比如 “测试架构师…

五年程序员谈软件工程师做职业规划的重要性

导语:过来人告诉你软件工程师这个金饭碗不是那么容易端稳的,做好职业生涯规划,给自己定一条路线,让自己在这条路线上一步一步走下去,才是好职业好发展的前提。 写这篇文章源于某条微博评论,原内容大概是一个…

软件行业职业规划

每个IT心中都有一个自己的职业生涯规划,而且不得不承认,在这个行业里面工作时间长了,难免会丧失很多激情。以下是个人的职业规划,希望这个激情的火种能继续燃烧,并希望能给在软件路上或正准备在软件路上的人一个参考。…

我的职业生涯规划(软件工程)

原本打算在语雀发文章 但是现在要vip,文章才能公布到互联网 以后笔记先在语雀整理 方便一点https://www.yuque.com/juhao-pqdor/goeie3 整理一下自己的笔记 弥补一下以前没写博客的遗憾吧 二十载求学路将尽,行文至此,思绪万千。求学之路始…

软件工程大学生职业规划书

引言 在今天这个人才竞争时代,职业生涯规划开始成为在人争夺战中 另一重要利器,对企业而言,如何体现公司“以人为本”人才理念, 关注员工人才理念,关注员工持续成长,职业生涯规划是一种有效手段; 而对每个人…

计算机网络基础--IP地址与子网划分

一、IP地址的表示方法 IP地址由四段组成,每个字段是一个字节,8bit,最大值是255。 IP地址由两部分组成,即网络地址和主机地址。网络地址表示其属于互联网的哪一个网络,主机地址表示其属于该网络中的哪一台主机。二者是…

网络基础架构(从数据传输理解网络)

目录 1. 网络与系统关系2. 网络背景3. 认识协议4. osi七层协议5. Tcp/Ip五层协议6. 网络传输流程6.1 局域网6.2 广域网6.3 数据封包和使用 7. 网络中的地址管理7.1 IP7.2 mac地址7.3 网络相关的两个命令 1. 网络与系统关系 将数据放到网络里,把数据从网络拿出来&am…

计算机网络(一)——网络基础

文章目录 一、计算机网络背景二、网络协议分层2.1 协议分层2.2 OSI七层2.3 TCP/IP四层 三、网络传输基本流程3.1 网络传输流程图3.2 数据包的封装和分用 四、网络中的地址管理4.1 IP地址4.2 几组概念4.3 Mac地址 一、计算机网络背景 网络把主机连接起来,而互连网&a…

运维面试题(网络基础、系统管理)

目录 网络基础类1、简述ISO/OSI七层模型的分层与作用相关-TCP/IP四(五)层模型与作用? 2、简述TCP三次握手的过程相关-简述四次挥手的过程 3、172.22.141.231/26,该IP位于哪个网段?该网段拥有多少可用IP地址?广播地址是…

P2P网络基础(学习笔记)

P2P网络基础(学习笔记) 基本概述P2P与C/S架构P2P网络的特点P2P网络的主要功能P2P网络的分类集中式全分布式非结构化全分布式结构化混合式比特币网络 P2P网络的应用 基本概述 P2P(peer-to-peer)网络又称为对等式网络,或…

计算机网络基础实验(Cisco Packet Tracer 实验)

目录 一.简介二.Cisco Packet Tracer 实验1.直接连接两台 PC 构建 LAN2.用交换机构建 LAN3.交换机接口地址列表4.生成树协议5.路由器配置初步 三.小结 一.简介 1.本部分实验需使用 Cisco Packet Tracer 软件完成。 下载文件压缩包: 提取地址:Cisco Pack…

初识网络基础《网络七层模型详解》

坚持原创输出,点击蓝字关注我吧 图片来自网络 目录 一、初识网络基础二、网络七层模型详解 1.物理层2.数据链路层3.网络层4.传输层5.会话层6.表示层7.应用层三、总结 一、初识网络基础 其实网络刚刚开始发展的时候,它并没有这么一个复杂的模型&#xff0…

【算力网络】算力网络的技术创新——网络基础设施关键技术

本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客内容主要围绕: 5G协议讲解 算力网络讲解(云计算,边缘计算…

计算机网络基础知识框架

前言 计算机网络基础 该是程序猿需掌握的知识,但往往会被忽略今天,我将献上一份详细 & 清晰的计算机网络基础 学习指南,涵盖 TCP / UDP协议、Http协议、Socket等,希望你们会喜欢。 目录 示意图 1. 计算机网络体系结构 1.1 简介…

python网络基础

python网络基础 1. 前言1.1 拓扑图1.2 三个问题 2. IP2.1 概念2.2 组成2.3 分类2.4 私有IP和私有IP2.4.1 共有IP2.4.2 私有IP 2.5 子网掩码 3. 网络端口3.1 前言3.2 注意 4. 网络协议4.1 前言4.2 四层模型 1. 前言 1.1 拓扑图 1.2 三个问题 IP windows中查看: ipco…

网络基础--搭建一个简单的网络

文章目录 前言一、配置路由器二、配置服务器三、电脑开启dhcp服务总结 前言 这里用的是华为的模拟器ENSP来完成这个实验。 华为的模拟器中PC不能访问服务器,也就是说不能访问网页,所以用Client。 要求:所有电脑自动获取ip地址—dhcp服务&am…

神经网络基础知识

一、课程来源: 深度之眼神经网络基础知识 二、主要内容: 主要分为三个部分,分别是 1.神经网络基础与多层感知机:基础知识、激活函数、反向传播、损失函数、权值初始化和正则化 2.卷积神经网络:统治图像领域的神经…