新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 程序开发 > 程序员

程序员=青春饭”?不,程序员是一个具备长久生命力的职业

时间:2019-06-14 14:15:57  来源:  作者:

“程序员=青春饭”?不,程序员是一个具备长久生命力的职业

我大学刚毕业的时候,程序员还是一个年轻的职业,那个年代,我们都没见过35岁以上的程序员。很多人告诉我,程序员是吃青春饭的,你在国内见过35岁的程序员吗?我说,没有。

就是嘛,所以要尽早转行呀......

这种话听得着实不少,事实上也真的有很多程序员早早转行了,我没转不是因为内心强大,而是我喜欢编程,尽管我也不小了,以后会怎样,35岁听起来像光年一样的距离,谁会考虑那么遥远的事情。所以我什么都没想就继续编程了。

看看周围的朋友,他们要么在某个技术领域成为行家里手,要么在做产品的同时演讲布道,有的设计出了很多人使用的软件,有的则成为了一个纯粹的管理者,经营着上千人的机构。这些人从前是程序员,现在也是。

程序员是这个时代最好的职业之一,是不是最好,不敢确认,毕竟我没离开过互联网行业。不过程序员喜欢自嘲倒是真的,甚至以互黑作为生活的乐趣,有时我们也会被别人黑到喜马拉雅山的高度,但不可否认的是,大部分程序员都是在空调房里敲敲键盘就有可能冷不丁改变了世界,并且,大部分时候,我们都让这个世界变得好了一点点。与很多职业相比,程序员的投入产出比都算高的,稍有智力门槛,也没比其他行业高多少。而这个时代,给了程序员们大展宏图的机会,给我们足够的自由度去创造我们想要的东西。

至于传说中的「程序员职业病」,其实和程序员这个职业并没有多大关系,伏案工作的人群大抵如此。越来越多的互联网公司为员工提供了各种福利,免费的健身房,舒适的桌椅,香浓的咖啡,甚至一些娱乐设施。自己不运动,其实很难怪到这个职业头上。另外,程序员的工作也「并没有想象的那么辛苦」,有太多的行业比我们辛苦的多,所以,遇到头脑清楚逻辑清晰又喜爱计算机并且没有意向进入其他领域的年轻人,我总是对他们说,来做个程序员吧,这是个能让你的生活变得精彩的职业。

程序员不一定要写一辈子程序

以前人们总是说年龄大了就不要写代码了,或者说写不动代码了。现在多少有点矫枉过正,比如CTO怎么能不写代码呢,写代码可是一辈子的事呀。在我看来,这个问题根本没什么可以争论的,一个阶段一种做法。如果你写代码是最有价值的,就去写代码。如果你做产品是最有价值的,就去做产品。如果你去管理公司是最有价值的,就去管理公司。

前一阵子看过一篇文章「扎克伯格开发笔记:打造Jarvis的日子」,扎克伯格在文章里写到:

2016年我给自己制定了一个挑战:打造一个像钢铁侠里Jarvis那样的家庭AI助手。

在这一里里,我打造了一个可以通过手机和电脑进行对话的AI系统。它能够控制我家里的灯光,温度,电器,音乐和安防系统,而且这个AI还能了解我的品味和习惯,可以学习新的词汇和概念,甚至可以逗我的女儿Max开心.Jarvis是由Pythonphp和Objective-C编写的,运用了包括自然语言处理,语音识别,面部识别以及强化学习在内的人工智能技术。

扎克伯格是为了编程而编程么,显然不是。除了保持技术的敏感度,他主要是为了了解人工智能发展的现状。通过挑战熟悉Facebook的工程师们使用的内部技术,同时了解智能家居。而且,这些工作仅仅占用了他很少一部分时间。

实际情况也是这样,与我一起成长起来的80后程序员,差不多有超过一半,他们的工作重心已经不再是编码,而是其他工作事务,另外一半则依然以编程为主要任务。这两种状态,都是很好的存在。

