你一个大学逃课睡觉的混子,是怎么混到年薪150w的技术总监的?

前车之鉴,大学期间一定要好好玩,好好睡,千万不要把一分钟的时间花在学习上。不然出去工作之后,就很难遭到社会的毒打,还怎么成就咸鱼翻身的励志爽文!(此处手动狗头)

前几天照例跟一个下属聊天,刚刚毕业的校招生,进入公司还没3个月。当问到她对自己未来规划的时候,能明显看到她略显迟疑,露出尴尬的表情,然后吞吞吐吐的冒出几句话:“我也不知道, 只想把当下的每件事都做好,完成领导安排的任务,然后再看吧”。

能够感受到她对自己未来很迷惘,甚至根本没有想过自己路要怎么走,更显然没有规划过自己的未来。可是,转念一想我何尝不是这样一步步走过来,我太能理解他们的这种无助感。

看见她,有一种时光倒流的感觉,他们身上有自己的影子。突然想起了我当年在大学中的整夜宿舍游戏的潇洒;想起了冬天早上逃课睡觉,和老师们斗智斗勇签到,惊心动魄的经历;想起来了自己意识到一无所长时,奋战考研,但又经不住游戏诱惑,书本一周只翻一页的堕落学习;想起了毕业时无处可去时,一个人在只有4平方出租屋里默默流泪,痛下决心,努力学习,提升能力的奋斗

回顾自己毕业到现在,也差不多7年时间了。一路走来,有过兴奋,有过困难,有过伤心,感受百味经历,我想这才是人生吧。

每经历一次困难,都会成长一次,总结毕业后的7年,也是自己成长的7年,下面8点建议,希望对刚刚毕业的你们有所启发。

一、提升专业技术能力

专业能力是职业生涯的起点,比较容易意识到的。如果把事业比做造房子,那专业能力就是房子的地基了,是起点也是基础。

以我自己的作为反面例子,大学里为了打游戏将专业课抛在脑后,有句话说的好 “出来混,迟早是要还的” 。果然在毕业后,为了填大学里埋下的坑,老老实实的重新把大学专业课在半年内全部看了一遍,在工作中还把课后的练习题全部操作了一遍。所以大家千万不要向我学习。

有同学就会问了,“既然专业技术能力这么重要,那应该怎样提升?”,那下面我分享下我自己的学习方法。

1.循序渐进

专业技能方面分为:基础篇、提高篇;学习也需要循序渐进,切不可一口吃个大胖子,容易消化不了。先从基础的知识开始,例如:计算机网络(打好网络基础);计算机语言相关书籍(打好计算机语言这门工具基础);《深入理解计算机系统》(这本书强烈推荐,可以带你畅游计算机系统架构。涉及程序的机器码、汇编,处理器体系结构,存储器结构,系统IO,网络编程,并发编程,以及程序性能的优化);数据结构与算法(程序的本质就是数据结构+算法)等等。

基础知识已经熟练掌握之后,可以去试着提高技术能力,例如试着去掌握设计模式、架构设计、底层系统原理、性能调优、高级调试技术等等。

学习途径可以通过:书籍、网络资源、技术大牛、技术沙龙等等。如果有技术大牛能带着你,可以少走很多弯路,尽量多跟技术大牛交流,相信我,可以学到很多。

2.以点带面

这种方式,是我非常推荐的一种学习方式。

工作中,往往只需要集中全力解决一点或几点问题就可以了。但这些点背后一定有一个较完整和深入的知识结构。所以,工作做完后,还需要继续学习背后的知识结构。**以网络编程为例,15年时候做了一个工具,设备发现的工具,利用的udp多播的技术,很快就顺利的开发完了。但是学习还刚刚开始,里面有很多可以深挖的技术,从udp扩展开,可以延伸到网络技术的各个角落,从用户态到内核态,从API到具体实现方法,从数据结构到算法,这是一套完整的知识体系。**所以,我觉得不管读者是在开发自己的产品也好,还是在修改bug也好,一定要努力从工作中提炼、积累出一个完整的知识框架。

