为什么老程序员的效率如此高?编程速度快,Bug数量又少?
为什么老程序员编程速度快,Bug数量少?
之前看到一位程序员讲到:2个月前公司有一个35+的老程序员入职,和项目主管一个年纪,但是还是干技术,基本没话,就是干自己的。公司暂时还没有让他挑大梁,观察了他2个月,发现那个老程序员手速不快,鼠标不快,码字不快,看他的代码,中规中矩也没有什么特别的地方,但是工作进度就是快很多。。。
我想说的是,老程序员不是APM比你高,也不是思维比你快(纯指反应速度)...
只是经验比你多...基本不埋雷而已...
这里以一个小故事向大家讲一下这种情况:
三个程序员被要求穿过一片田地,到达另一侧的房子。
菜鸟程序员目测了一下之间很短的距离,说:“不远!我只要十分钟。”
资深程序员看了一眼田地,想了一会,说:“我应该能在一天内过去。”菜鸟程序员很惊讶。
大神程序员看了一眼田地,说:“看起来要十分钟,但我觉得十五分钟应该够了。” 资深程序员冷笑了一声。
菜鸟程序员出发了,但只过了一会,地雷爆炸了,炸出了巨大的洞。这下他必须偏移预定的路线,原路返回,反复尝试穿过田地。最后他花了两天到达目的地,到的时候颤颤发抖,还受了伤。
资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。
大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。
“你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?”
“很简单,”他回答道,“我最初就没有埋地雷。”
不过其实踩坑是一方面,还有编码能力和意识:
注意代码分层、结构
新手写程序,都喜欢把代码全部写在一起,我个人认为这个是属于意识层面的,并需要太强的编程能力,通过看别人写的代码,还是能够明白如何去组织代码,拆分代码的。核心思想就是“尽量每一个变量名有意义,每一个函数名有意义,每一个函数只干一件事情”。
以早上起床上班为例子,新手版本喜欢这样:
import 7788的能力function getUpAndGotoWork(){let i = 我;i闹钟醒了,去关掉闹钟;i赖床一下;i起床了;....i去厕所,挤牙膏;i刷牙;i上厕所;i洗脸;....i做早餐;i终于出门了.. i上公车...
}getUpAndGotoWork();
如果是老手,做法就是
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架构师之路很漫长,一起共勉吧!
如果你觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。
为什么老程序员的效率如此高?编程速度快,Bug数量又少?相关推荐
- 为什么老程序员的效率如此高?编程速度快,Bug数量又少
大神程序员出发之后径直穿过了田地,十分果断.他只用了十分钟就到了另一边. "你是怎么做到的?"另外两个人问道,"那些地雷怎么没有伤到你?" "很简单, ...
- 一位Python老程序员,给Python初学者的建议,希望你们少走弯路!
Python要学多久可以学会,达到精通呢? 任何知识都是基础入门比较快,达到通晓的程序是需求时日的,这是一个逐渐激烈的进程. 通晓任何一门编程语言,都需求通过大量的实践来积累经验,解决遇到的各种疑难问 ...
- 程序员为什么老得快_中国程序员工资为什么那么高?老程序员:淘汰速度快,入行成本大...
在中国,程序员的行业平均工资比一般的传统行业的工资都高,大多数传统行业有自己的职业天花板,不是职位晋升困难,就是工资水平有自己的天花板.而在互联网行业,程序员这个职业这种现象就不是很明显,月薪上万是普 ...
- 老程序员都去哪儿了?
摆在老程序员们面前有三条路,一是转行,二是继续钻研成为技术大牛,三是转型为管理人员. 我最近采访了十五位30岁以上的老程序员们,在此我想发表下我的观点. 网络上总有这类观点-- 「如果所有的技术都想着 ...
- 一个老程序员的心里话(转载)
1.希特勒地堡与cih病毒 99年4月,我来到北京参加研究生复试.复试完了之后就不回去了,我拿着一张光盘,里面刻着我用vb和authorware3.5编的一个cool 3d的教学软件,到处参加招聘会, ...
- 码龄超过20年,依然对生活和编程充满激情,这是三位70后“老”程序员的故事
大数据文摘出品 作者:周素云.张秋玥 加班996,生病ICU. 这是一句最近搅乱了很多程序员平静生活,也让所有的"社畜"认真反思人生的话题.但是,让程序员们真正感到焦虑的其实并不只 ...
- 一位40岁“老程序员”的经历,给你们说一些我的真实想法!
作者 | Ben Northrop 来源 |InfoQ 翻译 | 核子可乐 策划 | Tina 算法.应用程序安全.性能优化以及架构等等,这些东西衰减速度很慢,更值得认真钻研. 我是个程序员,差不多四 ...
- BAT老程序员分享:Linux C/C++ 开发程序员的黄金方向和学习路线!
目前从事 Linux C/C++ 开发的程序员很多,尤其是像百度.腾讯.阿里这样的大公司,他们的网站流量巨大,业务逻辑复杂,会遇到很多瓶颈,需要开发底层服务来提高程序效率,快速响应用户请求. 这些公司 ...
- 一名老程序员的一点感悟给未来的程序员
作 为一个技术不是大牛事业也不是很成功的老程序员,我觉着还是要写一些什么,来给未来的程序员们讲述一个过来人的感悟吧. 最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平 ...
最新文章
- 首届“AIIA杯”人工智能巡回赛起航,5大赛区邀你来战
- Python-函数和代码复用
- 这是一场数学、数学、数学的盛会
- 深入理解jvm jdk1,7(1)
- 【操作基本数据类型的流】
- iTextSharp操作PDF
- google地图距离算法,如何计算谷歌地图中两点之间的距离?
- java运行环境配置_配置java开发运行环境的步骤
- 关系数据库(范式判断、函数依赖、无损分解、正则覆盖)
- 银河麒麟V10下载安装使用体验(上)
- 计算机老师教育感言,66句震撼人心的老师教育感言
- java学习第一步-工欲善其事必先利其器
- 四、Mosquitto 高级应用之用户配置
- UE4入门实例13(制作外发光材质及TwoSidedSign、VertexNormalWS节点)
- 考研英语复习五大计划表
- Ryujinx - 基于 C# 开发的任天堂 Switch 模拟器
- 你想要的样子 我都有
- JVM_06 运行时数据区3-方法区
- 华为虚拟防火墙互通和访问外网
- 计算机科学与技术没落,这七所985一个A+学科都没有评上?有点尴尬了
热门文章
- 以铜为镜,正衣冠,以史为镜,明心志,以人为镜,明得失
- 快速开始keras 教程
- keras教程-静态图编程框架keras-学习心得以及知识点总结
- 消息中间件 - ActiveMQ高级特性和用法-Mirrored Queue 镜像队列(了解即可)(十)
- 【HTML】设置页面字体
- 服务器的丢包率一般与什么有关
- # 技术栈知识点巩固——Js
- java lint_提高你的代码稳定性与可读性-lint工具
- WZOI-285叠方块游戏
- java奈奈老师2_【图片】奥尔三X作【新任女教师奈奈、同居俏佳人、同居俏女仆】攻略&结局【javagame吧】_百度贴吧...