Android开发经验谈Android开发Manba陪你学Android

移动开发者如何在寒冬中破冰而出?资深工程师分享学习心得总结!

2019-10-11  本文已影响0人  06fd4cf1f427

文章目录

前言

在这个行业,每隔一段时间都会出现新的技术,好焦虑呀,到底该学什么?14年移动开发出现了大量的泡沫,随便一个培训几个月出来的在北上广都是8k起,现在感觉移动开发工程师供应需求方都要饱和了。招聘公司每天简历都要收到上百封,很多移动开发面试都接不到电话。该怎么办?要学习RN吗?要学习后台吗?在校的准程序员们学习android还合适吗?现在移动端不景气,是不是要学习新的语言,逃离移动端技术?

应该关注哪些技术?

这些问题,每天都会有人在群里议论,也会有人经常在群里求工作职位坑。那么我的看法是不要纠结学什么,先学了再说,与其抓住变量(新的技术手段)还不如好好学习,我特别喜欢《暗时间》的一段重视知识的本质:对于程序员来说这一点尤其重要,程序员行业的知识芜杂海量,而且总是在增长变化。很多人感叹跟不上新技术。应对这个问题的办法只能是:抓住不变量。

底层知识永远都不过时。算法数据结构永远都不过时。基本的程序设计理论永远都不过时。良好的编码习惯永远都不过时。分析问题和解决问题的能力永远都不过时。强大的学习能力和旺盛的求知欲永远都不过时。你大脑的思维方式永远都不过时。

我在刚入行时,一直在追逐最新最热的技术,几年过去了,才发现在,新的知识永远在增长,感觉自己很无力,有一天无意间在网上看到Google的面试问题类型,我惊讶的是在面试题中没有最新的技术,甚至不是在某一种语言下的知识,而是通用的知识,算法数据结构,设计理论,编码规范,那时我懂了,想起刚出来的时候去一些公司面试被问到算法,一脸懵逼,并且还理直气壮和面试官说“开发用到算法的地方不多呀,记不住也很正常。”,现在回想起来当初的想法真是给自己找借口,因为算法本身比调用API要难,你连难的东西都学好了,还学不会简单的API调用吗?本质上面试官是想看看你的学习能力和逻辑能力。

如果学好底层不变量,现在的大数据,云计算, AI 学习起来都是事半功倍,你以为你没有基础就能学好大数据,云计算,AI?我们不要拘泥于某一门语言而是先修炼好内功,你的在这门语言的造诣是否高深,最终还是由你的内功深厚程度来决定的。

Android的核心知识点

做Android 开发,无外乎那么一些知识点:(这里先放上一份知识大纲)

如果大家想要深入的话,可以重点关注下以下几个方面的内容:

向Android架构师发展。从平时的一点一滴开发中,有意训练Android架构设计能力,这需要站在一个更高的角度来统筹App开发。

除此之外,要成长为一个架构师,还需要开发者具备系统设计能力。具体来说,为如果你仅仅是对各种各样的技术都熟悉,有技术广度,也有一定的技术深度,实际上是不够的。如果你的系统设计能力不到位,可能导致你在开发系统的时候会乱用技术。

比如说,有的系统他有一些自己特殊的业务场景和技术挑战,实际上在这个场景之下比较合适的是采用 “缓存 + 数据库” 的技术方案来应对。但是呢,有的工程师会很多技术,但是缺少这种准确的分析系统问题,提出合理的技术方案的能力,也就是缺少系统设计能力,导致他可能会引入Elasticsearch这种技术来尝试解决这个问题,那么结果必然是失败的。

应该如何学习?

我们知道该学习什么了,那么如何学习了?

在这个信息爆炸时代,我们每天阅读大量的信息(微信公众号、微博、简书、今日头条、微信读书、得到 .....),阅读过后总感觉自己学习到了很多新知,但是一周过后我们能说出来的收获又有多少呢?

这不禁让我想起塞内加的《论生命之短暂》中的一句话“如果一个人出海遇到狂风暴雨,被变换肆虐的风吹得团团转,你可能会觉得他航行了很远。其实航行得并不远,只是浮沉动荡的时间长而已。”,没错如今的知识就像出海时遇到的狂风暴雨,我们只是被吹的原地团团转而已,并没有在知识的海洋航行很远。

