`

一个前端er写在2015年末的话

 
阅读更多

转自:http://www.cnblogs.com/vajoy/p/5040365.html

写惯了技术类的文章,这种总结和唠嗑型的我基本也就在年末才来一篇。说实话,这种轻松类的文章往往比技术类的要受欢迎的多,因为其受众更广,看起来也不烧脑。

说来愧疚,这一年其实产出有点低,大致就写了不到二十篇技术随笔,特别下半年入职腾讯后就更少有时间动笔了。

但再忙也没打算摒弃写文章的习惯,一来是为了自己沉淀,二来也是希望自己能为国内的前端分享出点贡献——这想法虽然有些滑稽,却也是我本人确切真实的想法。有时会想着自己能给这个社会带来、留下些什么,如果没有揭露相对论的能力,那么写点文章我还是得以胜任的。

就我个人而言,今年发生了蛮多事情,但今天不讨论私事,纯粹作为一名前端er来侃侃前端这块的一些趣事儿,或者说我的一些拙见。

前端的大环境

自从09年 Node 出来后,前端的内容愈来愈丰富,各种技术日新月异迭代起来乐此不疲。

如果你想学习Node,可能会入手《Node.js实战》一书,然后试着捣弄 Express。殊不知现在有很多人已经玩上了 KoaJS,嘲笑着还在使用 Express 的民工,紧接着是用上 thinkJS 的人翻着白眼谈笑风生。

前端自动化工具也是撕逼的厉害,从 Grunt 到 Gulp,从 Bower 到 jspm 和 webpack,仿佛一夜间 Grunt 上那上万个插件包就都统统过气。

哦对了,谢谢谷歌和脸书,ng拉起了五花八门的前端 mv* 框架潮,React的组件化概念也颠覆了常规web开发的理念。

还有新面世的ES2015,让我想到个好笑的事情——babel迭代到6的时候,各大前端技术群里风声鹤唳的,因为相比旧版本,babel6的配置变得太多了,又缺乏(中文)文档,导致一堆手贱升级又不懂配置的码农哭晕在地板上。

另外 Phonegap、React Native、Fuse 等的出现也让前端日渐渗透进了移动应用端,噢别忘了现在通过 node 还能开发桌面级应用呢。

有人说这是前端最好的时代。

我觉得对前端er来说,这或许也是个挺操蛋的时代——要去了解的东西实在太多了。

前段时间 Aaron 在群里吐槽,表示近些日子前端的变化让他都要崩溃了(当然是句玩笑话,真正会让他崩溃的应该是他当日的猪肉没卖完)。

有个朋友不久前告诉我,说他买了好几本小说在看,我当时的表情是这样的:

原因很简单——我已经很久很久很久没有涉猎过非技术类的书籍了,要知道我的书架上每天都有几本厚厚的技术书对着我说:“还没把我看完啊?啥时候看我啊?今晚上我好吗?”。。。我又哪有闲暇时光去看其它的小说。

所以如果现在有张白纸(当年刚毕业的时候,我的第一位上级是这么形容我的)说他要从事前端的工作,我会笑着摸摸TA的头温柔地说道:“请你吃点屎冷静下好吗”。

武器或内功

前段时间成立了个分享小组NZOO,大熊在里头挥着旗帜带大伙搞Node,原生的Node。然后北川君站起来了,说他觉得更希望带动小组直接分享一些现有的主流框架,而非把学习成本花费在原生Node上,原因很简单——来钱快。

北川君在公司是个领导级的人物,所以很好定位他的思维——一切以开发效率为主、以钱为主。

这并非只是一个日常观点小碰撞,我觉得有必要好好思考思考,自己现在在学的是什么、想学的是什么。

我在上家公司的时候,给他们部署了gulp前端自动化工程,带起了sass、avalon 等一些他们没应用过的、开发快也更好维护的新技术,效果是,显得你很牛逼 —— 如果你擅长使用一些新颖好用的新工具,那么常常能很直观地给项目带来利益(效率或性能上),那么这会成为你职场上的一个助力。事实上对于许多中小型企业而言,他们更注重于敏捷开发,那么懂得“班门弄斧”会是一件重要的事情。

对于大公司而言就不一定了,像我现在所处的部门基于历史原因基本都还在使用 Grunt,有时业务需求一负责你是找不到对应的 Grunt 插件的,会考究你的原生代码书写能力——自己写出一个插件来作为解决方案,而不是去 npm 上搬个擦屁股的救兵。

作为一名老前端,肯定会用过许多主流的工具,比如 jQuery 及其各式插件,比如 Vue 比如 React,但很多时候我们就是那么习惯性地用着,可能没想过了解下它的源码、实现方式——这在我后期想起来是种略为毛骨悚然的事情。

如果说把各优秀的前端工具/框架当作一把锋利的兵器,那么阅读源码、了解它们的实现方案便是内力的培养。

很多人可能工作了不短时间,但技术不见增长,一个较大的原因还是“懒”——啥功能都懒得自己写,直接拿起插件生搬硬套,搞的页面性能差不说,自己也不懂扩展和维护,不知其中一二。

其实说白了,武器的练习跟内功的培养其实也不冲突,你可以一手抓,只是往往罩杯较大可能没法一手掌握,会比较吃力,那么还是建议你审视下自己的职业规划,是兵器能带给你更多的利益,还是内功能让你更强大,然后做出权衡。

如何学习

关于本人“两年前还在群里问js对象里的冒号是什么意思”的经典范例常常会被群里的人拿出来做谈资笑料,北川这死不要脸的还说他给下属洗脑的时候还把我当例子了。

今天下午也有个孩纸私聊我问我是怎么学习的,才能从小白变V神(虽然我墙裂觉得后面加个“经”字才合适)。

虽然离“大神”还有挺长的摸索距离,但。。。咳咳。。。稍微吹下牛我还是可以的。如果涎皮赖脸地总结下我的学习经验,我大致会归纳为这么几点:

1. 拒绝插件

不要遇到一个交互效果就想着扒个插件来用,想想它会怎么实现然后试着去写出来。遇到困难了不着急,参考下别人的插件是怎么实现的。

个人觉得“写插件”是每个前端小白要初步进阶所必须试着去做的一件事,它对你的提升可以是很大的,不仅仅是有助于你在技术点上的认知,也有利于提升你的JS语感。

2. 加入一个氛围好的技术群/团队

如果你身边没有这么一群喜爱技术的小伙伴,那么找个氛围好的群加进去吧,让大神带带你或者跟小伙伴一起同步交流,学习起来自然也不孤单,还有人不断激励你前行,何乐而不为呢?

3. 多利用时间

“多看书多看好文章”这种废话我就不说了,但请你不要每天把精力花在看肥皂剧上然后又埋怨没时间学习。

时间总是可以挤出来的,你可以在你上厕所的时候想想Ajax原生请求怎么写,或者像我之前像个傻逼一样把Node API打印出来拿在路上边走边看。

当然也不要把时间都花费在学习上,有时间多陪陪妹子多出去走走聚聚,程序员的日子不应该太压抑。

不过我也检讨一下,上周有三天时间沉迷于我厂新游怪物猎人OL上(卧槽我真的不是打广告),结果第三天玩着玩着,向来讨厌浪费时间的我突然觉得自己是不是神经病了(反正就这个念头),接着立马把游戏卸载了。。。

4. 学!英!语!

不久前很多话题讨论说,英语是最没必要掌握的课程,建议教育部革除其作为三大主课程之一的身份。对于这批可爱的网友,我建议他们可以去叙利亚好好地旅游放松下。

起码就IT行业而言,英语是非常重要的技能,特别当许多新技术出来的时候,基本只有查阅英文文献才能找到解决方案(babel6就是个好示例)。

所以如果你的英语能力不够好,努力地去提升它吧,装个有道词典划词来看文章,争取能看懂外文的大部分意思。

总之这点不是开玩笑,阅读英文文献对于码农来说是非常受益的事情,另外遇到问题你也得以去 github 提个issue来解决。

5. 多沉淀

试着开个博客吧,认真地记录下那些你在项目中遇到的问题和解决方案,或者用心地去查找、梳理你感兴趣的技术点然后记录下来。

它会耗费你一些时间精力,但也能催动你更深入地去了解、探讨某个知识点,巩固你对它的记忆。也可以作为将来反过来查询的工具书。

6. 干掉让自己焦虑的那些东西

在职业生涯初期,作为小白总会有许多未接触过的技术盲点,有时候工作来了或者前往面试,都会由衷地担心起来,为自己知识的欠缺、胜任与否而焦虑。

我个人及其讨厌这种“焦虑”甚至“害怕”的感觉,一旦你感到这块的压力,一定要大胆地把它挖掘出来,然后一个个干掉它。

什么意思呢?比如当你觉得“我好像不会写原生的Ajax”、“跨域的方法我貌似没法都答上来”的时候,就尽早去找资料学习和了解,一步步干掉知识盲点,这样你只会愈来愈自信。

要记住只有你才是最了解自己弱点的那个人,只有你才是能拯救你自己的那个人(卧槽你拍电影啊)

有必要进大公司吗?

我觉得,作为一名搞IT的码农,没进过BAT总会有些遗憾(我也经常拿这个激将Aaron来深圳),所以如果有能力还是试着来这边镀镀金,或者说镀个经历。

他会让你了解一个大公司是怎样运作的,会让你视野变得很广阔,这里也有很多前人的知识沉淀或课程分享,身边也都是优秀的小伙伴可以交流和碰撞idea。

也会让你走上加班不归路(哼我设为斜体字了你们肯定看不到这一行)

但是如果你是应届生,我建议是先别急着进大公司。

原因很简单,大公司分工太细了,常规招你进来只做专才,你会在某个领域逐步精通,但放开整个前端面而言,会很欠缺实践。

说实话,我觉得大企业细分工作的形式,会让部分一直待着的员工,即使他们很优秀,跳槽去一家中小型企业的话,可能也没法很好地胜任前端一职。因为很多中小企业要求前端得是全能的——切的了图写的了样式编的了脚本,今天让你写个手势插件,明天让你搞个跨域通讯,后天让你负责个走spa的hybird。

有能力进大企业的应届生,往往都能在中小型企业里逐渐成为技术主导,会负责各种各样的工作,遇到各种各样的问题,自己手动编写各种各样的模块,这能给你带来非常丰富的从业经验(当然也会有所压力)。

在大企业的话,所能主导的部分自然会变少,因为有许多大牛早已帮你写好了各种业务模块,项目也早已确定好了相应的技术选型,而我们更多的是在上面做二次开发。

所以总的来说,能在外面有个几年实践和磨练再进大公司,会是我个人觉得的比较合适的选择。

年度书籍推荐

不吹不黑,我厂AlloyTeam成员曾探先生在今年发行的《javascript设计模式与开发实践》一书,是我个人认为的今年最佳的前端书籍之一。

本书结合了大量的业务实践来娓娓道来js各大设计模式的原理和应用,能让你更好地了解、掌握这些思想。

另外本书的语言组织能力也非常出色,用了许多生动形象的例子来帮读者了解一些生涩的概念,相比之下,现在世面上某本译作简直是disaster(那本书被我扔在上家公司都懒得收回了)。

这本书比较适合中等级别的前端朋友来涉猎,能让你收获很多意想不到的知识或解决方案。

分享到:
评论

相关推荐

    前端er必备技能 - 前端调试通关秘籍

    作为前端开发者,我们都知道调试是一项必不可少的技能,它能帮助我们解决琐碎的 bug、提高...它不仅将帮助你成为一个高效的前端开发者,还将带你步入前端调试的神秘世界。现在就开始探索吧,解锁前端调试的无尽可能性!

    前端开源库-derer

    【前端开源库-derer】是一个专为前端开发者设计的开源库,它的主要功能是提供一个强大而灵活的模板引擎,使得在构建Web应用时,能够便捷地将数据与HTML结构相结合,生成动态页面。这个库的设计灵感来源于Python世界...

    布局功能的ER图

    一个ER图的实例。用来给进行数据库设计的人设计数据库的一个参考资料。

    前端面试题-手写代码实现

    在前端面试中,手写代码实现是衡量一个开发者技术实力的重要环节。这涉及到对编程基础、算法理解、问题解决能力和代码质量的综合考察。以下将分别解析标题、描述中的知识点,并针对每个文件名提供相关的内容。 标题...

    一个画er图的好工具,很不错的

    EZDML可能是一个软件的名称,它可能支持导入和导出ER图的特定格式,以便于与其他人共享或在不同的工具间迁移。 在实际应用中,使用ER图工具可以带来以下好处: 1. 明确数据结构:通过可视化方式呈现数据模型,有助...

    ER网络的C语言实现

    ER网络,全称为Erdős-Rényi (也译为埃尔多斯-瑞尼) 网络,是随机图理论中的一个基本模型,由Paul Erdős和Alfréd Rényi在20世纪50年代提出。在ER网络中,每对节点之间是否存在边是独立且等概率的。这个模型提供...

    各种ER图实例大全

    ER图,全称为实体关系图(Entity-Relationship Diagram),是数据库设计中的一种重要工具,用于描绘...因此,这个“ER图实例大全”是一个非常有价值的资源,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。

    ER模型插件--ERMaster(一个jar包)

    ER Master 是一个用于设计ER模型图的Eclipse插件。提供的功能包括:从数据库导入关系生成ER图,导出设计图,导出DDL数据定义语句等。目前完整支持的数据库包括 MySQL、PostgreSQL 和 -Oracle (developing) -DB2 ...

    校园一卡通ER -初步.vsd

    校园一卡通ER -初步.vsd

    ER9X.rar_ER9X_ER9X的相关资料_er9x航模遥控器_开源遥控_航模遥控器

    这个"ER9X.rar"压缩包中包含了关于ER9X的详细资料,为用户提供了一个全面了解和使用这款遥控器的资源库。让我们深入探讨ER9X的相关知识点。 1. ER9X遥控器介绍: ER9X是基于原厂FrSky 9X遥控器的开源改进版本,它...

    ERMaster_org.insightech.er_1.0.0.v20150619-0219插件下载

    这款插件的版本号org.insightech.er_1.0.0.v20150619-0219表明它是2015年6月19日发布的,版本号后面的-0219可能是内部的构建编号。 ERMaster的主要功能包括: 1. 数据库建模:用户可以使用ERMaster创建复杂的...

    ER图绘制工具

    其中,"iobituninstaller.zip"可能是一个卸载程序的压缩包,与ER图绘制工具的主题不直接相关。而"ER图绘制工具.zip"则很可能包含了某个ER图绘制软件的安装文件或使用指南,用户可以解压后安装或查阅相关资料。 在ER...

    酒店管理er图

    因此,一个清晰的ER图对于后续数据库的设计与实现具有极其重要的指导意义。 #### 三、酒店管理系统中的常见实体 1. **顾客**:顾客是酒店管理中最基本的实体之一,通常包含姓名、性别、联系方式等基本信息。 2. **...

    数据库-10个ER图练习题(只有ER图).doc

    在这个ER图中,我们可以看到每个公司有多个仓库,每个仓库只能属于一个公司,每个仓库可聘用多名职工。我们可以将这个ER图转换成关系模型,如下所示: 仓库(仓库编号,仓库名,地址,公司编号) 公司(公司编号,...

    档案管理数据库设计ER图

    * 多对多关系(Many-to-Many):在档案管理系统中,一个档案编号对应多个缴费情况,而一个缴费情况也对应多个档案编号,这是一个典型的多对多关系。 在设计数据库时,我们需要根据ER图来创建数据库的表结构。在档案...

    (14条消息) 1+X Web前端等级考证 _ 2020 12月Web前端开发中级实操 (模拟试题第五套) 附答案_李猫er-CSDN博客.mhtml

    (14条消息) 1+X Web前端等级考证 _ 2020 12月Web前端开发中级实操 (模拟试题第五套) 附答案_李猫er-CSDN博客.mhtml

    ER图样例ER图样例ER图样例

    ER图ER图ER图ER图ER图ER图ER图ER图

Global site tag (gtag.js) - Google Analytics