時間は矢のように飛んで、太陽と月はシャトルのように飛んで、そして時間は本当に速く飛んでいます。インターンシップに加えて、Androidの開発に5年近く携わっています。ここでは、私の経験を共有します。Androidの学習の道で、私は巨人の肩の上で育ちました。
それは大きく3つの部分に分けられます:
1.Androidのキャリアプラン
2.Android学習ルート3.大きな工場に入る方法
Androidの成長キャリア
1〜3年
最初の3年間は、私たちの最も成長の早い時期だと思います。
特に作業の最初の年、私たちが最初にプロジェクトに連絡を取り始めたとき、ネットワークフレームワーク、AndroidアーキテクチャMVVM、MVC、MVPなどのカプセル化を比較する多くの新しい知識にさらされます。
この時期は私たちが最も早く進歩する時期です。私たちが知らないことがたくさんあるので、私たちは自分自身に学ぶことを強制します。
2年目から3年目も私たちの成長にとって重要な時期です。現時点では、プロジェクトでは基本的に独自に要件を担当します。現時点では、基本的な機能のほとんどは独立して実装できます。注意が必要なのは、コードスタイルとコード思考の育成です。
コーディングスタイルとは、コーディングの習慣を指します。たとえば、メソッドの命名、メソッドの合理的な分割、注釈とコメントの適切な追加などです。架空のように聞こえるかもしれませんが、これらの詳細を過小評価しないでください。とにかく、私はグループの何人かの人々がsiのようなたくさんのコードで5年か6年働いているのを見ました。
コード思考は、人間の視覚や考え方にいくぶん似ています。多くの場合、特定の効果を達成する方法はたくさんあります。ニーズを満たすために、他のオプションを知らなくても、ランダムに1つを選択する場合があります。そして、これは私たちの成長の最良の時期を逃しただけです。
自分自身に制限を設定しないでください。プログラミングの途中で多くの問題が発生する可能性がありますが、常に解決策があり、それはあなたの態度によって異なります。
3〜5年
この期間中、当然のことながら、私たちは基本的に上級エンジニアです。現時点では、ほとんどの人がボトルネックに遭遇し、何を学ぶべきかわかりません。それはすべてを行うことができるようですが、十分に深くはありません。私も同じ状況にあり、今はもっと深く掘り下げています。
这方面我暂时也给不了太多意见,只能说,选择一个方向,静下心来,去学习,相信能收获到我们想要的。
学习方向有很多,比如 Android 性能优化(启动,卡顿, Crash 治理), JNI C++,gradle 打包,编译速度,音视频等等,这些都是大的方向。
5 年之后
大多数技术人,一般会有以下方向。
- 第一:成为技术大神,比如架构师,及技术专家等。
- 第二:技术管理,比如技术总监等。
- 第三:技术转型,如转项目管理,产品等,你牛逼的话,说不定下一个张小龙就是你(哥们,想多了,那有这么容易)。
- 第四:自主创业,做自媒体等
我目前来说,可能会选择第一条路吧,成为一名技术专家。
在技术的路上,或许会很累,很难,可那又怎样呢
35 岁中年职业危机,很多职业都有,不仅仅局限于程序员。
从本质上面说,自身竞争力下降占很大原因。毕竟,优秀的人才从来不缺少机会。
既然选择了,便只顾风雨兼程。
为了未来有更多的选择,从现在开始,朝着自己的目标努力奋斗吧,书写属于自己的人生。
Android 学习路线
下面,说一下 Android 的学习路线,不会很具体,主要是从大的方面来说,感兴趣的可以看一下。
搭建基本的开发环境,敲下 Hello world
首先你配置好电脑开发环境。首先需要配置 Java,AndroidStudio 的开发环境。
现在的 IDE 对比几年前的,真的是方便多了,可以自动帮我们配置好环境变量。还记得当年刚开始配环境的时候,折腾了两三天。在配置变量的时候,有时候英文的逗号输成中文的,在 cmd 窗口输入 Java,一直提醒没有这个命令,一把鼻涕一行泪。
依稀还记得,当配置完环境之后,敲下第一段程序 Hello world 时的那份喜悦。
掌握基本的语法和常用的数据结构
第一:你要先掌握基本的语法,可以从一些书籍开始学起。跟着书本慢慢敲,从第一个程序 Hello World 慢慢敲起,万丈高楼平地起。
由于 Android 是用 java 或者 kotlin 语言开发的,建议优先掌握 java 语言。这里推荐两本书籍。
- java 编程思想,一本很经典的 java 书籍
- java 剑指 offer,面试神器。校招的时候,有很多面试题目,里面都有涉及到。
第二:掌握基本的语法之后,常用的数据结构,数组,链表,队列,栈。这些基本的概念和语法要知道。还有线程,文件 IO 操作,网络操作。
学完这些之后,Java 的基本知识你大概掌握了,这时候建议你动手写一些小项目或者 Demo,比如坦克大战,计算器等,这些网上都有代码。想跟着视频一起学的话,推荐网络上的视频,可以点击下方链接加我QQ群,会将教程发给你。
Android 学习入门
掌握这些之后,你可以去看一些 Android 入门的书籍或者一些视频。
书籍我推荐郭霖的第一行代码,写得真不错。
视频的话,我推荐你可以去B站搜索一些 Android 视频看,有些会从一些基本语法讲起,接着是项目实战,会手把手教你实现简单的新闻客户端,360 手机卫士等等。
想获取 Android 视频资料的话,也可以点击下方链接加我QQ群,会将教程发给你。
Android 进阶
学习完基本的知识之后,可以去看看任玉刚的 Android 开发艺术探索,虽然是几年前出版的,但真的是精华。
接着,可以关注一些架构,性能优化方面的。
- MVC, MVP, MVVN
- 内存泄露怎么检测,常见的内存泄露有哪些
- 怎么检测 ANR,有哪些手段呢,优缺点是什么
- 怎么捕获 Crash,Java Crash 和 native crash 有哪些不同呢
- Android 检测启动时间,启动优化怎么做,常见的 Android 启动优化手段有哪些
- Android gradle,是怎样打包的,怎样提高编译速度
如何进入大厂
面试是一个双向选择的过程,我们要保持足够的自信。
在我看来,要进入大厂,有 4 点最重要。
- 编程能力,包括常用技术以及常用技术的原理,毕竟招人,是来干活的,不是来当爹的。
- 技术深度,在大厂,分工越来越越明确,职责越来越细。很多时候,需要的是某一个技术领域的人才,而不是什么都懂一点的全才。
- 算法。
- 软技能,沟通能力等
如何学习算法
现如今,如果你想进入大厂,腾讯,阿里,头条,拼多多等,不管是社招还是校招,肯定都会面试到算法的。
相信很多人有这样的想法,面试的时候早火箭,工作的时候拧螺丝。确实,这种情况非常常见,我也认同。但没办法,谁叫我们想进入大厂呢。
不过,这种情况也可以理解。怎么在几轮面试中确定面试者的水平呢?肯定是考察算法,基础这些,原理这些。
虽然这些代表不了全部,但起码能在一定程度上代表了面试者的水平能力。要知道,编程语言其实都是想通的,编程思维和算法能力才是核心。
掌握了原理,编程思维,切换到另外一门语言其实是很快的。这也就是面试官喜欢考察算法和原理的原因。
至于要怎么学习算法,我简单归纳一下
第一:要了解基本的数据结果,数组,链表,Map,Set,二叉树等,了解他们的优缺点,时间复杂度,空间复杂度等
第二:要掌握一些常见的算法,递归,迭代,八大排序,二分查找,贪心算法等
第三:掌握一种算法,不仅要知道 what,还要知道 why(分析各种算法的优缺点),比如 topK问题,有常见的几种解决方案,排序,快排思想,海量数据堆排序
第四:刚开始学的时候,可能会比较吃力,可以先刷题,慢慢找感觉,从易到难。
- たとえば、初日に、このアルゴリズムの質問をブラッシングしても理解できない場合でも、心配しないでください。多くの人がこのようにここに来て、最初に答えを検索し、他の人がどのように解決するかを確認します。
- 理解したら、自分でコードを書いて、もう一度実行してください。これは非常に重要です。多くの場合、自分で理解していると思いますが、書くときに書くことはできません。コードを書くと、印象が深まります。
- 翌日、自分で書き直して印象を深めてください
5番目:アルゴリズムをうまく学習することは1日の仕事ではなく、長期的な蓄積が必要です。推奨されるアプローチは、毎日1つか2つの質問をすることです。質問は多くありませんが、理解しています。1、2か月間それを続けると、気分が良くなり始めていることがわかります。
まとめ
上記は、長年にわたる私のAndroid学習の旅におけるいくつかの簡単な共有です。Androidを学ぶ途中、巨人の肩の上に立って育ちました。同様に、私もあなたの巨人になりたいと思っています。
途中で友達や忠実なパートナーになれたらいいなと思います!