程序员职业生涯的关键点是哪些?

以我并不丰富的程序员阅历来看,入行三到五年的经历对程序员以后的职业生涯有非常重要的作用。互联网时代学习环境开放,资料浩如烟海,很多大学生在走出学校大门的时候,很可能在某项专业技能上已经达到了很高的水准,但是这三到五年的探索,依然是不可或缺的。

很多人喜欢制定学习计划,但这些计划大都无法执行下去。不是计划出了问题,而是人学习和提升的方式很难按部就班,很多时候我们都是在摸索前行。就像你今天按计划要耕完一亩田,作业进行到一半的时候,你发现一块土质的异常,于是深挖下去,用镰刀割去杂草,用铁锹铲除泥土,用钻头钻出深洞,最后发现了一口油井。如果你按照计划耕完这一亩田,可能永远发现不了那口井。

我相信每个人身体里都有某种特质,这种特质让你在某个领域取得成就的可能性远远大于其他,这种特质也能让你异于他人。但是,人们并不是生来就知道自己擅长干什么的,需要花时间去寻找,找到它,然后去做自己最擅长的事情,这对你漫长的职业生涯是一笔巨大的财富。

需要五年这么久的时间吗?依我个人的经历,恐怕更长也说不定。无论程序员也好,软件工程师也罢,叫着简单,领域知识却是浩如烟海。进入现代互联网阶段,程序员的领域细分到了令人发指的程度,比如XX语言工程师,前端工程师,后端工程师,架构师,大数据工程师,安全工程师,运维工程师,移动开发工程师,DBA等等,叫法繁复,甚至职能重叠,这些角色最初都叫做程序员,最终他们像一棵大树,枝条粗壮,蜿蜒生长,然后在树冠分开,并结出了各种各样的果实。同时,每个细分的领域又会衍生出浩瀚的领域知识。

比如编程语言,常用的编程语言就有几十种,静态语言,动态语言,脚本语言,函数式编程,面向对象编程,过程式编程等等,从平台角度,JAVA VM上有Java,Scala,Groovy ,Clojure,Jython,Ceylon等,。Net平台上有C#,J#,F#,VB.Net,VC#,ASP.Net,移动平台有IOSAndroidwindows Phone ......

即便我们把目光聚焦在一门语言或技术上,Java,你也不可能仅仅掌握它的语法特性和函数库,然后写写业务表单和增加改查就完了.Java的虚拟机,性能,并发编程,Jit技术,垃圾收集,集群,分布式,异常,日志服务,还有大量的Java平台开源项目,都需要深入了解。除此之外,一些数据结构和算法也是程序员们应该掌握的内容,比如栈,队列,链表,二叉树,红黑树,B树,散列表,排序算法,查找算法,最小路径,最小生成树等等......

这么看来,五年的时间并不长是不是?

当然,还有一种可能,你花费了五年的时间,发现自己并不适合做程序员,虽然这听起来有点悲哀,但也不失为一件好事,因为你还有时间转型啊。程序员几乎可以转型为其他任何角色,反过来却很难。我们听说过很多优秀的产品经理,创业者,管理者最初都是程序员,却很少听说哪个顶尖的程序员是从产品经理转过来的,有吗?反正我不知道。

程序员如何做出好产品?

在很多人眼中,产品经理做需求,程序员做实现,似乎是一对冤家对头,比如最新的段子是这样的:产品经理失踪了,程序员第一时间到警察局报警警察对程序员说:你先冷静一下,你这样一直笑没办法做笔录。

其实根本不是这样,一个好的产品,一定是程序员和产品经理一起努力协作的结果,甚至,很多技术人员本身就是这个产品的产品经理,有的即负责技术又设计产品,有的干脆是从程序员转成了产品经理。

