1. 普通的程序员和大神级的程序员有什么区别
你好,普通程序员只能做一些重复简单的事情,大神级程序员可以解决普通程序员解决不了的难题,还可以给普通程序员建框架。
2. [探讨]优秀程序员和一般程序员差别在哪
还记得研发频道此前发表过的一篇《白班程序员 VS. 夜猫子程序员》吗?在这个世界上有两种程序员,我们称之为:Day Programmers(白班程序员)和Night Programmers(夜猫子程序员)。本文我们将探讨优秀程序员和一般程序员有哪些差别,看看您是属于那一种?来自知乎网上的大牛们各抒己见,一起来看下他们是如何区分的。创业者郭凛:如果纯以编码能力来看,可分为五类1. 拷贝型拷贝型选手就是传说中的“代码拷贝员”了,他们对实现功能几乎没有思路,所作的事情就是从网上或是之前其他团队成员写的代码中拷贝出片段,然后放到项目中,如果运行项目出现了期望结果,则表示任务完成。这类人只会改代码,却不会写代码。他们大多对编程毫无兴趣,只是希望以此糊口而已。2. 新手型当产品有功能需求时,由于经验有限,程序员并不完全知道要如何实现这个功能,需要通过学习、寻找资料等方式来解决问题。这种情况下的编码过程,程序员的主要目标是“完成功能”,那么很难有多余的心思去考虑边界条件、性能、可读性、可扩展性、编码规范等问题,因此代码bug可能较多,稳定性不高,常常会发生开发花费1个月,改bug却要改上好几个月的事情。3. 学习型这类程序员对所在领域的语言已经比较了解,对于一般功能可以有较为清晰的实现思路,给出需求时可以通过自己的思路来实现,并且会一定程度上考虑边界条件和性能问题。但仅此而已,他们对可读性和可扩展性考虑很少,也没有项目级别的考虑,主要是希望通过实现代码来练手或是学习。这类程序员最大的表现在于喜欢“创造代码”,即使有现成的实现,他们也希望自己来实现一套,以达到“学习”的目的。他们不喜欢复用别人的代码,看见项目中别人实现了相类似的功能,他们会以“需求不同”的借口来自己重新实现一套。这类人一般来说对技术有着较为浓厚的兴趣,希望能够通过项目来进行学习。从项目的角度来说,这种做法最大的麻烦在于开发周期可能较长(相比直接使用现成的实现),并且会使得项目代码膨胀,影响未来的维护。但这类程序员由于有兴趣,如果好好培养或许会成为明天的牛人。4. 实现型这类程序员一般有较为丰富的经验,由于写得太多,因此不再追求“创造代码”来进行学习,同时对所在领域可能涉及的很多第三方框架或是工具都比较熟悉,当接受到产品需求时,对功能实现方案已经了然于胸,因此他们可以快速的实现需求,并且对边界、性能都有一定程度的考虑。因为能够快速实现需求功能,经常会被团队评价为“牛人”。但他们一般仅仅停留在“完成功能”级别上,对代码的可读性、可扩展性、编码规范等考虑较少,对项目总体把握也较少(例如控制项目膨胀、方便部署等架构级别的东西)。这类程序员最大的表现在于喜欢“开发项目”,却不喜欢“维护项目”。他们产出的代码最大的问题就是维护较为困难,可能过上几个月回头看自己的代码都会晕头转向。因此即使是自己写的代码,仍然不愿意维护,一般会苦了后来人。因为接口设计的缺乏,当需求变更时,发现代码要改的东西太多,然后抱怨需求变化,却很少认为是自己的代码问题。这样的项目如果经过长时间的变更维护,最终会变得难以维护(一般表现在需求变更响应时间越来越长)甚至无法维护,最终要么是半死不活,要么是被推倒重来。5. 架构型这类程序员比实现型更进一步,他们经验丰富,对相关框架和工具等都很熟悉,“完成功能”、“稳定性”、“性能”这些已经不再是他们的追求,更优美的代码、更合理的架构才是目标。这类程序员代码设计大多建立在对需求的详细了解和对需求变更的预测上——可扩展性较好;代码细节也尽量多的考虑边界情况、性能——稳定高效;代码命名和注释都恰到好处——可读性较高;同时在开发过程中他们会不断重构,对代码做减法——保证项目可持续发展等等,但由于考虑问题较多,单从“实现功能”阶段来看,完成速度不一定会比“实现型”要快。只是到了项目中后期优势才会慢慢体现出来。知乎删代码工程师 安江泽:创造型、管家型、学院派、钟表型、折腾型1. 创造型/创新型以创造/创新为乐的程序员。以新的方法解决现有问题,发明方法解决尚未解决的问题。问题本身并不限于技术领域。硅谷很多技术创始人具备这类的品质。虽然他们创业后都不再全职写代码,但他们这种品质贡献了他们事业的第一步。2. 管家型以管系统演化为乐的程序员。有洁癖,有强迫症,容不得系统有一点的瑕疵。如果你招聘了一个程序员/架构师,2-3年后你的互联网产品再也没有在可见/可扩展性上遇到瓶颈,他多半是这种程序员。3. 学院派型通常在CS某一领域拥有博士学位,或者深受他们的影响的人。对该该领域兴趣浓厚,通常参与企业核心竞争力相关的研发工作。当然,也有一部分也具备第一种特质,中途去改变世界去了。4. 经验型在行内具有多年丰富的经验,可承担责任,考虑全面。团队拥有了这种人,通常会少走很多弯路。但面对新的挑战还是要和其他人站在同一起跑线上的。5. 钟表匠型喜欢并擅长把一个系统从里到外研究通透的人。分享出来都是从里到外让人垂涎欲滴的干货。很多后端工程师都是这种类型。6. 折腾型擅长“折腾”,方案没有最好的,只有最难的。兴趣广泛动手能力强,通过折腾留下很多技术积累。想用哪一块的新技术?先问问他把,8成他很久前就已经玩过了。7. 肉盾型哥甲高血条长,加班如同切菜一般,逼急了不睡觉也行。只伸手要过两件东西:原型和咖啡。适合打闪电战。当然,可能事后要打打后勤重构下代码。iApp4Me创始人、iOS开发者郝培强:七大标准 逻辑思维很重要优秀程序员的标准:要懂逻辑,这点其实挺难达到,很多很不错的程序员其实逻辑能力不行,所以我觉得限制了他们更深一层次的发展,或者说限制了他们解决特别复杂问题的能力。要有分析能力。这也是解决复杂问题不可或缺的能力。要会自学,技术发展速度很快,如果没有自学能力会被淘汰的。所以在中国英语要好,不然看不懂最新的技术走向。要有良好的时间管理习惯和意识。要有耐心,肯于付出。要有良好的工作习惯。会看且勤于看文档。产品管理、IT项目管理 何明璐:优秀程序员具有较明显的自恋和偏执特征对编程有浓厚的兴趣,由兴趣能驱动自己的探索和钻研精神,优秀程序员一般喜欢用业余时间探索和自己琢磨点东西,研究点开源框架和源代码,关注新技术,喜欢研究和探索算法,逻辑方面的内容。优秀程序员一般比较懒于做重复的事情,对于重复事情有独有的程序员思维,即通过程序或其它自动化方式解决重复问题,而留更多时间去思考。优秀程序员更多的会从简单功能实现,花哨的界面转移到对安全,性能,可扩展等底层架构的关注。优秀程序员一般有较明显的自恋和偏执特征,有较为希望独自工作的特征,比较难于被非技术背景管理者驾驭,高度强调自我能力价值的被认可,而且很多优秀程序员并不是好教练。优秀程序员一般有较为扎实的算法,数据结构等理论知识的基础。这些让他们在迅速进入新领域的时候快人一筹。总结:不管是优秀程序员还是一般程序员,小编认为只要你喜欢思考,爱学习,对编码有兴趣,那么你就是最好的。当然掌握技术才是硬道理,套用别人的一句话“不想当CEO的程序员,不是好的产品经理”。程序员们,加油吧!
3. 普通程序员和大神程序员,到底有啥区别“渡一教育”
众所周知,雷军本就是一位超级厉害的程序员。他曾经这样评价自己的编码水平:“我没写过诗,但是有人评价我写的代码像诗一样优雅。”
好吧,有被凡到。
尽管很多人曾因为雷总过于浓密的发量而怀疑他作为程序员时的水平。但是从雷总的语气中我们可以感觉到他对于自己编码能力的自信。
不得不承认,同样是程序员,普通程序员和大神的差别是巨大的。
当普通程序员尝试重构一个简单的模块
当大神级程序员重构代码
普通程序员做的多线程
大神级程序员做的多线程
是否过于真实?刚入门的小白程序员流下了羡慕的泪水。。。
另外,据不权威调查显示,大神程序员的生活作息远不同于普通人类,基本上是昼伏夜出。果然,大神早已非正常人类,不食人间烟火。有图为证(第一列是时间,第二列是代码行数。)
这是FFmpeg的作者FabriceBellard的编码时间表,能看出来,越到晚上灵感越强啊。额,不过,这位大佬是会睡着睡着觉灵感突发蹦起来提交代码的吗……
而这是LiveJournal的作者BradFitzpatrick在memcached项目上的时间表。
典型的夜猫子,昼伏夜出,每天只睡四个小时。
仁慈的独裁者,Python之父Guidovan Rossum同样是一位暗夜使者。
美好的一天从下午开始,夜晚才是灵感的源泉。不过大佬好像真的不用睡觉的。。。。
而在夜行者之上,更有一种恐怖存在,他们宣告了永动机是可以实现的,因为他们自己,就是永动机。。。
“世界上最好的语言”php的创始人RasmusLerdorf,便是其中翘楚,这是他在php-src项目上的提交时间:
果然是大佬,白天正常工作,晚上更加兴奋。果然,真正的大神都是突破人类身体极限,完全不用睡觉的。
当然了,以上这些呢不过是一些极端案例,他们虽然是真正的大神,小渡也绝不建议小伙伴们学习这种作息习惯。不然很有可能,技术没学到,发量却比大神还少。。。
而在日常的工作中,大神对于小白的碾压更是全方位无死角。
注:reinventing the wheel 重新发明轮子
果然,大神的工作都是独出心裁的。
额,不过这么一看嘛,菜鸟和大神好像差不多。。。。
大神的反应总是波澜不惊的,好像没什么成就感。。。
离谱。。。。
笑出自信,笑出强大!
看到大神们种种不同凡响的表现,小伙伴们有没有心生向往?不要灰心,只要努力,假以时日你一定也能像雷总那样,写出诗一样优雅的代码。
要想真正的成为大神,要脚踏实地,有的放矢,为自己设立目标,不断向目标逼近。
至少要做到以下几点:
程序员之所以被称为“大神”,顾名思义便是在专业领域他们无所不能。所以,大神之路第一步就是补全自己技术上的短板,项目出现任何技术难题时,只要自己出马便能发现问题所在,从而找到解决方法。
多隆就是这样一位全能的大神,“只要有技术上的困难,找多隆,没有解决不了的”这是在阿里技术人员内部流传的一句话。
对于编码技术,多隆便是武侠小说中已臻化境的绝顶高手,从2003年到2007年,搜索引擎工作一直都是多隆一个人负责,但这不是他所有的工作,因为他解决问题的能力是惊人的。
多隆一个人能顶一个团队,别人做事可能要成立一个项目组,而他从头到尾都是自己一个人,即使他负责的事情以前从没有接触过。
阿里研究员毕玄曾举例说:“五彩石项目多隆完成了商城搜索的mp逻辑,当时如果没有多隆,整个项目需要延后2周;还有一次,淘宝session框架调用session_tair故障,一堆人(应该有10人+)一起排查问题,从6:00排查到第二天的6:00,最后多隆查到了问题。”
而达到如此境界,与多隆自身的特质分不开。当他沉浸在他的程序世界时,外界的人和事很难干扰到他。他不擅交际,也不玩什么社交网络,一般很难在公众场合见到他,只要能不参加的会议、采访,他都不会参加。
就算去,他也常常会带上笔记本。据说他也曾经带着笔记本去outting,在车上写代码……
而且尽管被同事们顶礼膜拜,多隆依然谦逊,他说:“我就是个写代码的,很普通”。
从多隆身上我们也能看到,想要成为大神,首先就是要静下心来沉住气,认真研究代码,不断学习进步,完善技术,让自己不再有短板。
理想是最好的指引者,对于技术行业尤其如此。
很多人在成为程序员之初,都抱有改变世界的想法,想象着运用自己的编程技术来为未来的世界增添色彩。而真正能将这种想法坚持到底的人可谓是凤毛麟角,但这恰恰是成为大神程序员的重要特质。
支付宝OB数据库团队的队长阳振坤就是这样一位典型的理想主义者,在他的职业生涯中遭遇了太多的挫折和失落,但他始终保持着一个技术人员的初心,坚持理想,不曾退让。
阳振坤曾是北大的学术明星,北大本硕博一路念完留校任教,不但破格晋升教授,还成为北大首批“长江学者奖励计划”特聘教授之一。他的理想就是攻克分布式系统难题,建成中国技术人自己的分布式数据库。
在加入网络之后,他集中一切精力来进行数据库的开发,然而尽管他主导的分布式系统在性能上已经超过了开源系统,网络仍然以成本太高为理由解散了他的团队。
随后他加入阿里,阳振坤继续做分布式数据库研发,他的团队从零发展到十几人,捣鼓出中国第一个分布式数据库,他们给它起了个名字叫OB。
然而,同样因性价比的问题,阳振坤和他的OB团队在阿里坐了冷板凳。这一彼时仅有十几个人的团队曾在长达三年多的时间里,孤独而边缘。
很多同事都说,“如果阳老师愿意妥协,放弃OB,转去做开源系统的技术优化,早就拨云见日了。”
但是,那显然不是他想做的事情。
不过相比于网络,阿里对于“无用”的创新有更大的包容,OB最终被并入了支付宝。彼时的支付宝,面临着一个世界级的难题:双11的交易量呈几何级增长,未来势必还将继续呈几何级增长,可是支付宝当时用的甲骨文数据库早已经承受不了这么庞大的数据量。
为了应对双11这天的数据,只能再花数亿千万人民币的价格去购买主机,可在交易恢复常态时,昂贵的主机旋又陷于长期闲置状态,这样未免得不偿失。
因此OB这一还未正式上过“战场”的数据库,被支付宝高层认定是解决双11支付峰值这一世界级难题的“钥匙”。OB最终也不负众望,帮助支付宝攻克了这一难关。
2016年5月,时任蚂蚁金服董事长彭蕾亲自将支付宝内部最高荣誉——CEO大奖“勋章”戴在了以阳振坤为首的OB团队成员的脖子上。
从阳振坤的身上我们可以感受到,理想或许会让我们一时间陷入困境,但如果我们坚持下去,会带给我们更大的回报。
这是老生常谈,却也是最重要的一点。这是每一个想要突破自我的人所必备的特质,也是每一个大神程序员依旧在坚持的习惯。
即使多隆在阿里早已封神,但是他仍然每天醉心于编程的世界,研究各种代码,不断强化完善自己的技术。
即使阳振坤和他的OB团队已经为取得了阿里的最高荣誉,他们仍然在每一次维护和升级中不断地为OB数据库做出新的改进和尝试,向着更高远的目标进发,他们期待着有朝一日OB可以超越IOE,成为世界上最棒的分布式数据库。
每一个大神,都是由小白蜕变而成的。大神若不再努力,早晚会跌落神坛,泯然众人。而小白们只要坚持学习,不断提升自己,终有一日也会成为自己曾经仰望的大神。
每个大神的“封神之路”都有各自的精彩,但是也有着共同点,那就是:专注、热爱、持之以恒。当然,每个领域的大神都是极少数,我们大多数人可能用尽全力也赶不上天赋异禀的人的轻松一步。
但是我们努力不是为了赶上任何人,而是为了成为心目中那个更好的自己。
就像现在正拼搏在残奥会赛场上的残疾健儿们,他们早就丧失了和正常人一样生活的能力,但不妨碍他们依旧热爱生活,依旧为了梦想去拼搏,去创造正常人都难以企及的记录。
所谓奥运精神不光会激励赛场上的运动员,也会时刻提醒我们每一个平凡的人,向着心里的顶峰奋力冲刺。
保持心中那份对于梦想的执着和渴望,我们终将会突破自我。加油,未来的大神。
4. 初级程序员、中级程序员、高级程序员最大的区别是什么
程序员之间也是存在很大的区别,他们之间最大的区别主要表现这这个方面,跟大家分享一下。
能力。一些程序员刚刚进入一个单位,学习的东西还不多,他们的能力差距要比老员工差很多。
经验。有的程序员,自身的能力是提升上去了,但是,由于呆的时间相对比较短,经验还不是很足,面对一些疑难杂症,还是不能解决。
薪资待遇。因为能力不同,所以获得的回报也是不一样的,一般高级程序员的薪资都是非常高的,毕竟他们能够解决很多困难以及复杂的问题。
当然,除了这几个方面之外,还有一些也是有差距的,比如说头发,思维以及工龄等等。
5. 初级程序员与高级程序员的差别在哪儿
初级多在写代码,高级多在设计代码;
初级多在解决一个问题,高级多在解决一类问题;
初级多在考虑技术问题,高级还要参与业务上的需求;
初级工程师只管接需求,导致自己忙不过来,高级工程师会砍需求, 用自己得经验告诉产品这个需求不需要,告诉设计师这个交互没必要;
初级工程师可能做完一个项目就完了,高级工程师可能会封装几个组件,整理一个脚手架出来。
还有很多很多,初级工程师和高级工程师差距不仅仅是代码质量上,而且其他能力上,解决问题的能力,抽象问题的能力!
现在要想成为了一个中高级程序员,有一个机会,黑马程序员全新推出了项目视频,java、Python、大数据都有哦,想学习的小伙伴,去看看吧!
6. 程序员分哪几种,分别要学什么知识,工资怎么样
一、程序员的分类
程序员从事的人群很多,分工也不相同,从大的方面可以分为以下几类:asp程序员、delphi程序员、php程序员、powerbuilder程序员、C程序员、linux程序员、net程序员、vb程序员、java程序员、javascript程序员、C++程序员、Python程序员、ABAP程序员、android程序员、iOS程序员。
二、所学的知识与必备技能
1、熟练开发软件
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
2、熟悉数据库
很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。
3、了解操作系统
要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。要懂得网络协议TCP/IP。网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。要明白DCOM/CORBA/XML/WEBServices存在的意义。DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
三、薪资待遇
程序员的薪资待遇分档次,大致情况是这样的:
初级软件工程师(0-3年开发经验),平均月薪(3000-8000)
中级软件工程师(3-5年开发经验),平均月薪(5000-12000)
高级软件工程师(5年+开发加2+管理),平均月薪(10000-90000)
一般只有刚毕业的初级工程师说的是月薪,中高级基本是年薪。
也有刚毕业就签的年薪的。这个是大致范围就这样,也有少部分低于3000或高于90000的 具体差别要看自己的,毕业院校,专业学历,专业能力,外语能力,职称等级,综合能力,以及所在城市还有自己的选择等。但最主要的是看专业能力的。
7. 普通的程序员和大神级的程序员有什么区别
8. 程序员分为哪几种
程序员分为4种,分别是:
1、asp程序员、delphi程序员、php程序员、powerbuilder程序员、C程序、1员、linux程序员、net程序员、vb程序员、java程序员、javascript程序员、C++程序员、Python程序员、ABAP程序员、android程序员、iOS程序员。
4、计算机行业,初级的叫程序员,中级的叫软件设计师,高级的叫系统分析师。