互联网的强大足以让我们查找到我们想要学习的资料,但是太多垃圾信息也掺杂在其中,如:大数据广告,错误的资料,恶意的评论,吸引注意力的热点信息,这些东西无疑是对我们有百害而无一利的,那么如何避免出现这些信息呢?看本书吧,成体系,由浅入深,循序渐进,没有我刚才所说的垃圾信息,只需要支持几十元的书籍费用,让你的学习事半功倍。

现在网上的视频也很多,牛人的收费课程也不少, 要不要去参与?

以通过阅读书籍为主。市面上的视频和收费课程,大多是内容都是来自书籍中的,太阳底下无新事。

以终为始先定一个目标,比如学完后写一篇教程,然后去学习,这样更加有动力,有意思的刻意练习,更为有效。知识经过整理,才更容易理解,容易理解的只是才更容易记忆。你想想所谓的高手是不是本质上就是在遇到对应问题场景的时候,能够快速调起自己的脑海中的解决方案,并且成功的解决掉这个问题。

管理学中有个很不错的模型,它非常适合用于学习,PDCA。

PDCA循环又叫质量环,是管理学中的一个通用模型,最早由休哈特于1930年构想,后来被美国质量管理专家戴明博士在1950年再度挖掘出来,并加以广泛宣传和运用于持续改善产品质量的过程。

PDCA是英语单词Plan(计划)、Do(执行)、Check(检查)和Adjust(纠正)

P (plan) 计划,包括方针和目标的确定,以及活动规划的制定。

D (Do) 执行,根据已知的信息,设计具体的方法、方案和计划布局;再根据设计和布局,进行具体运作,实现计划中的内容。

C (check) 检查,总结执行计划的结果,分清哪些对了,哪些错了,明确效果,找出问题。

A (Adjust)纠正,对总结检查的结果进行处理,对成功的经验加以肯定,并予以标准化;对于失败的教训也要总结,引起重视。对于没有解决的问题,应提交给下一个PDCA循环中去解决。

以上四个过程不是运行一次就结束,而是周而复始的进行。

总结:前期准备、中期执行、后期回顾

如何应用呢?

假设要学习设计模式。

有人肯定会说了,我也知道学习很重要,但是我就是坚持不下来。

没错,我们人性天生懒惰,大部分的人都是半途而废的专家,其实很多时候,不是我们比别人笨,而是别人比我们更坚持。高德纳先生曾经说过“过早退出是一切失败的根源。 兴趣遍地都是,专注和持之以恒才是真正稀缺的。”,可见坚持的重要性那么接下来我们就来说说如何更容易坚持。

怎么样更容易坚持?

《暗时间》中提到过这样的一个方法给自己设立一个进度条:

如果你把任务分割了,你就有了进度条,你就知道,事情在不断的进展,你总会完成任务或到达你的目标,你会有一个时间估计。反之如果没有这个分割,整个的任务或目标对你来说就只有两种状态——“完成”和“未完成”,如果不幸是一个比较漫长的目标,那么你会发现你的进度条总是“未完成”,一次又一次的等待未果会耗尽你的耐心,让你下意识的产生“这事什么时候才能完呢?”的疑惑,没有分而治之,你就不知道未来还需要付出多少努力才能达到目的,这就会让你心生怯意,不敢进一步投入时间,免得血本无归。在这样的心理下,不少人就会选择保守策略——退出,以免到头来花了时间还一事无成。

当你已经能够坚持下来持续的学习了,那么最后我建议你把你的学习成果分享给其他人,为什么?请看下面。

为何分享?

我是一个喜欢分享的人,以下是我的分享经历。

从最开始的写文章(只需要写),到录视频(先写好讲稿,然后开始讲,要注意声音节奏),再到直播(直接面对听众)。通过不断跳出自己的舒适区,使得自己快速的成长。

这里是一部分我自己录制好的视频:

以下是我在分享得到的好处:

总结

通过本篇文章我们知道了

1.关注哪些技术?
底层知识。

2.如何学习?
阅读书籍结合PDCA学习方法。

3.怎么样坚持?
加强反馈,给自己设置一根进度条。

4.为何分享?
提升自己,帮助他人,构建个人影响力。

请注意以下2个重点:

1.请把注意力放在真正值得的事情上。
2.贵有恒何必三更起五更睡,最无益只怕一日曝十日寒。-- 毛泽东

最终达到在寒冬中破冰而出!

最后的最后

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的,我在这里给你们整理了我自己的Android 学习,面试文档,视频收集大整理,提供给大家参考学习下。

最后,互联网不存在所谓的寒冬,只是你没有努力罢了!!!

上一篇 下一篇

猜你喜欢

热点阅读