阅读 1672

想前进的前端进行的自我反省

想前进的前端进行的自我反省

今天,我想给大家分享下我最近一直在思考的问题,前面的文章我也提到过我对于前端的一些理解跟一些困惑,我承认我作为一个新入前端领域的小萌新来说,我跟各位大佬的差距可谓是一个银河吧,并且当我了解的越深越觉得我自己可能是一个菜鸟级别的人物,也更加让我想要去努力的学习,更深入的了解技术

但是有一个观点我其实还是觉得自己是对的,前端不仅仅是前端,单纯的做页面的肯定是没有出路的,我指的是单纯的做页面,简单的说就是切图仔或者说在一种固定的模式下开发固定的页面,长久以往的重复性劳动

如何成长

这点是我思考了很久很久的问题,甚至说在写前一篇文章的时候就已经在思考这个问题了,也可以说是由于思考这个问题所以才导致了前一篇文章的产生,直至今日我才正确的了解到前端或者说技术人应该怎么去学习去成长(个人见解)

这边我主要想阐述一下具体的学习方法,以及如何去学习

学习任何知识都逃不过这几个内容,基础以及深入,先了解其基础内容,再发现他的实现,最后去搞懂他的思想,这样对于掌握那块内容而言会是一件简单而且有渐进性的一种事情

举个例子:

基础

这点应该是毋庸置疑的,不管从哪里来看,基础永远是最重要的,万丈高楼平地起,地基打得好才能走的更远,对与我们前端而言,基础大概就那么几块的内容吧

  1. js
  2. css
  3. html
  4. 网络
  5. 计算机基础
  6. 数据结构(算法)

我相信绝大部分的前端跟我可能是差不多的,上述内容大概只针对js去了解或者更加深层次的想去了解,而对于其他的内容,可能就是没有那么的熟悉,这个可能是一个通病吧,毕竟在正常业务开发工程中除了js可能就是css与我们经常接触,其他的接触并不是特别的多,但是如果不去学习这些内容,那么永远就是只能停留在绘制页面的阶段,毕竟计算机他是一个体系,如果不能深刻的去理解他,那么我们只会停留在表层,而只做表层的东西是容易被淘汰的

react/vue

除却基础,我们也需要理解在这之上搭建的前端的解决方案,最近几年比较火的就是react跟vue

学习他们不能够只停留在学习如何使用生命周期,如何使用库给予我们的api,我们需要去深入的理解他们,去了解他们的思想

就比如,react中我们常用的setState,那么在初识了解之后我们应该也要知道setState他具体做了什么,以及他是怎么做的,setState内部存在事务以及他的调度方案,他的整个更新流程是如何实现的,为什么要去这样实现,这样实现的目的是什么

我相信当了解到setState整个更新过程之后,那么在去了解16.8出来的hook的更新过程应该不会太困难,毕竟思想是统一的不会发生太大的变化,变化的是实现的方式,如果说整体的思想都变了,那么可能这个时候react就不是react了

所以我觉得针对于这些库的学习应该分为4个方面:

初识阶段

处在这个阶段的时候,大概是已经了解了他们的生命周期和api,能够通过ui图给出具体的实现,但是对于内部的实现还是存在着疑问或者说可能了解过,但是不是很清晰

深入了解

在这个时候,我想应该是已经看过源码的人了,只有看过他的源码的人,才能称得上说深入了解过这个库,但是这个了解也有很大程度上的差异,毕竟只是单纯看过源码而不理解他的含义,那么也就只是简单的一种对于代码的理解

完全掌握

当完全掌握这个库的时候,那么其实眼界就已经不在这个库上了,有跟没有已经不重要了,毕竟如果需要那么自己也可以直接开发一个同样的库出来,只是有没有这个必要的问题

生态

不管是react还是vue他们都已经有自己的生态,在了解核心库的同时也不能遗忘对于他们的周边生态进行学习跟跟进

关于我对于他们的现状

