程序员是从事程序开发、维护的专业人员。其工作很多,有erp、协同管理、数据报表、门户网站、论坛社区、桌面软件等等,可能还要负责需求设计,概要设计,数据库设计等方面的设计。
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
软考程序员考试属于计算机软件水平考试(简称软考)中的一个初级计算机职称考试。对于软考程序员考试并无学历及资历条件限制,更无论年龄、专业与资历。一年可报考软考程序员考试两次,但一次考试只能报考一种资格,因此报考了程序员考试则无法再报考软考其他级别或科目的考试。同时软考程序员考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试方式。
程序员考试属于全国计算机技术与软件专业技术资格考试,简称计算机软件资格考试中的一个初级考试。考试不设学历与资历条件,也不论年龄和专业,考生可根据自己的技术水平选择合适的级别合适的资格,但一次考试只能报考一种资格。考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试办法。
心态差距
近年来由于互联网的迅速发展,全国各地,IT人才的需求量都出现了飞跃式的增长,程序员的薪资也明显高于其他行业。
但在国内,真正因为热爱编程而从事这份工作的人其实并不多,很多人学习程序想得都是这个行业火,赚钱快,入行门槛低。什么技术火就学什么,然后进入一个大公司,做几个成功的项目,积累工作经验,几年以后自己当个小管理,拿着十几万,或几十万的工资,再无追求的过着小日子就好。
甚至到了30岁,如果没能进入管理层,大多数人都会考虑转行,或仅靠自身的知识累积开始创业。
美国程序员大多数都是因为热爱编程行业而从事这份工作的,他们会专注某一个领域几十年。50岁以上的程序员还会安心待在同一个岗位写代码,专研技术。他们想法很简单,对于编程这种事情更多的是那种单纯似的热爱。
影响因素:国外的程序员,专心写程序并专研,他的级别和工资就会年年往上涨,和做管理的人员没太大区别。国内的程序员这方面就杯具了,写程序的工资基本低于管理者,迫于现实的生活压力,不得不往赚钱更多的方向走。
沟通能力
和美国程序员交流的时候,你能从他的切入点和具体思路很清晰的理解他的问题,在阐述问题的时候背景信息也给得相当全面,所以理解他们的问题比较简单容易。
中国程序员阐述问题时逻辑思维不清晰,背景知识没给全,讲了很多,但大家都get不到他要表达的重点,有些人一味的自顾自说,完全不去思考和理解别人给他提的建议。
影响因素:编程所用的英语,比较是美国人的母语;另外就是思维方式的不同。
解决问题能力
如果给我们中国程序员,规定好的方案,他们普遍完成的非常好。但如果没有具体方案,完全是一个开放性课题,很多时候程序员会完全无法下手。
美国程序员这方面能力比较好,他们的探索研究能力非常强,经过一定时间的研究后,能提出一套非常具体有效的方案然后一步一步去解决问题。
在一定程度上,这种差距就如同现今机器学习和真正智能的差距。机器学习可以解决很多特定领域的问题,模型可以优化得越来越好,但优化的尽头也不是真正的智能。
影响因素:两国教育方式的不同,一个善于解决问题,另一个善于发现探索问题。
技术实力
工作初期两国程序员差距不大,5年是个分水岭,这之后开始出现变化了,在中国多数人工作个5-6年就开始琢磨转管理。虽然这5-6年我们代码上的时间,积累的经验可以说很多时候是高于美国程序员的。但在某一项技术上我们有多少人专研超过10年,所以在国内出现了程序员吃青春饭这种理论。
而美国程序员10年以上经验的人有的是。例如,一个工作经验是30年,从dos时代就开发debugger一直干到现在,一个24年工作经验外加5年的博士研究经验,还有两个从毕业到现在一直从事CLR diagnostic api的开发到现在基本都干了十几年了。
在国内真的很难想象有这种团队。记得stackover上统计过,程序员的黄金年龄应该在40岁左右,但我们国内40岁的时候有几个还愿意写程序呢。cocoachina上,一篇写了40年程序的人发表的文章,竟久居排行榜前列不下!
职业诉求
中国的程序员更需要关注物质回报,因为我们的文化强调尽早买房买车。欧美人在这方面要轻松自由得多,有大把的时间去尝试创造,但其实大部分人是不创造的,只是概率比中国大而已。
中国人妄自菲薄没有“创新”能力,是没有意识到自己到了创造力高峰的时候却被现实牵绊,我们用自己的青春和人家的大半生去比较,当然妄自菲薄了,人家可以投入的时间就比你多得多。中国程序员职业黄金时期所要面对的干扰非常大,首先是要让自己融入英语的技术圈子,其次是要应付一个不争气没追求强加个人的世俗文化。
当然小编并不是在长他人志气,灭本国威风,只是想小小提醒作为程序员的你,一定不要以学编程、拿高薪作为自己唯一的人生目标。就好像创业路上的你,无论在什么时候,我们都要不断提升自己的专业度和竞争力,永远保持一颗热爱自己事业的工匠之心,坚定的走下去。互联网行业千变万化,要不断的学习,更新知识系统,才能永远不被这个社会所淘汰。
根据中国人口普查数据,截至2019年底,中国大陆地区有超过10万名叫周金生的人。根据《中国人口普查资料分析》,周金生在中国全国排名第83,在全国排名第一的是张伟,其次是王伟,以此类推。
从统计数据来看,周金生是一个非常普遍的中国名字,在中国的某些地区,周金生的人口数量甚至超过了万人。据《中国人口普查资料分析》,中国江苏省是周金生最多的省份,其次是广东省。
总的来说,中国有超过10万名叫周金生的人,在中国的某些地区,周金生的人口数量甚至超过万人。这样的数据表明,周金生是一个非常普遍的中国名字,受到中国人民的欢迎。
ACM世界冠军陆靖,现就职阿里云,为人十分低调,公司内号称“人肉逻辑机”,他做事不轻易动手,深思熟虑后开干,一气呵成,鲜有编译错误。遇到搞不定的代码找他时,他就看代码,不调试,一遍一遍看代码,然后指出某行代码有错误。我们都觉得他看代码的时候大脑其实就是多核CPU,在一次又一次的运行代码。某次代码遇到bug,良久无策和另外一个同事打电话问他,他在电话里说你们检查下某个cpp文件的780行左右,是否参数传递有问题,一查果不其然,问他是否在电脑边,他说不在,在肯德基吃饭,众人大惊之下去git blame,发现这代码他8个月前提交过。特别聪明的本身少见,特别聪明而且记忆力超强的更是凤毛麟角。他有一个爱好是看日本动画片,为此自学日语,最后能和日本人正常沟通,参与字幕组做翻译。他是我见过的最纯粹自由的人,对钱,对名誉毫无兴趣,对别人怎么看他也不在乎,只对挑战性的问题有浓厚的兴趣和异于常人的专注。机器学习领域的顶尖:caffe作者贾扬清,xgboost作者,mxnet主要贡献者之一陈天奇。像老赵说的,感觉到总有一天R大会让全世界的程序员知道这个名字。田春冰河:号称中国Lisp第一人,研究的范畴从梵文,意大利语到common Lisp,毽球,计算机基础理论,摄影,羽毛球,利用长柄伞进行街头搏击等,配合冷峻的面容,潇洒的长衣,人称伞哥。目前正定居意大利从事计算机理论开拓以及梵文研究工作。
程序员首先是雇员、然后是工程师;比起创造力,工程能力对这个职位更为重要
为什么有人在技术造神
大家应该已经感受到,技术圈这两年已经和娱乐圈创业圈差不多的氛围了,这其实是有原因的。
最主要的原因是,创业公司和创业媒体越来越多,他们需要大量的程序员投身到创业这个高风险的行业中,而造神,正是让程序员们自动跳进火坑的绝佳办法。不是说程序员不能创业,我是说,创业媒体们故意模糊了创造和创业的界限,把程序员们的创造冲动偷换概念,鼓吹了太多不适合的人去创业。
另一个原因是,招聘成本高涨,CTO 们为了能提升影响力,不得不频频出席各种大会刷脸。文笔好的再做做自媒体和技术社群,既能强化个人品牌提高身价,又能在融资的时候提升成功率。
总之,这个行业出现了各种技术大神。
这些大神在普通人类和初级程序员眼里是无所不能的,是他们向往的目标;在中级程序员和高级程序员眼里,这些大神就是他自己,只不过他还没红起来而已…
于是攀比心理也开始泛滥,全国第三的架构师比比皆是,整个圈子渐渐就浮躁起来。
然而绝大部分程序员,依然是雇员
媒体们在包装时,最喜欢按独立开发者的路线来整。「从小就对技术有天分」、「大学时曾在某编程大赛一鸣惊人」、「写了个 APP 玩结果一个月有了千万用户」、「从公司离职自立门户三年上市」。
OK,这的确是程序员的一条职业路线图。但是媒体们不愿意告诉你的是,一:只有极少数程序员是通过这个路线成功的;二:这条线其实需要太多非程序员职位的技能,比如产品设计能力和销售能力。
程序员的四大职业象限
这件事造成了两个结果,一是冲动点的程序员跑去创业了,二是不那么冲动的程序员天天觉得自己能创业,能干大事,在现在公司屈才了。于是就有了这样的画面:雇员们天天抱怨雇主不能提供给他们高管或者独立开发者级别的待遇。
如果不是你自己开的公司,那么雇员同学,你的价值是由你对公司的贡献来决定的。
程序员的价值决定
绝大部分互联网公司的程序员职位,没有技术门槛
然而不幸的是,绝大部分互联网公司都不是技术驱动的公司。真的就是鸟哥说的那样,绝大部分技术岗位,其实技术门槛都不高(门槛在工程上,后文细讲)。技术不过是这些公司的护航舰,而不是破冰船。
先别打我,冷静下来想想,到底有多少你会的那些技术,是你的同行们不会的呢?不多,对吧?
几年前亿级别的搜索还是问题,现在已经到处是通用解决方案了;几年前千万到亿级别的网站和 APP 解决方案还在大公司手里,现在各个架构大会都讲烂啦,而且其实都差不多;就连 DeepLearning,带 API 接口的框架也开始涌现,只需要把用 REST 传进去就能取到结果了。
很多事情,已经没有难度,只需要持续投入。是的,对绝大部分程序员来讲,他们不需要成为科学家,而需要成为工程师,成为从科学家手里接过火种,去燎原大地的人。
怎样才是一个好工程师
工程的本质不是创造,而是去风险化。
工程是关于如何低成本、高效率、按时按量完成既定任务的。所以判断一个工程师是否优秀,并不是他多有创意多有名气,而是看他有多稳,看他能多 GettingThingsDone,中文就是「靠谱」。
有时候一个好的解决方案,未必采用了最新的技术和框架,而是看上去朴实无华,功力都包涵在背后的细节里。就像顶尖高手打的斯洛克台球,每一杆都平淡无奇,只是因为上一杆的回球太到位。
有同学问,那我工程做的太好,岂不是没有机会遇到一些高难度挑战了么?放心,一般公司都雇佣了产品经理来帮你制造高危事件。
同样的,一个好的工程师,会选择最适合需求和团队的方案,考虑开发效率和系统效率的均衡,从而已达到最优效果;而不是整天和别人去争论什么语言最好、哪些框架过时了。
工程的另一个要求是进度控制和质量控制。
在项目立项之后动工之前,对要做的事项作出详尽的规划,对未来一到两周的工作给出细致的排期,这是进度控制的基础。
代码的及时入库与合并,自动化测试和每日构建,CodeReview 和文档编写,这些看似无关紧要的习惯则决定了项目质量。
不幸的是,很多程序员把这些工程上至关重要的东西当成垃圾,视为对他们「创造力」的压抑。
他们总是以创造力为借口去寻求自身的自在,比如上班不带胸牌不打卡,中午休息时间在公司看视频打游戏,最好可以远程上班,项目到期之前再来检查进度,公司不要用统一框架,只有傻逼才写文档。
对职业的理解偏差和工程能力上的荒芜,培养了大批能写代码但死活写不好代码的「码农」,反而让那些有着彪悍工程能力和良好习惯的程序员变得奇货可居。
最后,来说说程序员那无处安放的创造力
有了锤子想找钉子是很正常的原始冲动,但我们必须认识到,创造力对于程序员这个职业来讲,是锦上添花的东西。如果你没有强大的工程能力,那么创造力也不过是无本之木。所以扎扎实实的把工程基础打好,这是最根本的。
在此基础上,我比较推荐程序员采用内外两条线来培养自己。在公司内的项目上采取相对保守的策略,尽力把稳定性做到最好,培养出自己卓越的工程能力;然后在公司外的开源项目和自己的独立项目上,采用一些新的技术、实践一些新的想法、充分发挥自己的创造力,梦想还是要有的,对吧。
这样做最明显的好处是,你可以了解到新技术和激进方案的优缺点,从而在进行方案选型时,有更多的依据;还有一个职业发展上的好处:如果不是主负责人,公司的项目往往不能代表你的能力;但独立项目却可以作为一个非常好的能力证明出现在你的简历里边。
你可以是一个身怀绝技的手艺人,在自己家里你尝试各种手法各种风格的个人作品;但当你参与颐和园这种级别的工程时,好好的把自己负责的石头雕成总设计师要求的样子就好 —— 毕竟这个时代一个人已经很难负责整个项目了。这就是我所理解的程序员的工匠精神。
以上就是关于什么是程序员全部的内容,包括:什么是程序员、程序员证书怎么考、中国程序员VS美国程序员,差距在哪里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)