软件工程师成才之路

软件工程师成才之路
来源:  http://www.itheroes.cn/Show.asp?id=895 

    朱志辉,高端JAVA 软件设计专家, 8年软件工作经验,IT专业人士。1997年加入亚信科技(中国)公司,任AIOBS计费系统产品经理。1998年加入Sun Microsys?鄄tems Inc. China Ltd.任系统工程师,负责金融和政府各种应用解决方案。参与设计建设了中国工商银行广州、深圳分行新兴业务整合和电子银行系统。现任达内科技(中国)有限公司首席技术官。他结合自己的经历,告诉我们——软件工程师成才之路.  

    今天,软件业已经成为人们羡慕的高薪行业。我国的软件企业达上万家,软件从业人员更是突破百万。软件业中的技术人员大都有一个明确的上升通道:编码员——程序员——高级程序员——软件工程师——项目经理——系统架构分析师。软件工程师是通道最关键的一环。
    
    一个软件工程师的必备素质是什么呢?朱志辉认为:
     
    一、具有良好的编程能力。编程能力直接决定了项目开发的效率。软件工程师至少精通一门编程语言,熟悉基本语法、技术特点和API(应用程序接口);二、具备认识和运用数据库的能力。信息以数据为中心,与数据库的交互是必不可少的;三、较强的英语阅读和写作能力;四、具有软件工程的概念。从项目需求分析开始到安装调试完毕,软件工程师必须清楚地理解和把握这些过程,并能胜任各种环节的具体工作。
     
    对于想要成为软件工程师的从业者,朱志辉作了具体指导:
    
    选择什么编程语言
     
    编程语言那么多,一个人不可能学完所有,那么究竟该学哪些?朱志辉说,选择所学语言的关键在于两点:一是通用性,二是适用性。通用性是指该语言的使用范围较大,是完成工作的基础性工具。而且,通用性语言一般是编程人员都会的,拓展性很强,能够为学习其他语言奠定基础。c++、java等都属于通用性语言。“c++的通用性最好。”朱志辉解释说,“初学语言的人一定得学好c++,打好基础。”适用性是指该语言的大面积使用受到一定限制,其应用多偏向于某个方面,如汇编语言、html语言等。每个人对自己的定位不同,有些人想进行底层开发,有些人想做网站开发,有些人想做商业软件开发等等,最初选择语言时就应该考虑这些定位,选择比较适用的语言。
    
    如何学习编程语言
    
    “读程序、写程序是快速学习、掌握语言的不二法门。”朱志辉说。读程序要求熟悉一种语言的基本语法,这样能读懂别人程序的每一行意思,反过来加深对语法的理解。读程序也不能单纯地读,要真正做到“俯而读,仰而思”。这样就能发现别人的程序设计思想,为自己写程序打下基础。
    
    学习语言的目的关键在于应用,因此,写程序是最终掌握语言的关键。写程序一定要依据自身能力循序渐进地写,开始的时候写一点功能简单的、篇幅短小的代码,力求简洁、完整,“麻雀虽小,但五脏俱全”,然后在此基础上进行扩充,一点一点添加功能,逐渐进入应用。比如,当你需要练习一种语言基于数据库的应用时,首要任务就是编写一定的程序,使数据完善地保存在数据库中;其次,你需要完成数据的增删改查;再次,你须学会按某个具体目的编写程序。这时,你已经成为一名软件工程师了。
    
    一般来讲,程序员可以分为两种,一种是“游击队员”,他们可能对编程工具很熟,能力很强,编写的程序简洁高效,却缺乏规范和合作的观念;另一种程序员个人能力不一定很强,但程序较为规范,合作意识良好。第二种人更有可能成为软件工程师。
    
    培养对行业的认知
     
    软件工程师要就市场论技术,强调面向对象的分析与设计能力。毕竟,大多数软件设计师需要让计算机解决实际问题,因此,必须清楚地认识实际问题。IBM一份《中国银行业加入WTO的新纪元》白皮书显示,IBM做银行业咨询顾问的最终目的还是推销自己的整体解决方案,占领中国金融业软/硬件服务市场。IBM的行动告诉我们,要想让技术和产品介入某一行业,仅有大批专业技术人员还不够,还需要有对行业的认知和把握能力。
     
    朱志辉以过去给银行做项目为例:最初天天听银行工作人员讲借方、贷方,他并不十分理解,用现实生活中的事例去“代”总是出错,直到有人说借方表现为资产减少,贷方表现为资产增加,他才真正明白。朱志辉说,事情很小,但这说明软件工程师一定要了解、使用行业语言,学习、掌握行业知识,真正理解所在行业,否则,只能一直是一个程序员。
    
    熟练掌握英语
    
    程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与编程高手交流、发布帮助请求同样离不开英文。
    
    作为基础软件工程师,具有一定的英语基础对于提升自身的学习和工作能力极有帮助。而且,软件行业的发展一日千里,编程工具软件的更新换代十分迅速,软件工程师总是需要在第一时间学习业界最流行、最先进的编程工具软件的使用方法。
    
    通常,在一种软件刚刚面世的时候,软件工程师是不可能找到这种软件的中文使用说明或中文帮助文档的。如果软件工程师在软件工程专业英语方面达到了娴熟运用的水平,就可以浏览英文的文档、英文的帮助文件,在最短的时间内掌握最先进、效率最高的软件工具的使用方法。

 

转载于:https://www.cnblogs.com/ctfzh/archive/2007/06/10/778324.html

### 嵌入式软件工程师职业发展规划与技能提升路线 #### 技能需求概述 成为一名优秀的嵌入式软件工程师不仅需要掌握编程基础和计算机体系结构,还需要深入了解嵌入式系统和硬件知识,熟悉实时操作系统(RTOS),并掌握通信协议和网络编程技术[^1]。 #### 初期发展阶段 (0-4年) 在此阶段,重点在于打下坚实的技术基础。具体来说: - **基础知识**:深入理解C/C++等编程语言,学习微控制器的工作原理及其内部外设的操作方法。 - **实践操作**:参与实际项目的开发过程,积累动手经验和解决常见问题的能力。 - **工具使用**:熟练运用集成开发环境(IDE),版本控制系统(Git)以及其他辅助工具来提高工作效率。 ```c++ // 示例代码展示如何初始化GPIO引脚配置 void GPIO_Init(void){ // 配置GPIO模式为输出 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } ``` #### 中期成长阶段 (4-6年) 随着工作经验的增长和技术水平的提升,在这一时期应该更加注重以下几个方面的发展: - **新技术探索**:关注行业内最新的技术和趋势变化,积极尝试新的框架或库的应用。 - **软技能培训**:培养良好的沟通能力和团队协作精神;同时也要加强个人时间管理和任务优先级判断能力。 - **复杂项目处理**:承担更具挑战性的任务,比如负责整个模块的设计实现或是主导小型产品的研发周期管理。 #### 后期成熟阶段 (7年以上) 当达到这个层次时,则更强调综合素养和个人影响力的塑造: - **领导力构建**:能够带领小组成员共同攻克难题,并指导新人快速上手工作内容。 - **战略眼光形成**:站在更高的角度思考公司产品线布局及长远发展方向等问题。 - **创新意识激发**:鼓励创造性和差异化的产品构思,推动所在企业乃至整个行业的进步与发展。 除了上述提到的各项硬实力之外,还特别指出拥有系统级别的思维方式对于一名成功的嵌入式开发者至关重要。这意味着要能够在早期就考虑到诸如基准测试、验证策略等方面的要求,从而确保最终交付成果的质量可靠稳定[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值