前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么老程序员的效率如此高?编程速度快,Bug数量又少?

为什么老程序员的效率如此高?编程速度快,Bug数量又少?

作者头像
Android技术干货分享
发布2019-06-19 19:05:40
1.1K0
发布2019-06-19 19:05:40
举报
文章被收录于专栏:Android技术分享Android技术分享
为什么老程序员编程速度快,Bug数量少?

之前看到一位程序员讲到:2个月前公司有一个35+的老程序员入职,和项目主管一个年纪,但是还是干技术,基本没话,就是干自己的。公司暂时还没有让他挑大梁,观察了他2个月,发现那个老程序员手速不快,鼠标不快,码字不快,看他的代码,中规中矩也没有什么特别的地方,但是工作进度就是快很多。。。

我想说的是,老程序员不是APM比你高,也不是思维比你快(纯指反应速度)... 只是经验比你多...基本不埋雷而已...

这里以一个小故事向大家讲一下这种情况:

三个程序员被要求穿过一片田地,到达另一侧的房子。

菜鸟程序员目测了一下之间很短的距离,说:“不远!我只要十分钟。”

资深程序员看了一眼田地,想了一会,说:“我应该能在一天内过去。”菜鸟程序员很惊讶。

大神程序员看了一眼田地,说:“看起来要十分钟,但我觉得十五分钟应该够了。” 资深程序员冷笑了一声。

菜鸟程序员出发了,但只过了一会,地雷爆炸了,炸出了巨大的洞。这下他必须偏移预定的路线,原路返回,反复尝试穿过田地。最后他花了两天到达目的地,到的时候颤颤发抖,还受了伤。

资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。

大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。

“你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?”

“很简单,”他回答道,“我最初就没有埋地雷。”

不过其实踩坑是一方面,还有编码能力和意识:

注意代码分层、结构

新手写程序,都喜欢把代码全部写在一起,我个人认为这个是属于意识层面的,并需要太强的编程能力,通过看别人写的代码,还是能够明白如何去组织代码,拆分代码的。核心思想就是“尽量每一个变量名有意义,每一个函数名有意义,每一个函数只干一件事情”。

以早上起床上班为例子,新手版本喜欢这样:

代码语言:javascript
复制
import 7788的能力

function getUpAndGotoWork(){
   let i = 我;
   i闹钟醒了,去关掉闹钟;
   i赖床一下;
   i起床了;
   ....

   i去厕所,挤牙膏;
   i刷牙;
   i上厕所;
   i洗脸;
   ....

   i做早餐;
   i终于出门了.. 

   i上公车...
}

getUpAndGotoWork();

如果是老手,做法就是

代码语言:javascript
复制
function getup(i){
    ...
}

function fuckWC(i){
...
}

function fuckTheJob(i){
...
}

function Todo_Morning(){
    let i = 我;
    getup(i);//起床
    fuckWC(i);//上厕所
    fuckTheJob(i);//去上班        
}

Todo_Morning();

这一手漂亮的代码,是之后维护代码写单元测试定位Bug的关键!这很大程度取决了你的代码速度

其实呢,归结起来可以用一句话概括“用正确的方法做正确的事”。

除了这些,还有就是学习心态。。。

学习心态

  • 遇到新的东西或者问题,要去探一下究竟,搞明白原因;
  • 不要忽略基础知识,往往大的项目都离不开基础知识的铺垫,而每位老程序员都是掌握了非常扎实的基础知识的;
  • 找到适合自己的学习方法:关于学习方法的探讨很多很多,只是我们貌似从来没有在意过,另外,切记只有适合自己的才是最好的,成功的人有很多,但是他们的路你不一定走得了,去寻找属于自己的学习方法论吧!
  • 将知识体系化,做一个属于自己的体系化知识库;这样我们不仅会对我们学习的知识有个全面的了解,而且非常方便我们的复习巩固等!还可以让我们看到哪地方是自己的弱势,方便弥补!

这里以我自己举个例子,方便大家理解!

我在学习Android的时候会将自己学到知识都分类别的进行整理,将自己学到的知识体系化,例如我会分成如下类别:

这里再放上一些Android程序眼必备的基础知识点:(扎实的基础是非常重要的!)

Android应用是由Java语音进行开发的,SDK也是由Java语言编写的,所以我们要学习Java语言。另外,虽然说Kotlin语言也得到Android官方的热推,但是Kotlin也是编译成了Java语言在运行的。对于Android开发来说。只要SDK没有用Kotlin重写,那么Java语言都是需要学习的。而且Android apk的后台服务器程序大概率是Java语言构建,所以学习Java是一个必然。那么Java中那些东西是我们Android中比较相关的稍微比较难的Java基础几乎是一个门槛,像泛型丶多线程丶反射丶JVM丶JavaIO丶注解丶序列化等等

最后

不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知。懂的越多的时候你才会发现懂的越少。

在我学习的过程中,最开始是在网上找了很多资料,毕竟这些资料是我们开始最快速的学习方法,这里我放上我这些年在网上收集到的资料,然后再以我的工作经验给大家总结一下,让你们少走些弯路,提取一些目前互联网公司最主流的Android开发架构技术,希望能帮助到大家!

Android前沿技术

NDK模块开发

【小福利】

对于程序员来说,要学习的知识内容、技术有太多太多,这里就先放上一部分,其他的内容有机会在后面的文章向大家呈现出来,不过我自己所有的学习资料都整理成了一个文档,一直在不断学习中,如今整理的资料不知不觉居然已经有将近80G了,,,在这里作为读者福利免费分享给大家,希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

资料获取传送门:加群免费获取 Android架构设计大群(185873940)

群内有许多技术大牛,有任何问题,欢迎广大网友一起来交流,群内还不定期免费分享高阶Android学习视频资料和面试资料包~

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

Android架构师之路很漫长,一起共勉吧!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.06.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注意代码分层、结构
  • 学习心态
  • 最后
    • 【小福利】
      • 资料获取传送门:加群免费获取 Android架构设计大群(185873940)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档