这个方法说起来简单,做起来还是有点困难。因为它要求工作之后还得投入大量时间学习,把知识点串成面。而且,学这些知识的好处一时半会很难体现,需要耐心。

知识就像财富,是需要慢慢积累的。

3.重实践

“明明认识这个字,但是就是写不出来”,我相信每个人都遇到过。专业技能和写字是一样的。往往有时候觉得自己掌握了,但是表达不出来或者写不出来。举个例子:排序算法中的堆排序算法,很多人原理是知道的,但是要通过代码表达出来,不是所有人都能写出来的。

二、珍惜时间

时间就是生命,这是大家常常挂在嘴边的话,但是是否真的付诸行动,珍惜时间了吗?我觉得珍惜时间做到适度的“减少”和“增加”。少刷电视剧,没营养;少打游戏,少刷抖音、快手、小红书。多看书、多学习、多锻炼身体。

时间管理,道理大家都懂,但是做起来是非常难。

根据四象限法则,我们将事项分为4个类型,各自在不同的象限。**紧急又重要事项、重要但不紧急事项、紧急但不重要事项、不紧急也不重要事项。正确的做法是将焦点放在重要但不紧急事项上。**第四象限的事件大多是些琐碎的杂事,没有时间的紧迫性,没有任何的重要性,这种事件与时间的结合纯粹是在扼杀时间,是在浪费生命。

四象限法则示意图

三、提升认知

你所赚的每一分钱,都是你对这个世界认知的变现,你所亏的每一分钱,都是因为对这个世界认知有缺陷, 这个社会最大的公平就在于:当一个人的财富大于自己认知的时候,这个社会有100方法收割你,直到让你的认知和财富相匹配为止。可见提升认知是多么重要。

低级认知能力:识记,理解,应用。 例如面对一条你熟悉的数学公式,你知道这条公式是代表什么,同时也能够理解这条公式是针对什么情况去应用,而你确实能够应用出来。

我们大部分人,都能够掌握这种低级认知能力,帮助我们很好地生活。否则你连出门买菜都不会了,就太不正常了

高级认知能力:分析,评判,创造。 例如我们面对某件事情,我们能够把一些看似凌乱的知识点归纳总结起来,找出背后的核心原因。

通过深度分析,运用批判性思维,对其进行审视。最后在这个基础上,创造出属于自己的东西,诸如理论、方法论等等。

那问题来了,怎样提升自己认知能力呢?

其实老祖宗已经早就告诉我们了:三招:读万卷书,行万里路,阅人无数

读万卷书的理解是: 扩展自己的知识面、知识边界;广泛的涉略其他领域的知识。
行万里路的理解是: 多出去走一走,感受不同区域的风土人情、人文景观。
阅人无数的意思是: 多和不同领域的同事或者同学交流,了解不同领域的知识,提升自己知识储备。

四、勤总结

每一次的总结都是自己对过往工作的复盘,在复盘中,会把事情的经过理一遍,理清楚计划和目标是什么、中间的过程怎么做到的,或者中间出了什么问题,为什么没有做到,理一遍后,下一次再做的时候就能吸取这次的经验,成功的继续发扬,失败的以防再犯。

一句话,总结是进步的阶梯。

五、多看书

为什么书籍这么重要?为什么我推荐大家多看书,看好书?因为书籍对我们人类来说太重要了。书籍是人类知识的沉淀,中华上下五千年历史都记载在书籍中。书中汇集了作者的思想、见解或想表达的情感,这些都是成体系的。看书的过程就是融合和消化的过程,能很好的帮助自己形成独立的见解。近两年炒的火热的碎片文知识,在我看来只是泡沫知识。

举个例子:如果你要学习c++,那么最重要的学习途径的不是网络文章、不是几个简单培训视频,而是一本专业的c++书籍。

六、找到人生理想

在刚刚毕业时,大部分人还不知道自己目标是什么?擅长什么?但是人生理想不能没有,就像黑夜中大海上的灯塔,如果没有了他,人生这条大船只能随波逐流。

