在 Reddit 有一则关于程序员职业生涯问题的帖子很火:
在这篇帖子的评论中,许多“高龄”程序员分享了自己的故事和经历,或是根据自己的实验提供了一些职业发展建议。
@dhjdhj:
@kintotal:
其实从两位资深程序员的经验中,可以看出:程序员的职业生涯发展无关外在条件因素,年龄只是一个数字。
Stack Overflow于曾对全球的66,329名专业开发人员进行了调查。通过过50,705份调查结果发现一组数据:年龄在55~64岁之间的软件开发人员的数量,从2011年的87,000(8.3%)增至2019年的195,000(10.7%)。
这说明了什么?年龄并不会影响程序员的职业发展,反而随着时代的发展,一些具有老资历,且不愿意不断学习新技术的技术人,会越来越受企业乃至行业的欢迎。
那么究竟什么样的程序员会越老越吃香呢?
1、熟练运用营开发工具
我在学校的时候,一直在用 Eclipse 这个编辑器来写代码,基本的操作我也都会了,但是有一点就是 Eclipse 有点卡,而且动不动就卡,一言不合就卡。不过用习惯了,就懒得换了。
工作了后,我同事在用 IDEA,我也用了,两个一对比也是天壤之别,我就不说开发效率了,无疑是提升了好几倍,最起码不卡顿。我就说说使用心情,那也绝对是比 Eclipse 爽的。但是 IDEA 我没有那么的熟练,也在继续使用中。
所以选择一款好的开发工具很重要,不仅提升开发效率,最重要地,是你的心情好了,心情一好,干什么都来劲。
2、学会投资自己
的确,技术书籍都很贵,动不动就50-100的,我想说的是什么呢?永远不要吝啬给自己投资,网上很多的免费视频教程,免费的教程有两个特点:一是入门的,二是不系统的。但是要想真的提升自己,这些入门的教程是不够的,系统学习最重要。
而且现在也是知识付费时代了,入门资料一大堆,真正能提升自己Level的东西,哪怕花点钱,给自己投资永远是稳赚的生意。不要在乎那点钱。你和别人的差距,往往真的就是这样给拉开的。因为知识创造的价值要比这几百块钱来的更猛。
3、放下“技术包袱”
许多程序员都有技术“包袱”。请放下包袱,对新技术保持开放的心态。
如果某个程序员长期从事某个特定的编程语言,而没有任何其他方面的工作经验,则一些招聘人员会视之为危险信号。
4、不停给自己充电
我们不能一直啃老本,干软件这一行,技术更新非常快,今年上半年学的技术,估计下半年就有了新的版本,我们要一直不停地给自己充电,不停地学习。哪怕是不停的总结自身不足,也比停滞不前要好,最起码自己没闲着。
还要有一定的忧患意识,公司每年都会输入新的年轻血液,有初学者,也有牛逼人物,我们不要让雇主逼着自己去学习,自己要有主动充电意识,这样才不会被周围的人给超越,才不会给后来者给超越。但是这都不是最根本的原因和出发点,最根本地,还是为了提升自己的能力。
职业现状我想大家心里也清楚,没办法变改职业,就只能想办法改变自己。自我审视,持续学习,做好规划,以10~20年的职业生涯为基础,未雨绸缪。
做为一名Android开发者,我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名Android高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!
一、设计思想解读开源框架
这份总结的学习手册将Android热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应式编程框架、IOC依赖注入框架、最近架构组件Jetpack等等Android第三方开源框架整合成了一套系统知识笔记PDF,长达1042页!相信看完这份文档,你将会对这些Android第三方框架有着更深入、更系统的理解。
本篇包含知识点:
1、热修复设计
2、插件化
3、组件化框架设计
4、图片加载框架
5、网络请求框架
6、RXJava 响应式编程框架设计
7、IOC 架构设计
8、Android架构组件Jetpack
二、Android高级UI开源框架进阶解密
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
三、Android Framework开发揭秘
众所周知,Android是一个基于Linux实现的操作系统。但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别。
所以Android也需要运行环境,需要Linux内核在启动完成后加载Android Framework运行所需要的资源。当Framework完成初始化后才能继续启动相应的APK应用程序。
主要内容包含:
- 第一章 系统启动流程分析
- 第二章 Binder解析
- 第三章 Handler解析
- 第四章 AMS 解析
- 第五章 WMS解析
- 第六章PKMS Android10.0 源码解读
四、Android性能优化实战解析
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
五、Android百大框架源码解析
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。这份学习手册包含Android主流库比如OkHttp、Retrofit、EventBus、ARouter源码等等,都有详细的源码解析。
六、NDK模块开发
NDK是原生开发工具包,这套工具允许Android使用C/C++代码,并提供了众多的平台库。
主要内容包含:
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
七、Flutter学习进阶
近两年Flutter的热度不断提升,无论在阿里还是外部公司,参与Flutter生态建设的人越来越多。Flutter作为跨端的UI框架,未来也有很大的可能像Rax一样作为集团内营销活动页面搭建的DSL。所以目前学习Flutter,参与Flutter生态建设是一件时髦且有价值的事情。
本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter开发环境搭建和调试
5、Dart语法篇之基础语法(一)
6、Dart语法篇之集合的使用与源码解析(二)
…
12、Flutter中的widget