我之前一直在努力的学习,没有头脑的一股冲劲的去学,已经看完了vue的源码,涉及了一些react的源码,但是我始终不觉得我能够针对于他们我已经进入深入了解的阶段了,可能在一定的时间上面,没有去做任何思考,没有考虑过他们为什么这么设计,只是单纯的知道了他们是如何实现的,接下来我应该会在阅读源码的前提下继续深入理解他们的思想

学习的窍门

我不知道各位同学都是如何去学习的,相对于我而言,我也是最近几个月找到了最适合我的学习方法,从而得到了很大程度上的提升

学习要有计划

要规定好自己的学习计划,也就是说你要去学习什么东西,怎么学习,在什么时间段内学习到什么程度,之前有幸跟Scott老师聊过一次,然后制定了一整年的学习计划,虽然我最后已经完全脱离了这个计划的轨迹,但是我这个制定学习计划的态度以及方式却让我一直保持了下来,不断的更新我的学习计划,每次有新的体会或者新的技术点知识点出现都需要重新排一次我的学习计划,可能不会有一整年,但是却会有一个短期的目标,然后根据内容对我的重要程度而言在去细分先后

学习要有输出

学习任何知识,想要了解这个知识点,那么你必须要做到几个步骤

  1. 去学习
  2. 脱离学习文档,自己书写一篇你刚刚学到的知识
  3. 重新整理你的学习内容,将他写成一篇能够给别人看的懂的教学文章
  4. 复习

当你能够脱离文档,然后将你想要跟别人阐述你要表达的知识点内容的时候,你应该已经掌握了这个知识点,然后就通过后期的不断复习去巩固就好了

学习氛围

我们程序员学习任何东西的时候,其实都是很枯燥的,那么如果在这么枯燥的环境中去提升自己的学习效率这是一个很关键的问题

我个人的习惯是会去找一个能够让我静下心来,不会去玩其他内容的地方安安静静的学习,就比如我常去的一家星巴克,现在可能里面会员卡还有不少钱在,只是最近可能去不了了,我周末在星巴克的效率,不管是工作还是学习都会比在家高个50%左右,这个可能是我个人的习惯

技术交流

可以通过一些技术群,或者身边的喜欢学习的技术小伙伴一起组团,交流自己的技术心得以及沟通各种问题的实现方式,如果你知道这个问题的答案,那么就可以回答一下,如果不知道,最好的情况就是一边查找相关内容一边等待知道答案的人出来回答并记住答案和放入学习计划当中,深入了解

在做重复作业的公司中如何提升自己

我之前所在的公司就是这样一种情况,很多人都会有这种感觉,自己在公司的工作每天都是一些重复性的内容,怎么写都是一样的,并且毫无技术性可言,那么如何在这种情况下快速成长是必须要面对的事情

就我个人而言,在这些时候,我有几点思考:

  1. 提取重复性工作,思考利用技术来代替人工生产力
  2. 要保证良好的心态,将工作跟技术分离开来
  3. 要重点利用自己的空余时间不断的去学习新技术
  4. 有机会就要在团队中推广有利于业务上发展的技术
  5. 深入去了解业务,只有了解业务了才能够有机会去实现自己的技术特长

技术从业务中来回业务中去,只要认真思考业务了,才能够提取足够的技术实现自己的成长,以及说在自己简历上能够有一个很拿得出手的内容,当然可能会出现一种情况,上班太忙,并且抽不出时间给你去专门做这种事情,那么只能说,自己在空余时间去完成这件事情,并将他使用在工作中,看下成效,首先要有技术,其次要有老板的许可,最后要有实践以及测试,只有这样才能逐步完成,不然心态炸了不想干了很影响效率以及绩效

总结

我这边文章可能对大多数人意义不大,但是我希望给看到的是之前跟我一样迷茫过的小伙伴一点启发,我写过之前的文章之后就在不断的反省自身,然后发现了不少的缺陷,学无止境,我大概才是刚刚开始入门学习的阶段吧