热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

作为前端er,写在年末的一些话

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

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

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

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

就我个人而言,今年发生了蛮多事情,但今天不讨论私事,纯粹作为一名前端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(那本书被我扔在上家公司都懒得收回了)。

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

弱弱地说下,这本书是打从心里的推荐,在群里也有很好的口碑,俺的推广可收不到曾探先生的推广费(曾探先生在看我文章么?下面有我二维码哦)

今晚就唠嗑这些,如果说了一些不中听的大话,诸位看官笑一笑就可以了~

愿后续新的一年能继续奋力前行,共勉~

donate

 


推荐阅读
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 随着前端技术的发展,越来越多的开发者开始使用react、vue等web框架,但很少有人深入理解这些框架的源码。然而,这些框架底层都是由原生的javascript构建而成。对于初学前端的人来说,可能会认为javascript很容易上手,但实际上只是因为它被高度封装了。与能够使用封装类的人相比,能够理解框架原理的人则处于另一个层面。本文将深入剖析jquery源码,探寻框架底层的原理,帮助读者更好地理解web框架的运行机制。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 在package.json中有如下两个对象:husky:{hooks:{pre-commit:lint-staged}},lint-staged:{src** ... [详细]
author-avatar
陈雅如7959
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有