说我装13?过来,打屎你!(揭秘程序员装13面具),赶紧收藏备战金三银四

108 阅读7分钟

写代码离不开各种编程工具,有众多工具供选择便有花样的喜好,对装13的程序员来说,是坚决要抵制IDE的,IDE臃肿缓慢,一定是要用vim加编译器的组合。vim和emacs就代表高端,用IDE就是low。我不否认很多大牛使用vim,但也有不少写不出好的程序还要用vim装的,很多明明用起来很吃力,操作不熟练,好像非要用vim才能写出优秀代码一样。

用vim配合各种快捷键、扩展觉得顺手,加上vimer本身优越感,其他的编辑器一如 emacs 和 notepad++ 之流就是渣,深爱一种编辑器便唾弃其他的,即便是口上不说,在黑客马拉松上看到别人在用什么 UltraEdit 写代码,内心也会鄙夷一番,顿生自己很牛X的幻觉。

还有自认为Mac写出来的代码比Windows写出来的优秀,去咖啡馆看一看,拿Mac的就两种人,不疼不痒的文艺小青年和自以为是乔布斯的码农。

机械键盘是每一个码工的必备!

听说写代码很牛的工程师都用Happy Hacking Keyboard,在好不容易挣了点钱之后,狠下心花了2k多买了个HHKB键盘,还必须得是无刻字版。看着清一色没有任何字母的键盘,一想到也用上了这么高端的键盘,好像技术能力也飙升了一样。技能不怎么样,装备是不能落下的。

鼠标的发明让用户使用电脑的门槛降低了很多,图形化的界面加上自由移动的鼠标点击方便了操作。在程序员眼里并不是这样的,鼠标对他们来说就是累赘,它是效率的杀手。一定要用各种指令,所有的操作都在键盘上狂敲,这样才能体现出技术水准。

对于某些崇尚开源文化的程序员来说,只有开源的软件才能让他们兴奋,不开源的软件都是受到异样的眼神看待。甚至在他们眼中,是不能理解为什么会有人写出这么烂的Windows 。他们恨不得所有的软件都是开源的,这样就可以更多的复制那些优秀的代码,而那些自己写的程序则是不希望让外人看到源代码,大多是因为自己代码写的太烂。

不加班的程序员不是好程序员,他们经常以自己在深夜编程为荣,甚至宣称在深夜开发才有灵感。最好还要在半夜发条状态:每天看着星光回家感受特别充实之类的。实际上的原因很简单:碌碌无为的白天引发的愧疚心。

某些自身的需求,比如在豆瓣租房小组里找房,一般人浏览一下小组内容,就可以获得自己需要的信息。程序员们一定要用高大上的方法,要写个脚本,抓一下数据,然后再根据自己的需求关键字检索一下,否则不足以凸显程序员的独特技能。

写脚本成为程序员的职业病

对于产品的升级,增加新的功能,程序员们会以工程难度大、很难实现为理由,抵触做一些改进,如优化之类的。已经做好的工作不想改动,那么背后真实的原因是什么呢?往往是之前写的代码太烂了,不愿意回首再读,设计之初没有考虑扩展性。他们甚至宁愿重新写,也不愿再改动代码。

在一些上司不太懂技术的公司里,一个项目分配下来之后,程序员会用各种专业的技术语言来跟上司沟通,用上司听不懂的重构、迭代等术语来“阻止”这个项目,实际上不就是为了给自己多争取点项目时间。

程序员的世界里,是恨不得所有的电脑都和他的一样。用最后一点耐心完成某个项目的代码后,提心吊胆的在自己的电脑上运行没有问题了,提交上去之后,服务器怎么就跑不动了。在我这运行没有问题的程序,为什么在你这边就出现问题了,一定是你的电脑配置有问题。反复问清楚你的情况之后,确定这不是你的问题,才承认是自己程序的bug。

读代码的和写代码的是上辈子的冤家

本来能10行能解决的程序,一些程序员一定要把它拆开,一层一层的用设计模式去做,不断的面向对象的包装,包装的一层一层又一层,码出来100多行代码,这样他们才感到高兴。虽然不会太影响执行效果,但代码让人无法看,于是下面每一个读代码的程序员都会觉得上一个写代码的是傻X。

最后

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;

我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 PDF(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

Java语言与原理; 大厂,小厂。Android面试先看你熟不熟悉Java语言

高级UI与自定义view; 自定义view,Android开发的基本功。

性能调优; 数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。

NDK开发; 未来的方向,高薪必会。

前沿技术; 组件化,热升级,热修复,框架设计

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,GitHub可见;《Android架构视频+学习笔记》

当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

不出半年,你就能看出变化!