演进:在工作的前三年里快速成长(练习篇)

有人可以靠中彩票,然后一夜暴富;有人随随便便发几张自拍,就一不小心一夜成名。可技术成长,要一步一个脚印地练习,才能掌握某项特定技术。等到我们掌握了学习的技巧,才能用更短的时间,来掌握某项特定的技术。

而练习,也不是一天里写一万行代码,也不是重复写一百行代码,而是在一百天里,每天写下一百行代码。它需要一定的技巧,不懈的坚持,还有一些休息。因此在这篇文章里,我将分享工作几年里的练习技巧:

  • 基础篇:正确的练习姿势。从程序员的基本技能:盲打,到练习使用快捷键、重构技能等,再到如何使用新的框架练习。

  • 进阶篇:如何通过练习来提高。初学时,我们可以使用 Vue、React去高仿一些项目;有经验以后,高仿应用只会让我们更累。我们便需要一些更高级的练习技巧,从引入别的框架思想,到造各式各样的轮子。

  • 找到合适的时间练习。早上,慢慢进入状态;中午,适合做一些 Review;碎片时候,可以做一些知识的管理等等。

  • 怎样才能持之以恒下去。分享一些制定目标的技巧,及激励自己的方式。

当然,练习有一个大前提是:我们有充足的时间。时间是一种很珍贵的资源,特别是对于长期加班的开发人员来说。因为技术能力不足导致的加班,会变成恶性循环。

如果你还没工作,那么便相当的幸运,你有相当多的时间。工作的时候,大家都忙于实现业务功能,没有时间让你提升自己。如果你已经工作了,那么你需要每天预留一些时间,才有机会去练习。每天会占用一些游戏、看电视时间,哪怕只是半个小时,一周、一个月、一年下来,帮助就很大了。

进行这些练习之前,请不要忘了根本——能熟练地用框架、语言完成工作。完成工作,相当于必须达到的 60 分及格要求。在胜任工作之外,提高能力到 80、90 分,追求更好的技术能力,才是正确的路线。

下面,让我们开始第一部分的内容吧~。

基础篇:正确的练习姿势

编程的时候,我们只是在码字——编码的过程(即思路)实际 上是在脑子里完成的。娴熟的码字能力,可以帮助我们更好地编程。

小学时,自参加了五笔打字比赛之后,便开启了我的编程生涯。可当工作的时候,已经可以熟练的完成工作的我,仍然无法打对每一个字符。有一天,看到了一个名为 Typing 的在线代码打字练习工具。练习了一次之后,发现它会给出一些建议,便开始进行了一些编码练习。但是得到的反馈能表明,在打字这方面,仍然有一些提升的空间:

Typing 错字

我的“自我解释”是:今天的编程语言设计得不合理——使用了各种字符,导致了右手在这方面的负担比较大。在那之后,我便陆续进行了一些基础的练习,并整理他们的因果关系,便有了下面的一些练习项目:

  • 作为经常用电脑的人,应当掌握好打字的基本技巧,比如说采用正确的打字姿势,以及盲打技能。

  • 作为一个程序员,应当“精通”使用手上各式的IDE、编辑器,熟练使用它们的快捷键。

  • 作为一个专业的程序员,我们还要将重构代码、命名等高级的技巧掌握好。

这些练习,可以让我们成长为一个更专业的程序员。

语言与框架的练习

对于语言与框架的练习,算是比较简单的。于我而言,这种练习过程便是:

  1. 买本相关的书籍,或者寻找份教程、官方指南。

  2. 再找个合适的 Demo,熟悉基础概念,并掌握好相关基础。

  3. 在 Demo 的基础上,实现一些业务功能,了解各种功能、特性。

  4. 查看官方文档,查有没有漏掉了什么重要的东西。

  5. 撰写博客、日志来记录这个过程。

因此,只需要找一个合适的网站、APP,作为模仿的对象,一步步往下练习即可。唯一的难点在于,第一次写 Web 应用的时候,可能会多花费更多的时间。新手期的程序员,对很多的概念都不清楚,如若能找到一个新手社区、群体,提高起来就会方便多了。

熟练使用语言或者框架,不能帮助我们成为一个『优秀』的成员。只能带领我们成为一个“胜任”的程序员,即我们可以凭借着这种练习,找到一份养家糊口的工作。

工程实践练习:模仿开源软件

工作的时候,写的都是业务代码,纯技术上的实践并不多。这意味着,多年的工作经验,与技术能力的关系并无太大关联。如果有一天,我们看到几年前写的代码,和今天写的代码并没有太大的区别,那么说明了:我们已然陷入了这样的一个瓶颈。

在学校写的代码,与工作写的代码,最大的区别在于:软件工程实践。单单凭借工作经验,那么在软件工程实践上的提高可能不会太大。受限于上线 deadline 的影响,多数项目的软件工程实践,并不能做到最好,甚至可能很差劲。如我们所见,国内的大部分公司(包括BAT)在这方面的实践也很难做全,更不用说做好。这些实践包括:

  • 使用版本管理。诸如 GitHub 上的项目采用的 Git,基本已经普及。

  • 使用持续集成。它可以为团队协作,提供一个可靠的帮助。

  • 完整的测试用例。编写单元测试、功能测试等等。

收藏 收藏
分享
购买文章 ¥10