A. 程序员的工资真的都那么高程序员入职如何防雷防坑
我作为个7年的程序员,结合自身情况给你最真实地回答,程序员的工资确实高,在一线城市程序员的工资会比传统行业普遍高于2-5K左右。
对于程序员入职如何防雷防坑都就需展开来讲一下,我根据您提出的问题总结了以下几点,希望对您有所帮助。
一、工资问题
程序员的工资相比于传统行业来说,确实算高,区别在于起步工资。在2022年,大部分传统行业刚入职时工资普遍在3K-6K左右,而程序员作为技术工种,入职时工资普遍在4K-10K左右,这个也得结合自身的技术水平和面试时的发挥,如果本身技术过硬,面试时又得到了用人部门面试官的青睐,那起步工资直接10K+也是常有的事情。
4、其他常规方面,例如工资发放的时间、是否购买五险一金、是否有年终奖金,项目奖金等,这些也需要综合考量。尽量选择一些中大型公司,这样会比较有保障;如果是想锻炼自己的,也可以去小一点的公司,但前提是面试官是个技术大牛。
希望我的回答能帮助到您,谢谢!
B. 为什么程序员是一个跳槽比较频繁的职业
程序员这个行业存在着这样的现象,有些刚毕业的大学生因为没有见过世面,一不小心被忽悠到那些处在创业阶段的“公司”,拿着实习生的工资干着全办公室的活,而且经常被老板拉过去谈人生理想,刚毕业的程序员都是涉世不深的小男生,那里经得过这些老狐狸的忽悠,一招画饼充饥就在那幻想未来美好生活了,但凡事都得有个度啊,时间久了次数多了,小白也变了,只能跳槽另谋出路。
我觉得跳槽的主要原因有两个,一个是自身原因:因为大多数刚出来实习的程序员大多数对工资方面的要求不是很高,因为他们也知道,自己现在是属于学习阶段,知道自己的价值是多少,所以一般不怎么要求工资,但是一旦工资几个月之后,对整个体系有了较大的了解之后,就要要求有对等的工资,因为在一个技术部里面每个人的工资都是不等的,这样会觉得自己有那价值但是没有那回报,心里也就有些变扭,也就有了跳槽的想法了。还有一个就是当自己有过硬的技术时,一般也会考虑自己出去单干接项目做。
另外一个就是公司体系问题,在国内外包公司之多,所以大多数的程序员也是在外包公司做,而外包公司的规模参差不,大多数也是在剥削压榨程序员,各种坑也是居多,管理层体系混乱,这也是造成程序员跳槽的原因
1.互联网技术风起云涌,变化之快。公司制定的涨薪制度都有着统一的标准,不会因为某个编程语言热门而增大涨薪幅度。但是新进员工的薪资待遇往往是根据市场幅度在变化的。 so,常常听到老员工抱怨,那个新来的谁谁谁,哪哪都不如我,工资却比我高。
2.据不完全统计,互联网行业的创业公司从天使走到D轮概率尚不足2%。大量初创公司的关门倒闭,致使一些程序员“被迫离职”。
3.互联网公司会根据市场的变化做一些战略调整,内部转岗已是家常便饭。比如本人之前所在的项目组,所做的产品是web端的直播平台。后经市场调研,公司打算将重心放到移动端,部分web组的老员工也就转岗到了移动端小组。 我想说的是,如果企业内部的调岗不符合个人的职业规划,那么也是程序员跳槽的一大原因。
不邀自来,本人目前从事嵌入式软件开发,也算是程序员大军中的医院,下面来回答一下这个问题:
按理说,薪水高,工作环境尚可的工作一般都是很稳定才对啊,但是据一份调查发现连Google,Amzon这些大厂的程序员的平均在职周期都只有1~1.5年,可见程序员频繁跳槽不是我国或是某个企业特有的,一线国际名企都如此别说国内小厂了, 那么为什么造成程序员为什么会如此平凡的跳槽,我们来分析一下:
IT产业发展迅猛,市场需求旺盛,程序员有更多选择
虽然我国的计算机行业起步很晚,但这不影响IT产业在我国的迅速发展,发展就需要相关内容的人才,同时我国计算机的培训起步也不是很早,早起的人才主要是理论研究并不都是真正写代码的,供求关系不平衡,导致程序员在就业市场上比较抢手,各行各业一旦某种人才紧缺自然导致有价无市的感觉,所以,各厂想尽办法招聘让程序员,诱惑多了选择自然多了,选择多了跳槽就频繁了,这是见怪不怪。
IT行业存在一种“倒挂”的行业怪象,程序员更愿意跳槽
“ 倒挂 ”是指在某个行业内部,由于行业的特殊性,从业人员的薪酬待遇和业务能力以及技术水平不相关的现象,这种现象尤其在程序员行业存在,一个刚大学毕业的新鸟在待遇薪酬方面可能秒杀一个已经工作四五年的优秀程序员,换谁也受不了,没有工作经验还需要人带的新人工资居然比带他的人高,有些企业宁愿花5000块钱新招一个新人也不愿意多给老程序员多加1k来完成同样的工作,坐等通过技术积累来加码自己的报酬的希望破灭后,那些受到不公正待遇的程序员通过跳槽去涨薪了,在猿圏有句话更能说明这个问题“People who stay in one spot earn less than those who move(经常换工作的人比那些安分守己的人赚的更多)”。
公司没有给程序员提供良好的职业发展规划
虽说职业规划都是自己为自己规划,但是自己的规划能否按计划顺利实施很大程度上取决于公司是否为自己的员工有良好的职业规划,显然,一家没有为程序员薪酬增长和职位升迁做过精细规划的公司,让程序员不在有安全感或是让他们没有期望,换做谁都得跳槽另找下家。
程序员厌倦了代码工厂式的工作,想尝试新鲜的东西
计算机行业是一个日新月异的行业,此外程序员是一类喜欢挑战新技术的特殊人群,很多公司的业务模式单一或是业务稳定了,程序员的工作变成流水线的单调模式,他们早已厌倦了日复一日的代码搬运工的工作,一旦尝试新的技术并且一改往日的单调与无聊,那么它们会在合适的机会换个领域,此外,程序员是青春饭行业,代码工厂式的工作会让他们没有安全感,因为这会让他们失去市场竞争力。
从业人员层次不一,淘汰提高了程序员跳槽的几率
IT的迅猛发展,在巨大市场需求的推动下,编程行业门槛编低,导致从业人员良莠不齐,可能一时的冲动或对自身判断不足而走上程序员之路,很多人发现程序员并不是媒体所报道的光鲜亮丽,工作压力大,无休止的加班都会使一些不适合做程序员的人淘汰出局,这在职场非常常见,尤其是刚毕业的新人,这就外界感觉程序员跳槽更频繁了。
提到跳槽比较频繁的职业,我想除了题目中提到的程序员之外,应该还有餐饮企业的服务员,餐饮企业服务员跳槽基本就是三种情况,一是薪资低,二是工作好找,三是工作时间长。
我们再来看看程序员跳槽,其实也不外乎是这三个原因。
一、薪资低
看了这一条,你可能会说,程序员薪资怎么会低,刚毕业的就能拿到个7、8千块,如果是硕士毕业就拿个1.5万一点儿不奇怪。
这里说的薪资低不是指薪资行情低,而是每个人都觉得自己的薪资低,对于程序员来说薪资水平差异很大,但人们往往并不关注工作本身,或是人的能力而关注的是自己怎么比别人少这么多,但在本公司可能调薪并不是件简单的事,所以只能通过跳槽来实现工资的上涨了。
二、工作好找
程序员现在可以说是一个热门岗位了,从业人员比较多,但是需求量也很大,如果你是个程序员,简历更新之后,估计每天5、6个面试邀约电话都算少的。因为工作好找,所以工资势必也就水涨船高,谁也不怕裸辞,工资要求不高,只涨个20%今天离职,估计3天后就能有新工作。
三、工作时间长
程序员工作时间长是大家有目共睹的,有个说薪资高,工作时间长很正常,但人的欲望总是无止境的,没钱的时候想要钱,有钱的时候想要时间和自由,薪资支撑的满意度最多也就能维持半年,长时间高负荷的工作会让人产生厌倦,这个时候就会觉得自己工资的性价比不好,要么找更高工资的,要么就找没那么累的。
因为现在部分公司涨薪速度比较慢,跟不上市场的价位。
打个比方:
如果你有拼搏精神,愿意在下班后精进技术、学习,
等几个月后技术成熟了再跳槽,可以一下子就翻倍,甚至直达15k。
但是要正确地跳槽:
第一,找一个符合自己期望值的平台,让自己的价值和技术得到最大的发挥。(这里和薪资没有关系,最重要的是适合自己)
第二,不要只为了加薪而跳槽,不断地去一个新地方,自己的职业生涯也在不断地清零,不符合长期的发展。
引起程序员跳槽的原因有很多,但是在所有的岗位中程序员的跳槽频率确实高于其他工作岗位,一般程序员跳槽的原因有这么常见几点:
第一、由于互联网是一个很不错的创业方向,很多人有着不错的创业项目,然后开始组建自己的技术团队,这时候就需要很多的程序员组成产品开发,而由于程序员的工资支出较高,往往在产品还没有进入收益期的时候公司很难支撑下去,或者缺少产品推广资金,这时候程序员就会面临跳槽的可能。
第二、在成熟的互联网企业中,由于项目的开启,而组建新的技术团队,随着产品上线,企业将更多的精力投资在产品的运营上,而对做技术的程序员来说每天的工作都是很清闲,失去了项目研发期的忙碌,让程序员感到无所适从,从而引起跳槽。
第三、就是大家常说的一点,不跳槽怎么加薪。这也是程序员跳槽比较普遍的一个问题了,很多人由于不满现在的薪资待遇,但自己却有了很多的项目经验,所以选择找下家公司,通过以往的项目经验来提现自己的价值,从而达到自己想要的薪水,这也就是程序员找工作的时候,工作年限时间是一个因素,更重要的是一共参与开发了多少项目,并且更具项目的大小代码量是一个较为重要的因素。
第四、就是有些程序员是追随技术的,他们认为在软件开发的外包企业中虽然每天都有繁忙的项目要完成,但是对自己而言却是千篇一律的重复性代码的敲写,甚至是直接使用企业自身比较完善的库或者框架完成程序的开发,觉得对自己的技术提升没有太大的帮助,从而选择跳槽。
第五、接受别人的老项目进行改造,由于原先的程序员并没有留下太多的技术文档进行参考,所以每天都在纠结一句一行的代码,再就是程序开发的很多思维思想并不清晰,这就让程序员很纠结了,所以在与老程序相爱相杀了一两个月后,实在受不了上级的催促以及难以完成代码的整理重构而离职,放弃。
欢迎程序员的你在评论中分享自己的跳槽原因和经历
作为一个在这个行业呆了十几年的老人感觉上程序员这个职业算是跳槽频非常高,据不完全统计程序员流动性不低于百分20,相比别的职业已经算是很高的了,为什么程序员这么容易跳槽,由于程序员这个职业特殊性决定的,是什么推动了程序员这么多跳槽的勇气。
1.就目前中国软件行业的发展,虽然说程序员的数目越来越多,但高手却是急缺,主要还是前期积累不够,再过些年可能会稍微改观些。技术高手的数量在上升但是软件公司的数量以及业务需求的增加更快,所以给人一种很直观的感觉,很多大公司是一直处于缺人状态。
这种状态催生了程序员的跳槽,有更好的待遇,为什么不选择跳槽,这也属于人之常情,有些程序员离职也不是因为呆的多不开心,而是外面的诱惑实在太大,出来混还不是为了多挣点钱,有待遇更好的就走人。
2.程序员这个职业本身来讲属于重度的脑力劳动,说的再夸张点就是吃青春饭,毕竟年龄大了竞争优势在减化这是不争的事实,趁着自己还年轻还能拼的时候,去挣钱多的公司,其实还存在一种大家容易忽略的现象,整天的加班加点很容易造成一种很压抑的心情,换个公司换个环境放松下,可能会人觉得有点矫情,但现实中的确存在很多,或者在薪资相差不大的情况下,换个加班稍微少点的公司,这都是换公司的理由。
3.现在很多招聘网站特别是一些猎头网站滋生了,程序员的不稳定性,把程序员当作商品来运作了,很多猎头只要在网上搜到合适的人,就开始千方百计的运作,真有点经纪人的感觉,这种无形之中增加了程序员的不稳定性,而且也在无形推动了这个行业薪资的上涨,其实很多人值不了那么多钱,但物以稀为贵,现实就是这种状态。
目前市场上讲,程序员的薪资的两极化越来越严重,水平差点的大家都不想要,水平高的大家都跟打了鸡血一样争抢,很多人觉得程序员这个职业已经不行了,主要还是没爬到食物链的顶端,把技术搞得扎扎实实的大把机会等着你。
希望能帮到你。
因为对其他的行业不太了解,所以也没办法对比出来程序员跳槽是不是比较频繁。
我身边的程序员,有在一个单位工作十多年的,有像我一样平均三四年换一家单位的,也有跳槽比较频繁的,平均每年都会换一家单位。
能频繁跳槽,我分析不外乎几点:
岗位多 特别是在北上广深这些IT行业比较发达的城市,程序员真的是不太愁找工作(工作能力不错的前提下),真的可以说,在一家单位做的不爽了,直接在招聘网站上把简历打开(招聘网站上的状态设置成考虑跳槽的状态),就会有不断的有面试电话打进来(当然大多数主动打电话的单位都是外包,哈哈)。
我跳槽的时候,都是主动给心仪的公司投递简历,基本都是可以得到面试机会的,而且通过率也挺高。
大部分IT公司,每年涨薪都不是很多;而跳槽一次的话,至少得涨个30%吧。
我在第一家单位的时候,起薪3K,每年涨500-1000,是不是很可怜。第一次跳槽,工资就从5K涨到了8K。
第二家单位第二年就涨到了12K,但是从此以后,就是每年涨1K的龟速了。第二次跳槽的时候,月薪虽然涨的不是特别多,但是按照年薪计算的话,应该涨了有60%以上了。
当然也有涨薪比较快的单位,我的一个朋友在一个神奇的网站工作,研究生毕业工资一万左右,现在工作有三年了,刚刚涨到了20K。如果你在这种单位,好好珍惜吧。
在外包公司的,想去一个非外包公司,跳槽。
传统行业的,想去互联网公司寻求技术发展的,跳槽。
互联网公司的,想去传统行业养老的,跳槽。
小公司的,想去一个大公司,跳槽。
大公司的,想去初创企业当个技术合伙人,跳槽。
......
欢迎大家在评论中分享自己的跳槽原因和经历,还有说说跳槽涨了多少钱,哈哈。
干得不爽,只好选择辞职。作为一名老程序员,在一家创业公司做了三年多互联网开发,我现在终于解脱了。三年中加了两次薪水。第一次700,第二次770。第二次年头加薪,我要求提高500,老板说董事会规定一次只能加那么多,然后要到6月再满足我。于是到了6月份,我发现并没有提高500,问之,说到7月份加。快到7月份,有一天晚上项目经理要我留下来加班,我饿着肚子一时间也搞不定手上的任务,就擅自回去了。结果,老板知道了就取消加薪计划。5月份以来公司制度越来越严格,首先是安装摄像头全日监控员工行为,其次规定上班时间不准使用手机,除非工作需要;再次,除了查技术资料,浏览各大网页需要申请;制度下来后,公司天天像在牢房里渡过,这样的工作环境,请问大家会喜欢吗,能否继续坚持?我是走了……
为什么程序员是一个跳槽比较频繁的职业?
因为好的程序员确实值钱,连带着不那么好的程序员也相应的值钱了。
其实是现在这个行业导致的,互联网的世界里,就算是一头猪站到了风口上,也能飞的比大师兄还快。
不是你不明白,是我变化快程序员本身是干技术活的,技术迭代比较快,所以一般程序员都有较强的自我学习能力和自我迭代能力,随着时间的延续,本身的能力水平提高了,那么肯定期望与之匹配的待遇,但往往很多公司的迭代速度是很慢的,承担不了程序员这种高薪成长,所以往往满足不了程序员的需求。
那么只能跳槽啦!
老用户与狗不得办理
还有就是,往往软件公司也好,互联网公司也好,很多老板都喜欢招新人给高薪,但是老人年年不涨薪,最后的结果就是老人纷纷离职,这种情况也造成了外界看来程序员频频跳槽的现象,但往往都是情非得已啊。不给涨工资啊。
那么只能跳槽啦!
跳一跳更 健康
老公司的暮气沉沉和新公司的造气蓬勃形成了鲜明的对比,在老公司任劳任怨,每年涨薪不超过10%,但是一跳呢,工资普遍double,这种风气形成并且传播,明眼的程序员肯定待不住了啊。
那么只能跳槽啦!
其实苦的是HR,老板不给力,还让留人,你告我咋留!!!!!
C. HR如何快速判断应聘的程序员是否靠谱
招人这个事情放到如何重要的地位,其实都不为过。前赶集网CEO杨浩涌在一次开放式演讲中说过,CEO要花一半精力去找人。其实在Google、Facebook、Alibaba等一些公司在招聘一个员工的时候,他们是很耗费时间和精力的。一个好的人是值得花非常多的时间。你看重的人,在他身上花精力是非常值得的,他会被打动,他会感知到你确实非常在乎他,士为知己者死,好的人才觉得跟你是有共鸣的,他愿意加入你这个团队。
其实在一些中小公司,可能HR会初步筛选一些简历,然后给面试官进行面试。但其实很多时候,面试官面试的这位应聘者根本不靠谱(注意,我们现在说的是程序员招聘这个方向)。这样一来其实不仅浪费面试官的时间(其实,你知道,一般能够作为面试官的,在公司里面其实是很忙碌的),也是在浪费面试者的时间。所以,我个人觉得,HR在招聘的时候,首先可以通过一些基本的问题来快速判断应聘的程序员是否靠谱,通过HR的初步筛选后,面试官再和应聘者电话或者当面聊一些技术层面、逻辑思维层面以及团队合作层面的问题,这样就大大的增加了招聘的效率。
我个人觉得有两点:
因为程序这个行业变化更新很快,不要说刚入行的程序员,就是工作了十年的老司机,也需要不断的学习,而看书是学习的最直接体现。
HR可以在和应聘者电话沟通的过程中,可以询问他的业余时间都是怎么过的,如果应聘者没有提到读书、看书之类,我觉得多半不靠谱。当然看书并不局限于一些技术方面的书,也可以是一些非技术的书,我觉得爱看书的人,两方面的书都会看的。
我觉得第二点非常重要,首先我想要的是,应聘者简介、清晰、有条理的描述出他最近做完的一个项目或者产品的大的需求是什么,他自身在整个团队里面充当的是什么样的角色,能否描述清楚他自己做的某些功能。
如果HR能够很清晰的理解应聘者所描述的这些问题,我觉得他是靠谱的。
首先,如果作为一个非技术性的HR,能够听懂应聘者的解释,我觉得应聘者沟通、理解能力是完全没有问题。
其次,他能描述出来这个项目或者产品的大的需求是什么,说明他不是在蛮干,也说明他并非只是关注于手头上的事情,他还在关注整个团队在做什么样的事情,这也体现了团队精神。
然后,他能描述出来自己做的某个功能,说明他是真正的去实践过和思考过,思考和实践是作为一个靠谱程序员必备的素质。
总体上,快速判断一个程序员是否靠谱也就是这两点,如果这两点都OK ,没有问题后,我觉得HR再和应聘者约时间,再和面试官聊。
提出一点建议
就是HR先进行一轮电话面,沟通一些基本问题,从中觉察应聘者在表达、沟通、描述以及学习方面的能力。如果还行,可以和应聘者约定一个时间进行技术面,而面试官可以把时间选择在晚上,也就是7-9点钟,这个时候,上了一天的班,可以更好的投入到面试的上面。通过电话面,了解一下技术,以及以前的工作经历,没有问题的话,再约时间当面聊。
这是我能想到的,不喜可以喷......
D. 单独程序员做外包为什么会是坑
对程序员要求全栈。不懂IT的需求方,提出的需求往往涉及范围大,除非极少数精英程序员,一般的程序员没有能力胜任所有需求。
时间。加入做的项目内容多,赶工速度不够快,对于两方都是得不偿失。除非你把外包当主职业。但那无疑是个有点愚蠢的选择。能把外包当主职业的极少数人,也不会去提你所提到的问题~
难以满足后续维护,需求升级的要求。比如要加个移动APp,你又不会做,找前端帮你做APP,你的后台设计可能又要改动之类。
E. 如何辨别一个程序员水平的高低
1.自己介绍项目,看对项目的提炼总结能力(也是抽象能力);
2.自己印象最深的bug,可以知道大概技术深度;
3.设计模式提问,看有没有学习方法;
4.语法基础问题,多线,分布,安全等问题,看知识面广度;
5.智力问题,看反应能力,分析问题思路等
上述五步基本可知是否是一个好程序猿
计科专业从事软件开发十几年了,主要在浏览器内核领域研究的比较多,最近在研究服务器后台方向,辨别程序员水平高低主要看做出了什么产品,如同现在的程序员主要是项目经验,简历上写的一堆项目经验都是面试的时候主要提及的问题。经常在面试中会问两个关键点:一个是做过什么项目;一个是在项目组中承担什么职务,毕竟参与过和做的多少程度是不一样的,这些都是可以通过一些具体的细节检测出来,问题越具体越是容易看出水准,具体的东西不是能够编造出来的。
有很多技术公司直接不通过笔试,仅仅通过简单的面试就确定工资水准了,最简单的测试程序员水平的直接用笔试的方式,笔试可以把一些细节量化,尽量的细节化也是能测试出程序员基本功的,但这种基本用来测试初级程序员的,很多高级的程序员看到有笔试直接就抬腿走人了,因为有些程序员在一个方向做的时间太长了,很多基本功都忘得差不多了,所以笔试可能不过关,现实中很多程序员笔试不过关,面试还可以,也一样可以做项目说的就是这类人,起码这算是非常优秀的程序员。
有很多公司采用谷歌的方式,直接采用上机写代码的方式检验程序员水平,这种方式比较直接,但在现实中可能消耗的时间以及面试官的精力,目前只有极少数的公司用这种方式,国外的公司用这种方式比较多,这种看基本功非常有效。通过代码可以看到编码习惯以及算法的设计上,都能直接看的出来。
普通的程序员直接看项目的经验,高级的直接看做过的产品,特别是产品主要设计人员,这就是程序员内心的自豪感,毕竟作为一个程序员起码要有自己设计开发的产品,也算是不白做一个程序员,在程序员的职业经历中如果能经历过一个产品从开始设计的初稿到最后推向市场,如果是完整的经历,将是一种巨大的财富,只要经历过一次都会对产品设计有一个比较层次的认识,这种能力需要靠直接的面试语言表达来展示出来,谈下对产品的认识以及产品稳定性性能等方面的总结,能到这个层面起码是高级软件工程师的级别。
当然有些程序员内在的东西不是靠语言或者写代码看出来的,因为一个优秀的程序员不仅仅是代码能力以及框架能力,还有几个非常重要的能力
程序员的能力表面是可以直接展示出来,但很多内在需要是需要时间的磨合才能了解,人就才能见人心,而且很多优秀的程序员是培养出来的,能够长时间在一起的队友都是时间长了磨练出来的。
希望能够帮到你。
自认为不是一个好的面试官,因为我认为在这么短的时间内,准确地衡量出来程序员水平的高低是有比较大的难度的,并且我有多次看走眼的时候,面试的时候觉得能力还不错,但是入职工作了一段时间之后,编程能力不忍直视。
工作之后接触一段时间,我会从这么几个方面观察他们,以判断技术能力的高低和发展潜力。
能不能出活儿、能不能debug
能不能把开发任务按时按质量地完成,当然是最主要的衡量标准了:
解决问题的方法
在开发过程中,难免会遇到没有见过的问题,有些程序员遇到问题无从下手,而优秀的程序员,自有一套解决问题的方法。
分析问题、流程设计的思路
有人会认为,程序员的主要工作就是敲代码,上班大部分时候都是在敲代码,其实并不是这样:
总结问题和改进问题的能力
好的程序员,相同的问题不会犯第二次,差的程序员,总会在一个问题上栽跟头:
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
不请自来,一介码农路过,留下些看法。
程序员主要是有四种综合能力,也就是debug 能力、 performance分析、 保护性编程和 投入产出比。
仅仅独立完成日后必然成高手?在这里不能说一棒子打死,至少对于很多人来说,能独立完成是没什么问题的,有的是因为对业务熟悉,有的是真的基础扎实。但怎么说呢,程序员和浏览器打交道是最多的,现在这个互联网时代,遇到的大部分问题网络都是可以解决的,也就是普通程序员 + 网络 = 超级程序员。 但很多人也没明白具体的原理,甚至都是这个项目抄抄那个项目抄抄的,久而久之虽然解决了平时的业务,但进步的空间却很少,甚至止步不前,写出来的代码也可能存在很多坑,所以,仅仅能独立完成任务的话,离高手还有比较远的一段距离。
如何辨别高手程序员?也就是结合我们一开始列举的那四个能力进行判断。不同级别的程序员,在那综合能力面前,强弱也是不同的。例如在奔溃的或者其他性能调优问题上,即使是面对大量复杂的代码,在信息不全的时候也会一步步的分析,抽丝剥茧缩小范围,最终定位根本原因
,并且最终给出一个好的方案。
如何成为高手程序员?
当然还有看他摘了帽子是否秃顶这样的笑话,就再不赘述了。
第一阶段(黄金):会用编程语言实现需求,比如现在的业务系统,都会找一些会搬代码的人来拼工作量,也就是能自己独立基于搭好的框架实现crud常规操作。
第二阶段(铂金):除了crud,还会有一些自己踩过坑的经验,知道如何处理一些常见问题,或者可以基于搜索引擎快速解决一些异常情况。
第三阶段(钻石):能解决一些疑难杂症和会通过debug部分源码类库查看到这些疑难杂症是如何引发的,并通过编码解决这些问题,还能进行一些局部的性能优化,类似某个系统接口缓慢可以单独去优化。
第四阶段(星耀):会基于整个系统进行设计和规划,根据业务特性选择合适的框架,从源头控制开发遇到问题的频率,可以自主的搭建框架并完善机制,了解各个组件工作原理。
第五阶段(王者):小说里面总是说练武功的永远比不过创造武功的,同样的道理,用框架的也往往不如写框架的,所以写框架的这类人单独分层。
第六阶段(荣耀):其实这个阶段不应该列入进来,因为这类人往往不编码的,只是给出思想;像Hadoop这种框架就是基于人家发表的一些论文(bigdata)进行编码实现的,这类人注重的是思想和算法,区块链,大数据,云计算等等概念的创造和理论的支撑是这类人提出来的,这些人才是真正影响行业走向的人。
程序员的水平高低,不是靠语言或外在表现就能看出来的,不是看他会多少技术、参加过多少项目、写了多少博客,而是看他在实际业务场景中解决问题的能力,尤其是面对一些特别复杂的问题,或在高强度、高压工作状态下解决问题的能力与态度。
技术可以通过学习掌握,但是解决问题、定位问题的能力却不是一蹴而就。大家可能会说,“解决问题的能力”这个太宽泛了吧,可以更具象化吗,有具体的测量方法吗?简单整理了以下几点供参考。
会写出满足需求的代码,早就不是评判程序员水平的标准了。代码编写既要满足业务需求,同时还要考虑后续的软件维护,说得通俗些,既要自己爽,也要别人爽。一个优秀的程序员,会致力于写出更简单、更效率、可读性强、扩展性强的程序代码。
程序员在日常工作中,需要理解各式各样的业务需求,所以这就需要程序员具备一定的逻辑思维能力。可以说,逻辑思维是程序员的灵魂,因为每一行代码都是程序员逻辑的体现。
项目着急上线,发布时出现问题?
业务高峰时段,系统宕机了?
业务催、运营催、用户催、老板催!
各种形态的bug,各种着急的心情,背后无数支眼睛盯得内心慌慌......
这些都是一位合格程序员所需要面对的日常。不同的程序员,在解决问题的方法、效率、质量等方面,都各有千秋。一个经验丰富的程序员,能够扛住各方压力,在复杂条件下找到核心问题,通过抽丝剥茧的分析来找到产生问题的原因,并快速进行应对处理,事后及时复盘总结,减少同类问题出现的概率。
随之互联网的发展,越来越多的人涌入程序员这个赛道,竞争日益激烈,加之新技术层出不穷,更新迭代快,程序员所使用的语言、框架、模式都会发生天翻地覆的变化。如果不主动学习,你很快就会被落伍淘汰。
这种其实在面试过程中能体现出来,沟通主要是技术沟通,以及和客户之间的沟通,所有技术都不是闭门造车就能搞定的,沟通能让事情推进起来更加顺畅,包括和产品经理之间的流畅的沟通也显得非常重要。程序员的能力表面是可以直接展示出来,但很多内在需要是需要时间的磨合才能了解,人就才能见人心,而且很多优秀的程序员是培养出来的,能够长时间在一起的队友都是时间长了磨练出来的。
线上出bug了,第一时间响应、处理;
团队项目进度紧张、人手紧缺,主动补位;
又或者,在项目推进过程中如果只是关心自己模块内容,对于整个项目置之不理,只守着自己的一亩三分地。
随着时间轴的拉长,你会发现,有此f技术能力不是最好的,甚至不如你的小伙伴,最后做到了技术主管或经理、甚至更高职位,这里面除了技术实力,还有一个叫“责任心”的东西。
结束语
判断一个程序员的水平高低,核心是其解决问题的能力,而解决问题的能力养成,需要扎实的底层基础来支撑,要综合其代码质量、项目经验、框架能力、逻辑思维等等多方面,不能单看某一方面。
而对于1-6岁的程序员来说,想要成为一个高级程序员,变得越来越优秀,唯有持之以恒去学习、积累、实践、修炼。
----end----
一:50岁的时候,头发还是黑色的浓密的。
二:赚到的钱能保证家人快乐的生活。
三:当公司不要你的时候能成功转型。
其他的例如编程经验、写代码厉害啊什么的根本不值一提。
这就是程序员的面试嘛 :-)
(1)是否能熟练使用所用编程语言的主要功能;
(2)是否知道用合适的数据结构解决问题;
(3)是否知道基本的算法,并且用这些算法解决问题;
(4)只看少量代码的话,从变量命名和程序结构一般能够判断是否是新手;
(5)给出具体问题,能够用程序解决,能考虑到所有的边界条件;
(6)考虑程序的可扩展性,可维护性;
再往高一点走,就需要
(7)面对模糊的问题能够分析并且找到细节和具体的需求;
(8)知道利用已有的库,架构和工具等来解决新的问题,而不是什么都自己实现;
(9)能发现并改进已有程序中的瓶颈;
(10)对整个大项目的程序架构有很清晰的了解,知道相互之间的依赖,以及知道为什么采用这样就架构;
(11)给一个大的项目,能够对整个项目的程序架构和组件进行合理的设计,考虑并行性,低延迟,大数据量等各种需求和应对方式。
带领团队已多年,项目数十个,对判别程序员水平的高低,我有自己的看法,欢迎大家一起交流。
1.代码质量。
优质的代码,首先是经得起考验。静态分析工具过一遍,无错误,无警告。当然警告部分需要人工重审,因为静态分析工具不一定完全正确。过了这一关,重要的还须过测试关,少Bug或无Bug的代码,才是好代码。优质的代码带有技术气质和艺术气质。阅读起来,有一种赏心悦目的快感,即工整美观,干净利落,又蕴含着理论常识,运用技巧,精准到位。
2.表达能力。
3.文档能力。
文档形式包括但不限于PPT,文字,图表,音视频。文档内容包括但不限于API说明,工具手册,项目事项,技术论述,陷阱总结,方案展示,指导手册。文档要求必须是满足公司或部门的规范和格式,否则五花八门的,不利于交流和传承。
以上3点,是我量化判断程序员水平的标准,仅供参考。相比水平,其实我更看重程序员的态度,执行力,时间观念,自学力等等,也是很重要的团队作战能力,也可以说是程序员水平的考量吧。
谢谢大家。