软件工程职业规划

一、语言的选择

Python、JAVA、C#、PHP、C++、VB……10多种热门的开发语言,哪一种最有发展潜力呢?其实开发语言只不过是一个工具,“与其分散进攻,不如全力一击”,无论是哪一种开发语言,只要您全力地去学习,到有了一定的熟悉程度的时候,要学习另一种的语言也是轻而易举的事情。开发语言主要分为三大类:
1.网络开发
现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面
2. 企业软件开发
JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发
3. 系统软件
C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面

二、关于职业规划

很程序员每天都在写代码,每天都很忙,而当面试官问他:“你的职业规划是什么?”程序员答:“没有”。那如果让你选择一个角色你会选择什么?比如技术主管。程序员答:“CEO吧”。我。。。。。。
我们应该给自己制定一个职业规划,对未来的工作要有一个方向,当方向对的时候,你会少走很多弯路。就像小时候别人问你,你长大后的梦想是什么,我家隔壁的小明答到:“我想当一个数学家”。这是一个很好的梦想!虽然后来小明只当了超市里的会计——收银员。
职业生涯规划图:在这里插入图片描述

程序员的职业发展书籍:
1.算法与导论
2.设计模式
3.如何预防颈椎病
4.如何治疗颈椎病
5.活着
6.如何转行

这看似一段程序员自黑的段子,但作为老程序员不得不说这真的不是一个段子,程序员是一个高风险职业,很多人对自己的职业生涯没有清晰的概念,以至于最后落得不得不转行的尴尬局面,这个转行一般有两个原因,一个是技术跟不上,一个是身体吃不消。还有些人觉得Java这一行干不长久,很容易失业,其实并不是这样。Java行业的技术更新换代很快,而有些人再找到工作后就甘于现状不再继续学习,这使得他跟不上技术更新的速度,这样的人才比较容易淘汰。如果你能一直努力学习新知识,那么你是很难失业的。

虽然不少人觉得目前Java行业人才众多,尤其是各类新兴语言的崛起,Java势头大不如前,但Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性,可移植性、高性能、多线程、动态性等。

Java摈弃了C++中各种弊大于利的功能和许多很少用到的功能。Jave可以运行于任何微处理器,用Java开发的程序可以在网络上传输,并运行于任何客户机上。 Java的前程不可限量,所以根本不需要担心Java的前景走下坡路了,要是你还在担心,是因为你的Java知识学得还不到家。

Java就业形势如何?

据权威机构统计,Java的岗位普遍的工资是10k到20k,平均工资为14780。这样可观的收入也是很多人投身于Java事业的一个重要因素。另外只有8%的Java工程师的工资是8k-10k,这一小部分是刚出来的Java工程师。所以Java未来的就形式依然可观,想要投身Java这行业的,就要好好学习了。

三、管理与技术那个更重要

这个是一个没有对错的问题,目前国内很多大公司都很注重技术,所以靠干技术混一辈子也是有可能的,但是技术是一条累并且容易过时的东西,一旦你掌握的技术过时,那就只能呵呵了(那些说技术都是想通的,只能骗自己了,hr可不吃你这套)管理相对来说就稳定的多,管理能力可以扩展到很多技术方向,而且管理的收入也是高于技术的,但也有缺点就是管理的换工作成本更高。

其实我个人认为最好的职业是技术leader,这个要求能力很高,既要技术处于团队领先,并且还有精力来管理自己的团队,对每个成员的工作和职业发展方向有一个清晰的认识和指导

对于职场新人,不要过多的考虑钱的因素,要选择大企业,知名企业,这些企业的特点是,工资不低,职责分工明确,对于你的工作风格养成比较有利,最重要的是换工作比较容易。

这里有人可能蹦出来说。小公司更适合新人,可以快速培养一个人多项技能,虽然会累一点,但会学到很多东西,对于有这种思想的人,我只想说并不是你比别人会的多,你就会比别人有发展,个人认为深度比广度更重要

依在下看来,要想成为尖端的开发者,必须对C、C++、汇编语言、嵌入式开发、Windows API、Linux API这些底层技术有着深入的了解。要知道了解JAVA、.NET……等这些之所以称为高级开发语言,并不是指它们比C、C++、汇编语言更高级,而是指它们封装了C、C++等等的功能,更适合用于企业软件的开发,使开发变得简单。但如果要开发一些底层的软件,大型的系统的时候,就必须用到C、C++、汇编等开发语言,这是成功尖端人才的一个条件。

四、项目经理还是架构师

在程序员中一直有个讨论就是将来要做项目经理还是做架构师。这两条路的侧重点不一样,所以积累的东西也可能不同。项目经理更强调综合能力,比如说协调能力,沟通能力等一系列偏管理的能力。而架构师可能更专注于技术本身,技术上的宏观方向。两条路有重叠,但是更多的是区别。有些项目经理可能就不会写代码。但是同样可以带好一个项目,一个团队。我曾经也问自己要是以后这两条路走哪条,其实都可以尝试一下。比如说给一个项目让我带带,我能否把它带好,其实需要机会,同时也需要自己去争取这样的机会。所以我的答案就是如果有机会的话两条路都可以尝试走走,就是两个方向的一些能力都可以进行积累。很多人认为项目经理是一个职位,我倒觉得是动态的,这个项目中你做项目经理,另外一个项目中可能又是开发工程师。所以不永远是项目经理,也不永远是开发工程师。

就程序员而言,专注技术是没有任何问题的,先技术后管理。管理这个东西总的说有点虚无飘渺,各都有各的一套理论,比较难以评估。但是技术是可测量的,通过一定的努力技术水平都会有定的跃升。记得在《肖申克的救赎》里面说到地质的形成只需要两个条件:压力和时间。其实对于学技术也是一样的。只要肯学一定会达到某个水平。到大牛级别的确实需要一些悟性和天分。

五、我的选择

我为什么觉得自己应该走架构师这条路,这和我职业终极目标是契合的。这里先说一下架构师做什么?架构师负责整个项目甚至整个系统的构架(这一句话等于废话)。一般型的项目可能这个设计项目就做掉甚至可能就不需要架构。但是系统复杂度上升的时候,会涉及到系统之间的交互,还有技术的可行性和整个设计的方案。这个时候架构师就出场了。另外的工作就是承担一定的培养新人的工作。所以架构师都需要具备比较好的口才,很多人都说程序员不会说话,错了,那是低端的,到了高端的程序员口才都很好,看一下那些程序员大会中侃侃而谈的架构师们,是不是有种“高端大气上档次”的感觉。这后面会发现有一个发展方向就是“培训师”,还可以写书,其实这些都可能是一些“副产品”。技术到一定的境界很多事情到都是水到渠成。

架构师写代码吗?当然写。他们肯定不会写那些简单的代码,他们一般写什么代码?框架,一般来讲优秀的框架都是一个人或者极少人写出来的。比如说Linux的核心就是一个人写出来的。好的代码绝不是人堆出来的。你给100个初级程序员也整不出一个Struts来。这里会衍生出另外一条路,就是开源框架,很多牛人都是开源社区的爱好者。都或多或少的参与了一些开源项目。甚至把自己写的一些东西开源出来。一般来讲能做到这个级别那是相当厉害的了。

不管怎么样技术的底层都是一样的,所以扎实的基础是必要的,这就是为什么算法和数据结构是永恒不衰的。很多人说算法和数据结构无用那就是无知的表现。这个无知就像在讨论读大学有没有用一样。

注: 以上皆为我个人阅读各位大佬的文章所总结的一些关于职业规划的内容,仅供参考。

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小福仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值