张小龙在刚并入腾讯的时候负责QQ邮箱,那时候他觉得自己应该做一个管理者,产品的事情让团队的人去做就行了。“说老实话,我个人没有太关注它的体验,几乎很少参与到产品的设计中,结果出了大问题」。之后张小龙彻底改变风格,重回一线。「从极简版开始,我真正投入去做一些我自己掌握的产品体验,我怎么说就怎么做,任何一个元素要改都必须得到我的同意才行,我会全程参与到这个产品的每一个功能体验中」。最后始有微信

据说张小龙是那个时代南方最好的程序员。

马化腾对技术和产品的重视程度也由来已久,他在2008年的公开演讲中就说:产品和服务是需要大量技术背景支持的,我们希望的产品经理是非常资深的,最好是由做过前端,后端开发的技术研发人员晋升而来。好的产品应该交到一个有技术能力,有经验的人员手上,这样会让大家更加放心。如果产品经理不合格,让很多兄弟陪着干,结果发现方向错误,这是非常浪费和挫伤团队士气的。

如果你是个程序员,如果你热爱你的正在研发的产品,一定要参与到产品的方方面面中来,彻底了解产品的逻辑,体验,交互和用户心理,每一次版本发布后去观察用户的反馈,收集产品数据,与产品经理反复探讨和确认每一个细节。

事实上,无论产品经理和设计师做到何等的事无巨细,最终软件是由程序员写出来的,这个产品必定天然携带了这些程序员的特质和元素,如果程序员在每一行代码中倾注了自己的情感,这个产品就是个有情感会呼吸的产品。如果程序员只是实现产品的工具,那做出来的东西也是没有生气的,苍白的。

只有程序员和产品经理同时全情投入,才有可能做出最好的产品。

专业性很重要,但也别太「专」了

程序员一看就是个很专业的工种,但是正如前面所述,这个领域的技术用浩如烟海来形容豪不为过,我们穷尽一生也无法掌握其万分之一。人们常说先做专才,再做通才,也就是所谓的T字型人才,既有某个领域的专业知识,同时知识技能广泛,为人处世,大开大合。古代开国皇帝大抵都是这种,雄才大略又武艺高强,上马砍人,下马治国,一通百通。

所以程序员必须首先具备专业技能,才能在这个残酷的领域里存活下来,不要没干两年就想着去管理,抛弃专业知识。翻一翻互联网招聘职位列表就知道了,一百条里面99条是各种各样的工程师,好容易有一条是管理性质的,一看是总经理,您能胜任吗?

所以,专业技能是需要优先考虑的,等你真正成了技术大拿,自然知道怎么去扩展横向知识。

但是你也别太专了,以至于成了偏门技术。我有个朋友一直在国外生活,他的技术栈就是大型机 - MainFrame,每天和JCL(Job Control Language),COBOL等技术打交道,工作机会不多,但这个专业的人员更少。找工作倒是不难,但是看不到上升的空间,每次换工作都得换城市,为了一个更好的职位,甚至需要从美国辗转到日本,每次被折腾的死去活来,换方向代价有太大,薪水还会降很多,进退维谷。

选技术方向,不要让自己处于这种境地。

程序员的跳槽?

跳槽也是一种选择,关键是要找到自己的价值。谈到价值,大家就会想到财富,毕竟每次跳槽大家都希望能挣到更多的钱。凭借工资能够完成足够的财富积累吗?不一定。

财富积累应该是阶段性的,而不是线性的。比如你在很长的阶段里,薪水一直徘徊在两万左右,突然有一天,到了一个不可预知的拐点,月入十万了(注意不是月薪),又或者,股权兑现了,又或者,家里拆迁了,等等。总之,财富的积累不是一点点涨上去的,你可能在很短时间内积累的财富远远超过之前积累的总和,或者说,财富积累也符合二八原则。当然,你也可以等着薪水一点点的涨上去,那样的话,就是说,嗯,基本上最终你也不会有什么财富。

