前言
面试offer虽然是拿到了,但是公司条件不太满意,路上要一个半小时,单双休,早上8:30上班,要求周一到岗。离住处近的公司,面试也没结果,早上打了公司的电话,拜托向相关人员询问一下结果,现在也没有答复。吃午饭的时候跟朋友聊天,我突然意识到我是不是应该回去了。
在上海四年,我始终觉得自己从来不属于这个城市,我对上海的了解只有自己住的出租屋,公司自己的工位,一个项目的几个同事,甚至有同学问我上海哪里好玩我都不知道。前些天我想申请失业保险,可申请页面清楚的告诉我,我没有上海户籍不能申领。
有时候会想,来上海这么久也没攒下多少钱,没多少长进,也没多认识几个朋友,就感觉很难过。周末的时候也只是在出租屋里睡觉打游戏,完全没有出门的欲望。有时候看着外面灿烂的阳光、谈天的老人、嬉戏的孩子、缤纷的桃花,也冲动地想下去看看。可当我走出房间,独自坐在公园的长椅上,看着来往的人,又觉得很冷清,过不了多久就又回到房间,然后打开直播,感觉增加了一个人的热闹。
我的胃现在糟糕透了,吃饭总是恶心干呕,周围的外卖点了个遍,也找不到一家合口味的,不是多油就是偏甜,饭也只是温温的似乎只是为了让你能快点填饱肚子。因为嫌垃圾分类太麻烦,也慢慢的学着做饭,做一个人的饭太费时了,慢慢的也没了动力。我这胃也是没救了。
好多次我想起湖南可能会有合胃口的饭菜,能一起出去玩的朋友,就很想回去,可又不知道为什么迟迟不想动身。或许这次疫情加失业也是一个契机,我也该好好想想了,我真的喜欢写代码吗?
程序员是要专精,还是要广度?
我想先撇开这个具体的问题,谈一谈一个程序员的技术发展和职业规划。
写代码这件事绝大多数人在喜爱的同时,更多的都是当做一个职业来做的,当然也确实有一部分人真的完全当做爱好,但是对于绝大多数人来说,编程更多的是职业发展道路上一个立身的手艺,在众多专业技术方向上挑了一个自己比较喜欢和热爱的。
程序员的发展和众多职位的发展一样,每个人都希望自己能够往"上"走:更专业,更能在职场上发挥自己的作用和影响力,从单兵作战做小事,到带队做大一点的事,再到影响一个领域,影响一个行业。
这样的发展单单靠自己各方面都懂,都有涉猎,恐怕是不行的。刚毕业的应届同学可以靠自己的知识储备做自己的标签,久经职场的同学必须靠自己在某些领域做出的成绩做自己的军功章。
所以我们越早在某些方向做出自己的成绩,对自己的成长和发展是越好的。
如何提升 Android 实力,突破能力瓶颈?
从架构基础开始,分了8个模块来逐步从基础进阶到架构师的环节:
接下来将分享面试的一个复习路线,如果你也在准备面试但是不知道怎么高效复习,可以参考一下我这些年总结出来的复习路线,有任何问题也欢迎一起互相交流,加油吧!有需要下面资料的小伙伴可以扫描下方二维码,自行领取。
架构师筑基语言基础
目前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学习进阶
2020 年无疑是 Flutter 技术如火如荼发展的一年。现在这门技术也依然非常有价值。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
知识要点: 1、Flutter跨平台开发概述 2、Windows中Flutter开发环境搭建 3、编写你的第一个Flutter APP 4、Flutter Dart语言系统入门** ……
微信小程序开发 微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点: 1、小程序概述及入门 2、小程序UI开发 3、API操作 4、购物商场项目实战
Android相关源码解读
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。
Android BAT高级开发面试题及答案解析
面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也总结了一套系统的面试题,帮助你举一反三:
以上内容均免费分享给大家,需要完整版的朋友,扫描下方CSDN官方二维码,免费领取。
技术之路就是漫长的打怪升级,不断学习前人的踩坑经验才能提升自己,切忌闭门造车。 不要给自己设限,设限永远会和焦虑绑定。永远学习永远初心,有机会就为自己拼搏一次!
|