在文章的最开始,那个例子就是典型,包括我自己毕业时的状态也是。感谢残酷的社会,让我认识到竞争的残酷。毕业之际找工作处处碰壁,心灰意冷的我,我静下心想了一个星期,确定了自己的人生目标。为了实现人生目标,我给自己设定了几个小目标:3年、5年、10年目标。

我先去了一家创业公司,是做智能机器人,带队的是浙大航天学院的一个副教授,擅长机器视觉。这是我实现目标过程中的选择,我到现在都觉得是一个正确的选择,也感谢当时给我机会。这里的氛围是科研氛围,感觉能够学到东西(虽然工资很低,但是当时没有考虑薪资方面,有自知之明,管饱就行)。然后就是每日每夜的看书,弥补自己的大学欠下的债。晚上9点下班,骑车回家,洗漱好,10点钟看书到12点睡觉。早上7点起床,看书到9点,骑车上班。甚至不放过吃饭时间——边吃饭边看书,这样的状态一直持续了3年。现在的我正在实现10年目标路上。

我还记得毕业时,班主任在我离线时,对我说了一句话,至今还记忆犹新,送给你们**“什么时候努力都不晚”。**

七、突破舒适区

很多人工作久了,就会进入了一种安逸的状态。每天按照既定的时间到公司,维护着自己非常熟悉的模块,吃着已经顺口的饭菜,顺便带薪拉屎,这种安逸生活让人陶醉。大家都知道温水煮青蛙的故事,可此时不就是温水中的青蛙吗?

那怎样突破自己的舒适区?

1.设立高标准

随着社会的发展,技术也在日新月异。逆水行舟不进则退。时刻保持危机感,设立高标准,严格要求自己。经过多年的总结,形成了一个方法,我称之为:n+1。n代表你要完成的任务,1代表你需要做的突破。

举个例子:领导有一个功能需要开发,你需要交付的成果物不简简单单将功能开发完成。而是将此功能开发完成,并且要考虑到程序的稳定性、健壮性、兼容性、扩展性、可维护性,追求极致,严格要求交付成果物的质量。

2.责任突破

很多人存在着抱怨不给机会,一直做没有任何难度的事情。事实真的是这样吗?领导永远是把困难给到有能力且有担当的人身上,你应该逆向思维,反思自己。

勇于承担责任,承担困难任务,不要当缩头乌龟。当你学会了走路,就要想学着跑步,当你学会了跑步,就要想着到水里,学着游泳。

3.养成学习思考的习惯

长时间处于舒适区会让我们大大减缓进步的速度甚至停止进步,进入一个故步自封饱和的状态。然而,月盈则亏,水满则溢,我们需要时刻空杯

八、如何学习,学习什么

上面7个建议,是我工作这么多年下总结的经验,希望能够帮助到大家。刚毕业的你们还很年轻,你们最大的财富就是年轻。不要怕犯错,但不可重复犯错。我自己已经从业7年了,从毕业就一直是做Android开发相关的工作,现在也算是功夫不负有心人,做到了公司Android这块负责人的位置。在上面7点给大家分享了一些学习方法和技巧,最后这一点呢,就再给同样是有做Android开发相关工作的小伙伴,分享一套我这些年来整理的具体的进阶学习笔记,希望能对你有所帮助!

  • 架构师筑基必备技能

目前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终端内存优化实践

360°全方位性能调优

  • Android框架体系架构

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析

Android框架体系架构

  • 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、机器学习

NDK模块开发

  • Flutter学习进阶

2019 年无疑是 Flutter 技术如火如荼发展的一年。

每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。

本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门

Flutter学习

  • 微信小程序开发

微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。

本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战

微信小程序开发

  • Android相关源码解读
    只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

Android相关源码解读
Android相关源码解读部分内容

由于篇幅原因,以上完整学习笔记pdf如有需要,请体谅下码字不易,可以 点赞+评论 支持下我,然后点击这里免费自取

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页