大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说Android 筑基导论「建议收藏」,希望您对编程的造诣更进一步.
本文基于跨界小白角度来阐述技术基础范围,请结合自身实际食用 <( ̄3 ̄)> 表!
2020.9.11 更新 -> * 添加 C/C++、Linux 编程学习资料
2020.9.14 更新 -> * 添加 推荐书籍、Linux 进程间通信总结、修改部分说辞,调整版式
2020.9.15 更新 -> * 添加 一些有关联的视频
2020.9.16 更新 -> * 添加 网络基础的视频、添加部分推荐书籍
2020.10.18 更新 -> * 添加 阿里大神孤尽采访视频观后感
2020.11.8 更新 -> * 添加 鸡汤内容,你要是坚持不下去了,请看看给自己点压力
前言
编程这条路能走多远,能走多久,就看一点:你学不学的明白
。想学明白,就得看你会不会学习
,所以编程能干多久,你值多少钱,最终看你会不会学习
我们从小就学习,但是一旦离开了学校这种压力环境,你还会学吗?你还学的进去吗?软件行业从业者之间差距就是因为学习效率的不同拉开的
你是不是曾经这样苦恼过,并且百思不得其解:
为啥大厂校招比社招的人多?
为啥大厂只要基础好的毕业生?
为啥硅谷面试只问数据结构和算法?
为啥大厂要给新人安排导师、引路人?
为啥大厂新人成长这儿快,别人半年顶我3年?
为啥我5年经验不如大厂里干1年的小鲜肉?
这些问题曾经一直困扰着我,冥冥中有个声音告诉我,你要是找到了答案,从此康庄大道、任你傲游、你也能达到那令你羡慕、憧憬的高度!历经多次思考,到今年我总算是差不多略顺了前前后后,今天发出来大家鉴赏一下
今天分享一下,包括一些学习资料,但是更重要的是明明白白的告诉大家,你为什么学不会、怎么才能学的好、怎么学习才是效率最高的。听我之言,Android 2年高级不成问题
学习中常见问题
1. 进退无据,盲目追求最新技术
新技术月月有、日日出、年年新,出来一个你看一个,但是你真的着急学它吗?你着急在项目中立马使用吗?真的让你用你敢用、你有权利用吗?
你想过没有,我还有多少不会的、没懂的、模糊的、项目急需的、遗留的,难倒那些欠下的技术债你都装看不见吗?
你应该清楚哪些是最优先的、哪些是可以放放的,就像项目开发一样,列个燃尽图出来,估计你会吓死。当然能把这个图列出来也是你的能力,好多人还都列不出来呢。但你若是对这些视而不见,那就是逃避。踏实、务实才应该是我们的日常
2. 胡乱学习,左学一点右学一点
软件开发是个工程项目,技术也具备和工程项目一样的特点,那就是技术之间高度融合、相互配合,整个项目是理论和实践高度结合,技术之间高度融合后的产物
很多人平时怎么学习?就是看博客!今天A写了这个,我就看这个;明天B又写了那个,我又去看那个。先不说这短时间内来回切换学不同的技术点,你有时间能学明白吗?单就说这左一下、右一下的,你怎么形成知识体系?你的学识之间要是不能相互融会贯通,在软件这个行业那是致命的。尤其是这种左学一点右学一点的方式那是真的会要你命的,这样学下来1年,我敢说你最多就是学到几个单独的知识点罢了,于全局无补
但恰恰太多的人都是这样,你们天天喊学习、我学习、白天学、晚上学的,但还是学不会,你就不想想是哪里出了问题吗?
3. 不写笔记,狗熊掰棒子全忘了
我曾经写过一文 (为啥做技术的要写技术博客 ),专门论述不写博客的后果,那就是狗熊掰棒子学了后面的忘了前面的。大家须知,没有过目不忘,即便你当时学的再通透,过2月不用,一样可以忘的一点不剩。你要是努力辛辛苦苦整天看、整天学、一年下来,年关的时候你回忆回忆你还记得多少?样的学习真的有意义吗?属浪费时间罢了!这都算是一种基于焦虑的精神疾病了,是对自己的一种折磨 (>﹏<)
别人的文章是别人的,不代表你看了就是你的了,只能说你知道了有这么一个知识点。你看为什么大神们都写博客,因为大神们辛苦提炼出来的精华它也会忘,所以的写博客出来,一个是分享,一个是在写文章过程中再提炼提炼,分享出来还能有名望
4. 基础薄弱,原理、源码我就是学不会
很有朋友都看原理,看源码的吧:
- OKHttp 源码看不懂,线程池、阻塞队列我没学过,网络编程的点也不懂,设计模式也只是听过,我不理解为啥类要设计的这么复杂,要有这么多类
- Glide 源码看不懂,设计模式忘了,不理解类结构为什么这么设计,都说好,但是我就是不理解好在哪
- MMKV 根本就看不懂,到底怎么实现的快速文件储存的?去看原理,虚拟内存、文件映射、mmap 这都啥玩意,听都没听过
- AMS 怎么运行的,系统服务都是怎么跑起来的,Binder 通信怎么做的,看了很多文章就是不明白
- 自定义 View 练了好些次了,怎么就是还是不会呢,canvas,paint 怎么就是不会使呢
- 哎,这个效果好赞,怎么画出来的
- 视频播放好高深呀,怎么做的?看文章一点也看不懂哎,产品让我在播放器页面加点东西,但这个怎么改,播放器样式不都写死的,我只会在上面好来加一个蒙版,但是我看大神们都是自己定制的播放器,好高深啊
5. 反推式学习
- 今天看 MMKV,完全看不懂。找博客,看到有文章说用到虚拟内存。没听过,我去看虚拟内存,看了好些天,还是不怎么理解。然后又有文章说用的是文件映射的原理,看了好些资源终于多少明白点了。但是 mmap() 函数就是不理解。还有用户空间、内核空间这些。一个月过去,总算是看的差不多了,虽然点看的差不多,但都是半懵不懂,整个知识点串起来也费劲
- 看 OKHttp 源码,里面有线程池,还有 Socket,耗时大半个月,总算是把 OKHttp 源码囫囵看完了
最可怕的学习方式就是反推式学习
,你啥也不会的时候就去硬看 OKHttp 源码,一般大家都有一些理解力、经验,浅层代码能看个大概,当看到不会的知识点再去看资料,然后再一点点深入,一般都是这么学的,文章也都是这么写的
我个人强烈抨击这种学习方式,OKHttp 是干什么的大家都知道吧,实现网络功能的,代码很多很复杂的吧,其中肯定会涉及到网络编程、设计模式、多线程
知识点,并且这些知识点会综合应用。很多啥也不会、一点基础都没有的小白直接去看 OKHttp 源码,这不叫学习,这叫硬看。你一点基础没有,即便遇到不会你去查资料,你真的能看懂整个框架吗?其中设计思路、思想精髓、技术策略你肯定吸收体会不到,这些才是最有价值的部分,面试高玩们也是侧重想听你说这部分
太多的人在啥也不会的时候直接去看代码成品,而不是先巩固、学习涉及的基础、底层知识,我管这种方式叫:反推式学习
。这种学习方式,及其低效率、难度极高、效果极低。你明明知道会涉及什么基础知识,你为什么不先把这些基础知识点都看懂了再来看 OKHttp,你没有和作者相同高度的基础认知,你是不可能看得懂作者的想法的,你是不会体会到作者感受、作者写这个框架时的技术思路和决策
什么才是好的学习方式
历经3年、不停反复思考、实践之后的思路,希望对大家有所帮助
1. 学习要有优先级
不要去管那些天天都出来的新技术,你先放着,就让别人先趟坑去,你现在学那些令你寸步难行的知识点,这些才是你现在拦路石,时间不要浪费在别处
2. 夯实自己的基础,先打好基础再说
太多没有结果的学习都是因为你基础不行,既然看不懂那就不要勉强了,应该去看用到的基础知识。以 OKHttp 为例,看不懂源码,那就去猜它用了什么基础知识。若是不会,就把 网络编程、设计模式、多线程
这些基都学会了,再回过头来看 OKHttp 它不香吗。有多少看不懂的、还有多少不理解的。你再去看网上那些 OKHttp 的文章,你会骂:这什么文章、都写的啥、垃圾、哦~原来是这样啊、我知道了、我明白了…… 这才是正确的打开方式
3. 集中时间办大事
不要今天看这个明天看那个的,对于单个知识点,利用短期的集中的时间先把这个点搞定再去干别的,再去休息。对于大块的知识点,规划好时间,集中时间一个个点的啃下来再看别的
4. 系统性学习
编程领域的知识点都是相互关联的,不管是学习阶段,还是使用阶段都是一样。割裂的、无法成体系、相互无法印证的散碎知识点对你来说是没什么帮助的,该不会的还是不会,你不会真的学明白。学习就必须把一个领域的知识点一次性全部学到位,这才是最正确的展开
我再强调下基础的重要性
基础不稳,地动山摇!
好比我们学习数学,大家都是先学:
阿拉伯数字 -> 数学符号 -> 加减法 -> 乘除法 -> 九九乘法表 -> 方程式 -> 公式定理
从小我们学习,在学校里就是从难到深,那为啥放到软件领域,编程行业,我们就忘了呢,大家总是着眼于最顶层的东西,总也看不到技术基础在哪里呼喊你赶紧关注它 ┻━┻︵╰(‵□′)╯︵┻━┻
我们平时用的开源框架/库,这些都是软件领域最终的成品了,就好比是数学中的公式定理
,小白学习这些源码就是一个剥开公式定理
外皮一层层深入的过程,随着学习的深入,这过程是这样的:
公式定理 -> 方程式 -> 九九乘法表 -> 乘除法 -> 加减法 -> 数学符号 -> 阿拉伯数字
这个过程就是我上面说的反向学习,在没完全成熟、完善的、从头到位的学习课程的技术领域,这个逆向的过程是不可避免的,但是我们必须知道这种逆向学习有多大威海
- 当你越多很多技术文章,你忽然发展了一个技术点,这个好比你看到了一个新的
公式定理
- 你打算深入去学习其中实现原理提升自己水平,那会发现这里需要
方程式
方面的知识,但是方程式方面的知识我没学过,也不了解,我也不知道有多少知识点,于是我阅读大量文章,囫囵吐枣的把2元1次方程式学会了,但我其实不知道还有3元1次方程式、3元2次方程式,所以我看着很费劲、费解,总觉得自己能力不行,殊不知其实这里除了2元1次方程式,还需要3元1次方程式的知识点 - 当我历经千险终于把2元1次方程式、3元1次方程式的技能树都点开了,我想再深入的看一下,我突然发展还有一个
九九乘法表
的东西,还好这个东西比较好学,有规律,知识点都在一起很好学 - 但是在我高兴的时候,我发现九九乘法表里还有大量的各种符号和简单的计算公式,但是这些我都不了解哎,于是我一个个对着查找baidu,又是一阵血雨腥风,终于,半斤八两的我终于可以能勉强看懂这个符号和公式了
- 但是最终我有对这些数字产生兴趣了,没办法也不是我想看的,是因为大家都说面试要问,没办法只能硬着头发花时间查资料去看
以上就是反推式学习的过程,很多时候我们的确能研究到及其指令这一层,但是当我们翻回头,我很难把这些知识点全部串起来搞清晰,最多我只能比较清晰的明白部分,这就是大多数人学习的常态:耗费大量时间,总也学不明白,学不通透
但是大家再看,阿拉伯数字 -> 数学符号 -> 加减法 -> 乘除法 -> 九九乘法表 -> 方程式 -> 公式定理
这些东西就是基础知识啊,当我们把这些基础知识都掌握了(网络编程、设计模式、操作系统),你再去看这些框架, 你就会时不时大声呼喊:原来是这样啊,我get到了,也没有太复杂啊,我都大概都串起来了
在编程这条路上,逆时针比顺时针困难10倍,10倍功1不是危言耸听,那些学习进步很快的一定基础都很扎实,再学习各种应用层思路时不会被基础问题打断,能完整吸收思想,不用重复多次、反复学习一个点,这样才来不快才怪
学习基础知识还有一个非常NB的地方,就是当你把基础知识都搞定的时候,一定形成自己的一套行之有效的学习方法,这会让今后的学习、工作路程走上快车道
基础扎实的最大现实意义在这里:
一个网友说:别人写好的东西就像一块糖,你不了解也可以吃!
- 当有人问你,这糖甜不甜?你不知道,你只能看别人说甜,你也说甜
- 当有人问你,这糖的成分如何,对人体有没有伤害?你不知道
- 当有人问你,这糖可以和别的糖一起吃吗?你不知道
- 当有人问你,这糖切碎了怎么吃?你不知道
- 当你看见别人给糖加了料,你吃起来觉得非常棒,怎么做的你一点也看不出、猜不出其中关窍。其实就是加了点蜂蜜而已
- 当你看见别人把好几种糖切碎了、搅拌在一起,然后加蜂蜜、加柠檬,和蔬菜一起做成沙拉时,你还能说什么…
现实是我们做的就是沙拉,在于这些原料你怎么用、会不会用、能不能推陈出新做出新花样~
以为是王者,其实青铜都没到
今天B站看了阿里:《JAVA 开发手册》作者 — 孤尽的采访视频:曾辍学打工,后写书被收进图书馆,看草根程序员如何逆袭为阿里技术大牛?
孤尽说自己刚出来也是很难,慢慢熬过来的,新3年、旧3年、缝缝补补又3年
其实对于很多人来说,大神吃屎时候的水平就是我们现在王者的段位了,不用质疑大神们在大学4年阶段的积累,当大神们带着4年积累在大厂搬砖熬着时,我想说我们虽然在上班,但其实幼儿园还没毕业呢
这就是好多跨界、上学那会不好好上,靠培训班上位的这些人的世界,我就是这些人中的一员,写本文就是想让大家不要好高骛远,大神也是一点点积累走过来的,大神走过的路只要我们走我们也可以成为大神
先不要想多 NB,先大学毕业了再说,先把自己的基础状态达到大学毕业,然后我们品品啃啃再努力搬砖一段时间,自然我们也是大神了
干了这碗鸡汤,超人还是成神自己选
人总有懈怠的时候,即便昨天还是踌躇满志,今天一掀被子又是拖延症患者。这没事就得给自己点压力,要不谁也 自律不起来 ,最好的压力是搞得每天一起床背着几十万压力,一分钟不学习就损失十几万似的,来源于自我主动的压力才是最好的。能催眠自己就催眠自己,谎话说100遍那就是真的,每天都对自己说,学上2月,我就NB了,周而复始,至少能比以前强不少
经典演讲:
- 学习没动力时看看这个视频!奥巴马经典演讲:你为什么要努力学习
- 奥巴马小伙,黑人一个,起于微末之间,能走到白人国家总统的职位,何等励志、及其难能可贵、其中艰险一般人无法想象,绝对是这个世纪励志典范,推荐来看看,人间天堂–美利坚 也是要励志才能走向人生巅峰的 ヾ(≧O≦)〃嗷~ 带压力视频:
- 小电影_35岁“大龄”码农的“中年危机”
- 角色扮演,真情演绎公司多么无情、中年多么无助,这个看完最棒了,绝对压力一下就来了
- 懂这个道理,保证让你快速自律起来!拯救拖延症,更好的戒掉不良习惯
- 拖延症害死人,太多人不能走到资深的深度,其实就是 拖延症 的问题,解决 拖延症 ,一切都不是问题 吐槽培训班出身:
- [吐槽]为什么校招不喜欢某些培训班出来的 过来人、前辈忠告:
- 工作8年程序猿给计算机专业萌新6条忠告
- 程序技术无止境 三点打破编程天花板
- 技术都是 《刻意练习》出来的,不要光看那没用,每个小阶段都得有高品质输出才能有成就感,推着自己走下去 Android 职业发展:
- 享学课堂–一个Android程序员的自我修养
- 来自腾讯课堂头部机构,质量不会差,都是N人出来聊,值得看。就像视频中所说:统一的编程规范,简洁的代码,优雅整洁的架构 这就是我们编程一直的追求,做好这些,水平自然就上来了
具体到 Android 学习
总听别人说基础、基础、底层、底层的,啥是基础,啥是底层?根据我近3年的经验来看,所谓的基础、底层就是完整的大学课程 ->
C/C++
计算机导论
计算机组成/微机原理
操作系统原理/Linux posix 编程
网络编程
数据结构
设计模式
多线程
加上语言、平台基础(JAVA 、Android) ->
JVM
反射
泛型
注解、AOP、APT、AST、AspectJ、ASM、Javassist、IOC
Android 操作系统
还有一些跨平台通用 API、算法
Bitmap
Canvas
Paint
各种缓存机制,比如:LruCache
学习是有顺序的,至少我经过亲身学习后,大概摸索出一个适合的大多数人的学习路径:
C/C++
一定要先学C++,也不用看多深,知道语法,能看懂代码,能在 Android 上写.cpp
文件,能跑起来就行计算机导论
看看这个,大多数人对于计算机整个结构都不清楚,好的计算机导论内容很全,会把计算机组成的部分也笼统的介绍一边,要是对硬件没什么兴趣,计算机组成/微机原理
可以略过,有计算机导论部分介绍的硬件知识就够了操作系统原理/Linux posix 编程
这里说的都是 Linux,操作系统原理
这部分都是原理不涉及代码,但这个是必须会的,后面的内容随随便便、不经意间都会涉及到操作系统原理。Linux 编程这块优先级不高,等你需要了再学都来得及。但是大家要知道 Linux 编程里非常非常多,捡你需要的学数据结构
、设计模式
这2部分学习没有前后,没时间的同学数据结构可以放放,不影响后面学习网络编程
这个算是基础部分最后的点了,但是非常重要,一定要学清楚、学明白多线程
不用说了吧,JVM
深化对 JAVA 的理解,最好的方式就是把 JVM 从头到位的学习一遍,到这里你就能体会到学习操作系统
带给我们的感受,java 就是对 C 的简化,JVM 就是用C++写的,java 的一切都是跑在C上的反射
、泛型
这2个是很多人都欠缺的,一定要会,Android 的黑科技哪个离得开反射了注解、AOP、APT、AST、AspectJ、ASM、Javassist、IOC
这些都是基于注解衍生出来的技术,实属黑科技,但是又及其重要,不管哪个平台的哪些开源库没有几个没用到的,必须掌握的技术Android 操作系统
最后就是这个了,学过操作系统
这里就不会再出现学不明白了的问题了,其实有操作系统知识打底,Android 操作系统好理解多了,没有多少难理解的点了
带着上述学习成果,再去学习 Android 应用层的东西,你会发展,学习原来是这样爽啊,看一个会一个,看一个明白一个,看每一都能理解通透,爽死了 ヾ(≧O≦)〃嗷~
学习资料:
这其中很多还没整理或者还没看完,大家见谅,我长期更新,肯定会把学习资料这块都写全的,并且这些资料都是我亲身学习、品鉴过的,保证质量,保证小白都能看懂,我的资料就是给小白准备的,因为我自己就是小白 (ノへ ̄、),干了好几年了,还是小白,感觉对不起社会的栽培啊,没办法我是跨界过来的,可不是科班出身
本文重在思想,资料不全不要开喷,也欢迎大家给我补全资料
学会下面,不敢说从此平趟,但是保你同样的时候,可以看3倍的学习资料,吸收5倍的知识,提高10倍的知识体系建设。2年高级、3年资深、5年成神不再是梦
C/C++
视频:
行了,看了这些你 C/C++肯定是没问题了,很多时候、很多平台上开发你用不到 C/C++,但是如果你去看源码或者要做一些黑科技时,你是绝对离不开 C/C++ 的,我现在体会到了大学为啥一上来都是先学 C/C++
计算机导论
视频:
这个是最好的计算机入门课程了,内容之丰富远超3本书,国外科普视频,这套视频享誉全球,内容精炼,绝对没有废话,看不懂的同学请多看几遍,我学习这块也是反复看了有4.5遍,绝对推荐 ♪(^∇^*)
操作系统原理
视频:
博文:
书:
《深入理解计算机系统》
我就是看杨老师视频把整个 linux 系统看明白的,内容质量非常高,一反大学课程啰嗦、混乱的常态,讲的就是干练、明白,然后大家结合我做的笔记博文,这块就没问题了~
但是大家必须知道一点,这里讲的知识原理,你要是想自己真的基于操作系统原理去开发,C/C++ 你必须会
Linux posix 编程
视频:
- 尚硅谷-韩顺平-Linux经典教程(通用版)
- 尚硅谷-沈超-云计算+Linux系统管理
- 传智黑马_C/C++就业班(上)
- 传智黑马_C/C++就业班(下)
- 麦子学院_Linux_基础
- 麦子学院_Linux_IO
- 麦子学院_Linux_进程间通信
- 麦子学院_Linux_GNU工具
- 麦子学院_Linux_多线程
- 麦子学院_Linux_网络编程
博文:
就学指导:
尚硅谷
这2套视频是讲 Linux shell 命令,我看了一部分,的确可以。韩老师的时间短一些,沈老师的时间长一些,大家根据自己时间选择传智黑马
这2套视频时间是真的长,从C/C++,一直到 Linux 系统的所有部分,有需要的捡着看~麦子学院
这6套视频时间不长,想专门看 Linux 编程的、时间不是太多的,看完操作系统原理的都可以看这个加深对 Linux 的理解
数据结构、算法
还没看
书:
《大话数据结构》
《我的第一本算法书》
设计模式
待整理
书:
《大话设计模式》
网络编程
完成部分:
视频:
博文:
书:
《图解 TCP/IP》
资料指导:
- 看
计算机科学速成课
学5层网络模型,没有比这个讲的更清楚、公容易理解的了 - 看
马士兵
视频的第一集,继续加深对网络基础的理解
多线程
待整理,这里东西太多,我要好好整理下
JVM
视频:
博文:
书:
《深入理解 JAVA 虚拟机》
尚硅谷的这套JVM视频我去实在太好了,JVM所有的点都说到了,203集,40+小时,值得你耗费时间去学习,看完之后,JVM不再迷茫
反射、泛型
待写
注解、AOP、APT、AST、AspectJ、ASM、Javassist、IOC
注解这部分还没开始研究
Android 操作系统
还没看完
书:
《深入理解 Android 内核设计思想》
-> 上下册2本《最强 Android 书》
-> 这本好理解,但是理论少
代码封装、优雅
这块就是推荐大家看书了,系统的去看优雅的代码都基于哪些考虑
《JAVA 开发手册-嵩山版》
《代码整洁之道》
《代码质量》
《重构与模式》
《企业应用架构模式》
《JAVA 程序性能优化》
《大话 JAVA 性能优化》
最后
最后了我再抒发下感想~
前路明显,努力学就行了
技术这条路相对其他行业是最好走的一条路了,起薪高,不需要人脉,仅凭自己努力就能走的很高,只要不退缩,前路是明显可见的,就在那摆着呢。只要一路勇往直前,不给自己留退路,稳扎稳打你一定会比从事别的行业强
这行很干净
程序员的世界虽然也有996,007这样的残酷,但是相比别的行业这个行业太干净了,我之前是做港口物流的,也自己卖过水果、蔬菜,我见过太多的黑暗、剥削、残酷、无情、擦边球、不法、勾结… 心累了,就干程序员这行来了 ( _ _)ノ|
学习淂有章法
每个行业都有自己的学习脉络,程序员这行的学习脉络就是上学的那套,从基础开始一点点积累,就是这样,切忌胡乱学习浪费了宝贵的时间
为啥有的大厂校招进来的会有导师带,就是怕你自己长歪了~
学习就是一个拼图的过程,即时你把拼图都点开了,你也淂去找拼图之间淂顺序,才能得到最终淂景象,这是个非常耗时的事,没有前辈指导自己胡来是铁定要废的,只要有正确的指导,每个人都可以成为大神,这一点我是体会出来了
积累不光有面,还得有深度
看过马士兵老师的公开课,马老师说,硅谷那边面试只考2样:算法和系统设计
,
- 算法代表技术深度,算法NB的人,技术基础一定好,至少美国人学习路线的就是这样,算法好的基础都好,当然投机取巧的中国人除外
- 系统设计代表全局能力,综合应用能力,一般会通过项目来考你
软件编程这行最终就是个理论结合实践的过程,基础能力和经验同等重要,也是我们要追寻的东西
再次强调下基础知识的重要
上层知识、应用很复杂,特别丰富,各种标签、技术,各种换来换去。但是底层知识其实很少,就是我说的上面那些,学会了你就会了,你基础就扎实了,就是这么简单明了的事
底层的知识你会了,就不怕面试官刨根问底了。面试管问你 netty、redis、kafka、es、nginx,你都可以聊 mmap、select、epoll 这些底层的东西,这些都来自于系统的内核调用
大多人能是站在上层回答的,NB的面试官想听的不是这些,这些人所共知,他们觉得你肯定会,你也没必要回答太过表面的东西,他们想听见就是你从底层说起,接个技术做概括性描述
巧的是现在行业里,底层基础扎实的人实在太少了,你会了优势是很大的,不仅仅面试有用,平时学习应用也是受益匪浅~
形成适合自己的学习方法
技术是学不完的,我们在学习的过程中,必须形成一套自己的学习方法。我的方法就是从基础开始,务求学习系统,有遗漏再补充,追求知识点之间的融会贯通。通过写博客的方式,分享出来,有时大佬们也会交流一下,支持问题或是鼓励鼓励,这样对于学习非常有效,我最求的是极致的效率,适合跨界过来的小白们
程序员分级
这是看B站心静思远-9527
同学说的,感觉get到点了,希望大家体会下:
- 初级程序员
面向功能实现
那代码烂的糟糕,只要业务能跑通代码不封装
相同、近似的代码哪里都是,一改起来哪个费劲啊,满世界找抄
抄百度,抄同事,不敢自己写,不敢有自己的想法面向百度编程
……
- 中级程序员
面向接口开发
从代码分层的角度考虑代码,尽量实现易维护、易修改,一处修改,处处使用命名规范
见名知意及其重要,我深有体会工具化
代码高度封装,分模块,分组件,高度复用模块专人开发,专人维护
这对于代码封装方面的能力有很高的要求了,给别的模块要好用,易用,你还要好维护,还要侵入行低,还要容易集成,做好很难学习能力强
学习能力不行是走不到这里的,真的,至少学习能力也淂能过去眼
- 高级程序员
- 就一点,干啥都是基于整个项目,整个公司层面考虑,那家伙考虑的东西就太多了,没有广泛、深入的知识面是 hold 不住的,还要领导整个项目,协调部门,岗位之间的工作、配合
注意身体
身体是革命的本钱,学习工作这东西一定要有效率,就说一点:你学的,工作的老晚,转天还得起来,你白天还有精神嘛,你脑子还转的动嘛,写出来的东西还能看吗?
预期写这些注定要丢弃的垃圾、bug 出来,还不如好好的休息,争取每次都写出精品来。不要用现在的苟且给以后自己填麻烦
要不只会恶性循环,破罐破摔,越干越没劲,越写越垃圾。与其这样恶劣,不如一开始我们就保持优秀的状态,好状态就是效率的最靠谱保证
我讨厌那些中午12才来,晚上12点才走的公司,看着时间长,但是东西怎么样,有效工作时长有多少,估计还不如955高呢
户口
北京户口搞不定,搞个天津户口吧,天津还在买房就落户,市区、郊县都可以办,走海河人才引进计划。天津这地方不适合上班,IT业也不景气,工资还低。但是天津适合养老,环境安逸、慵懒。要是想把家里老人接过来,可以安排老人去买的天津的房产居住,高铁也挺方便,每周团聚一次也很方便
直辖市高考优势太大了,比高考大省至少有100分优势,大学院校还有优先录取的照顾,实在是给孩子提高人生起跑线的不二选择啊,位置远一点的房子很便宜,买个小的花不了多少钱,但是换个户口很值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13031.html