无论通过哪种方式,跟随公司上市也好,自己能力大幅提升年薪百万也好,投资也好,创业也好,总之要找到或者碰到这个拐点,坚持,勤奋,坚定,都是不可或缺的因素,当然,运气有时候更为重要一些。无论如何,最重要的是你得一直往前走。

跳槽是往前走的方式之一,跳的过程中,也可能遇到拐点。举个例子,前阿里的王勇睿老师,2010年面试外企失败(原因未知),退而求其次进了阿里巴巴,结果四年后阿里咔就上市了,王老师富废,结果还是闲不住,又去创业了。举个反面的例子,杭州二爷邱岳,2008年加入阿里,干得风生水起, 2012年不知道什么原因就从阿里巴巴跳槽了,2016年不知道什么原因就失业了......

之所以举了两个好朋友的例子,意思就是,跳槽的变数也挺大的,有时候做了有价值的事,获得了应得的财富,有时候则只取其一,或者两手空空。

每个上过班的人都知道,在同一个公司加薪实在是太慢了。为什么会这样?因为你入职的那一天,公司人力部门是以当时的市场价值评估确定你的薪酬的,随后的日子里,如果公司正常发展,加薪升职都要遵循公司的内部通道和规则,如果这个规则赶不上市场薪酬的涨幅(就像最近几年),那你干了三年,薪水还不如同等水平的新员工就是很正常的情况了。

知道了这个真相后怎么办?去判断短期利益和长期利益。无论个人财富还是知识积累,从长远来看,能够让你获得自由的,都是指数级别的增长,也就是那个拐点,而不是你的工资。一个人一辈子挣到手的工资其实是可以一眼看穿的。而可以看穿未来的事情,往往比较无聊。

所以决定离开一个公司或加入一个新公司,问自己几个问题就好了:????公司是不是在成长你自己能不能获得成长公司的成长和自己有没有关系干的开不开心如果这几个问题都是肯定的回答,那么就该留下共同成长。反之就该离开。如果2:2呢?这就需要你去判断了。

程序员如何实现个人价值?还是得踏踏实实的写好每一行代码,做好每一个产品,然后等待时间的力量,万一是大器晚红呢?
 



