本问题发起者:初码
随着科学技术的不断发展和信息化的爆炸式增长,程序员这一职业,依然处在很强的上升期,涌入的人也越来越多。入坑经历各有不同,有计算机、软件学科的科班出身,有培训机构的开发速成,也有不少独自钻研的自学成才,那么今天就来聊一聊,当以代码为生后,程序员应当如何规划自己的职业发展呢
时至今日,写程序已经不再是什么特别高深和高尚的事情,用代码改变世界这样的理想毕竟只是少数,提升工作效率和工作质量,延长职业寿命,才是大多数程序员要考虑的事情,从这个角度看,我有两个分享
一、方向选择
现在的开发平台和编程语言,相比10年20年前,已不可同日而语,新的语言、开发工具不断涌现,思路和理念也频繁升级,不同开发岗位的工作内容、岗位收入、发展前景、甚至生活方式都不尽相同,在这样的大背景下,我觉得
1、在开发方向的选择上,抛开各种不确定性之外,不要盲目跟风,在做了足够的尝试和试探后,尽量达到兴趣和收入的和谐与统一;
2、开发方向不要频繁更换,在某一方向的深耕要达到2-3年以上,技能点才会有质的变化,从而带动收入的大幅增长;
3、如果希望降低选择风险,可以跟随大公司或者软件行业的主流方向,吃口饱饭应该问题不大。
二、夯实基础
技术的高速发展也带来了弊端,伴随着开发工具的越来越先进和傻瓜,一些新程序员反而迷失了开发的本质,事实上,如果想获得更快的提升和更高的收入,夯实基础是不二选择,其中包括
1、科学基础。除非计算机科学理论发生了本质改变,否则再过100年,科学基础的重要性都不会变化,其中包括数据结构与算法、操作系统、数据库原理、编译原理等,很多科班程序员甚至对此也完全忽略。从学校走进社会后,利用工作之余,应当尽可能多的将这些专业基础完整的梳理和深入学习,其赞,妙不可言。
2、专业基础。无论学习Java、C#、PHP等任何一门语言,会使用这么语言和深刻理解这门语言都是不一样的境界,事实上任何一门语言的官方机构都会有系统、全面的教程和书籍,无论做何种开发工作,将所用语言的官方教程完整的学习和演练一遍,都是十分、非常、一定有必要的,对减少Bug、开拓思路、提升系统稳定都大有裨益。
以下是从本次话题中众多社区博主的精选答案,期望能够对各位同学有所帮助:
社区昵称 1127366582620955 的回答:
大部分的技术都有各种证书,不知道怎么晋级了,就去弄个合适的证书,巩固基础,学习新知识,还能加分涨工资!
社区昵称 bluemind 的回答:
不知不觉参加工作成为程序员已经4年多,记得上高中的时候,从网络上知道了很多IT精英创业成功的例子,如没有读过大学的“汽车之家”创始人李想、 facebook创始人马克·扎克伯格,让我觉得互联网是个充满梦想的舞台,只要有想法、有能力就有可能成功,而且成功是巨大的,其他行业需要上百年打造的商业帝国,在互联网只要短短的一两年就可以了。
在高考填志愿的时候,毫不犹豫的选择了“软件工程”专业,大学一晃就过去了,09年大学毕业,并迅速加入了一个android创业团队,迫不及待的开始了自己的第一次创业生涯,第一次创业在不到一年的时间里夭折了,这一次创业学到了很多,也成熟了很多。为了生存选择了一家公司开始了打工生涯,在这一家公司一呆就是三年多,在这期间做过android开发,做过ios开发,干过项目经理,也干过产品经理,虽然自己有了很大的成长,但是对于自己未来的职业规划也越来越迷茫,下面我们就进入正题谈谈程序员的职业规划吧:
程序员一般有如下几条出路:
1.技术型;
浅谈程序员的职业生涯规划浅谈程序员的职业生涯规划
痴迷于技术,适合做资深工程师或者架构师、技术总监等,但是这样的有一个弊端,因为是痴迷于搞技术的,一直隐藏在后端,没有太多的机会接触到社会上形形色色的人,沟通和商务能力就会大打折扣,而且像这种职位适合于存在有一定实力的公司,一般的小公司看重的是成本#from 本文来自高考资源网学优网_学优高考网_最领先的高考资源网_免费下载高考试题end#和效益,除非没有你公司就办不下去了,要不老板只要找到比你便宜能够替代你的人,就会盼着你趁早滚蛋。所以如果你年龄已经比较大,而且上有老、下有小,而且做的技术和业务很容易的被替代的话,可要小心了,你的性价比已经比较低了。
2.管理型;
浅谈程序员的职业生涯规划文章浅谈程序员的职业生涯规划出自浅谈程序员的职业生涯规划,转载请保留此链接!
管理岗位,适合做项目经理、开发部经理、研发经理等等。程序员做管理的话,个人觉得取决与这个程序员的性格,你的性格决定了你适不适合做管理,做管理情商一定要高,上面既要应付自己的领导,下面还有自己的下属,在公司中承上启下作用,怎么能够即把事情做好,又能左右逢源处理好双方的关系,就是考验你情商的时候。
3.创业型;
创业是一个充满坎坷的历程,要考虑自己的idea是否靠谱、起始资金、团队成员、关系资源、商业模式等等,如果你之前是一个专心技术型的程序员,选择创业合伙人,一定要是彼此互补的,总之,创业有风险,尤其在中国。
4.转行型:
浅谈程序员的职业生涯规划职业规划
如果你当初入行只是迫不得已、或者是为了程序员所谓的高工资,转行的选择,我完全赞成。行业没有高低贵贱,大家都是为了生存和爱好才选择的。只要能让自己更好的发展,让自己的亲人过得更好。
以上都是自己的个人看法,欢迎大家一起探讨。我现在也是在职业迷茫期,我热爱这个行业,但是现实的生活,让我为了工作而工作,渐渐的离自己的梦想也越来越远。我害怕丢失自己的梦想。
社区昵称 feb_chen 的回答:
赞同楼主的观点,对于科学基础知识的深耕很有必要!多的不说,合理的算法+数据库原理相结合,可以优化多少数据库操作的代码。我也结合自己的经历,阐述一下,从2010年开始接触软件开发,由于大学期间与工作后的项目,开发语言学过c ,vb,c #,Java,Delphi ,PHP ,数据库接触过sqlserver,mysql ,Oracle ,硬件开发涉及过arduino ,开发工具用过vs eclipse dreamwear sublime 等,项目涉及过http://asp.netj2ee winform Android 运维方面也自考了rhce ,网络也自学考了网工,最近在忙一个c # winform 的项目,从大学期间初学的时候简单的以为就是拖拖控件,写点事件,到数组、分层、线程、硬件开发,从中真心感觉到了学的越深,你才能使用它做出更强大的软件,更能体现出自身使用这项语言获取的价值。但随着大数据时代的到来,公司单位项目需求的变化,兴许什么时候又需要去学习Python R等,我想以前的项目经历也是一种财富,解决某些项目遇到的问题,兴许可以采用以前的经验来处理,这可以达到减时增效。最后一点,就是职业道路规划问题,在快节奏的工作压力与自身基本生活需求之间的平衡,是否该考虑一下,不仅需要干干工作,还要强身健体,这里就会出现几个矛盾问题需要平衡解决:
一、一辈子就干程序员写代码
二、经常加班,如何照顾好家庭
三、劳动付出与回报的匹配问题
四、高强度的工作与健康生活的平衡。
我觉得有这样想法的人,才属于正常心理健康水平的人,这都是目前一线程序员的普遍现状,个人觉得,一是在适当的物质追求下,科学的付出与回报是成正比的,毋庸置疑,该干活的时候还真的干,二是往往现在大家干的活,都是客户或者公司项目来催促着去按部就班搞开发,缺乏一定的创新性,当重复的劳动导致自我麻痹后,也难免会疲乏,三是科学布局,有一个靠谱的项目经理很有必要,合理协调开发分工也可以提高工作效率,四就是公司文化氛围建设很有必要,人处于一个和谐活泼的环境下,也有利于促进员工工作,从管理者角度出发,可以适当组织部门活动。严肃活泼的环境,加之自身的努力与期望的回报,正常的人应该都会少了些后顾之忧。
社区昵称 1373369873232811 的回答:
首先谢谢博主的这篇文章。身为一个初级Java web程序员,现在正处在二年这个坎上,一直在想怎么华丽的晋级,努力利用空闲时间给自己充电。结果不停的充电🔋,导致自己学的越多越迷茫。我实在很困扰,技术涉及的太多。可能你刚学完它就被淘汰了,你学会了却没机会实践这种情况多不胜举。跟同事也聊过,听的最多的就是多看看底层实现代码,万变不离其宗,这点跟博主的思想很一致。不过博主推荐的数据结构与算法、操作系统、数据库原理、编译原理等这些东西我以前也考虑过,不过可能是因为见识不够吧,一直认为不是必须。这里这些博主重点拎出来讲了一下,差点错过重要的一部分,很感谢博主,个人也希望博主能给我指点一下迷津,让我这个小菜鸟少走点弯路,万谢。
社区昵称 1902870460080042 的回答:
第一阶段:不知道自己不知道,了解点皮毛就认为自己什么都知道,很厉害,表现:过度承诺,满口没问题;
第二阶段:知道自己不知道,原来每个地方做好都需要技术和技巧,表现:虚心学习;
第三阶段:知道自己知道,工作一段时间后随着技能逐渐提高,成了团队中的骨干技术,表现:客观自信,真正自信;
第四阶段:不知道自己知道,随着知识深度和广度的提高,知识自成体系,解决问题有潜意识,这时连自己都不知道自己知道,已经属于架构师了!表现:好学,谦虚。
正真的技术是成熟稳定安全!
社区昵称 keller.zhou 的回答:
当你选择一门编程语言时,你不仅仅选择了语言本身,还有围绕着这门语言产生了各种各样的应用框架。比如你选择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、通信、电子、投行、市场、制造业、零售业。
你选择了某种语言,就可能到该语言应用最多的行业里去。所以,在选择语言时,有必要了解这种语言被应用最多的行业。
社区昵称 mazerain 的回答:
从学网络到前端,从前端到后端(PHP),最后又到前端,感觉自己这些年仿佛过了一个轮回。其实许多程序员一直都在追着这个时代跑,从Flash(编码向的)到后端到架构,从Java到Objective C到Swift。因为产业的方向转变,许许多多的小个体也在随之改变,说到底不是这个语言或这个职业不行了,当我们不够高精尖时,只能如浮萍般漂着...
许多人举到外国人的例子,到五十多还写着代码,并热爱着,我估计中国人很少这样子的,大部分程序员也很少这样子的,一个萝卜一个坑的时代,你不跳出这个坑,只能等到被华为清退的年纪,国为有比你要的少还效率高的年轻人。我想这也是大部分中年程序员的想法,能转产品转产品,能转运营转运营。哪怕你还热爱着这门语言,但他不能给你很好生活的保证。
谁没有个小目标,这也是许多程序员加入创业公司的原因或是自己创业。最近看了周鸿祎谈程序员创业说的也很是中肯,所以我建议还是多术业专攻到面面俱到,最后大家都能华丽转身吧。
网友评论