一只大四狗对程序员的浅见

前言

最近重学前端在前端娱乐圈是挺有热度的,早前无心间经过别的木易杨大佬接触到winter大神,这是当时看到的大佬整理的笔记,这位大佬也在掘金活跃,这是大佬的笔记节选:前端

一、对于框架的使用不必花太多时间,应该多研究一下三大框架背后的设计思想。

二、当一个程序员对算法、语言标准、底层、原生、英文文档这些词汇产生恐惧感的时候他的技术生命已经走到尽头。

三、前端架构主要解决的是高复用性,架构能力提高方向主要是组件库开发、前端框架实现等。

四、对于前端进阶这个问题,其实看书的做用和意义已经不太明显,须要寻找好的平台和合适的项目,在项目中不断克服难题并挑战本身,遇到问题再去查资料总结。若是只是闭门看书那很难成为高手,书只是基础而已,真正的应用仍是在项目中。

五、寒冬中能作的只有提高本身,可是光靠技术是不行的。
复制代码

专业能力

底层

1.编译原理,这个东西离咱们前端是多么遥远,可是如今SASS,Babel这些,不都是依赖AST,须要编写的Bable插件,不少时候须要咱们对AST有必定了解,编译原理对这方面有很大帮助,这里有一篇文章 2.计算机网络,话说这个东西我上课的时候,以为特别无聊,等工做的时候,发现,哦豁,书上的东西和如今的东西咋不同,TCP、UDP这些,我都很吐槽的,由于平时就发个请求,也没啥,到了接触工做,发现了解http、https这些,对咱们开发颇有帮助git

原生

1.个人一个想法就是,原生就是咱们学习的加减乘除,然后续的高级数学(框架)都创建在这基础上,一个加减乘除不熟悉的人,你以为他会不少计算出高级数学的结果吗程序员

2.了解原生可以站在语言设计者角度来认识这门语言,就像妈妈同样,你了解你的孩子优势和缺点,那么很容易在让他作一件事以前,分析优缺点,让他作合适的事情,若是是外人,那么只想着让孩子作事情而已github

算法

1.算法的本质是为了解决问题,可是通常来讲,咱们不多遇到非算法不能解决的问题,那么算法就主要突出在解决问题的思路和效率上,也就是能够更好的解决问题,这是算法被忽略的重大缘由,从之前我看到阮一峰大佬的快排算法被批,我就意识到问题的严重性,算法是严肃的,人家是空间换时间,你是为了实现方面牺牲了空间,实现却是实现了,可是缺不能了解到快排的灵魂所在,只要没有到达瓶颈,那么优化永远是句空话,如今的首屏渲染优化,也是突出了之后才被重视的。算法

2.算法能够带来思惟方式的变化,当时有一个舍友在实现一个类型微信的好友查找,有一个输入名字而后显示候选人,我被他的思惟所惊讶道,他使用了最长公共子序列,而后那这个最长公共子序列算法去计算这个序列与匹配字符串的比率,按照这个来排序,这个方法先不谈,我惊讶于他对处理事情的思惟,与我已经不一样,还有一个就是当时在CNODE社区看到的嵌套数组查找元素,有人提出了更快的查找算法,多么有思想的人。编程

3.算法思想也能够迁移到其余场景,我发现这个问题是在刷一题叫数组前K个最大值、还有一题n个元素的数组,最少须要比较多少次的题目,二者都用到了快排的思想去解决。数组

语言标准

1.语言标准就像数学上的定义,是全部问题的最终解决手段, 最近来看,ECMASCRIPT规范,已经被不少人知道了,而且应用到了本身学习中去,对我而言,有一个贴切的例子,规范就像咱们学习的导数,不知道原理,能够去用,还用得不错,可是遇到一些问题,没法解决,这时候老师就会从导数原理讲解解题思路,正如这个例子,语言标准是咱们解决问题的最终手段,是这门语言的公理,有时候一些问题困惑,咱们须要它来解惑。前端框架

框架

1.三大框架的共性是什么,MVVM、组件化、状态管理、路由,固然这里因为我也没仔细研究过Augular,React,这里只能说大致是这样。由于之前JQuery那种MVC的模式,因此出现了MVVM来实现关注点分离,让咱们精力关注在数据上,前端复杂了,因此须要组件化来解耦,解耦以后数据流成了网状,咱们设计了状态管理来使得数据流变为树状,为了实现全局、局部切换,设计了路由来对应视图的URL映射微信

我的能力

英语

1.命名,如今不少人乱命名,写出来的代码只能给本身读,好的命名能够自解释,像拼音首字母缩写命名法,可能次日你本身都忘记了,可是标准命名,人家就算不懂英文,查一下就知道你写的是啥。网络

2.看到XX报错,反手就把提示甩给别人,其实如今框架作得很好,英文提示基本都告诉你是什么错误了,不懂英文还要先去翻译一次,懂英文可以直接翻译成中文,按照本身的理解来解决问题,这方面花费的时间差距是很大的。

3.技术博客、技术书,编程这东西是在外国带过来的,人家就像咱们用中文写代码那样畅快,咱们起步也晚,国外的技术博客、技术书不少时候都是质量很是高的,有人会说,咱们能够看翻译,翻译失真是一方面,更大的问题是,技术的抢先,通常来讲,翻译一本书是须要时间的,也不是全部的外国资料都有翻译,你能抢先学习,那么你就有先发优点,第一次意识到这件事,是我在学习语言的类型系统看到的《Types and Programming Languages》,冒的中文翻译,就只能本身去翻译了。

表达、理解能力

1.为啥说表达能力那么重要呢,由于你会技术很理所固然的事情,可是担心的是,可能你以为你会,只是你的知识限制了你的想象,咱们须要与他人更多的交流,程序员追求的就是言简意赅,深刻浅出,在读官方文档会有摸不着头脑的状况,可是看别人的博客就会好不少,博客就表明了这我的的知识组织能力和表达能力。 2.理解能力,甲方爸爸的需求,你总得好好理解吧,半路再改,两边难受,我以为理解的终点,就是可以根据现有的场景推测出对方的意图,一般来讲,对方并不知道他要什么、问题在哪里,咱们基于现有的场景进行推测,理解,一个例子就是群里说为啥Vue数据不更新,你就知道他是遇到响应式边界或者异步问题致使的,固然这个例子不太恰当,我以为更加像是心有灵犀吧。

抽象与具体转换能力

1.erlang之父提倡写程序以前先思考,我我的也以为是,不该该一股脑去堆代码,而是应该先站抽象整个事情,分析流程,选择方案,这个过程就像把完美的算法伪代码实现,更加符合个人理想中的程序员

总结

我也只是一条大四待业单身狗(哭),这是我昨晚忽然想起来须要总结一些程序员方面的,毕竟最近由于种种缘由,一些思想有了变化,在迈向下一个地点以前,作一个小小的总结,来警示本身,对了,若是大佬们赏脸,能够在个人GitHub仓库star鼓励下

相关文章
相关标签/搜索