再见2017

现在是2017年12月31日晚上11点,我独自一个人在租住的房子里写这篇年度总结。

我今年25周岁了,接触前端至今有1年了。

想来也许是命中注定,让我在毕业后找不到工作的迷茫中选择了当时基本一窍不通的前端,然后又一路坚持走到了现在。

  • 2016年7月 大学毕业离校
  • 2016年9月 首份工作 网络客服
  • 2016年12月 辞职 自学前端
  • 2017年5月 开始寻找前端工作
  • 2017年5月25 入职现在的公司

一路走来,经历了很多,也学习了很多。

自己也从早先不喜欢编程的计算机专业毕业生变地了现在想在这条路走地更远的前端菜鸟。

付出的努力,也许只有自己知道吧。

博客

学习编程的时候,偶然从B站(Bilibili)看到了UP主刘延栋的视频,再关注了他的微信公众号和网易云音乐电台

这是一个有意思的人。

如果有谁看到了我的这篇博客,并且你也喜欢技术,你可以关注一下他的微信公众号--软件那些事儿(ruanjiannaxieshier),听他讲讲软件行业公司和大牛的故事。

当然如果你喜欢看书,你也可以直接去看那些大牛的传记。

我对喜欢看书的人都比较有好感,我觉得一个人能静下心来享受书籍和知识,那么这个人会相对比较理性。

他(刘延栋)今年36岁,从事软件行业十几年了。而选择去做一个电台,则完全是因为爱好,写点东西给以后的自己活着小孩子看。

我觉得蛮有感触的。

我也是一个喜欢回忆的人,所以我也相关给将来的我留下点什么,也许将来的我看到我现在写的这些东西会觉得比较有趣的吧。

至少我现在觉得是比较有趣的。

而把写作的东西留在电脑上或者U盘上都可能会丢掉。

本着不把鸡蛋放在一个篮子的原则,我是要把这些博文放在几个地方的。目前我会定期把一份拷到U盘里,然后电脑上有一份,Github上个我用过Hexo搭建了一个静态博客,也放了一份。

当然我不仅单单只记录了故事,还记录着自己的学习。

因为通过写作和整理思绪来组织知识和加深记忆是个非常有效的途径。

所以我搭建了这个博客,刚好Github Pages服务也是免费的。

因为自己作为一个初学者,感觉自己记录的东西可能没有什么价值和深度,也就并没有对博客进行过什么宣传。

不过写的东西,有的当做一篇文章单独发表到社区了,希望能帮到有需要的人吧,或者是希望得到别人的认同?

说不清楚。

但是博客我会坚持写下去。

兴趣

为什么小标题叫兴趣呢?

我有一个可能片面的观点,或者是自己的偏执吧。

人应该为兴趣而活,这样才是最快乐的。

以前我的兴趣是什么?

小说,算一个。

没有看小说的时候呢,整个大学我花费了很多时间在打游戏上,其实那些游戏也没有那么好玩儿。也许我那时的兴趣就是单纯的虚度时间把,我并不觉得这样做有什么不对。

至少我的大学时光,大部分时间都过得很快乐。

而现在,前端和编程成了我的兴趣。

我关注了几个微信公众号(前端大全奇舞团,程序员那些事儿),基本每次推送都会认真看一遍。我主要在关注3个社区,一个主要面向前端程序员的前端网,一个是编程问答类社区Segment Fault,还有一个自然是全世界程序员的开源社区Github

一些工具类库框架的官网也经常要去逛逛,查查文档,搜搜问题,比如MDNCan I Use

博客方面看过很多人的博客,主要关注的有2个。TG阮一峰。别的好多就是只通过搜索看到几篇文章,比如张鑫旭,廖雪峰,Yscoder,月影和国内大公司前端团队的博客等。

书籍方面,因为今年才是前端初学,所以看的前端方面的书并不多,基本以入门为主。主要看了:

  • JavaScript高级程序设计
  • JavaScript DOM编程基础
  • You don’t know JS
  • 锋利的jQuery
  • JavaScript设计模式
  • JavaScript Promise Book
  • CSS揭秘
  • 写给大家看的算法书
  • 微信小程序入门指南
  • ThreeJs入门指南

相关学科的书或者课外书看过几本,但是没有看完。

  • 图解HTTP
  • 只是为了好玩
  • Nodejs入门手册
  • 束星北档案:一个天才物理学家的命运

再就是没有什么学习价值的网络小说,以前非常喜欢,现在看的比较少了,基本可以算是厕所文学了(泛指大多网络小说,我看过且非常喜欢的还是我心中的经典)。

2018年,会多看技术类书籍,同时补上大学自己没有好好学习现在却有感兴趣了的课程。

学习

我发现在学习这方面,我不是一个意志力很鉴定的人。

并非我不能够坚持去学习,而是我容易被转移注意力去学习别的东西,或者会放下手头在研究的东西转去研究别的。

所以我的博客里以abc结尾的博客蛮多的,abc是我用来表示入门的,基本就是看文档和对着官方Demo实现一遍吧。

这还称不上真正的学习。

想想这一年接触过没有深入去学习的东西有Node,MongoDB,ThreeJS,WebSocket,Mocha,Webpack,Angular等。。。

- -!

但是仍然对前端技术保佑强烈的探究欲望和学习激情,并且认为这样的心理还会继续持续。

不过同时我也折腾了不少东西,记得先前大学的时候,学习编程,搭建环境安装软件都是靠同学。现在自己在Windows上折腾,在Linux上折腾。

