![[探讨]优秀程序员和一般程序员差别在哪,第1张 [探讨]优秀程序员和一般程序员差别在哪,第1张](/aiimages/%5B%E6%8E%A2%E8%AE%A8%5D%E4%BC%98%E7%A7%80%E7%A8%8B%E5%BA%8F%E5%91%98%E5%92%8C%E4%B8%80%E8%88%AC%E7%A8%8B%E5%BA%8F%E5%91%98%E5%B7%AE%E5%88%AB%E5%9C%A8%E5%93%AA.png)
还记得研发频道此前发表过的一篇《白班程序员 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的程序员,不是好的产品经理”。程序员们,加油吧!
之前一直对前端感兴趣,也想做前端,但是周围很多人都说搞前端没有技术含量,说只不过就是把网页画出来而已是个人都能做没有前途,而Java是企业用的最多的语言,学Java比前端好多了,昌平java培训建议我去报个培训班,我和他们说了在知乎上听到的观点:1前端很有前景。2培训班不好。
他们说网上的东西听听就算了。中小企业招人都是直接去培训班招的,而且只有大公司才要专门的前端,中小企业的前端都是后端直接找框架套的,只有在后端人员充足完成所有功能无压力的前提下才会勉为其难的找个“美工”,就业面很窄。说这些话的都是中型企业的前辈现在接触的面也很广,在企业也身居要职,也是行业内专门搞开发的,我听了觉得好像也很有道理,因为中小企业招不到人那确实会去倾向于去培训班招人,因为培训班那里的人不说大牛,企业拿回来稍微培养下就能用,减少很多成本,而网上说的培训班出来的都不是什么好苗子这里的不好也只是相对于少部分大牛来说的,而这种大牛在现实中确实很少,只是因为在网络上所以被无限的放大了。另外前端的地位好像确实在中小企业不那么重要,因为中小企业没有前端团队,一般来说前端都是由后端套框架兼的,只有在人员充足的情况下才会招一个“美工”+“前端”而且地位也很低,工资也不高。我现在被说的有点动摇了,心里在想:前端真的就那么不堪吗
不要把程序员的所有类型,包括前端,想成一种低压力高回报的职业!
低压力高回报从来不是程序员好么遇到好多人都是学java学不明白转前端,学c++学不明白转前端,学c学不明白转前端,前端是入门门槛低了些,可岂是随随便便就能做好的这话听着跟我上大学的时候说,“实在学不会就转销售”去一样。现在也送给那些认为前端不用脑子也能学会的人,学不会就转销售吧,干什么前端。
其实,程序员的职责并不仅仅是编程,甚至编程只是占到很小一部分,
程序员的工作内容如下:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
作者:茹姐
链接:>
先说目前的状况,国内的大公司偏业务的一般都用 Java 做后台开发比如淘宝,网易,美团等 Python 国内一般是一些体量不是这么大的公司使用,例如 豆瓣,知乎
相对于 Python来说,Java 的语法古板,加上静态语言,纯面向对象(缺少函数式编程范式,例如匿名函数, block,
高阶函数等),一般来说 Java 写出来的程序使用已有的抽象少,繁琐的地方很多,你写个文件目录遍历,就知道 Python 的开发速度比 Java
快多少
但是 Java 的优点是,运行快,语法简单,古板,所以歧义少,可读性高加上有很多很好的 ide
来帮助分析静态代码,可以很好的进行代码重构对于一个大型程序,一般都会采用 Java, 代码的复杂度好控制Java
语法特性少,所以大家写的代码风格都不会差别很大,你走了,立马招一个程序员顶上想要学习和交流的可以加我扣群,前面是二五七,中间是零一四,后面是001,有兴趣的可以一起学习哦。 Java 在 web
端有很多很成熟的开源框架和工具,有很深的沉淀大公司又不缺钱,多招几个 Java 程序员开发速度还是比你用 ruby, 还是 Python
的快,而且还有以上的优点
现在用 Java 的多吗
那是很多,而且还会更多!因为 Java 人好招,有很多有经验的大牛,能出活中文资料,成熟的框架,包太多了我个人觉得 Java 在未来的十年还会是主流的web 开发语言,更何况,人家还可以开发的更多(Android)
学个 Java 对你的程序生涯绝对有利无害毕竟面向对象这一套,许多语言都有,迟早要学的
首先初学者学习Java,应该从最基础的开始 :
但是在学习的时候不要图快,要系统的学习一下,或者在了解Java这一门语言是干什么,有什么作用之后,在进行相应的学习:
Java基础:
1了解Java的发展;
2 了解Java虚拟机(JVM)基础知识,如何一次编译、多处执行;
3Java程序如何编译和运行
4 Java中的变量
5 Java数据类型
6 Java运算符
7 Java中的if-else
8 Java中的Switch-Case
9 Java For循环
10。JavaWhile循环
11 Java中的do-while循环
12do-while循环。Java Continue语句
13 Java Break语句
14、Java 多线程
15、数组
16、集合
17、面向对象三要素
随后进阶学习:
数据库
目前主流的两个数据库一个是MYSQL活Oracle,MYSQL是比较好学的,Oracle的 *** 作要稍微复杂一些,我的建议是这两个数据库都必须学。数据库这块我认为没有什么特别难的。只要多练习就可以。
JavaWeb
这也是Java学习的主要内容,非常重要,包括Web前端的内容,比如HTML、CSS、JavaScript等前端常用基础。JSP、Server、xml、javabean等技术。
框架
这是Java学习过程中的难点,如果前面的Java的基础没有学过,后面的框架很难学,所以学习JavaSE的时候一定要掌握好。目前常用的框架是SSH、SMM、Springboot以及SpringCloud主要框架。学习Java可以上B站搜索我校的官方账号,高淇老师的Java300集免费观看!
等等,希望可以给大家带来帮助!
以上就是关于[探讨]优秀程序员和一般程序员差别在哪全部的内容,包括:[探讨]优秀程序员和一般程序员差别在哪、学Java真的就比web前端有前途吗、程序员的职责等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)