1. 聚能聊>
  2. 话题详情

浅谈程序员职业发展,从起步到晋级

随着科学技术的不断发展和信息化的爆炸式增长,程序员这一职业,依然处在很强的上升期,涌入的人也越来越多。入坑经历各有不同,有计算机、软件学科的科班出身,有培训机构的开发速成,也有不少独自钻研的自学成才,那么今天就来聊一聊,当以代码为生后,程序员应当如何规划自己的职业发展呢

时至今日,写程序已经不再是什么特别高深和高尚的事情,用代码改变世界这样的理想毕竟只是少数,提升工作效率和工作质量,延长职业寿命,才是大多数程序员要考虑的事情,从这个角度看,我有两个分享

timg_jpeg

一、方向选择

现在的开发平台和编程语言,相比10年20年前,已不可同日而语,新的语言、开发工具不断涌现,思路和理念也频繁升级,不同开发岗位的工作内容、岗位收入、发展前景、甚至生活方式都不尽相同,在这样的大背景下,我觉得

1、在开发方向的选择上,抛开各种不确定性之外,不要盲目跟风,在做了足够的尝试和试探后,尽量达到兴趣和收入的和谐与统一;

2、开发方向不要频繁更换,在某一方向的深耕要达到2-3年以上,技能点才会有质的变化,从而带动收入的大幅增长;

3、如果希望降低选择风险,可以跟随大公司或者软件行业的主流方向,吃口饱饭应该问题不大。

二、夯实基础

技术的高速发展也带来了弊端,伴随着开发工具的越来越先进和傻瓜,一些新程序员反而迷失了开发的本质,事实上,如果想获得更快的提升和更高的收入,夯实基础是不二选择,其中包括

1、科学基础。除非计算机科学理论发生了本质改变,否则再过100年,科学基础的重要性都不会变化,其中包括数据结构与算法、操作系统、数据库原理、编译原理等,很多科班程序员甚至对此也完全忽略。从学校走进社会后,利用工作之余,应当尽可能多的将这些专业基础完整的梳理和深入学习,其赞,妙不可言。

2、专业基础。无论学习Java、C#、PHP等任何一门语言,会使用这么语言和深刻理解这门语言都是不一样的境界,事实上任何一门语言的官方机构都会有系统、全面的教程和书籍,无论做何种开发工作,将所用语言的官方教程完整的学习和演练一遍,都是十分、非常、一定有必要的,对减少Bug、开拓思路、提升系统稳定都大有裨益。

以上分享为一家之言,仅供参考。程序们一起来聊聊你的想法。

· 现在的是你程序员老司机,还是新入门的准程序员呢?

· 你的起步语言及职位发展计划是什么样的?是术有专攻,还是多种尝试,面面俱到?

· 有没有给自己制定过“一个亿”小目标,实现了没?

参与话题

奖品区域 活动规则 活动已结束,可继续参与讨论哦

  • 奖品一

    定制笔记本 x 2

  • 奖品二

    虾米VIP月卡 x 6

  • 奖品三

    云栖大会订制T恤 x 2

175个回答

1

1127366582620955 已获得虾米VIP月卡

大部分的技术都有各种证书,不知道怎么晋级了,就去弄个合适的证书,巩固基础,学习新知识,还能加分涨工资!

汗神 回复

赞成,虽然证书不能说是技术的唯一证明,但最简洁的向人展示能力,同时,为了考证,也确确实实学到了许多的东西

初码 回复

这也是一个可行的办法

老夏677 回复

虾米VIP

老夏677 回复

赞成,虽然证书不能说是技术的唯一证明,但最简洁的向人展示能力,同时,为了考证,也确确实实学到了许多的东西

天上海城 回复

这个东西不错,还能鼓励某些人多学习,获取丰富知识,成为某些人的成就!

评论
2

机器的心脏 已获得虾米VIP月卡

不知不觉参加工作成为程序员已经4年多,记得上高中的时候,从网络上知道了很多IT精英创业成功的例子,如没有读过大学的“汽车之家”创始人李想、 facebook创始人马克·扎克伯格,让我觉得互联网是个充满梦想的舞台,只要有想法、有能力就有可能成功,而且成功是巨大的,其他行业需要上百年打造的商业帝国,在互联网只要短短的一两年就可以了。

在高考填志愿的时候,毫不犹豫的选择了“软件工程”专业,大学一晃就过去了,09年大学毕业,并迅速加入了一个android创业团队,迫不及待的开始了自己的第一次创业生涯,第一次创业在不到一年的时间里夭折了,这一次创业学到了很多,也成熟了很多。为了生存选择了一家公司开始了打工生涯,在这一家公司一呆就是三年多,在这期间做过android开发,做过ios开发,干过项目经理,也干过产品经理,虽然自己有了很大的成长,但是对于自己未来的职业规划也越来越迷茫,下面我们就进入正题谈谈程序员的职业规划吧:

程序员一般有如下几条出路:

1.技术型;

浅谈程序员的职业生涯规划浅谈程序员的职业生涯规划

痴迷于技术,适合做资深工程师或者架构师、技术总监等,但是这样的有一个弊端,因为是痴迷于搞技术的,一直隐藏在后端,没有太多的机会接触到社会上形形色色的人,沟通和商务能力就会大打折扣,而且像这种职位适合于存在有一定实力的公司,一般的小公司看重的是成本#from 本文来自高考资源网http://www.gkstk.com end#和效益,除非没有你公司就办不下去了,要不老板只要找到比你便宜能够替代你的人,就会盼着你趁早滚蛋。所以如果你年龄已经比较大,而且上有老、下有小,而且做的技术和业务很容易的被替代的话,可要小心了,你的性价比已经比较低了。

2.管理型;

浅谈程序员的职业生涯规划文章浅谈程序员的职业生涯规划出自http://www.gkstk.com/article/1425637118612.html,转载请保留此链接!

管理岗位,适合做项目经理、开发部经理、研发经理等等。程序员做管理的话,个人觉得取决与这个程序员的性格,你的性格决定了你适不适合做管理,做管理情商一定要高,上面既要应付自己的领导,下面还有自己的下属,在公司中承上启下作用,怎么能够即把事情做好,又能左右逢源处理好双方的关系,就是考验你情商的时候。

3.创业型;

创业是一个充满坎坷的历程,要考虑自己的idea是否靠谱、起始资金、团队成员、关系资源、商业模式等等,如果你之前是一个专心技术型的程序员,选择创业合伙人,一定要是彼此互补的,总之,创业有风险,尤其在中国。

4.转行型:

浅谈程序员的职业生涯规划职业规划

如果你当初入行只是迫不得已、或者是为了程序员所谓的高工资,转行的选择,我完全赞成。行业没有高低贵贱,大家都是为了生存和爱好才选择的。只要能让自己更好的发展,让自己的亲人过得更好。

以上都是自己的个人看法,欢迎大家一起探讨。我现在也是在职业迷茫期,我热爱这个行业,但是现实的生活,让我为了工作而工作,渐渐的离自己的梦想也越来越远。我害怕丢失自己的梦想。

大海wowowowo 回复

你的观点我很赞同。不知不觉参加工作三年了。自己依然迷茫,就是因为你知道了这些。是不是害怕尝试?

评论
3

feb_chen 已获得定制笔记本

赞同楼主的观点,对于科学基础知识的深耕很有必要!多的不说,合理的算法+数据库原理相结合,可以优化多少数据库操作的代码。我也结合自己的经历,阐述一下,从2010年开始接触软件开发,由于大学期间与工作后的项目,开发语言学过c ,vb,c #,Java,Delphi ,PHP ,数据库接触过sqlserver,mysql ,Oracle ,硬件开发涉及过arduino ,开发工具用过vs eclipse dreamwear sublime 等,项目涉及过asp.net j2ee winform Android 运维方面也自考了rhce ,网络也自学考了网工,最近在忙一个c # winform 的项目,从大学期间初学的时候简单的以为就是拖拖控件,写点事件,到数组、分层、线程、硬件开发,从中真心感觉到了学的越深,你才能使用它做出更强大的软件,更能体现出自身使用这项语言获取的价值。但随着大数据时代的到来,公司单位项目需求的变化,兴许什么时候又需要去学习Python R等,我想以前的项目经历也是一种财富,解决某些项目遇到的问题,兴许可以采用以前的经验来处理,这可以达到减时增效。最后一点,就是职业道路规划问题,在快节奏的工作压力与自身基本生活需求之间的平衡,是否该考虑一下,不仅需要干干工作,还要强身健体,这里就会出现几个矛盾问题需要平衡解决:一、一辈子就干程序员写代码?二、经常加班,如何照顾好家庭?三、劳动付出与回报的匹配问题,四、高强度的工作与健康生活的平衡。我觉得有这样想法的人,才属于正常心理健康水平的人,这都是目前一线程序员的普遍现状,个人觉得,一是在适当的物质追求下,科学的付出与回报是成正比的,毋庸置疑,该干活的时候还真的干,二是往往现在大家干的活,都是客户或者公司项目来催促着去按部就班搞开发,缺乏一定的创新性,当重复的劳动导致自我麻痹后,也难免会疲乏,三是科学布局,有一个靠谱的项目经理很有必要,合理协调开发分工也可以提高工作效率,四就是公司文化氛围建设很有必要,人处于一个和谐活泼的环境下,也有利于促进员工工作,从管理者角度出发,可以适当组织部门活动。严肃活泼的环境,加之自身的努力与期望的回报,正常的人应该都会少了些后顾之忧。

