『前端工程师』平时都是如何在工作内外提高自己的技术能力的?

2,604 阅读9分钟
原文链接: www.zhihu.com

有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。

在说这个问题之前我们先来看下作为前端程序员的你每天的时间都去哪儿了,时间安排有问题说什么都没用,哪怕你每天都有千篇源码,万个轮子,百万书籍的雄心壮志,也只是停留在意淫状态,没法落地。

大佬们回答的参与开源,造轮子,写博客文章,做总结这些非常有用,可是更多的时候你看完后会心一笑,点赞评论收藏,然后陈放箱底,即使有同学开始下手会遇到两种困扰,第一,没时间,第二,没思路,那就像告诉你方圆百里有梅林,但是却没说东西南北,也没说你的体力是否可以去到那。

24小时怎么用完的

咱们以一种普遍的一线城市的程序员为例,不符合的可以适当进行拆分。熬夜的程序员把这个作息往后推四个小时。

工作日:

1.早上七点起床,洗刷,拎包,出门,然后经过一到两个小时的地铁到公司。(早上9:00)

2.吃早餐,打开电脑,看看新闻,聊聊咨询,收收邮件,回顾下昨天项目功能干到哪儿啦,打开git,拉取代码,准备工作完毕,估计用时一个小时。(早上10:00)

3.开始工作,到午饭时间还有两个小时,咱不说有需求评审,ui评审,周例会什么的,这些杂事儿平均到每天按一个小时来衡量,咱们暂且把时间算到中午,下午定为全部时间用来写项目,研究技术和造轮子。中午一个小时项目一个小时杂事儿。(中午12:00)

4.吃完午休(下午14:00)

5.睁开眼做项目,到六点下班项目时间四个小时,(下午18:00)

6.吃吃饭,一个小时(下午19:00)

7.加班到九点,做项目(晚上21:00)

8.地铁/公交(一个小时),到家,(晚上22:00)

9.打盘游戏,或者继续努力造轮子,参与开源,看书,解决在公司没解决的疑难杂症。(晚上24:00+)


周末:默认不加班

1.睡醒(中午11:00)

2.赖床:(中午12:00)

3.吃饭+其他自由时间(出去玩,游戏,学习,写代码,看电影)(时间点未知)


时间碎片梳理

从上面的时间分布来看,我们主要可调配的时间碎片集中在下面几个点:

1.做项目(每天六个小时)

2.地铁/公交车上(每天三到四个小时)

3.周末(两天,加班的话,把这一项归总到做项目)

4.晚上到家(每天两小时+)


怎么最有效的利用时间碎片

1.做项目的时间段分配

很多同学都忽略了做项目的重要性,觉得项目就是一种任务,一种工作,功能实现就好,做完直接完事儿,开始去各大论坛,各大技术博客看文章,学技术。我觉得对技术存在嗜血性是非常好的,但是你却本末倒置了。就像大家上学的时候老师常说,我们又常听的一段话:你们不要盲目的去找题做,先把课本上的内容弄通弄懂,把知识点多复习几遍,把课后习题都熟练了,再去看做课外题目。高中那会儿我们没有听,现在该领悟了。

如果让我来说,项目是重中之重,是你程序生涯的大头,对于项目你可以随意对待,也可以用心对待,我建议大家做项目可以按照这样的思路:

1.项目选型和开开发规范(如果没有架构师选定)

选型就是让你的架构可以高性能,高质量,低难度,易团队配合的完成这个项目。并且还要考虑后期维护成本,以及你们团队的学习成本,不要盲目跟风,跟对了是顺风,错了就是逆风,小项目将就轻量快捷,大项目将就就多了严格的命名规范,严格的团队管理机制,严格的组件封装,严格的项目目录,严格的代码风格,严格的引用规范,严格的回调机制,严格详细的注释。前端大项目不算太多,真正经历过周期一年多的大项目的同学应该深有体会。

2.开发功能

