昨天有个对学习编程急切向往的小伙伴问我,学习编程如何才能找到感觉?都有哪些方法?你当初是怎么入门的?
问了我一连串的问题,学习编程这份急切心情溢于言表。然后说了一堆为了学习编程一次次的背概念,学习过程中如果觉得时间浪累就会恨自己不争气之类的话。这倒是勾起了我的一些回忆,我当初为什么选择做一个程序员,自己是如何度过入门这段煎熬的路程的?为什么一直坚持编码到现在?
说到对计算机的认识还是在初中时代,学校为了统计成绩方便,据说当时花了9000块买了一台配置偏低的一台电脑,很多人称作微机,一个很时髦的地理老师在课堂上跟我们以后都是计算机的时代,不会操作电脑的就该落伍了,据说还专门花钱培训了,如何去操作电脑其实就是今天常见的开机,关机,如何上网浏览网页,如何使用常见的办公软件,在那个年代也是很酷的事情。要知道那时候学校考试成绩统计全靠人工的一个个去算,每次考试阅卷统计都是老师们的熬夜日,看来科技的进步的确体现的很明显。小小的心灵被计算机的神奇所吸引,开始对计算机的无限遐想。
进入高中的日子,组装电脑成为当时极其流行的技术,或许是巧合分在一起的同桌是个典型的电脑迷,整天去报刊店拿电脑报,里面广告起码占到一半的版面,即使是广告也看的津津有味。最后和同桌达成协议一人买一期,换着看还能节省资源。在纯真的年代觉得电脑真会无所不能,能做到一切。就这样对电脑的兴趣倒是越来越浓烈,也就是在那个年代网吧出现了,于是多了很多的不眠之夜,也不知道哪来的劲头一次次翻越学校的围墙。那个年代网吧主要游戏半条命,第一代网游传奇游戏正是火的一塌糊涂的时候,对游戏天生无感,整夜在看一些电脑相关的知识,验证电脑报上说的一些东西。
于是顺理成章的进入大学的计算机系,开始对计算机的深层次的学习,很快发现学校的老师讲的东西和自己想象的差别还是很远,也不明白为啥听不下去。于是决定自己倒腾,慢慢开始在图书馆呆的时间变长了,看的东西也是迷迷糊糊,就是在这种迷糊中过了一年的时间,到了暑假在学校读书馆借了本当初开始流行的java书,在家里开始慢慢的研究之旅,一个暑假好像也没把这本书给看完,但是对里面的介绍的基本知识做了大量思想上的构思,想着自己能够做出像书上飞着的小鸟的一般玄妙程序,整天对着书本上的概念钻牛角式的胡思乱想,做了大量的笔记,也不觉得坚持不下去或者放弃之类的意念。在书本看到三分之一的时候大约明白了一些东西,于是下面越看越快,越看越有感觉看到最后自信心爆棚,原来编程语言就是这么回事。倒是忘记了为啥没有把这本书看完的原因。
回到了学校拉开自学编程的序幕,有意识的回归到专业课的学习过程之中。由于家庭条件不是不好,也没有勉强给自己配上一台电脑,研究理论的层次多一些,网吧是唯一的实践基地,很难想象周围的人都在热火朝天的玩游戏,我在一边去敲代码研究一些算法,算是奇葩了。其实宿舍的环境和网吧也是大同小异,呼呼玩剑侠情愿系列金山出的(金山在香港上市主要靠的游戏拉动的)算是半个奇葩,当然在宿舍也不是一味的学习狂,还是加入到热火朝天的扑克中,也是玩的不亦乐乎。也曾被忽悠着玩游戏连续两个周时间,白天睡大觉,晚上玩网游。在学习自信心的膨胀期也曾借了一本linux内核(900多页的样子)研究了200页,看的迷迷糊糊的,最后还是放弃了。
于是在不安分中,来到了帝都,来到了这个自己洒下十年汗水的地方,带着无限的憧憬期待来到,加入第一家公司,第一天就感受到了,啥叫定力,一个人坐上一整天在电脑旁边还是需要,对于一个随意习惯的我来说,是个极大的考验,但当慢慢适应的时候发现这只是程序员基本素质之一。那是对技术上的概念都是充满极大的好奇,还专门买了几个大块头的本子,把常见的一些疑问都记录下来,包括一些异想天开的想法,然后拿着这个大本子在技术经理不忙的时候,就挨着请教提问,到现在也不知道哪来这么多的疑问,前几天拿出来看看还有很多疑问到现在还是在探索解决中。
慢慢的在坚守中,能够独立做一些东西了,在解决问题的时候自己的一些想法也能在程序中去实现了,也可以独立设计一些具有挑战性的任务,慢慢的自己承担一些比较有挑战性的任务,然后在第一个公司一呆就是五年也接触到了公司做核心的代码,也在上面做了大量的功能,基本上第一个五年计划把如何做一个产品以及如何设计,如何搭建框架,如何写出高质量的代码,如何调试代码,如何保证cpu和内存用的最低等等。用现在的一句时髦的话,算是了解套路了。
在之后的路子上,开始做一些更加具有挑战性的,开拓性的工作,慢慢给自己定位未来的技术发展方向,以及主打点,管理方向或者技术专家方向都是要考虑的范畴。回到第一个问题点上,为啥选择程序员更多是为了满足少时的梦想,有了想法一步步的去实现,有些时候只有梦想,没有实践步骤基本很难的。在这期间有无数放弃的理由,坚持才是最终做下来的根本。
在坚持的路上,有很多的诱惑,压住自己性子,在一个适合自己发展的平台,彻底了解彻底了解一个产品是如何出来的,从头经历一个产品的产生过程还是相当重要的,不要只想着自己在这个公司挣得太少,换个公司能多拿多少,根基不牢最后会摔得很惨。等你工作了好多年之后在和别人谈起自己曾经主导过什么产品或者做过什么牛逼的产品是一件让自己很自豪的事情。工作的年限越是长,那么对曾经做过什么产品体现更加明显,不要只是局限于自己会几种编程的语言,那只是低层次的需求。
做技术是一个长时间的工种,不要期望短时间能造出多少成就,都是靠时间累积起来的,给自己设定一个目标,在忘我的学习过程中,也就慢慢入门了,慢慢找到自己的定位了。与其在找什么方法去学习,倒不如踏踏实实的学起来,进入状态了,什么的招数,方法妙招就是自然而然就来了。漂浮在上面观望别人多牛,关心有什么样的大神,倒不如自己把自己调动起来,人生何尝不是如此,未完待续。