1

1672623204236079 已获得云栖大会订制T恤

谈谈自己的经验
一、先培养热爱
可以从看开源代码和写好玩的开源软件开始,培养兴趣,参与到开发社区建设和讨论,过程应该还会接触很多同样的人,接受到很多反馈,形成兴趣好友圈互相沟通激励
二、不断投入深研
有了热爱,就不担心时间投入不够,投入你80%的业余时间,从开发软件到理解软件、系统本身原理,从而扩展你解决问题的角度和思路
三、质变
最后从后端走到前端,理解软件背后的业务功能价值,不断吸收知识,最终形成自己全局思考能力!恭喜你!

唯卫 回复

程序员生涯

评论
2

1373369873232811 已获得虾米VIP月卡

首先谢谢博主的这篇文章。身为一个初级Java web程序员,现在正处在二年这个坎上,一直在想怎么华丽的晋级,努力利用空闲时间给自己充电。结果不停的充电🔋,导致自己学的越多越迷茫。我实在很困扰,技术涉及的太多。可能你刚学完它就被淘汰了,你学会了却没机会实践这种情况多不胜举。跟同事也聊过,听的最多的就是多看看底层实现代码,万变不离其宗,这点跟博主的思想很一致。不过博主推荐的数据结构与算法、操作系统、数据库原理、编译原理等这些东西我以前也考虑过,不过可能是因为见识不够吧,一直认为不是必须。这里这些博主重点拎出来讲了一下,差点错过重要的一部分,很感谢博主,个人也希望博主能给我指点一下迷津,让我这个小菜鸟少走点弯路,万谢。

1

1902870460080042 已获得虾米VIP月卡

第一阶段:不知道自己不知道,了解点皮毛就认为自己什么都知道,很厉害,表现:过度承诺,满口没问题;
第二阶段:知道自己不知道,原来每个地方做好都需要技术和技巧,表现:虚心学习;
第三阶段:知道自己知道,工作一段时间后随着技能逐渐提高,成了团队中的骨干技术,表现:客观自信,真正自信;
第四阶段:不知道自己知道,随着知识深度和广度的提高,知识自成体系,解决问题有潜意识,这时连自己都不知道自己知道,已经属于架构师了!表现:好学,谦虚。
正真的技术是成熟稳定安全!

1

szm. 已获得虾米VIP月卡

首先,我觉得我还是一个刚入门的准程序猿,毕竟,我这么年轻😂😂😂
进入正题,我以前一直纠结,学习是要深度学习还是广度学习,现在我的观点是:尽量广度优先,发现自己喜欢的再深度。这样会有一个好处,就是你可以跟上时代的发展,当做一个任务的时候,你可以选择一个最优的语言进行解决,也许你觉得可以将问题用你最熟悉的语言完美的解决,也许,另一种语言可以更加精简的完成任务。当然这里也不提倡各种语言学个皮毛就认为自己全会了,这就体现出深度学习的优点,他能让你更快的解决问题,因为你懂得这种语言的各种特性,遇到问题基本上可以自己解决。
所以在实际的工作生活,我建议面面俱到

1

养猪的和尚 已获得虾米VIP月卡

关键怎么抵过诱惑,旁边的人转行微商,转行优化,转行自媒体照样钱哗哗的,说实话个人有个人的想法,不一定深耕就好,也不一定学皮毛就不好。认识几个日入几万的大佬甚至只会简单的html和快速建站程序,帝国,dede,wp等等,照样不是风声水起。说实话选择好的机遇是关键,人为财死,鸟为食亡。不必要每个人都走前辈的路,是时候走点不一样的路了。代码固然好。不要贪多。精才是关键。就像军事不一定自己去打仗,游泳教练不一定自己会游泳。要善于用对的人,对的策略,来应对不同的环境。就这吧。

1

keller.zhou 已获得云栖大会订制T恤

当你选择一门编程语言时,你不仅仅选择了语言本身,还有围绕着这门语言产生了各种各样的应用框架。比如你选择C++,将来就可能接触到这些框架:

Boost,Qt,Silicon,tufao,TreeFrog,WTL,STL,libev,Cocos2d-x,Dlib,Ultimate++,Asio,TinyXML,libxml++,CEGUI、FLTK、wxWidgets、Ogre 3D、Cairo、Skia、OpenCV、CxImage、Json++、Json11、CppUnit、OpenSSL、Crypto++、C++React、OpenCL、OpenAL、Vorbis、Memcached、libcurl、SQLite……

除了直接与你所选语言相关的技术框架,还有一些可能经常会与你所用语言搭配的其它语言,比如你选择C++,那Java、C、Python、JavaScript就是与它搭配使用比较频繁的语言。像Node.js,就是混合体了;像JNI,也在Java和C之间搭建了桥梁……

