普通的程序员和大神级的程序员有什么区别?

 我来答
帐号已注销
2020-01-06 · TA获得超过1.8万个赞
知道大有可为答主
回答量:1.6万
采纳率:100%
帮助的人:602万
展开全部
普通的程序员和大神级程序员的差别,大于人和猴子的距离。

基本是普通人和神人的区别。

普通级关注语言优劣,关注于编程环境,跟踪,测试工具。两小儿辩日,可以争个面红耳赤。

大神级关注目标问题本身。融会贯通,什么旧语言新语言都得心应手。

普通级用工具运行程序,写完了调试。

大神级用脑子运行,运行完了写程序。

普通级满纸注释,在注释里找程序。

大神级程序可以当注释读。

普通级以技巧自居,话里有话,意犹未尽。

大神级大道至简,短小精悍又貌似笨拙。

普通级脑子里能装几千行,再大些的项目手忙脚乱。

大神级脑子里不装程序,但知道需要的东西在哪里。

普通级写着写着,乱了,就想重写。

大神级写了不需要再改。

普通级加新东西走街串巷。

大神级加新东西只改一个接口。

普通级发布前测试,然后拼命祷告。

大神级写完已经是测试好的,随时可以发布。

最主要的,普通级写着写着就觉得自己是架构师了,不需要写具体的程序了。只想着办大事。

大神永远对程序有瘾。

能办大事的,小事也能办好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
素年夙念
2020-01-08 · 超过22用户采纳过TA的回答
知道答主
回答量:492
采纳率:66%
帮助的人:13.2万
展开全部
普通程序员
1、知识体系零散,没有系统性的思维,在写代码、改bug的时候没有工程素养,往往是拆了东墙补西墙。
其实在面对一个未知的问题时,如何定位复杂条件下的核心问题、如何抽丝剥茧地分析问题的潜在原因、如何排除干扰还原一个最小的可验证场景、如何抓住关键数据验证自己的猜测与实验,都是体现程序员思考力的最好场景。
2、对某种语言的依赖性太强,知识无法很好的迁移,一旦换了语言,或者领域不同就会不知所措。

程序员是一个非常残忍的职业。你所学所用的语言、框架、模式,很可能在数年内就成昨日黄花了;你现在嘲笑的另一群程序员,可能马上就能转身来嘲笑你了。
3、经验不足却自认为自己经验丰富,只对自己做过的比较顺手,但是碰到未知的问题,就束手无策。
4、毫无必要的拖延,这是很多程序员的通病。
5、心猿意马。
见过太多心猿意马的程序员,不得不把“专注眼下”专门提出来。
他们往往有各式各样的小梦想,比如做个小茶农、做个小鹅贩、做产品、做销售、做投资,却被程序员的高薪或是没有转行的魄力“耽误”了,而因为不专注,他们不在意做好自己的本分,不在意锤炼自己的技能,不在意学习新兴的技术。
高级程序员
1、知识体系完整,有系统性的思维,即使没有到架构师的级别,在写代码和改bug的时候也能从整体上去思考和把握。
2、学习能力强有了自己的心智模型,知识可以自由迁移,并可以高效地切入不同的领域和语言。
3、拥有真正的经验,不只是做够那些项目,而是面向未知的解决问题的能力。
而高级程序员更擅长抓住问题的本质,将看似复杂的需求化繁为简为一系列简单逻辑的堆叠,写代码步步为营,逻辑简单清晰,所有条件分支都被仔细覆盖,磨刀不误砍柴工。
如何从普通程序员进阶到高级程序员?
1、提高代码优化的能力
打铁还需自身硬,“代码可运行”对一个优秀的程序员来说绝不是结束,而是开始。优秀的程序员一定熟知各种算法和数据结构,会灵活运用,致力于写出更简单、效率更高的程序。
2、先考虑、多思考
编程思路,是系统的计划和设想,是程序员写程序时的条理和线索,可以思考但不要长时间延时性的思考。
3、突破程序员思维只有突破程序员思维,才不会沦为码农!
4、时间管理,很多人都没有时间管理意识,觉得时间最不值钱。
这就像是你到了一个十字路口,也不管自己想去哪里,抬脚就努力地奔跑,一路上被自己的努力所感动,但你跑的方向是北边,而你内心真实想去的方向是南边,方向跑偏了,始终到不了目的地,能不迷茫吗?
5、拓展知识的深度和广度
大家可以多看看 BAT 的招聘要求,看看自己还有哪些方面根本没接触过。建议大家多关注热点和优秀的开源项目、找到自己的兴趣点就多花点时间去学习研究,知识的广度很大程度上会影响开发人员的职业发展。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我在这2088
2020-01-06 · TA获得超过141个赞
知道答主
回答量:955
采纳率:0%
帮助的人:58.9万
展开全部
1、没有编程思想

或许很多人觉得很扯,但确实是这样的。高级程序员在看到一个需求的时候,总是能够快速在大脑里生成这个需求在现实生活中的映射。每当产品经理提一个需求的时候,高级程序员首先想到的就是,这个需求需要哪些数据库上的改动,对现有的逻辑有什么影响,需要提供多少接口,存在哪些可能的风险,以及需要多久的开发周期。普通程序员拿到需求以后,首先表现的是一脸懵逼,因为往往产品经理的文档写的非常长,有时还难以理解,普通程序员难以提取里面的关键点。所以这时就需要项目经理这种角色,提取需求,然后告诉他,提供什么接口,对数据库做什么修改。

