晚上吃饭的时候,发现园区的栀子花已经开了,又是一年毕业季悄然来临,不禁感叹时间过的真快呀。算算日子,从毕业到现在已经5个年头了,这一路走来都是在从事Android开发相关工作,着实不易,想和大家分享我的故事。分享这一路走来的点点滴滴与心路历程。或许在如此寒冷的冬季,大家能相偎取暖。

对于所有从事IT事业的工作者来说,选择这个行业的原因有千千万。而我,很幸运的就与计算机早早的结缘了。

一切都应该从小学说起,小学二年纪的时候,学校开设了微机课(也就是计算机课程),而最吸引我的就是电脑中的超级玛丽。作为一个天真烂漫的小男孩。被游戏吸引而喜欢电脑,合情合理吧。

后来,在其他小学的家长们都把自己的孩子送去少年宫学奥数,学钢琴等其他特长时,我却吵着闹着要让母亲给我报电脑的培训班。也就那时我了解了计算机的基本常识,学会了用五笔打字,学会了ppt,学会了word。到现在,我也非常感谢我的母亲,在那个年代,能让我去学习我喜欢的东西是一件非常开明与可贵的事,而不是因为一句耽误学习被扼杀。当然我也不负众望,从小到大唯一得到的奖状,全有关于计算机。这里本来想和大家一起分享,但是搬过几次家后,这些奖状都遗失了,真的是非常遗憾与可惜。

读到现在,很可能大家会觉得,又是一个优越狗,在晒自己的辉煌成就与亮眼的经历。但好像我并没有像大家觉得那样,我只是一个高考失利后的普通人。因为痛哭流涕,感受过痛苦,所以才会有洗心革面

因为喜欢计算机,进入大学后,所以选择了计算机专业,和其他的计算机专业的学生一样,我也被那些专业知识折磨的死去活来,数据结构中的什么冒泡排序,什么栈与队列。什么二叉树,c++中的指针,什么面向对象,操作系统中的死锁,进程调度。数据库中的sql语句….

在编程方面,我也没有特别好的学习方法与技巧,我一直都采用的笨方法,我坚信书读百遍,其义自现的道理。所以对于我无法理解的知识,我总是将书看了一遍又一遍,习题中的代码敲了一遍又一遍。

下图就是我学习Java与Android时期的项目截图:

回顾整个大学,我也不知道自己敲了多少行代码,只是单纯的凭着自己的计算机的热爱与坚持。

有可能,给大家一种错觉,感觉我也是特别乖巧爱学习的孩子,可是好像我的自制力还是比较差,我也玩游戏,我也玩英雄联盟。玩上瘾的时候也没日没夜。虽然工作之后会后悔自己浪费时间的行为。但是仍然怀念寝室一起开黑的日子。哎,工作之后,很难在有一群人再聚在一起,简简单单的玩游戏了。

2016年,我开始准备实习。即将踏入社会生活的我,第一次感受到了学历和大学的重要性。一线的科技公司校招都是在名校,就算是普通的中小型公司,一个岗位,有可能是10个人,甚至是20多个人参与竞争!所以只有吃了亏,才知道有些事情的重要性。

所以这里由衷的建议,计算机专业的同胞兄弟姐妹们:

如果打算以后从事这方面的工作,请务必学好你的专业知识,多做项目,如果有想法考研的,想出国深造的,只要在家庭条件允许的情况下,那么一定要行动起来。学历这个东西,虽然不一定给你带来很好的收入,但是肯定给你提供一些不错的机会与人脉。

如果本科又是非985,211大学(本人并非将人分为三六九等,只是社会现实却是如此,作为一个企业,它只有通过这个来筛选他认为优秀的员工)️又不是什么富二代、官二代、星二代,那我们需要更加努力,以后的生活,除了父母亲以及要好的朋友能帮你之外,需要我们独立的去面对社会与生活。

