怎么衡量前端达到了什么水平

问题 by futurePlayer

  刚刚步入前端届,属于新人,对自身的评判和衡量都还处于一个很初级的阶段,现在也是面临自己的一个分水岭,不知道自己现在到底是个什么样的水平,就拿自己最近做的一个网站给前辈们看看吧,http://www.vrone.me/,网站只做了PC端的样式,功能很简单,移动端还是想自己做样式,不想依赖于bootstrap之内的东西,所以如果在移动端有视觉塌陷就难为大家了,而且网站有时候会有点慢,当然网站也是经过部分的优化,没有采用云加速等的优势(目前还不想用在用在网站中,就拿百度来说吧,新版经常出现一些问题,不过速度会提升很多这毋庸置疑),服务器端的带宽也是问题,可以ping一下就知道了,所以这也是程序和服务两方面的事情。

  简要说一下自己吧,做前端没多久,对html,css,js原生比较熟,h5,css3就欠缺一些了,能够熟练运用jquery,研究过其过源码,也针对一些问题写过部分插件,比如选择器,事件队列,js设置样式等兼容问题(如隐藏元素及可视元素样式的获取和设定等等),具体github上有,对MVC和MVVM等框架有过认识,如angular、react、ember,用nodejs开发过网站(上面链接网站就是express开发的),也写过一些小玩意,如留言板,聊天室,能用grunt等自动化工具来构建网站,网站优化懂一些(如打包合并,减少http请求,DNS预加载,缓存等),并能用到项目中去,liunx命令一般,后台php还是大二的时候写过,现在都没碰,比较生疏了,数据库可以用mysql进行一般项目的开发。想问问这样能定位到什么水平,能找到什么样的工作?

  大概就是这样,能提的或者没提到的综合起来也差不多了,希望前辈能从自己的经验出发,分享一些自己的看法,可以黑,但是要基于事实的前提,如果有什么意见和建议都是我很宝贵的财富,前端路上希望能够走的更远。


我的看法

站本身没啥致命的槽点,但说“工程师的能力”很多时候也是一个这样的站体现不出来的,如果题主是应届或工作一两年的话,能力本身没有任何问题。我就谈谈我觉得对我的成长最重要的几点吧

匠心

匠心分成几点,首先是作为一个手艺人,要爱自己的手艺,爱自己的作品。看到漂亮的作品要两眼发光扑上去研究,看到烂代码(不管是谁写的)要认真反思(其实看走眼的情况也意外地多)。对自己的作品要自豪,不要马虎眼。有时业务紧压力大时,我们会被逼用一些dirty way来做事,要清楚那是dirty way,保持愧疚感。

其次,能工巧匠必有其利器,玩转你手边的工具,经常更新你的工具箱,永远寻找更趁手的另一种工具,适时自己操刀搞一些工具。编码是我们最不重要的工作,思考,归纳,演绎才是我辈本职。写代码的时候大脑在“写代码”进程分配CPU越少,花在“思考”进程分配CPU越多,效率越高。emmet coding一个tab可能确实只能省一两秒时间,但这少打断的一两秒很多时候就是决定性的差距。看看心流(flow)理论,你的工具箱越顺手,工作时就越能集中思考,心流状态就越频繁越长。

最后,要有“独具匠心”的创新精神思考能力,完成任务只是原地踏步,唯有反思和自我批判能改进你的缺点,唯有创新和不断试错能增加你的优点。

教学相长

在鹅厂,T3.x的晋升的一个指标就是要授课,但我在还只有的T1的时候就已经第一次做团队内部技术分享了,做完以后我突然发现,技术分享对我的帮助比对小伙伴的帮助还大。这固然是因为我水平不够,没达到传道解惑的境界,但更是因为教学相长。你有个很酷的主意,实现它对工程师来说经常没太大难度,但要讲清前因后果,理清脉络,整理成技术分享的过程,比你想象中要难很多,一旦整理出来以后你会发现自己的理解一下达到一个新的高度。然后做技术分享的过程中,不仅锻炼你自己的自信,还能从小伙伴的反应,疑惑,问题中再学到很多。是谓教学相长也。

类似的还有作教程,写文章等等。这里我特别想谈谈“文章”和“笔记”的区别,前者是你表达一个观点,描述一种思想的,“一身功力的结晶”,而后者只是某些知识点的整理记录。从学生时代起,我就从不做笔记,对笔记抱有个人偏见。我见过太多程序员的博客充满了笔记,乏味而无趣,没有新东西,没有营养。程序员写博客确实是好事,但博客本应是写文章的地方,不是笔记小抄,我不反对做笔记,但那应该在自己的evernote里,而不是写在博客里。好学生以记笔记的过程熟悉知识,复习的时候以笔记为媒介回忆当时的思考和理解,看别人的笔记则没有什么实际帮助,更糟糕的是如果无脑照抄别人的笔记,失去了自己的思考,丢了匠心,实在得不偿失。在博客里记笔记,远远达不到写文章的“教学相长”效果,只记录google结果,考试答案,没有自己的独立思考。 所以我独立出技术博客快两年了才刚刚翻页,不是不爱写,实在是水平不够,写不出那么多的文章。

《The Pragmatic Programmer》

译名《程序员修炼之道》。这本书每个工程师都应该看,每个工程师每年都应该重新看至少一次。我最近买了原版收藏。这本书我看了大概有5年了,常看常新,每次看都有收获都有感悟。

这样说吧,可以说差不多每次你写代码的时候觉得“被坑”了,这本书里基本都有对应的谆谆教导。

我心里把这本书称为《乌托邦里的程序员》,描述了乌托邦里永远不被坑的程序员是如何工作的。

沟通和情商

无论你是否希望成为管理者,沟通能力和情商都是非常重要的。

有点写不动了,这也是我不怎么行的一点,没啥能吹的,我在《一个优秀工程师的衡量标准是什么?》的回答里有一些简单的point可以参考参考。


和前端相关的一些建议

  • 掌握一门css预处理语言
  • 看看bootstrap源代码(less)
  • 自适应,移动端
  • javascript异步,promise,异步并发/串行,异步递归等
  • 模块化,amd cmd 稍早的requirejs/seajs,现代的webpack/browserify(均推荐前者)。另一条路线是包管理/依赖管理,有bower component duo等等

这是我在 SegmentFault 上的问题回答选编,遵循CC BY-SA 3.0 CN 分享

今天这个歪题的回答鸡精浓度过高,于是只放这一篇了

题图:万智【变巨术】

©mcfog All rights reserved.