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

《很高兴我没有猝死》前端新人的2016年总结和感悟

现在是2016年12月31日晚,很高兴我没有猝死。想弥补耽搁的几年,过去一年里,我几乎一直坚持着9117(周一至周五每天9点

现在是 2016 年 12 月 31 日晚,很高兴我没有猝死

想弥补耽搁的几年,过去一年里,我几乎一直坚持着 9117(周一至周五每天 9 点半至 11 点半,周六、日 12 点 至 24 点)。

开始前端之旅

2015 年 8 月 1 日,刚入职南通一家船舶制造国企的第三天,我就决定做改行的准备,开始前端学习之旅。每晚下班后学习两个小时,用了一个月,把最基础的 HTML, CSS, Javascript,到 Git, Gulp, Less, Node(Express) 过了一遍。9 月初投了 5 份简历试试水,很幸运的得到了两个面试机会并拿到了 offer。

入行一年

晃荡了一个月之后,2015 年 10 月 27 日,正式入职

试用期早已计划好疯狂学习一个月。主动坚持着 9117。这段时间里,除了熟悉业务,我补充了一些基础知识,学习了 Angular。

试用期过后,觉得自己有限的知识,应付工作仍然吃力,于是又自觉地坚持 9117 两个月。春节后我参与了一个全新的项目,使用 Vue + PostCSS + Webpack。作为一位初学者,我非常珍惜这次机会。

3, 4 月,尝试着写一个监测属性变化的库和一个简单的 MVVM 框架。这段时间我找到了造轮子的快乐,于是决定 9117 制度延长至一年。

5 月,参与了另一个使用 Vue 的项目。业余时间,我开始学习 Vue 的源码,主要是响应系统。为了方便单独学习和使用,我把 Vue 的响应系统剥离了出来(地址: smart-observe)。

6 月,开始学习 Virtual-DOM,并希望尝试结合 Javascript 表达式和 JsonML ,实现跨平台渲染(地址: eJsonML)。幸运的是,这个项目很快收到了 JsonML 作者 Stephen McKamey 的 star 。

好景不长,8 月初,因工作需要,我负责独立开发一款 Android 扫码软件。之前并没有 Android 或 Java 基础,于是中断了 eJsonML 和 Vexil 的开发。拿出全部精力,学了 1 天的 Java,2 天的 Kotlin,3 天的 Android,一周的 RxJava, Dagger2, Firebase 等,做了个在线记事本的 Demo,第三周开始开发,第五周上线,成就感瞬间爆棚。

9 月和 10 月,做着修修补补的工作,休了个假,过了个十一。

2016 年 10 月 26 日工作刚好满一年,决定不再续签

目前

原本计划疯狂的玩耍半个月,然后再开始找工作。但没有工作时,才发现根本无心玩耍,于是开始疯狂的投简历。

阿里二面被淘汰,虽有些难过,但对未来仍充满信心,毕竟前端之旅我才开始一年。

目前在一家做性能加速、监控的公司做数据可视化方面的前端开发,偶尔写写服务端。

感悟

感悟太多,随便挑几条吧

入行要学好 Git

工作中 Git 真的很重要。就在前几日,一刚入行的博士生同事在转正报告中,阐述了他没有解决好冲突就上线的悲剧,并总结了一句话,“Git 不学好,上线上到老”。Git 不难学,网上教程也很多。建议本地建个专门学习 Git 的 repo,针对教程多多练习。工作中如果遇到拿不准的场景,也可以用来模拟一下。在熟悉之后,建议设置一套适合自己的 alias。

初学者要珍惜参与全新项目的机会

参与新项目可以直面很多问题,拿 CSS 来说,垂直居中、封闭浮动、高度根据宽度等比例自适应、多行文本尾部自动省略……这些问题网上有很多介绍,但真正遇到并亲自解决掉时,会有着更加深刻的体会。

如果只是直接参与项目的维护,这些问题可能都已经被解决好了,对于初学者,看着别人写好的解决方案,可能就不会有那么多的感触了。

用好 Webpack,以及 Babel 和 PostCSS 等

Webpack 是一个神器,但是“官方文档是一坨屎”(注:引用来源找不到了)。初学者可以多看看国内的教程,多研究研究 Github 上的 Demo。此外,对只有 Javascript 的项目,也可以试试 Rollup。

Babel 重要性不用多说,使用 Chrome 最新浏览器开发时,可以裸 Babel 运行,这意味什么……?

我真的非常喜欢 PostCSS 搭配 CSSNext,配置好插件,就可以使用自定义变量、自定义属性集、自动加前缀等等,喜欢上标准,会让你从心底放弃 SASS,LESS。

Vue

Vue 的官方教程很 nice,入门首选。

工作中建议多思考:如何划分 Vue 组件(提取公用组件、确定组件层级)、提取组件的共享状态(vuex)和业务逻辑(使用纯 JS)、Vue 组件 和 CSS 模块如何搭配等问题。

当前 MVVM 框架核心是“绑定”,做的事情主要是监测变化和响应变化,在 Vue 中它们分别对应着响应系统(源码学习推荐 smart-observe)和 Virtual-DOM,相信业余时间学习一下会很有收获。

我的 2017 年

  • 大量地做读书笔记

  • 把 eJsonML,Vexil 重新拾起

  • 平衡工作和生活,确保不猝死

  • 护发




推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Jquery 跨域问题
    为什么80%的码农都做不了架构师?JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念。当然 ... [详细]
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • 本文介绍了网页播放视频的三种实现方式,分别是使用html5的video标签、使用flash来播放以及使用object标签。其中,推荐使用html5的video标签来简单播放视频,但有些老的浏览器不支持html5。另外,还可以使用flash来播放视频,需要使用object标签。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • 表达式树摘录(1)
    本文主要讲述ConstantExpression介绍表示具有常量值的表达式。ParameterExpression介绍表示命名的参数表达式。UnaryExpression介绍表示包 ... [详细]
author-avatar
LIU在笑_139
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有