聪明的人在项目经理说完以后,总会自己去对着需求文档去思考项目经理为什么要这么做,还有一部分人闷着头就去开发了。很多工作四五年的程序员,工作经验一大堆,让他真的说出些什么,他却说不出来。不懂得在工作中思考,工作十年也只是一个普通程序员。

2、没有学习路线

普通程序员在学完基本的知识以后,后续就不知道该学什么了,没有一条属于自己的进阶路线。高级程序员不同,他们在学完基本工作知识以后,会思考下一步自己该如何提升,他们会拥有自己的选择。知识是永无止境的,学完基础以后,还有自动化部署,还有微服务,大数据,以及各种架构。制定一条属于自己的学习路线,是非常有必要的。

3、不会用Git

高级程序员的代码都是通过Git一类的版本控制工具维护的很好,针对不同的功能他们会建立不同的分支,以及测试分支,灰度环境分支,正式环境分支,有的还会建出发布分支。普通程序员总是喜欢在主分支上面做修改,一旦同时有多人并行开发,或者需要回退分支到某一个功能点的时候,对于他们来说往往都是灾难性的存在。普通程序员提交Git还总喜欢用 123 这种提交日志,高级程序员总会在提交日志中详细写出自己做了哪些修改,方便以后遇到问题的时候查找原因。

4、命名不规范

这是一个很大的问题,普通程序员很喜欢使用拼音或者是拼音加英文的方式来命名。高级程序员哪怕自己英语很差,也懂得使用百度翻译或者谷歌翻译来把对应的中文翻译成英文。这样做最大的好处就是,别人看到你这个类,或者看到你这个方法和变量的时候,第一时间能够知道这个东西是干嘛的。

5、结构不规范

无论是什么编程语言,无论是面向对象还是面向过程,甚至不分前端和后端。任何一个语言在开发的时候,代码结构都应该清晰。相同功能,相同模块的文件应该放在一起,针对不同的处理逻辑建出不同的文件夹或包。重复使用超过三次以上的代码应该考虑把它写进一个公共的方法里,大家都调用这个公共的方法,避免维护太多的重复代码。这样当项目发展的很大以后,开发起来也不至于很乱。

6、不知道如何解决BUG

普通程序员看到程序报错以后,第一时间是懵逼状态,他们会很慌乱,不知道该如何是好。有的还知道看一下控制台打印的错误信息,来百度一下,但往往这种方式能不能解决问题都看运气。高级程序员如果做的是一个web程序,报错以后他们会首先看浏览器的控制台是否发送了对应的请求,如果发送了请求会看浏览器的错误码是什么,是请求超时还是发生了500或者是404的错误。然后再针对不同的错误码做出不同的调试方案,如果500的错误,报错日志明显就直接找到对应的地点修改,如果报错信息不明显就通过开发工具来进行断点调试,一步一步找到问题。

7、不会用搜索引擎

遇到问题去百度一下是很明智的,但是如果不看报错的信息盲目的去百度,搜索的结果也只是浪费自己的时间。如果盲目去尝试搜索到的解决方案,只会让瞎子变成瘸子。针对这个,大家可以报错以后看报错日志的最后一行,往往报错最后一行就是错误的原因。一般都是英文的,但是并不复杂,往往都是几个单词来说明问题,然后指向一个错误产生的代码位置。先看报错原因,自己思考以后大概明白是什么原因,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悠幸1j
高能答主

2020-01-06 · 认真答题,希望能帮到你
知道小有建树答主
回答量:1.2万
采纳率:46%
帮助的人:436万
展开全部
思维方式的不同。

普通的程序员可以看到工程项目的当前一隅,大神级程序员不仅能够搞定当前的技术难题,提出更多的可复制的改进方法,更能够应对未来更多的难题,不断总结经验教训,将视野投注到宏观上。

如果说普通程序员活在过去,或者是活在当下,那么大神级别的程序员则是活在未来,不断思考未来的技术难题。

我们一直在问自己一个问题,五年之后技术会发展到何种地步,如何运用五年之后的整体技术架构去更好地服务于客户。这些思考看上去有点虚无缥缈,不切实际,但是在当前这个未来以来是社会和世界,多思考一步,多行动与实践一步,也就有机会多成长一步。大神级别的程序员,往往有着普通程序员所没有的知识维度、对技术的理解力与深度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超级饭桶也有用
2020-01-06 · TA获得超过961个赞
知道小有建树答主
回答量:892
采纳率:70%
帮助的人:32.9万
展开全部
首先是找到第一份正式工作前的那个阶段,这阶段就是入门,但你再入门都代替不了一份实际的工作。

找到第一份正式工作,几年内主要是实现功能,修bug,做重构,把理论和实践充分结合起来,用各种工具,库和流程,积累经验,套路都懂了。

到某个时候你会发现市场上该接触的东西似乎都接触过了,套路已经满足不了你,你开始对这个技术栈有了自己的见解,搞出来的东西水平高了,能自信的选型,做出靠谱的架构来,设计流程,带带团队的人,这是所谓senior的阶段。每个人情况不同,一般这个过程需要5年以上的积累。

你不会成为大神的,大神是小白臆造出来的糖衣炮弹。行业内的真正大神不是从“前端“开始的,而是大厂里喜欢折腾编译器,设计模式,模式匹配,把functional programming当饭吃的那些人。他们的思路跟你的不在一个层次上。

你就是个专业程序员,这也没什么不好。有很多人是到不了这个层次的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式