2020注定是不平凡的一年,和许多小伙伴一样,我拿着平平无奇的简历,几份实习,不是很拔尖的绩点,完全在竞争剧烈的秋招中败下阵脚。
春招之前的转折点是,想起之前自学的计算机基础,我开始着手金融专业转计算机,借着疫情被困家里不如说是一个学习的好机会,每天八小时高强度的学习,不断review基础知识和面试,终于在四月份找到一份不错的工作。
总结来说,自己这一年还是一直在垒基础中,简单的前后端方法和函数能够理解,但一旦涉及到更深层的知识如权限和监控等就束手无策,并且vue脚手架在业务中也不经常使用,导致现在已经部分技术栈的使用比较陌生。所以新的一年还是要给自己定好学习目标,牢固掌握vue框架的基础和熟练处理好接口和数据库(不局限php,java,node等)的编译与优化。
Q:师兄,我已经大三了,找不到工作想转计算机求职还来得及吗?
A:时间上完全是来得及,但需要注意的是,你需要硬软兼备:
硬件——计算机专业需要比较好的计算和逻辑能力,如果你对自己的此方面自信的话,可以尝试。
软件——你需要花比别人更多的时间去学习,并且需要寻找适合自己的学习路线,这两个条件加持的问题会劝退大部分人。
Q:学了这么久基础,看面经还是看不懂怎么办?
A:其实我将前端基础的学习阶段分成三种,初中高三种,大多数人都处于学习的初级阶段,看到和学到的东西都处于冰山一角,成功的大厂面经往往包含更多维复杂的内容,而不仅仅是基础。
如果你看不懂一个面经,那很正常,不必慌张,你所需要做的事情是要把不懂的知识点不断google直至能整理一份属于你的知识体系,其中可能花费的时间比你学习的一些基础加起来还多。
Q:面试官提问的问题我都能回答,但是被评价“不够深度”刷掉是怎么回事?
A:其实这也是我逻辑思维的一个短板之一,学会聚焦一个点的思考往往要比发散的思维更难理解些。但是从技术面试技巧来看,问题其实变成了你的项目经验+日常阅读积累,而不是只有冷冰冰的标准答案。
例题:你了解多少状态码?
比如这道题,如果你单纯说了一个总结草草带过,可能会被面试官觉得你就是在背答案。不妨结合自己阅读的文章(日常好习惯)和项目经验,谈谈自己对状态码的真正理解。
Q:一面我大杀四方,二面我唯唯诺诺,没有项目的小伙伴该何去何从?
A:事实上,计算机有许多学习社区,如github,掘金,csdn等等,在这些社区你可以找到适合自己技术栈的目,浏览框架代码并尝试重构,和面试官分享路上的收获,不失为一次好的项目经验。
计算机的门槛相对较低,但趋势会更加趋于内卷,最终内卷曲线无现贴近非技术,打破两者界限的唯一壁垒是计算机技术,毕竟相对专精。无可厚非的是,我们能看到计算机求职的难度正在逐渐加大。
在这种背景下,如果你基础比较扎实,你可以寻找校园项目练手,或者留意身边大厂偶然发布的日常实习,都是为打响秋招和暑期实习准备的练习好戏。但如果你基础比较薄弱,那么我建议你先垒好基础,一步一个脚印,再重复上述步骤。
下面我们进入正题,公司们想要的“前端”至少需要掌握什么基础?
2021年了,不会还有人觉得前端三剑客很简单吧?笔者在初学前端时,听到的建议大都为html+css一周搞定,但是这样的学习大多囫囵吞枣,事实上,我花了将近一个月时间才把html和css一板一眼的抠清楚,并且实际工作中还经常踩到未知的坑(兼容适配等)。
JavaScript就更不用说了,作为核心的前端开发程序语言,也衍生了许多的流行框架(如Vue等)。前端三剑客的重要程度不亚于甚至超过框架,一定要了解清楚各类基础知识点,才不会出现诸如面试官提问事件冒泡却误答成冒泡算法的尴尬。
学习方式:推荐网课直刷,边刷边跟着练习coding
特点:难度不大,但东西杂且多,适合长期记忆学习
难度系数:★★☆☆☆
常见的数据结构包括:
一、线性表
1.数组实现
2.链表
二、栈与队列
三、树与二叉树
1.树
2.二叉树基本概念
3.二叉查找树
4.平衡二叉树
5.红黑树
四、图
学习数据结构的节点应该是介于你至少开始了解一门程序语言并且能看懂部分简单的伪代码和开始学习框架之间。其实数据结构越早了解越好,因为在实际工作和项目中,数据结构已经默认是一项最基本的技术技能,如果你连反转链表这类题目都写不出来,很难说服面试官你有胜任写出更复杂逻辑代码的实力。
学习方式:网课,选课,社区等
特点:难度较大,东西较多,但非常基础,重中之重
难度系数:★★★★★
针对公司的不同业务,前端开发往往需要使用不同衍生的web框架,如国内比较流行的vue,react,现在老项目仍沿用的jquery等,事实上,框架的更新迭代很快,社区也比较的活跃,谁能想到18年的时候最火的还是jquery,转眼vue和react就赶超上来了。
如果是初学者,那么我推荐你学习jq和vue,jq封装了一些js的原生方法如ajax,开发起来比较便捷;vue的学习门槛相比react和angular来说要低一些,数据驱动的逻辑更便于新手上手。
学习方式:官方文档,项目源码,社区文章等
特点:框架类型多,学会基本的使用和联动,多用能熟能生巧
难度系数:★★★☆☆
面试常考点,基本必问,归到一类的特性是都是偏记忆理解类,实用性较少,虽然是背背佳,但是建议把相关的知识点再阅读文章或者模型加深理解。这部分知识可以在安插在整个入门前端的过程中同步完成,或者根据面经去适当了解扩展。
学习方式:各类干货文章和理解记忆
特点:难度小,偏记忆类型,需要一定的知识广度
难度系数:★★☆☆☆
一个好的项目或实习应该具备健全的技术栈和非流水线式的代码体系。如果你实在交际荒or时间紧张,不妨看看github上大神们的完整项目,再好好钻研,你会收获许多。
为什么把算法押到单独最后作为一个学习环节呢?因为算法对于不管面试还是业务真的太重要了。一个好的算法可以事半功倍,从而节省内存和时间,提高整机的效率。这也成为面试官考察的一个必考点。
算法是看不见摸不着的,但是锻炼算法的方法类似解一个又一个嵌套的数学难题。最常见的以剑指offer为例,如果你能把69道题目都吃透,那么至少在普通的面试中应该是不会有问题。
在学习前端的过程中,至少有一半心思是需要花在算法上的,同时借鉴大佬们的代码风格,才能写出漂亮整洁又高效率的代码。
学习方式:牛客网,剑指offer,力扣等
特点:难度较大,非常重要,建议投入心思学习
难度系数:★★★★★
其实不管做技术还是非技术,在工作之后都不是以咸鱼的状态草草过之。做技术者更要有保持好奇和与时俱进的心态,才能成为中流砥柱不被淘汰。所以加油吧少年,尽量让自己的小脑门轮轴每天都能转几下。
ps:本文只是推荐了一条宏观的学习路线和清除小误区,具体的内容需要自己再去各大网站寻找资源学习~