首页 > 招生问答 > 正文

程序员中菜鸟和高手的差别差在哪里?

来源:邯郸北大青鸟

很多人可能以为只要能把这个功能实现了就算是高手,实现的功能和需求越多就证明你越厉害,其实这个是错误的想法。现在的需求基本上都是一些常规普通的需求,一般依靠着搜索引擎都能够写出来。那么高手和菜鸟的区别到底在哪里呢?我可以从以下几个方面来谈谈。

代码的规范

高手和菜鸟的第一个区别就是在于代码编写的规范。高手写代码可以说是行云流水,有一种写诗一般的感觉。同样的一个功能,高手可以用最优最少复杂度来实现,而菜鸟一般是拖泥带水,运行起来对电脑或者手机的性能消耗十分大。这样也就导致了菜鸟写的代码运行起来非常的慢或者卡顿,有时候还会内存泄露,而高手写的代码运行起来可以说是十分的流畅。

Bug数量

高手和菜鸟的第二个区别在于代码的bug数量。我们知道bug是不可能避免的,但是高手写的代码可以说有足够的容错空间,遇到错误要么会给出提示,要么会做一些别的处理。举个简单的例子,假设一段代码运行在手机上,遇到了一个未知的错误,菜鸟写的代码完全就没有对未知情况做任何处理,程序直接奔溃,但是高手可以说对一些突发状况做了预备处理,导致出现了这些未知情况的时候程序仍然能够有一些应急代码可以运行,程序不至于出现奔溃的问题。

代码的扩展性和封装性强

高手写的代码对于同样的功能一般都会做好很好的封装处理,这样在很多地方使用同样功能代码的时候不用再重复去写一样的代码了,而修改这个功能也只需要修改一处即可,省时省力效果还好。而菜鸟的话同样的代码反复写,导致很多项目代码臃肿,重复的地方到处都是,后期修改起来十分不方便。而高手写的代码对于后期进行迭代更新有很好的延展性,代码的耦合度很低,可以随时在上面加东西,并且不影响前面的功能。而菜鸟在这方面就显的很弱,往往修改了一个地方的错误,另外一个地方又出现问题,耦合度太高,关联性太强了,导致往往是牵一发而动全身,后期代码十分臃肿根本难以维护扩展。

学习的态度

真正牛逼的人物永远不会趾高气昂,他们的架子往往会放的很低,乐于分享自己的技术,经常将自己的项目或者一些好用的功能开源分享给别人去用,而且永远保持着一颗谦虚学习的心去学习。而菜鸟往往是会写一点功能就趾高气昂,一副吊炸天的样子,结果太难的功能又不会,简单的又看不上,最后只能靠装逼混日子。

很多小白程序员,刚刚踏入社会还是个职场菜鸟,在这条路上走过很多弯路。这条路,或许迷茫过,也放弃过,但最后还是找到了一条属于自己的路。

一、主要问题

1、没有编程思想

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

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

2、没有学习路线

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

3、不会用Git

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

4、命名不规范

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

5、结构不规范

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

6、不知道如何解决BUG

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

7、不会用搜索引擎

遇到问题去百度一下是很明智的,但是如果不看报错的信息盲目的去百度,搜索的结果也只是浪费自己的时间。如果盲目去尝试搜索到的解决方案,只会让瞎子变成瘸子。针对这个,大家可以报错以后看报错日志的最后一行,往往报错最后一行就是错误的原因。一般都是英文的,但是并不复杂,往往都是几个单词来说明问题,然后指向一个错误产生的代码位置。先看报错原因,自己思考以后大概明白是什么原因,不要上来就去拿着最后一行百度。

如果拥有科学上网的能力,可以使用谷歌来进行搜索,效率更高,答案更准确。

在线留言

不知道报什么专业? 马上咨询 返回顶部

电话咨询 点击咨询