你最终会根据你选择的语言构建出自己的技术图谱,你的技术图谱决定了你将来的发展和你在企业眼中的价值。

从这点来讲,应当关注流行度高、应用广泛、有大公司参与的语言。

有机构通过分析与 C++ 语言相关的招聘信息得出的结果,使用C++语言的前三个行业是:金融、银行和游戏。接下来是:Front Office、通信、电子、投行、市场、制造业、零售业。

你选择了某种语言,就可能到该语言应用最多的行业里去。所以,在选择语言时,有必要了解这种语言被应用最多的行业。

1

嵩山小和尚 已获得定制笔记本

大二一部《商战之电商风云》让我转向了计算机。后来一直到毕业,才发现,找一个工作不是很难,难的是如何让自己在这条路上走更多久,对于楼主所有的“夯实基础”很认同,也在这个过程中学到了很多。现在,无论是IDE还是编程语言,效率越来越高,对于开发来说,效率上去了。但背后的基础确不容忽视,非科班的我,利用业余时间,看看数据结构,希望在这条路上走的更远,加油~

2

似水的流年

一个人需要多年的努力才会成功,就像导师说的那样,就说写一年的hello world,也会有进步。我目前主要在学习java,用框架做一些项目。

老夏677 回复

是的,我学学

评论
1

doubledog

楼主 我非常喜欢你说的那句,无论什么语言先抓住一种深入研究下去,这里学一点 哪里学一点 你有两个可能,第一成为全栈,第二全面平庸,抓住一个点深耕下去,总有别人漏掉的金坨子碰到你的犁铧发出一声 DUANG~的一声!恭喜你晋级到另一个层次了

老夏677 回复

不懂

评论
2

小浦管家

楼主说得很好,我十分赞同“在某一方向的深耕要达到2-3年以上”。
鄙人是C语言科班出身,但是工作却是IT基础运维,设计网络、数据库、Linux、Unix、VMware 存储……直到去年初才设计asp.net,重获当初编程的体会。
现在IT运维不好做,看看能不能借这股春风实现华丽的转身。

1

汗神

知识积淀或快或慢,但需要实在,现今25以下嫌年轻,34以上就觉得要么管理要么淘汰的心态乱人心智

1

50034067

程序员的进化之路就是需要解放双手,像钢铁侠电影里面那样编程。

0

绵绵羊

哪里有培训班速成呢?想学编程,建模

月影朦胧 回复

速成的弊端太大。 年龄小是可以的

评论
1

mazerain

从学网络到前端,从前端到后端(PHP),最后又到前端,感觉自己这些年仿佛过了一个轮回。其实许多程序员一直都在追着这个时代跑,从Flash(编码向的)到后端到架构,从Java到Objective C到Swift。因为产业的方向转变,许许多多的小个体也在随之改变,说到底不是这个语言或这个职业不行了,当我们不够高精尖时,只能如浮萍般漂着...
许多人举到外国人的例子,到五十多还写着代码,并热爱着,我估计中国人很少这样子的,大部分程序员也很少这样子的,一个萝卜一个坑的时代,你不跳出这个坑,只能等到被华为清退的年纪,国为有比你要的少还效率高的年轻人。我想这也是大部分中年程序员的想法,能转产品转产品,能转运营转运营。哪怕你还热爱着这门语言,但他不能给你很好生活的保证。
谁没有个小目标,这也是许多程序员加入创业公司的原因或是自己创业。最近看了周鸿祎谈程序员创业说的也很是中肯,所以我建议还是多术业专攻到面面俱到,最后大家都能华丽转身吧。

1

爵霸

    当今社会,IT行业发展速度突飞猛进,技术更新换代周期小,专业方向和领域更是林林总总、百家争鸣,若没有一个明确的目标而漫无目的的乱走一遭,岂不殆误时机,浪费年华?俗话说,欲行千里,先立其志。因此,要为自己拟定一份职业生涯规划,将自己的未来好好的设计一下。有了方向的指引,自然才会有乘风破浪之帆。
    盖楼还要打好地基,不然等它越来越高的时候会摇摇晃晃这就是根基不稳。等你地基打得很好了以后自然就要建二层三层甚至更高。
    目前国内缺乏的是管理能力和专业知识技能并驾齐驱的IT人才。特别是懂得运用目标管理技术的项目管理人才,既掌握核心技术又有全局掌控能力的项目管理人才,非常难找。我建议对于大多数人来说,首先是要专,只有在技术方向上做得比较深入,才能适当做工作调整,把自己转变为某个领域的专家。                 


                                                 纯个人理解

1

caixiaojia

一套解决问题的思路加上经验,就无敌了。

1

1402688643561968

有一个合理的逻辑架构。应用合适的语言和团队编译,按部就班,逐一克服困难。一定有所成就!!

8