Tags:程序员   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
0.新建操作:mkdir abc #新建一个文件夹touch abc.sh #新建一个文件1.查看操作查看目录:ll #显示目录文件详细信息du -h 文件/目录 #查看大小pwd #显示路径查看文件内容:cat|hea...【详细内容】
2019-11-27   程序员  点击:(0)  评论:(0)  加入收藏
来源公众号Java爱好者社区 ,作者东升的思考本文导读: 物流仓库配送如何加速 静态资源文件部署方式 静态资源加速之CDN技术 解析过程中的名词解释 最后的总结1、物流仓库配送如...【详细内容】
2019-11-18   程序员  点击:(7)  评论:(0)  加入收藏
图的最短路径算法Floyd最短路算法(多源最短路)参考:https://www.cnblogs.com/ahalei/p/3622328.html 在这里插入图片描述上图中有4个城市8条公路,公路上的数字表示这条公路的长...【详细内容】
2019-11-07   程序员  点击:(7)  评论:(0)  加入收藏
两种实现方式分别是基于Ehcache和Redis的session管理策略。大家都知道服务器资源有限的,但是客户端来的请求是无限的(不排除恶意攻击), 为了保证大部分的请求能够正常响应,不...【详细内容】
2019-11-07   程序员  点击:(14)  评论:(0)  加入收藏
1. 宁可多算一周,不可少估一天。过于“乐观”容易让boss受惊吓。2. 最有用的语言是English。其次的可能是Python。3. 百闻不如一见。画出结果,一目了然。调试耗时将大大缩短。...【详细内容】
2019-10-31   程序员  点击:(8)  评论:(0)  加入收藏
当你遇到某个难题的时候,我猜你只知道baidu一下,可是你每次都能够快速并且精准的得到你想要的资源和资讯吗?为了提高大家的信息检索能力,在接下来的文章当中我会给大家介绍几款...【详细内容】
2019-10-31   程序员  点击:(12)  评论:(0)  加入收藏
现代人最大的缺点,是对自己的职业缺乏爱心。——罗丹 不管是媒体人还是职场人,都在为35岁以上人员制造焦虑,认为35岁以上职场人都没有生存的空间了。真实的职场到底...【详细内容】
2019-08-17   程序员  点击:(12)  评论:(0)  加入收藏
小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序。现在,让我们看看这些性能指标,并了解如何查看并收集它们: 1.响应时间和吞吐量根据应用程序的响应时间...【详细内容】
2019-10-31   程序员  点击:(17)  评论:(0)  加入收藏
本篇文章主要介绍SqlServer使用时的注意事项。虽然现在开发中普通使用各种Orm框架,总结操作sql的机会越来越少,但是想成为一个高级程序员,数据库的使用是必须要会的。而数据库...【详细内容】
2019-10-31   程序员  点击:(17)  评论:(0)  加入收藏
一、前言”前后端分离“已经成为互联网项目开发的业界标杆,通过Tomcat+Ngnix(也可以中间有个Node.js),有效地进行解耦。并且前后端分离会为以后的大型分布式架构、弹性计算架...【详细内容】
2019-10-29   程序员  点击:(13)  评论:(0)  加入收藏
作者:黄轶来源:juejin.im/post/5d3a6d9e51882570d50f5566 程序员的标准与要求 初级程序员 中级程序员(阿里 p5) 高级程序员(阿里 p6) 程序员的进化之路 初级 -> 中级 中级 -> 高...【详细内容】
2019-10-28   程序员  点击:(7)  评论:(0)  加入收藏
1.Accept属于请求头, Content-Type属于实体头。Http报头分为通用报头,请求报头,响应报头和实体报头。请求方的http报头结构:通用报头|请求报头|实体报头响应方的http报头结构:通...【详细内容】
2019-10-23   程序员  点击:(11)  评论:(0)  加入收藏
小编今天为大家整理了9款程序员工具网站,每一款都不常被人知晓,建议大家收藏一份! 一、regex101官方网站:regex101.com强大的正则表达式工具,你可以实时查看匹配信息,并且会用不同...【详细内容】
2019-10-22   程序员  点击:(22)  评论:(0)  加入收藏
大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不...【详细内容】
2019-10-22   程序员  点击:(10)  评论:(0)  加入收藏
来自一个粉丝的来信,说他本来国庆期间好好规划了好好学习人工智能的一些算法,以此来应对即将到来的面试,可是时机情况下,到了放假的时候,自己要么一整天赖床、煲剧、打机,无所事事...【详细内容】
2019-10-15   程序员  点击:(13)  评论:(0)  加入收藏
我个人对陷阱的定义是这样的:代码看起来可以工作,但不是以你“想当然“”的方式。如果一段代码直接出错,抛出了异常,我不认为这是陷阱。比如,Python程序员应该都遇到过的“Unbo...【详细内容】
2019-10-15   程序员  点击:(13)  评论:(0)  加入收藏
图片来源:Unsplash/摄影NESA by Makers 软件工程师的技能发展都会经历一个自然的过程——经验从无到有,最后变成老手。而一旦到了经验丰富的阶段,他们对代码就不那...【详细内容】
2019-10-14   程序员  点击:(8)  评论:(0)  加入收藏
1. Linux Virtual Server项目针对高可伸缩、高可用网络服务的需求,我们给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器...【详细内容】
2019-10-10   程序员  点击:(8)  评论:(0)  加入收藏
初始化一个类,生成一个实例的时候;newInstance() 和 new 有什么区别?用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会有两种创建...【详细内容】
2019-10-10   程序员  点击:(13)  评论:(0)  加入收藏
这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 O 复杂度。参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便在面试时不会被问住。最近...【详细内容】
2019-10-08   程序员  点击:(9)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条