「时光不负,创作不停,本文正在参加2021年终总结征文大赛」
我的心已被代码夺去,此生或许再无悲喜。
今天是2021年
的最后一天,在地铁上刷着掘金
, 网易云
给我推送了年度歌单,于是便有了这篇文章,回顾这一年来的努力,看看自己离目标还有多遥远,同时也给一年后的自己一个鞭策吧,不要停下学习的脚步继续前进。
掘金年度报告
你好,掘金 !
其他平台
Github和牛客
初入前端
2021年
,是我进入前端
的第一年,双非计算机菜鸟
一枚, 选择计算机是因为觉得计算机是当前版本答案
大一大二满满的课表和考四六级驾照已压榨我的所有精力,业余时间除了写作业就是打游戏,也没有做未来的规划,对未来也没有目标,得过且过混日子。相比之下同龄人佼佼者早已经确定好方向并为之努力前进不少......到了大三大四面临就业考公考研三大选择, (学校接近一半人考研,真就全民考研了。卷呀!)
直到大三下
接近暑假才决定选择前端,目前在广州一家跨境电商公司工作,业务接土澳ebay
、shopify
这种电商平台项目以及公司内部的项目,页面也主要是各种商城、活动啦,逻辑的话也无非是各种节日促销优惠券折扣之类的,也是挺繁琐的。工作以摸鱼为主(勉强算个外企吧,同事也有老外😂,4点半准时打卡走人的屑,虽然我也是)
回想起刚开始学前端的时候还是磕磕碰碰的,html
一堆的标签和 css
各种样式,边学边踩坑,什么文档流,响应式布局
等等。即使是这两个 ”简单” 的语言,也是做不到精通的,只能模仿着来写页面,PC端响应式、H5端,不会写就打开控制台copy样式
就这么熬到JS了. JS很多特性初学的时候时常被搞得头晕脑胀
隐式类型转换规则,this绑定规则,闭包作用域链,原型链、各种继承、事件循环、各种API用法参数...
然后又接触了Vue,小程序,Uniapp,React
........ 就这么开启了我的前端之旅。目标是成为一名能独当一面的前端工程师,最终走向全栈。
秋招和面试经历
毕竟入行晚,掌握的知识很有限,临近秋招末尾才开始投(10~11月
),不过也是争取到大中小公司十余场面试的机会,途径主要是牛客上
, BOSS上
,笔试也基本是在牛客
和赛码网
, 秋招面试过 道一云、有米科技、圈量科技、北森、深信服以及一些小厂, 印象比较深的是深信服, 在牛客上面的(一上来就4题手撕代码题,直接给面试官爆杀) 手撕代码能力和算法能力非常薄弱的我直接被淘汰,现在也每天坚持练习算法能力
(强推代码随想录 和 LABULADONG 的算法网站 ,把力扣的题目分模块列好顺序地刷, 对新手非常友好
!)
关于工作城市的话,家里人是坚决反对出省(广东人),我倒反而希望离家越远越好, 可能也是有点叛逆的原因吧, 现在虽然还没毕业住在学校,但经济所有开销都是自己承担,也算经济独立了。基本消费也就吃喝住开销大,所以只是吃和住的话,即便是北京和广州相比,消费开支差距并没有那么大, 想存钱还是能存的.
工作环境和氛围
环境都差不多嘛,都是对着电脑做开发,比较喜欢的就是人体工学椅了
(这玩意绝对是程序员必需品!),坐高度不合适和支撑力度不足以及坐垫不透气的椅子对我来说简直是折磨,不到2小时就腰酸背痛屁股痛,而人体工学椅在腰椎和颈椎都能给到有力支撑,透气又柔软的坐垫则保证长时间久坐都不会屁股疼。(当然,最重要的是每隔一两小时带薪放水摸下鱼,身体是革命的本钱嘛!)
公司的氛围比较随和,不提倡加班,弹性上班,早到早下班,下班和周末都是找不到人的,需求也不多,可以说是反内卷的典范了。我可能是公司最”卷”的了,有空就摸鱼写笔记刷牛客刷算法
😄,每次技术经理打水从身边经过都盯着我屏幕看😏。
工作学习的技术
除了Nuxt和Tailwind被要求学掌握外 , 其他的都是自己平时琢磨在学的,没事干的话都是是提倡学习新技术提升自己的。
Nuxt.js(基于Vue的SSR框架)
公司主要是做土澳的跨境电商业务,电商网站最需要的就是SEO
,前端框架用的是Vue、Angular
和一部分老项目还在用JQ
。当然主要是Vue
,因为需要做SEO
,所以理所应当地采用了SSR(服务器端渲染)的框架Nuxt.js
, 有 Vue
的基础看文档一天就能撸个 demo
出来.
TailwindCSS
这是一款最近几年特别火爆的CSS框架(同时也极具争议),优缺点都挺明显的,最近也发布了3.0的新版本。
💡 Tailwind功能类可以帮助您在系统的约束下工作,而不是在您的样式表中堆满任意的值。它们可以让您轻松地在颜色选择、间距、排版、阴影以及其他一切构成一个精心设计的系统的元素上保持一致使用后就爱上了 , 但还是有几个缺点
- Tailwind官方提供的组件库是收费的,价格高昂。
价格如下图,还挺贵的,公司随着一套实现框架一起买了,所以也用起来了。
推荐开源的 daisyUI
Bootstrap5和Sass
大名鼎鼎的Bootstrap
早就用过了,之前用的是3的老版本,这次直接用最新版本5,直接上手撸,使用下来最大的感受就是Bootstrap5在很多方面也在向原子类方面靠齐,可以说Bootstrap5和Tailwind大部分理念都是相同的,比如都是Mobile First移动端优先,响应式的实现也相同,很多语法都是一致的,但是Bootstrap5的组件库更为丰富,有官网预先写好的样式,而Tailwind则更多需要你自己去写CSS,并没有太多现成的组件.
CSS预处理器的话之前一直用的Less
,公司这边都是用的sass
,因为有Less的基础学习成本不高。 sass唯一麻烦的就是node-sass 这个包,感觉每个前端er用sass都踩过这个坑了吧~接了个老项目,这个包死活安装不上,最后发现是node版本太高了。sass
新版本是dart sass
,放弃node-sass
了。
小程序和mp-vue
公司内部小程序是用Mp-vue
这个框架做的,mp-vue
是美团开源的一个KPI项目,很早就不维护了,所以就丢给了我。基于Vue的跨端除了mp-vue
还有uniapp
,uniapp是现在比较主流且实现得较好的Vue跨端框架了,也用uniapp写过一个玩具项目。这些跨端框架说是说,一套代码多端部署,实际上还不是自己处理兼容问题,还是得写各端的代码。都说比原生节省成本,感觉并没有。不同的跨端方案综合体验下来,始终感觉跨端是个坑。无论是Uniapp
还是Flutter、RN
等等,只能将就用,真追求还得原生,但学可能也得学。小结: 跨端是坑。想清楚再跳
Node和egg.js(也许是Nest.js)
快速上手 crud
的话 egg.js
文档还是非常友好的, 一个下午就能做个像样的接口, 除此之外我还关注另外一款 node.js 框架 , 就是基于 TypeScript
的 Nest.js
, 个人觉得比 egg
要靠谱得多
今年阅读的书
JavaScript书籍
也就是被封为前端经典的红宝书和进阶版的小黄书,红宝书就不说了,JS入门百科全书了,前端经典也的确配得上,小黄书(上卷),使我对函数和作用域、作用域链和原型、原型链这块有了更深的理解。这本书在Github上开源电子版的,绝对值得一看!
计算机网络
《图解HTTP》
《图解TCP/IP》
两本带图的比较通识的计算机网络书吧,看起来不会过于晦涩同时也能吸收到干货。看起来也是比较快的,非常方便复习或者碎片时间翻开看一下,巩固网络基础。至于进阶版的话,暂时还没时间来得及看,而且这两本很多时候都够用了。
数据结构和算法
《啊哈!算法!》
《算法导论》
《代码随想录》
《JavaScript 数据结构与算法(第四版)》
没有找到合适的JS算法书。随便找了本《啊哈!算法!》虽然是用C实现的,但例子生动有趣,算法原理都是带图讲解的,对我这种算法没基础的可太友好了。
算法导论的话是上算法课的课本,根本看不懂,寄!😇
算法刷题练习的话还是牛客专项编程,力扣,还有就是代码随想录这个算法题网站,真的非常好。
学习状态
学习状态大致分为三种:
- 第一种焦虑状态,学习时感觉有压力,想要快点完成当前的事情。(肝需求)
- 第二种无聊状态,学习感觉很无聊很枯燥,方向、目标不集中。(无聊随便找点什么看的时候)
- 第三种是
心流状态
,在学习高度集中的时候会忘记时间的流逝。(沉浸式阅读并带着思考)
心流
思考一下你学习的状态和你打游戏的状态(手动狗头🐶)
心流的定义:在心理学中是指一种人们在专注进行某行为时所表现的心理状态。如艺术家在创作时所表现的心理状态。通常在此状态时,不愿被打扰,也称抗拒中断
。一旦进入心流状态,我们就会很容易沉浸其中,不觉得疲倦。
例如我们在玩游戏的时候,不需要调整状态就可以进入心流状态。在玩的过程中,注意力高度集中,别人叫我们就听不到。忘记了时间,也不会想着吃饭时间到了。别人叫我们,反而会特别烦。
但在学习的时候,却很难进入心流状态。总是想着偷下懒刷下手机之类的,但是最近我开始悟到一些进入心流状态的方法吧。仅限于我个人,但应该可以给你带来启发。
进入心流状态不是一件简单的事情,但要以此为目标。
为什么打游戏的时候能秒进心流?而学习不能?是因为你喜欢游戏,游戏开发者首先会考虑如何让你着迷,设计开发出不同层次的难度剧情,思考下你游戏时的状态,你刚开始玩的时候技术很菜但游戏会给你各种提示,所以你会玩了并且通关了,这给你带来成就感,而下一关难度提升,你开始掌握游戏技巧,你开始越玩越带劲,因为游戏难度和你游戏水平大致是匹配的,既不会因为难度过于简单觉得无聊,也不会因为过于困难而感到沮丧。
玩游戏能进入心流的技巧在于 : 游戏能力 和 游戏难度 是大致匹配的。
所以才能沉浸其中 喜欢玩游戏。同样地各种游戏的匹配机制都是匹配同一水平的选手,你们的大致水平是相当的,所以能打的有来有回,不会因为遇到大神被虐翻带来的挫折感,也不会因为杀了几个菜鸟而感到无聊。
而学习难以进入心流则是 : 学习能力 和 知识难度 不匹配
想想刚开始啃文档的时候看到难以理解的知识点,脑海中第一反应是抗拒然后是焦虑,心态变得急躁不安而失去耐心(卧槽,这什么无字天书,这个不会啊)。这样即使是一个很简单的东西,但因为你没耐下心去看去理解,很多知识依然没掌握,学习效率也低,下面的章节和内容自然也没理解,就不断陷入一种恶心循环。
学习进入心流的关键在于: 你不排斥学习,学习能让你感到有所收获,学习的难度是可以接受的
回想我之前的学习状态,我觉得大概有那么几个场景我觉得是进入了心流,沉浸于当前的事情,完全忘记时间的存在
费尔曼学习法
- 写笔记写总结。
vscode
打开zen mode
开始贤者模式疯狂码字。看到知识点不会的记录下来到notion里,整理归纳。再根据这个知识点延伸出不同的知识点,一旦开始整理就一发不可收拾,逐渐构建起自己的知识体系。 - 带着明确的目标,比如今天要完成XXXX,每天起床看一遍TODO清单,上床前看一遍,养成习惯督促自己,不再让计划变谎话。
- 及时反馈(奖励)。 学习是需要输入输出的,要把学到的东西用出去才能掌握这个知识,看完了视频觉得懂了但是没跟着敲代码,看完文档但没自己手写实现,这些都是没有反馈的学习,实际学习效果并不好。如果玩游戏一直被对面杀,相信你很快就会感到沮丧而想退出游戏了,相反击杀敌人感到愉悦,想继续玩下去。学习也应当如此,学习使我快乐(屁!)。学习不能使自己感到发自内心的快乐的话其实还是一件挺煎熬的事情,所以我觉得在完成一个目标后,短暂放松奖励自己才有利于持续学习,与其压抑着闷头学,不如及时奖励反馈。
业余时间消遣
下班日常
下班后不想敲代码,都是写归纳写笔记刷下视频
,游戏也少玩了(惩戒魅魔啊,我刚惩戒完.jpg)运动的话比较少,毕竟比较忙,感觉身体变差了,加上长期久坐伙食有点好,体重也在缓慢增长😭~
追番
电锯人
优秀的分镜和天马行空的想象力和荒诞却又合理的剧情走向,明年动画化又是爆品。
炎拳
神漫,看完炎拳后,觉得电锯人也不过如此。看完只觉得一阵空虚,仿佛生命失去了活性,什么都不想去思考。
eva
今年才开始看eva,正好今年完结了,我也同剧中的少年一样成长为了大人(社畜),在成长的过程中也完成了自我的“补完”,可以说是感同身受。
再见了,所有的EVANGELION
jojo
看完jojo了,一般,有点弱智(手动狗头)
看到画风一开始是拒绝的。
以梦为马,不负韶华
对未来的期望
总之要学的多着呢,永远不能停下学习的脚步,做好业务的同时也尽量多了解学习新技术(WebAssembly
(wasm) 以及Rust
),当然还有一些非技术上的能力,最近也研究点心理学,毕竟和人打交道可比和程序打交道难多了
,以及坚持训练算法题和手写代码能力,每日一题坚持住~
感谢掘金
感谢掘金这个平台,在暑假自学前端时才开始了解到掘金
这个平台,掘金大多数创作者也是前端
,上下班地铁刷掘金
成为日常, 掘金和大佬们的文章帮助我成长了许多。
向掘金的大佬学习
yck
大佬写的前端面试之道掘金小册给我带来了许多帮助, 强烈安利 👍
最后总结
正如掘金
的口号一样,生命不止,奋斗不息
。不管哪一行,持续学习都是必须掌握的能力,没有自学能力的人是没有未来的。程序员更是终身学习的典范,干这行早就做好了做多久学多久的准备了。
最后的最后摘抄一段话来收尾吧,值得深思的一段话~
《没有自学能力的人是没有未来的》—摘自同名书籍片段
自学有两个因素需要深入考虑:未来的日子还很长,这世界进步得太快。
社会发展越来越快,我们要面对的人生越来越长,没有未来的日子,怎么过呢?自学能力是唯一值得被不断磨练的长技。
磨练出自学能力的好处在于,无论这世界需要我们学什么的时候,我们都可以主动去学,并且还是马上开始 —— 不需要等别人教、等别人带。
当然有很强的自学能力的意思也并不是说,什么都能马上学会、什么都能马上学好,到最后无所不精无所不通…… 因为这里有个时间问题。
无论学什么,都需要耗费时间和精力,与此同时更难的事情在于不断填补耐心以防它过早耗尽。
另外,在极端的情况下,多少也面临天分问题。
人学习就好像是动物进化一样…… 很多人很早就开始停止了进化。
在某些竞争中,先人一步意味着接受更多的教育、在健身房或图书馆里花更多的时间、获取更好的营养、付出更多的汗水、拥有更好的耐力或更好的设备。这些都可以通过自学得到。
下班回学校恰逢水枯顺手拍了张照
感谢你看到这,希望我的文章能让你有所收获,我是lavard,愿你用代码改变世界 !