8

春节前的小目标

关于精通的这个话题

前段时间在为一个目标而纠结,就是什么是精通,什么是我想做的东西。记得曾经在一个创业公司实习的时候,一个学长对我说:很多人学了很多种语言,但是却还不如精通一门,因为他们学了那么多种却不能用一种解决一个问题。后来我仔细想了想这个问题,其实这个问题的症状不是在于学了多少门语言,而是学了多少通用的东西,如何利用这些通用的东西去快速上手另一门。就程序语言而言,会不断的推陈出新,但是就解决问题的本质手段而言,并不会有太大的变化。如何用最有效的时间去学习最通用的技术,我觉得这才是学生时代最应该做的事情,而要想了解到通用这个水平,那么就得多了解多对比来学习。

从大二开始就大致按着这种方式来学习这些东西,而当时感兴趣的方向又在Web端(当然现在也仍在),所以当时在一个项目上就开始了边前端边后端的路子,开始后端用的是Python/Django,后来在大三的时候实习找的是PHP,不过我感觉差距并不怎么大,只是在语言层面的实现不同罢了。可能在别的人眼里,我好像学了很多,好像什么都不可能精。当时我个人反而感觉我反而专注了两件事情:一件是了解熟悉前端,另一间是了解熟悉Web后端的东西。很多的时候,好像大家是从语言的角度来看应用,从而也就有了招聘岗位时专门的C++/C/PHP方向的岗位。而我好像开启的方式是先选了Web端,然后才根据Web端来接触JavaScript/Python/PHP等等。

当然,我之所以愿意按照这样的学习方式来最重要的一点是在大三的时候了解到了编译原理这门课,这么课很有意思。它从原理这个角度来解释很多语言层面的东西,按我的理解就是,比如为什么JSPython的闭包特性如此像当时在有些地方又出现了差别。这门课让我觉得只要熟悉了主流的实现方式,那么熟悉由这些主流方式开发的语言效率会快很多。当然,我也确实感觉到了在学习JSPython的时候,这种方式的好处就是可以令你理解很多底层的实现,能快速熟悉一门语言只要伴随少许练习。坏处我现在也体会到了,就是难度大,底层范围广。如果不是乐在其中,真的很容易被难度挫败其中。所以我后来换到先写应用熟悉语言,然后转到另一门的时候相互比较,然后对其中相似的部分,看别人对该源码的分析来理解。

在大三完后,发现以前写了很多的小的应用,然而归根到底也只是熟悉了很多语言本身的app,如果每个语言都要这么做,那么程序员这一生也太繁琐了。相反如果去学习更加general的东西,反而能使人能够短时间熟悉另一个相似领域,至于精通,那应该是具体工作时候的事情了。

关于春节前的小目标

之前因为找工作的事情,搞得身心疲惫。现在在春节未来之前,把16年想做的一些事情做下来:

  • 第一个当然是写React App了,react,redux,webpack,gulp都可以顺便接触接触(虽然以前也接触过,但是忘了)
  • 第二个是讲YII2看过的源码写出博文来,不让都不能说自己写过PHP
  • 第三个是看一小部分PHP/Python的源码,当然仅限变量,函数,常见的一些语法,写部分博文

多余的小目标

上面的三个我是会尽力完成的,不想留到明年,下面这些是可能回去做的:

  • 看redis实战,Nginx两本书的1/2.
  • 看其他闲书
[译] JSX的一年