说说我的情况吧
第一个学过的语言是C,然后C学的很烂的情况下继续学习了C++,为什么没有先把C学好再学C++呢,因为课程设计==,我有自知之明,所以在上C++的前一个寒假就先开始看了,然后先看了一本《易学c++》, 虽然那本书在现在浅显至极,但当时还是感觉有点略难,我通过这本书熟练地掌握了std::iostream!==然后基本的对象模型有了一点概念,我比较好高骛远,于是就在此时想直接通过最后一个大作业——命令行下的RPG游戏 彻底掌握C++这门最难的语言!
对,你没听错,我当时想的就是这个大作业要是搞懂了,C++还不是被我各种SM,但很不幸,虽然我一行行的把这个大作业的源码比着答案敲了一遍,但还是不懂,于是就在网上找了一个据说是清华的java课件开始学习,你还别说,除了当时感觉java里面把function叫做method(方法)感觉怪怪的以外,真的在不到3天的时间完全弄懂了对象的概念以及对象的继承,然后差不多就开学了==(当年不懂事,整个寒假就看了这10多天的书),所以java大法好。
好,这是我人生入坑的开始,我说的寒假就是2018年寒假!,在接下来的学校的C++课程中我当然如鱼得水,然后一发不可收拾,很快我就自己把那本98清华版的《visual c++程序设计》弄烂了,确实那本书的只是我掌握的滚瓜烂熟,然后我就深入了解MFC,什么用GDI实现AlphaBlend,MFC的设计思想,MFC中数据库的使用什么的,然而现在回首看来这些并没有什么卵用。
然后我就天天晚上回到宿舍打开电脑写代码,但显然我很快从社区 上得知MFC很烂,大家都说微软大法好!于是入了C#的坑,然后发现生活好美好===天天真是喜欢C#的不得了,不过有一天我成了软黑,winform绘图闪成狗,loadlibrary看着好蛋疼,以及用user32.dll时,蛋疼的语法,蛋疼的函数名字,API参数,然后我得知,原来罪魁祸首不是c#,是winAPI就长这样!
然后就在知乎大声地教唆下,入了Qt教,入门是看的一个外国人录得视频,英文无字幕,但是他的声音好好听,于是就学了Qt,第一次发现各种Layout的自适应布局,通过掌握QGraphicsView熟悉了MVC模型,后来还用QGraphicsView到了真实的项目,发现好多,坐标系统是坑,事件系统是坑,总之,欲仙欲死,不过说实话,我至今还是认为Qt的设计挺好的,QML想学,但流产了,原因大概是没时间吧。
然后解除了另外两端惨绝人寰的事情,第一个是第一次做音视频的实时网络传输的时候,资料很少,一开始甚至连Ffmpeg都不知道,后来知道了,就入了Ffmpeg的坑,好多莫名奇妙的错误,都需要右键去看源码,然后音视频的编解码以及Rtp/Rtsp协议弄的差不多,demo也出来的时候,为了广域网,又要入P2P Nat穿透的坑,但是很遗憾,没有完全成功。
还有一些其他乱七八槽的事情回来补==今天先说重点。
在今年4月份左右,我第一次下定决心要搞定Android,而且我真的做到了! 虽然以前断断续续看过android,但都没屁用,这次是真的白天看书,晚上写代码。郭霖老师的《第一行代码——android》只看了5章,但在这五章的学习过程中,我真的入了Android的门了,然后那本书我再也没有打开过,当然,Android只会画界面是远远不够的,现在的support.design.widget组件集让Android界面开发变得很轻松了,重要的是和服务器的交互,以及嵌入式本地数字信号处理,一不小心写了这么多,第一次发现自己打字这么快,哈哈~
前言
全网唯一一份,对标阿里P8 年薪60w+的Android高级工程师学习进阶路线(图未完全展开,怕大家看不清楚):
本篇文章都会围绕这份脑图来写,详细的介绍你处于哪个阶段该如何进阶,以及年薪层次高低对应该学的的技术。
需要相关知识点可以查看我的【GitHub】,对于已经掌握的可以忽略以节省时间。
如果不方便查看,我已经整理成了一份PDF包含Android入门,基础—高级的全部系列知识点,还有新技术学习笔记。
需要全套系列笔记可以直接,点击链接
【https://jq.qq.com/?_wv=1027&k=OQA7ghiD】找群主大大免费获取!
首先把学习Android技术的程序员先简单的分两种情况:
一、有编程基础,或者科班出身的,直接上吧。直接推荐郭霖老师的《第一行代码-Android》
然后按照5个阶段去学习:(以上都有对应的学习视频)
第一阶段:
- 所学知识点
第二阶段:
- 所学知识点
第三阶段: - 所学知识点
第四阶段: - 所学知识点
第五阶段: - 所学知识点
部分学习视频!
二、没编程基础
- 先入门java
如果天天都有比较多的空闲时间的话,这个入门时间要在2周完成,如果没有的话,1个月内完成吧,不要让拖延耽搁你的激情。 - Java基础知识
- Android基础
- Kotlin 部分
- 计算机网络部分
- 算法与数据结构部分**
- Flutter部分
尾声
一句话,平常多写多练,这是最基本的程序员的素质,尽量挤时间,读理论基础书籍,JVM不是未来30年唯一的虚拟机,JAVA也不一定再风靡未来30年工业界,其他的系统和语言也会雨后春笋冒出来,但你理论扎实会让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。
初学者,一句话,多练。
需要相关知识点可以查看我的【GitHub】,对于已经掌握的可以忽略以节省时间。
如果不方便查看,我已经整理成了一份PDF包含Android入门,基础—高级的全部系列知识点,还有新技术学习笔记。
需要全套系列笔记可以直接,点击链接
【https://jq.qq.com/?_wv=1027&k=OQA7ghiD】找群主大大免费获取!
建议
选一个自己相对比较擅长的领域。
基础要 背!平时我并不太去留意要记住各种API,但是这里就是要背过。不然面试官就会想“这么简单的API都含糊不清还说擅长?”就是真的面试的时候记不清了,也不要打磕,要非常自信的说个差不多的,不要说“好像……”这样的话。要的就是自信,因为这个API面试官也不一定记得那么清楚。不过自己能背过才真的有底气。
试着去了解这个领域市面上的技术。一般的话就是一些库或者框架。这里要记住,不要急着去看源码,要先掌握这些技术都有哪些优缺点,尤其是缺点!因为我们经常因为一个库有什么优点而去使用它,但是缺点往往是我们容易忽略的地方。而知不知道这个库的缺点,是你能不能驾驭这个库的一个关键。
如果有时间的话,研究其中一个众所周知的库的源码。并试图找到它缺点的原因,并找到其解决方法。当然你如果正要准备面试了,肯定没有这个时间。那么就找一些现成的相关的文章来看看吧。然后记住。
技术到家了,谁也淘汰不了你,选择权由谁决定就看谁更需要谁了!