普通的程序员和大神级的程序员有什么区别?
1007个回答
展开全部
普通的程序员和大神级程序员的差别,大于人和猴子的距离。
基本是普通人和神人的区别。
普通级关注语言优劣,关注于编程环境,跟踪,测试工具。两小儿辩日,可以争个面红耳赤。
大神级关注目标问题本身。融会贯通,什么旧语言新语言都得心应手。
普通级用工具运行程序,写完了调试。
大神级用脑子运行,运行完了写程序。
普通级满纸注释,在注释里找程序。
大神级程序可以当注释读。
普通级以技巧自居,话里有话,意犹未尽。
大神级大道至简,短小精悍又貌似笨拙。
普通级脑子里能装几千行,再大些的项目手忙脚乱。
大神级脑子里不装程序,但知道需要的东西在哪里。
普通级写着写着,乱了,就想重写。
大神级写了不需要再改。
普通级加新东西走街串巷。
大神级加新东西只改一个接口。
普通级发布前测试,然后拼命祷告。
大神级写完已经是测试好的,随时可以发布。
最主要的,普通级写着写着就觉得自己是架构师了,不需要写具体的程序了。只想着办大事。
大神永远对程序有瘾。
能办大事的,小事也能办好。
基本是普通人和神人的区别。
普通级关注语言优劣,关注于编程环境,跟踪,测试工具。两小儿辩日,可以争个面红耳赤。
大神级关注目标问题本身。融会贯通,什么旧语言新语言都得心应手。
普通级用工具运行程序,写完了调试。
大神级用脑子运行,运行完了写程序。
普通级满纸注释,在注释里找程序。
大神级程序可以当注释读。
普通级以技巧自居,话里有话,意犹未尽。
大神级大道至简,短小精悍又貌似笨拙。
普通级脑子里能装几千行,再大些的项目手忙脚乱。
大神级脑子里不装程序,但知道需要的东西在哪里。
普通级写着写着,乱了,就想重写。
大神级写了不需要再改。
普通级加新东西走街串巷。
大神级加新东西只改一个接口。
普通级发布前测试,然后拼命祷告。
大神级写完已经是测试好的,随时可以发布。
最主要的,普通级写着写着就觉得自己是架构师了,不需要写具体的程序了。只想着办大事。
大神永远对程序有瘾。
能办大事的,小事也能办好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
普通程序员
1、知识体系零散,没有系统性的思维,在写代码、改bug的时候没有工程素养,往往是拆了东墙补西墙。
其实在面对一个未知的问题时,如何定位复杂条件下的核心问题、如何抽丝剥茧地分析问题的潜在原因、如何排除干扰还原一个最小的可验证场景、如何抓住关键数据验证自己的猜测与实验,都是体现程序员思考力的最好场景。
2、对某种语言的依赖性太强,知识无法很好的迁移,一旦换了语言,或者领域不同就会不知所措。

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