开发阶段,要先想,想怎么划分功能模块更为合理,不要上来就是干,那种全梭哈的方式只适合经验丰富的高级程序员。分完模块建完目录,就开始码功能,功能方面先想怎么去实现,先不要想着最优实现方式,因为不做下来这个功能你是不知道哪种实现方式对你最好,先写,写出来之后做个简单的回顾,一定要回顾,很多人写完的功能自己都不想看第二眼,这种情况是因为你对这段逻辑还是不熟悉,把控力度小,这时候提升空间最大,赶紧回去看,看完你可能会发现很多可优化的点,功能十分简单的咱们不算里面。

做功能的时候不一定很顺利,遇到无法解决的问题怎么办?查资料,基本的搜索是百度,不过更建议Google,功能实现有可能会用到第三方组件和服务,有的人会选择无脑引入,直接查api或者别人的demo(更多是别人的demo),用完发现不错,over。有的人喜欢去研究,先对比下各种解决方案的优劣,看看自己去实现的兼容性和难度,如果确实需要引入会在使用后研究下源码,学习思路,进而看看是不是做二次开发,这一步跨出去能学到很多有价值的东西。做完记得总结成文章发表上去,这是你的心路历程,很有必要总结,提升自己,造福一方。

3.服务,组件封装

如果你不是高级程序员的话,不要先去想着怎么封装,而是在写功能的时候,发现两次及以上次数用到这个服务或者组件的时候再去把它抽离出来作为功能的服务来封装,然后把之前引用的地方替换成这个公共服务或组件,这样不但不降低你的开发效率,还能提高组件服务的易用性。

4.修bug

这个阶段很重要,有的同学面对测试的bug总是表面找原因,比如他说某种情况下你的页面输出有问题,你恍然大悟,我少加了一个判断,然后找到那一行,加了层判断,over!我想说的是这种方式太鲁莽,简单逻辑块产生的bug我们不说,复杂的逻辑加减一两行代码是要慎重的,要把整段逻辑翻看一遍,看看是要翻新逻辑还是另加判断。但是翻看逻辑这块很多人都不一定能做到,尤其是别人写的代码,一定要看懂了整套逻辑再动。

5.上线

这个没啥说的


2.地铁/公交车上(每天三到四个小时)

这个时间可以看看资料书,但是因为太挤,不建议拿本厚书去看,建议可以看看知乎,头条,掘金,sf等一些博客论坛,看下大佬们写的文章,我建议可以关注下以下几类文章:技术尝鲜类,预测未来类,技术架构类,技术对比类,代码规范,前端自动化,学习导论,项目分享类,开源分析类,大前端类。

当然在地铁上也可以码代码,装逼人员可以试试。

3.周末(两天,加班的话,把这一项归总到做项目)

如果加班,参照做项目那块,如果不加班不出去玩,不看电影,不玩游戏。。。你内心只有学习的情况下,你可以这样来度过,

周末可以看下新技术,看开源,看别人造的轮子,然后跟着写,比如vue系的,可以看下vue全家桶,nuxt,weex,mpvue的相关。angular系的可以从typescript入手,angular太适合做大项目啦,学会备用等等,不管你看什么都要注意去写,模仿着写,看十遍不是写一遍。写完有领悟写成文章放到博客论坛上,最好能系统的写一个自己的技术博客网站。

周末也是造轮子的最佳时机,时间充足,而且精神放松,神清气爽,思路清晰,结合工作中封装的组件,造自己的优良轮子。

4.晚上到家(每天两小时+)

如果,晚上下班你还觉得很想学习,可以往下看,一般下班回家精神已经很疲惫了,不太适合深度学习,当然有的同学不一样,天越黑,夜越深精神越好,这种可以随意。

如果你比较疲惫,不如简单总结下最近学到的东西,解决的问题,有哪些提升,写成文章,一方面为自己做笔记,一方面为了加深记忆。躺床上看些新闻,简单的收藏些有用的博客文章等明天坐地铁的时候细看。

如果你不困,精神非常好,那就干吧,重复周末的那种做法。

总结

如果你可以利用好这些时间碎片来做上面的学习,再加上各大论坛大佬们所说的方法论,结合自身的理解和应用能力做好自己的计划定制,持之以恒,自己肯定会有很快的提升,加油!