搭建前端开发环境,搭建Node环境,搭建PHP的WAMP环境,搭建Ruby on Rails环境。

安装各种开发软件,插件,学习使用。

生命不息,折腾不止。

我觉得喜欢折腾的程度,在很大的程度上决定了技术的成长。

当你看到一个现象的时候,你不仅要问为什么,还要自己尝试去寻找为什么。

就像那个公众号的主人刘延栋说的,妄想通过加群或者电台学会编程,或者想速成都是不可能的。

唯一的途径就是对着优秀的代码,敲啊改啊。

而且作为一个技术人员,或者说作为一个生活在互联网时代的人,基本的文档信息检索能力是必须的。

没有任何人欠你什么,没有人必须回答你的问题,人家帮助你是人家友善,人家也就可以不帮你。

在有余地的时候,永远把求助别人放在后面。

在真的需要别人帮助的时候,求助社区比单独找有两个人要更加高效。

网上的有着丰富的文章和视频教程,足够让你看几十年,你所寻找的问题,大多是别人已经碰到过的

我也遇到过自己觉得难以解决的问题,比如线条流动效果的实现和页面间实时通信效果的实现。

线条流动效果我知道SVG可以,但是我并不擅长。

页面实时通信我知道的定时器加轮询可以模拟,但是效果不会很理想,而且浪费性能。

我认识一个台湾的朋友,今年36岁,目前在做全栈开发工作。偶尔我会和他聊聊天,我会向他咨询,告诉他我自己的想法,然后问他会如何去解决。我想这不是单独的求助,而是技术上的交流,不过相比只是我的方案很Low而且没有价值罢了。而他给的答案也只会是什么技术可以做,或者给我一个链接。

这样不会耽误别人太多的时间,我觉得挺好的。

聊天中,他也会推荐给我一些技术上的书籍、文章、插件。给我的未来发展方向指指路,比如学习TDDBDDMochaRxJS等等。

希望在2018年的时间里,慢慢学习研究,将前端之路更好地走下去。

工作

入职现在的公司已经7个月多了,我也从一个小小菜鸟变成现在的小菜鸟了吧。

公司的主要业务是做媒体和报业的网站建设,还有就是舆情监控和数据可视化这些方向。

公司有Java后台和PHP后台,而在我入职之前,公司还没有一个前端。前端工作由PHP后端来兼任。UI方面没有设计师。

公司没有完善的编码标准和技术规范。

公司的前后端开发也没有做到完全分离,开发的过程是前端写好页面拿给后端,然后后端再在页面的基础上进行二次开发嵌入数据。

这样的开发模式并不好。

因为需求随时可能会变,客户可能中途要求做更改。那么嵌入了PHP代码的页面前端这边拿回来会因为没有环境的原因无法调试,而后端有不能很好的做好样式的修改。

现在相对还好点,前端团队有2个人了,公司也有招了一个设计师妹子。

我有在考虑一个问题就是,我作为一个前端新人,也没有别的员工的资历老。

当然对前端来说,我肯定比他们更了解。

那么我是否可以建议公司推进技术改革。

我们前端目前的开发技术栈是 Gulp 做自动化构建 使用browser-sync模块进行文件改动监听和浏览器自动刷新 使用less模块将less编写的样式编译为CSS,同时使用gulp-autoprefixer模块为样式添加浏览器私有前缀。 使用Github进行团队规范和公有资源管理,目前规范等在建设中,使用Coding进行项目开发进行的版本控制

使用Gulp做自动化构建由我引入到团队的,目前团队的规范和资源也在由我进行开发和维护。

新人前端也是我面试招聘来的。

面试了十几个人,有的连个水平垂直居中都写不出来,真是心蛮累的。

现在的这个同学还是比较满意的。

工作了半年多的感受就是:

  1. 前端对设计的依赖性很大(尤其是页面的订制化很高,难复用)
  2. 客户频繁改需求真的很烦(遭遇过整个项目布局方面全部重写的情况)
  3. 沟通能力很必要,可能这也是做技术的人的弱势(群里看到客户提问,去回答,结果闹的不愉快)
  4. 工作量和代码量不存在必然联系(技术难点寻求解决方案比做重复的简单工作更有价值)
  5. 不要轻易对工时许诺,留下余地,这点可以参考霍夫斯达特定律。

霍夫史达特定律:事情总是要比你预期的花费更长的时间,甚至当你把本定律考虑在内时也一样。——Douglas Hofstadter

公司最近好久在做的是大屏的数据可视化方面的项目,基本是用Echarts来实现数据可视化和定时更新,我觉得在页面内开多个定时器的体验蛮差的。

而本身项目并不存在浏览器兼容问题,我觉得使用WebSocket才是更好的方案,再把逻辑都封装到后端,前端的工作就是接收数据、数据展现和页面效果。

但是我拿到数据后,通常还需要对数据再进行加工处理才能用。而且感觉后端同学对于接口是该用Json还是数组有点没搞明白。

前两天看到了FacebookGraphQL,不由得感觉,这可真是个好东西啊,由前端决定自己需要的数据,有点CommandQuery的感觉。

不过我们公司能用上吗?

不过个人还是希望能将公司的技术推进一点。比如目前在做的维护了一个样式重置库,并且要求至少前端都统一使用这个样式重置库。

下一步要实现的是代码风格,命名上的文档和常用Javscript的Utils库的封装。

2018年,希望能多少推进点公司的技术栈,让自己的开发过程也变的轻松开心点。

最后

2017再见,2018你好。

1
</2017><2018>
有钱,任性!!!