成为一名高级软件工程师
在我上初中的时候,我接触到了一种名叫BASIC的程序汇编语言.当我第一眼看到它时,我就梦想着能有一天成为控制计算机的主人.而在我进入了大学后更是学会了理性地看待我的目标,在对自身作出了比较全面而客观的分析和比较后, 我选择了高级软件工程师作为我大学四年甚至整个人生的奋斗目标...
一. 高级软件工程师的职业定义:
高级软件工程师是IT行业中的重要岗位. 根据开发进度和任务分配, 完成相应模块软件的设计、开发、编程任务; 进行程序单元、功能的测试, 查出软件存在的缺陷并保证其质量; 进行编制项目文档和质量记录的工作; 维护软件使之保持可用性和稳定性. 软件开发是一个系统的过程, 需要经过市场需求分析、软件代码编写、软件测试、软件维护等程序. 软件开发工程师在整个过程中扮演着非常重要的角色, 主要从事根据需求开发项目软件工作.
二. 行业背景和发展前途:
软件和信息服务外包产业已成为各个国家经济发展的重点. 从增加值角度来看, 同样金额的出口, 服务外包对中国经济的贡献是来料加工的20倍以上; 从能源消耗上看, 服务外包单位GDP能耗仅为制造业的20%. 这在中国政府大力倡导可持续发展战略以及大力发展高技术第三产业的主旋律下是适应中国经济发展, 也是符合中国社会客观需求的. 可以看到的是, 未来中国软件和信息服务外包产业发展空间巨大, 其原因有三: 首先是具有成本优势, 中国低成本的竞争优势是全世界公认的. 第二, 具有人力资源优势, 中国是世界上人力资源极为丰富的国家, 软件和信息服务外包服务业是劳动密集型产业, 中国未来在软件和信息服务外包业内将成为全球最具竞争力的转移承接地. 第三, 中国有非常庞大的国内市场, 这是中国吸引跨国公司进入很重要的一个原因.
但与发展潜力不对称的是, 现今中国软件和信息产业人才相当缺乏,据调查研究显示, 当前中国软件和信息服务外包产业人才流动率较高, 而且缺口很大. 企业成立时间比较短, 规模大多比较小, 企业人才平均流动率达18.28%, 这和缺乏培训、业务来源不稳定、报酬机制不够合理等因素有关. 同时由于产业发展迅速, 人才供不应求, 尤其是本地化人才和中高级管理人才.
市场需求的巨大和专业人才的缺乏令人吃惊,但这正是商机和盈利的重要突破口. 可以预见,中国软件和信息服务外包产业将在不久的将来成为引领中国第三产业转型和发展的龙头产业, 相关职业包含高级软件工程师的人才需求将会非常巨大.
三.职业所需基本技术及素质:
1.编程开发工具.
至少熟练掌握两到三种开发工具的使用, 这是程序员的立身之本. C/C++以其高效率和高度的灵活性成为开发工具中的利器, 很多系统级的软件还是用C/C++编写. 而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在. 其次, 如果能掌握一种简便的可视化开发工具, 如VB,PowerBuilder,Delphi,C++ Builder,则更好, 这些开发工具减小了开发难度, 并能够在无形中强化对象模型的概念.另外, 需要掌握基本的脚本语言, 如shell,perl等.
2.数据库.
数据库在当今的信息外包产业是很重要的. 很多应用程序都是以数据库的数据为中心, 而数据库的产品也有不少, 其中关系型数据库仍是主流形式, 所以作为高级软件工程师而言, 至少熟练掌握一两种数据库, 对关系型数据库的关键元素非常清楚, 熟练掌握SQL的基本语法是非常重要的.
3.网络协议TCP/IP.
在互联网如此普及的今天, 如果还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握就很难在IT业立足. 从最早的客户/服务器结构, 到今天的WEB Services, 这一切都离不开以TCP/IP协议栈为基础的网络协议支持, 所以, 深入掌握TCP/IP协议是非常必要的.
4.软件工程与CMM.
现代大型软件系统的开发中, 工程化的开发控制成为软件系统成功的保证. 编程只是软件生命周期中的其中一环, 本人认为优秀的软件工程师应该掌握软件开发各个阶段的基本技能, 如市场分析, 可行性分析, 需求分析, 结构设计, 详细设计, 软件测试等. 否则就永远只会是一个程序员, 而无法成为名副其实的工程师.
5.计算机技术专业英语.
随着中国的信息外包产业逐步展开, IT业急需与国外相关高新技术接轨来保持在发展上不落人后. 于是IT业相关从业人员现有的英语水平成为限制中国信息产业与国外交流的瓶颈. 一个普遍的共识是:良好的英语交流和阅读能力成为衡量一个软件工程师水平的隐性标准.所以掌握计算机专业英语是很重要的.
6.强烈的好奇心和学习精神.
对于一个立志成为高级软件工程师的人, 最重要的其实是强烈的好奇心和学习精神. 没有比强烈的好奇心和学习精神更好的武器了, 它是成功的工程师乃至在各行各业的成功者们永攀高峰的源泉和动力所在.
成为一名高级软件工程师相关推荐
- 高级软件工程师必备的五大技能
具备什么样的素质的人才能成为一名高级软件工程师?作为高级软件工程师,你不仅要具备娴熟的技能,更重要的,还要具备与人合作的能力.只有能够领导和提升他人的软件工程师,才是真正的高级软件工程师.Israel ...
- 转:高级软件工程师成长秘诀(文末有笔者自己的小评论)
作者:Neil Kakkar 译者 | 张健欣 身为软件工程师,你要如何进一步成长? 2018 年的时候,我开始在彭博社(Bloomberg)工作.从那之后,事情发生了很大变化.我不再是公司里最初级的 ...
- 一位高级软件工程师的自述:这个职位到底要做什么工作?
作者丨Joy Ebertz 译者丨核子可乐 策划丨赵钰莹 本文作者 Joy Ebertz 接触过的几乎每一家软件公司都设有技术晋升与管理晋升两条职业道路,这意味着如果只走技术方向,技术人员也完全可以在 ...
- 精读文章:高级软件工程师成长秘诀
作者 | Neil Kakkar 译者 | 张健欣 策划 | 陈思 身为软件工程师,你要如何进一步成长? 2018 年的时候,我开始在彭博社(Bloomberg)工作.从那之后,事情发生了很大变化.我 ...
- 谷歌高级软件工程师的一天
作者 | Dimitris Leventeas 译者 | 弯月 来源 | CSDN(id: CSDNnews) 工作过的朋友都知道,实际写代码的时间其实并不多,有很大一部分工作的时间都用在了处理邮 ...
- 高考十年后,我成为一名高级研发工程师
一年一度的高考结束了,回想起猿人参加高考仿佛还是在昨天,记忆深刻,但时间早已过去十年之久. 在讲高考之前,我们来看看高考的官方定义. 普通高等学校招生全国统一考试(National Unified E ...
- 软件架构师之职责范围和高级软件工程师的职责范围
什么是"高级软件工程师",这个职位到底该做些什么,相信大家都有答案.在目前很多国内软件企业中,如果你是"高级软件工程师",那么从需求分析 ,设计,开发,测试,甚 ...
- J2EE高级软件工程师面试题集
第一章:J2EE高级软件工程师面试题集 --JAVA基础部分 1.面向对象的特征有哪些方面1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不 ...
- 我如何成为高级软件工程师
Ever since I started learning to code, I have dreamed of becoming a senior engineer. Some may think ...
最新文章
- 前端技术选型的遗憾和经验教训
- 谈谈java的线程池(创建、机制)
- linux隔行打印文本,详解正则表达式及Linux三大文本处理工具
- python open写入_Python IO操作文件读取和写入、open函数的mode参数、buffering,文件缓冲区...
- c# oldb连接_(转)C#连接OleDBConnection数据库的操作
- 《JavaScript面向对象精要》——1.2 原始类型
- 【微信小程序】ColorUI——一个多彩漂亮的UI组件库
- iOS视频开发(一):视频采集
- 用MicroPython开发ESP32-文件传输工具-ampy
- Matlab--函数与子函数
- oracle-ORA的原理
- 二、VLAN,单臂路由
- HiveSqlSparkSql —— 使用left semi join做in、exists类型子查询优化
- gateway和openfeign依赖冲突
- 【Linux命令】挂盘相关命令,包含可扩展硬盘
- [nRF51822] 1、一个简单的nRF51822驱动的天马4线SPI-1.77寸LCD彩屏DEMO
- bilibili缓存视频的位置
- db2 improt from coldel0x7c
- CET-6 Word’s defination from Oxford dictionary 大学英语六级词汇剑桥英文释义
- 基础-符号表(一)-数据结构和算法(Java)