HR:“最喜欢阿里出来的程序员了,技术又好又耐艹!” 我:???
面试造火箭,进厂拧螺丝?真的是这样吗?
缘起
估计不少同学都是被标题吸引进来的。事先声明,这句话不是我虚构的,而是我实实在在从同事的口中听到的,而且还不止一次。
当时的场景就是很正常的交谈,别人也并没有故意尖酸刻薄的成分,完全就是正常的谈天的口吻。所以我当时听到的时候还不觉有异,只是觉得很搞笑。但听的次数多了之后,慢慢地感觉有点不太对劲,总觉得这里面的意思好像不是那么好。就好像心仪已久的女神终于答应了你的追求,结果开口第一句就是我觉得你经济条件不错一样,听起来没问题,但是总觉得潜藏着点深意。
为什么大家会有这样的印象呢,技术好不难解释。毕竟阿里是大公司,对于员工的要求非常高,不仅要学历出众,而且要经过层层面试选拔,中间还有什么抗压、考察潜力、三观等环节。至于后半句,这与阿里的一些黑料有关。阿里毕竟是大公司,风吹草动往往总会引来关注。加上阿里这几年也不少黑料,什么拥抱变化啦,什么月饼事件啦,什么996福报啦等等。所以在外界看来,阿里幺蛾子不断,从里面出来的员工往往也有很多非人的遭遇,所以性格比较坚毅能忍。
但实际上想想就知道这里面逻辑站不住脚,阿里的员工足足十余万人,拥有离奇遭遇的毕竟还是少数。到这里,估计很多同学知道我要说什么了,我想说的就是一个刻板印象的问题。
刻板印象
说到刻板印象,我真的很想吐槽一句,人人都是双标怪,都不喜欢别人用标签看自己,但是却又喜欢疯狂给别人贴标签。
你看我随便就可以举出一点例子,说到做算法,第一反应就是卷,说到公务员就是喝茶看报,旱涝保收,说到互联网就是各种加班各种肝。说到清北上交,就是学霸中的战斗机……
但是对于这些比较良性的刻板印象,大家往往都察觉不到,完全没有意识到自己在贴标签或者是拿刻板印象看人。有的时候在尴尬之余还会拿刻板印象来作为谈资,你看我之前就是。
“你之前也在阿里待过么?”
“是的,待过两年。”
“阿里好啊,出来很受欢迎。很多公司都喜欢招阿里的。”
“这怎么说?”
“技术又好又耐艹。”
因为这些贴标签的语境总体上是良性的,所以大家往往不觉有异。但我们把语境换换马上很多人就会感到不适,比如当你犯了个小错误被上级抓到的时候。上级跟你念叨细节决定成败,粗心是做不好事情的。你心里肯定很不服,我不过就一次不小心被抓到而已,怎么就不看重细节,怎么就做不好事情了?要是严重一点还会觉得老板对自己有成见,看不起自己等等。
但实际上如果身份一换,如果是自己的合作方犯了一些低级错误,恨不得早就开喷了。
多思考,少结论
刻板印象这种东西并不止在人身上,事情上也一样存在。为什么网上很多键盘侠喜欢当喷子,主要原因就是在他们用标签看世界,所以总觉得眼中很多事情很简单,好像随随便便就能做好。
我之前在Android工程师成长的文章当中也提到过,一个人从小白往大牛上成长,往往都要经历过看山是山,看山不是山,看山还是山的过程。当自己很菜的时候,看什么都很高端,好像什么都不容易。有了一定积累,熟悉了环境之后又会很容易陷入另外一个极端,就是原来是自己夸大了,这些明明都很简单。尤其是那些有一定工作经验,但还不是很资深的人。他们手上的活已经很熟练了,以至于他们看不到自己欠缺和不足的地方。
这里面一个关键点在哪里呢,根据我的观察发现,很大一部分在下结论上。有些人往往很轻易就会下结论,一门技术熟悉了,以为自己都吃透了懂了。一些操作了解了,就觉得是这么回事,不往下深究了。这和给人贴标签其实是一样的,一旦标签贴好,一个浅层次的结论有了,人往往就不会继续往下钻研思考了。
在学技术方面尤其需要注意,我们需要经常停下来问一问自己,这究竟是为什么,里面的原理在哪里,千万不要随意下结论。
金字招牌
前几年阿里在校招的时候,打着的旗号就是叫“阿里大学”。把阿里巴巴这家企业比作了学校,我们进去不是为了赚钱,也不是为了打工,而是另外一个层面上的学习和深造。所以内网当中很多离职的小伙伴发帖都说自己不是离职,而称自己“毕业了”。
但你仔细想一下就会发现,除去企业宣传的目的和手段之外,还真的有那么几分道理。每年都有大量的工程师从BAT离职,进入各行各业大小公司当中继续发光发热,某种程度上来说互联网产业的发展所需要的大量人才正是这些大企业提供的。当你去面试,当你去找工作,你简历当中BAT的工作经历,就像是清华北大的文凭一样,不说100%面试通过,但至少可以给你争取来一个面试的机会,不至于倒在简历关。
今年我在申请新加坡国立大学的在职硕士的时候,就一直在犹豫。因为我想来想去,觉得对我的简历而言,这个文凭有和没有其实没多大区别。我以后要是跳槽,面试的职位一定不是靠文凭就可以争取得到的。既然如此,又何必费钱费力呢?虽然我最终还是决定继续申请,但我心里也清楚,我这么做只是为了学点东西,而不是真的指望它可以给我在职业发展上带来多大的帮助。
很多贩卖焦虑的人士一直在宣传35岁淘汰论,但我知道的几个35+从大公司出来的程序员,他们并没有被淘汰,依然混得不错。
大佬云集、资料丰富
当初我在阿里认识一个非常非常资深的前辈,他在阿里十来年了,但因为各种原因级别不是很高。我当时问他,既然你对现状如此不满,为什么不想着离开寻找更好的机会呢?
他沉思了片刻跟我说,他说我现在在这里虽然待着不顺心,但是我接触到的人都是非常优秀的。我遇到问题,还可以和你们讨论讨论。我如果出去了,我要是再遇到问题,可能连一个讨论的人都没有。
我当时听听只是觉得有道理,现在再回想起来,感受非常深刻。三观、格局、能力,能够进入大公司的,这三个方面一般都不会太差。别的不说,就拿个人能力而言,我出国以后见识了许多各种海外名校的同事,和当初阿里的同事相比说真的也不过如此。我也不知道是不是我的偏见,但就我感受下来,国外的工程师格局相对偏小。
除了优秀的同事之外,大公司里往往还有丰富的内部文档和资料。我当时在阿里内部看到了很多优秀的文章,也有很多优秀的技术沙龙和分享。现在想起来两年下来,也没有去过几次,文章和资料看得也不算多,现在想想颇为遗憾。别的不说,就拿推荐领域而言,近些年质量不错的论文往往都来源于大公司尤其是国内的大公司,以阿里、华为和头条为主。除了公开的论文,公司内部还有很多技术相关的资料和文档,这些真的可以说是有价无市,非常珍贵。
不断学习提升
我自己做Android开发已经是第六个年头了,毕业后两年,有幸加入到阿里这个大家庭。在阿里工作的几年里,见证了太多人的来来去去,印象很深一个同事,跳槽阿里薪资直接double,但也看到很多人镀着“大厂”的金四处碰壁,终究还是倒在了技术上!
以下分享一下我4年来具体的学习路线及笔记文档,希望能帮助到有心提升技术的朋友!
以下完整学习笔记PDF,点击这里免费下载获取!
- 架构师筑基必备技能
目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。
知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
- 设计思想解读开源框架
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。
所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
- 360°全方位性能调优
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
4、项目实战
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
- Android框架体系架构
Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析
- NDK模块开发(音视频系列)
NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。
在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。
本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习
- Flutter学习进阶
2019 年无疑是 Flutter 技术如火如荼发展的一年。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门
…
- 微信小程序开发
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
- Android相关源码解读
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
由于篇幅原因,如有需要以上完整学习笔记PDF,点击这里即可免费自取!
尾声
都说大公司是座围城,城外的想进去,城里的想出来。虽然很多人从城里出来了,但并不代表城里就不好,我觉得有机会还是很有必要去看一看的。
关于这点我想到了一个小故事,说是三国时期,恒温讨伐蜀汉,见到了一个曾经给诸葛亮服务过的小吏,此时已经一百余岁了。恒温就问他:今天治蜀有谁比得过诸葛亮吗?小吏从容回答说:“葛公在时,亦不觉异,自公殁后,不见其比。”意思是说孔明在时也不觉得有什么异常,但是等孔明去世了之后,才发现没有人能与他相比。
我觉得很多大公司也是一样的,我们身处其中的时候不觉有异,但我们离开之后才发现不见其比。
今天的文章就到这里,喜欢的话给个三连吧~