程序员是一个非常残忍的职业。你所学所用的语言、框架、模式,很可能在数年内就成昨日黄花了;你现在嘲笑的另一群程序员,可能马上就能转身来嘲笑你了。
3、经验不足却自认为自己经验丰富,只对自己做过的比较顺手,但是碰到未知的问题,就束手无策。
4、毫无必要的拖延,这是很多程序员的通病。
5、心猿意马。
见过太多心猿意马的程序员,不得不把“专注眼下”专门提出来。
他们往往有各式各样的小梦想,比如做个小茶农、做个小鹅贩、做产品、做销售、做投资,却被程序员的高薪或是没有转行的魄力“耽误”了,而因为不专注,他们不在意做好自己的本分,不在意锤炼自己的技能,不在意学习新兴的技术。
高级程序员
1、知识体系完整,有系统性的思维,即使没有到架构师的级别,在写代码和改bug的时候也能从整体上去思考和把握。
2、学习能力强有了自己的心智模型,知识可以自由迁移,并可以高效地切入不同的领域和语言。
3、拥有真正的经验,不只是做够那些项目,而是面向未知的解决问题的能力。
而高级程序员更擅长抓住问题的本质,将看似复杂的需求化繁为简为一系列简单逻辑的堆叠,写代码步步为营,逻辑简单清晰,所有条件分支都被仔细覆盖,磨刀不误砍柴工。
如何从普通程序员进阶到高级程序员?
1、提高代码优化的能力
打铁还需自身硬,“代码可运行”对一个优秀的程序员来说绝不是结束,而是开始。优秀的程序员一定熟知各种算法和数据结构,会灵活运用,致力于写出更简单、效率更高的程序。
2、先考虑、多思考
编程思路,是系统的计划和设想,是程序员写程序时的条理和线索,可以思考但不要长时间延时性的思考。
3、突破程序员思维只有突破程序员思维,才不会沦为码农!
4、时间管理,很多人都没有时间管理意识,觉得时间最不值钱。
这就像是你到了一个十字路口,也不管自己想去哪里,抬脚就努力地奔跑,一路上被自己的努力所感动,但你跑的方向是北边,而你内心真实想去的方向是南边,方向跑偏了,始终到不了目的地,能不迷茫吗?
5、拓展知识的深度和广度
大家可以多看看 BAT 的招聘要求,看看自己还有哪些方面根本没接触过。建议大家多关注热点和优秀的开源项目、找到自己的兴趣点就多花点时间去学习研究,知识的广度很大程度上会影响开发人员的职业发展。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、没有编程思想
或许很多人觉得很扯,但确实是这样的。高级程序员在看到一个需求的时候,总是能够快速在大脑里生成这个需求在现实生活中的映射。每当产品经理提一个需求的时候,高级程序员首先想到的就是,这个需求需要哪些数据库上的改动,对现有的逻辑有什么影响,需要提供多少接口,存在哪些可能的风险,以及需要多久的开发周期。普通程序员拿到需求以后,首先表现的是一脸懵逼,因为往往产品经理的文档写的非常长,有时还难以理解,普通程序员难以提取里面的关键点。所以这时就需要项目经理这种角色,提取需求,然后告诉他,提供什么接口,对数据库做什么修改。
聪明的人在项目经理说完以后,总会自己去对着需求文档去思考项目经理为什么要这么做,还有一部分人闷着头就去开发了。很多工作四五年的程序员,工作经验一大堆,让他真的说出些什么,他却说不出来。不懂得在工作中思考,工作十年也只是一个普通程序员。
2、没有学习路线
普通程序员在学完基本的知识以后,后续就不知道该学什么了,没有一条属于自己的进阶路线。高级程序员不同,他们在学完基本工作知识以后,会思考下一步自己该如何提升,他们会拥有自己的选择。知识是永无止境的,学完基础以后,还有自动化部署,还有微服务,大数据,以及各种架构。制定一条属于自己的学习路线,是非常有必要的。
3、不会用Git
高级程序员的代码都是通过Git一类的版本控制工具维护的很好,针对不同的功能他们会建立不同的分支,以及测试分支,灰度环境分支,正式环境分支,有的还会建出发布分支。普通程序员总是喜欢在主分支上面做修改,一旦同时有多人并行开发,或者需要回退分支到某一个功能点的时候,对于他们来说往往都是灾难性的存在。普通程序员提交Git还总喜欢用 123 这种提交日志,高级程序员总会在提交日志中详细写出自己做了哪些修改,方便以后遇到问题的时候查找原因。
4、命名不规范
这是一个很大的问题,普通程序员很喜欢使用拼音或者是拼音加英文的方式来命名。高级程序员哪怕自己英语很差,也懂得使用百度翻译或者谷歌翻译来把对应的中文翻译成英文。这样做最大的好处就是,别人看到你这个类,或者看到你这个方法和变量的时候,第一时间能够知道这个东西是干嘛的。
5、结构不规范
无论是什么编程语言,无论是面向对象还是面向过程,甚至不分前端和后端。任何一个语言在开发的时候,代码结构都应该清晰。相同功能,相同模块的文件应该放在一起,针对不同的处理逻辑建出不同的文件夹或包。重复使用超过三次以上的代码应该考虑把它写进一个公共的方法里,大家都调用这个公共的方法,避免维护太多的重复代码。这样当项目发展的很大以后,开发起来也不至于很乱。
6、不知道如何解决BUG
普通程序员看到程序报错以后,第一时间是懵逼状态,他们会很慌乱,不知道该如何是好。有的还知道看一下控制台打印的错误信息,来百度一下,但往往这种方式能不能解决问题都看运气。高级程序员如果做的是一个web程序,报错以后他们会首先看浏览器的控制台是否发送了对应的请求,如果发送了请求会看浏览器的错误码是什么,是请求超时还是发生了500或者是404的错误。然后再针对不同的错误码做出不同的调试方案,如果500的错误,报错日志明显就直接找到对应的地点修改,如果报错信息不明显就通过开发工具来进行断点调试,一步一步找到问题。
7、不会用搜索引擎
遇到问题去百度一下是很明智的,但是如果不看报错的信息盲目的去百度,搜索的结果也只是浪费自己的时间。如果盲目去尝试搜索到的解决方案,只会让瞎子变成瘸子。针对这个,大家可以报错以后看报错日志的最后一行,往往报错最后一行就是错误的原因。一般都是英文的,但是并不复杂,往往都是几个单词来说明问题,然后指向一个错误产生的代码位置。先看报错原因,自己思考以后大概明白是什么原因,
或许很多人觉得很扯,但确实是这样的。高级程序员在看到一个需求的时候,总是能够快速在大脑里生成这个需求在现实生活中的映射。每当产品经理提一个需求的时候,高级程序员首先想到的就是,这个需求需要哪些数据库上的改动,对现有的逻辑有什么影响,需要提供多少接口,存在哪些可能的风险,以及需要多久的开发周期。普通程序员拿到需求以后,首先表现的是一脸懵逼,因为往往产品经理的文档写的非常长,有时还难以理解,普通程序员难以提取里面的关键点。所以这时就需要项目经理这种角色,提取需求,然后告诉他,提供什么接口,对数据库做什么修改。
聪明的人在项目经理说完以后,总会自己去对着需求文档去思考项目经理为什么要这么做,还有一部分人闷着头就去开发了。很多工作四五年的程序员,工作经验一大堆,让他真的说出些什么,他却说不出来。不懂得在工作中思考,工作十年也只是一个普通程序员。
2、没有学习路线
普通程序员在学完基本的知识以后,后续就不知道该学什么了,没有一条属于自己的进阶路线。高级程序员不同,他们在学完基本工作知识以后,会思考下一步自己该如何提升,他们会拥有自己的选择。知识是永无止境的,学完基础以后,还有自动化部署,还有微服务,大数据,以及各种架构。制定一条属于自己的学习路线,是非常有必要的。
3、不会用Git
高级程序员的代码都是通过Git一类的版本控制工具维护的很好,针对不同的功能他们会建立不同的分支,以及测试分支,灰度环境分支,正式环境分支,有的还会建出发布分支。普通程序员总是喜欢在主分支上面做修改,一旦同时有多人并行开发,或者需要回退分支到某一个功能点的时候,对于他们来说往往都是灾难性的存在。普通程序员提交Git还总喜欢用 123 这种提交日志,高级程序员总会在提交日志中详细写出自己做了哪些修改,方便以后遇到问题的时候查找原因。
4、命名不规范
这是一个很大的问题,普通程序员很喜欢使用拼音或者是拼音加英文的方式来命名。高级程序员哪怕自己英语很差,也懂得使用百度翻译或者谷歌翻译来把对应的中文翻译成英文。这样做最大的好处就是,别人看到你这个类,或者看到你这个方法和变量的时候,第一时间能够知道这个东西是干嘛的。
5、结构不规范
无论是什么编程语言,无论是面向对象还是面向过程,甚至不分前端和后端。任何一个语言在开发的时候,代码结构都应该清晰。相同功能,相同模块的文件应该放在一起,针对不同的处理逻辑建出不同的文件夹或包。重复使用超过三次以上的代码应该考虑把它写进一个公共的方法里,大家都调用这个公共的方法,避免维护太多的重复代码。这样当项目发展的很大以后,开发起来也不至于很乱。
6、不知道如何解决BUG
普通程序员看到程序报错以后,第一时间是懵逼状态,他们会很慌乱,不知道该如何是好。有的还知道看一下控制台打印的错误信息,来百度一下,但往往这种方式能不能解决问题都看运气。高级程序员如果做的是一个web程序,报错以后他们会首先看浏览器的控制台是否发送了对应的请求,如果发送了请求会看浏览器的错误码是什么,是请求超时还是发生了500或者是404的错误。然后再针对不同的错误码做出不同的调试方案,如果500的错误,报错日志明显就直接找到对应的地点修改,如果报错信息不明显就通过开发工具来进行断点调试,一步一步找到问题。
7、不会用搜索引擎
遇到问题去百度一下是很明智的,但是如果不看报错的信息盲目的去百度,搜索的结果也只是浪费自己的时间。如果盲目去尝试搜索到的解决方案,只会让瞎子变成瘸子。针对这个,大家可以报错以后看报错日志的最后一行,往往报错最后一行就是错误的原因。一般都是英文的,但是并不复杂,往往都是几个单词来说明问题,然后指向一个错误产生的代码位置。先看报错原因,自己思考以后大概明白是什么原因,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
思维方式的不同。
普通的程序员可以看到工程项目的当前一隅,大神级程序员不仅能够搞定当前的技术难题,提出更多的可复制的改进方法,更能够应对未来更多的难题,不断总结经验教训,将视野投注到宏观上。
如果说普通程序员活在过去,或者是活在当下,那么大神级别的程序员则是活在未来,不断思考未来的技术难题。
我们一直在问自己一个问题,五年之后技术会发展到何种地步,如何运用五年之后的整体技术架构去更好地服务于客户。这些思考看上去有点虚无缥缈,不切实际,但是在当前这个未来以来是社会和世界,多思考一步,多行动与实践一步,也就有机会多成长一步。大神级别的程序员,往往有着普通程序员所没有的知识维度、对技术的理解力与深度。
普通的程序员可以看到工程项目的当前一隅,大神级程序员不仅能够搞定当前的技术难题,提出更多的可复制的改进方法,更能够应对未来更多的难题,不断总结经验教训,将视野投注到宏观上。
如果说普通程序员活在过去,或者是活在当下,那么大神级别的程序员则是活在未来,不断思考未来的技术难题。
我们一直在问自己一个问题,五年之后技术会发展到何种地步,如何运用五年之后的整体技术架构去更好地服务于客户。这些思考看上去有点虚无缥缈,不切实际,但是在当前这个未来以来是社会和世界,多思考一步,多行动与实践一步,也就有机会多成长一步。大神级别的程序员,往往有着普通程序员所没有的知识维度、对技术的理解力与深度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先是找到第一份正式工作前的那个阶段,这阶段就是入门,但你再入门都代替不了一份实际的工作。
找到第一份正式工作,几年内主要是实现功能,修bug,做重构,把理论和实践充分结合起来,用各种工具,库和流程,积累经验,套路都懂了。
到某个时候你会发现市场上该接触的东西似乎都接触过了,套路已经满足不了你,你开始对这个技术栈有了自己的见解,搞出来的东西水平高了,能自信的选型,做出靠谱的架构来,设计流程,带带团队的人,这是所谓senior的阶段。每个人情况不同,一般这个过程需要5年以上的积累。
你不会成为大神的,大神是小白臆造出来的糖衣炮弹。行业内的真正大神不是从“前端“开始的,而是大厂里喜欢折腾编译器,设计模式,模式匹配,把functional programming当饭吃的那些人。他们的思路跟你的不在一个层次上。
你就是个专业程序员,这也没什么不好。有很多人是到不了这个层次的。
找到第一份正式工作,几年内主要是实现功能,修bug,做重构,把理论和实践充分结合起来,用各种工具,库和流程,积累经验,套路都懂了。
到某个时候你会发现市场上该接触的东西似乎都接触过了,套路已经满足不了你,你开始对这个技术栈有了自己的见解,搞出来的东西水平高了,能自信的选型,做出靠谱的架构来,设计流程,带带团队的人,这是所谓senior的阶段。每个人情况不同,一般这个过程需要5年以上的积累。
你不会成为大神的,大神是小白臆造出来的糖衣炮弹。行业内的真正大神不是从“前端“开始的,而是大厂里喜欢折腾编译器,设计模式,模式匹配,把functional programming当饭吃的那些人。他们的思路跟你的不在一个层次上。
你就是个专业程序员,这也没什么不好。有很多人是到不了这个层次的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询