当然说到这里,我也希望家长们也不要给我们灌输,初中要好好学习,考个好高中;高中要好好学习,考个好大学;然后考上了大学的这种思想了,那么大学之后呢?就没有了!没有了!what???在这种观念下成长的孩子,完全没有了思想,根本不知道以后要从事什么行业,到了大学就完全的释放了自己,如脱缰野马,拉都拉不住。

我就不多说什么了,可能只有自己经历过了,才会懂吧。

在2016年4月1日愚人节,那天我收到了人生中第一家公司的邀请, 上班时间为996,工资并不高,2k。但是对于当时的自己,有公司要自己都觉得是非常幸运的,我非常珍惜与感恩。就这样我踏出了职业生涯的第一步。

这一年,我也曾纠结过为什么需要在主线程更新ui。我也挣扎于handler机制,为事件机制抓耳挠腮,也为自定义view困扰过….每当遇见这些问题,经常鏖战到半夜。

这一年,我也特别幸运,遇见了我人生中第一个师傅,随时随地只要有问题请教他。他总能给及时给我解惑。对与他,我心存感激。

这一年,我疯狂的看书,《Android开发艺术探索》、《Android 设计模式》、《CleanCode》、《Thinking in Java》这些书籍都被我读了几遍。

这一年,终于能用自己挣的钱,给自己的家人买一些东西。

也许,天降大任于斯人也,必先苦其心志,饿其体肤,9个月后。公司️因为资产问题,面临倒闭。没有办法,自己又再次踏上了寻找工作的道路。最终,找到了我现在所在的公司。虽然在新的公司中,还算顺风顺水,但️内心却极其浮躁。

有可能是我听到了某个我认为怎么样的同学,混的风生水起,有可能是我听到了某个同事又喜提某款车,有可能是看见了某个同事又换了最新款的苹果手机。又有可能是自己讨厌的那个人,混的比自己好。虽然这是别人的生活,虽然这一切都与我无关,但是还是会忍不住去怀疑自己,怀疑自己所做的一切。

尤其是加班过后,独自一个人走在回家的路上。这种感觉尤为强烈。看着身边的高楼大厦。看着穿行的车流。想想自己的工资。哎~~

内心迫切与焦虑的我,为了缓解自己焦虑,我迫切的在网络上,搜索所有让我内心感到安慰的文章,《Android 2年怎么月入两万?》、《如何在5年之内赚够500万?》、《28岁之前怎么达到财务自由?》、《怎么从Android 菜鸟到大神?》….这些类似的文章我都看过。

我一度认为学习他人的方法,找到他人的成功窍门,复制别人所走多路,就能让自己和别人一样。但是后来证明,这一切都只是自己的臆想。

我也头脑发热,想走捷径,去花几千大洋去买彩票,去博那几百万万分之一的概率。幻想着一夜暴富。可最后不仅一个屁都不冒,一段时间内还让自己生活更拮据起来。

还好,最后我清醒了起来。我渐渐的意识到,人生是没有捷径的,所有的路,所有的坎,都需要一步一步的走,没有谁能一步登天。吃的苦中苦,方位人上人。

感谢那段日子,让我重新认识了自己,看清了自己,也看清了以后的路

2018年,经过上年的痛苦挣扎之后,我开始更加坚定自己的目标与希望。

这一年,我开始写博客,我开始记录自己的学习经历,我开始做自己的开源项目。我希望通过自己的努力,去我自己想去的公司。我想去大厂。我想去认识更多厉害的程序猿

我也不用管这一年是否是互联网寒冬,我也不管各大科技公司是否裁员。我并不焦虑,我也并不迷惘。因为我知道安安心心写自己的代码,学习自己想学的技术,才是不被社会淘汰的条件。焦虑,迷惘,担心。这一切的一切都没有任何作用。

该来的都回来,该有的都会有。年轻人不要太着急,不忘初心,心怀感恩

然后也整理出了一套进阶的学习路线与资料,希望分享出来和大家一起学习成长,一起共勉!

  • 架构师筑基必备技能

目前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如有需要,可以 点赞+评论 支持下我,然后点击这里免费自取!

更多推荐

现实点!做程序员没有好学历真的会低人一等!