关于Coding的学习与思考-后来...后来....

原创 2012年03月29日 11:21:08

         以前很讨厌编程,觉得编程很费脑。在我眼里,程序员的形象就是满腹牢骚、满头白发;所以当初毅然选择了测试这个领域: “指”“点”页面轻松把钱赚。后来业界掀起了测试自动化的浪潮,不讨论自动化的实际效益和大家做自动化测试的初衷和潜在目标,就我个人而言,我也参与其中但是并不热衷,就像我对敏捷的感觉一样,很多事情本没有那么复杂,最后被搞成噱头,成就一批人,养活一批人,当然也灭掉一批人。

        我就在这个测试自动化浪潮中生存,从最初的不想搞到后来的不得不搞,再到后来的搞偏了。在这期间,不得不开始不停编程:领导说python不错,那就搞吧,后来说java也不错,那也搞吧。还记得最初写代码的时候,就是“抄”和“堆”:抄,先看看有没有可以抄袭的,直接复制上去,开始抄别人,后来抄的多了,也就慢慢开始抄自己,偶尔也很担心,万一不能上网了或者以前的项目搞丢了这可怎么办;堆,新需求来了就多加几行代码轻松搞定;需求改了,改几行代码;需求不要了,删几行代码,最后代码被我做成了数据库的查删改查了。终于一天,Code review的时候,看着自己的代码也不知道自己的意图是什么,点来点去也不知所云。

        后来想了下,不想做的事情不得不做的时候那就积极做吧,既然没有选择那就好好做吧,不然时间花了,也做了,最后收益还是0,所以就开始买书学习编程,一本、二本、三本……从16个设计原则到23个设计模式;从68个effective java到95个java puzzle, 再到151个suggestion;一个月、二个月、三个月…… 学习初期总是有一大堆迷惘,迷惘某个地方是不是空个空格更好看;迷惘某个包的组织是否合理,整天都为这些鸡毛蒜皮的小Puzzle困惑,还好,有同事Denny的悉心指导,每个问题都会认真的给我分析的“头头是道”。还记得当时他说的话,大体意思是:很多人能写代码,但是不知道为什么这么写。这也是最早对我影响很大的话,至少我当时就想,我以后如果写代码,希望能做到我知道我在干嘛,每句代码都是自己理解和比较过的。

       后来边看书边写代码,开始盲目设计、乱搞一通。看到书上新奇的搞法或者没有用过的知识,都试图套到自己的代码当中去,没有必要用decorator的时候用decorator, 不该用泛型的时候用泛型,诸如此类,越来越热衷,搞点高深的稀有的代码来,可能既是想展示自己,也是想迷惑别人,就像Denny说的最后把自己都绕进去了。不过话说回来这种人生活中还是很多的。至少我曾经历和感受过。

        再到后来,基本知识“学会”了,开始追求“性能”,于是继续研读了虚拟机规范和深入虚拟机,也不知道是真看懂还是假看懂,但是这成了我的一个目标:某天我写出的不仅是代码,而是我能看到我的每一行代码在机器中具体的执行情况;对于学习的把握总是如此,研究的过度就成了钻牛角尖,研究的浅薄则不深入;我就在这两种状态之间游离,不过这当中也确实学了不少知识,知识总是如此,学习能力是一切根本、方法是催化剂、基础是核心,其他都是外壳而已。

         再到后来,开始研究重构、代码整洁、实现模式,这点对我一直影响很大,Kent Beck的实现模式的封面就写了“沟通”,恍然大悟:代码不是自己一个人在某个小CUBE瞎捣鼓的,而是用来沟通的。这个时候再想想为什么程序员会寂寞?其实不会寂寞,因为每写一行代码都在考虑别人是否能读;别人会怎么看自己的代码,和自己的内心不断沟通。然后听宝军同学说某某大师为了给变量名起个好名字,总是随身带本字典。我想寓意正于此吧。通过不断的学习,也越来越深入体会这点,比如用枚举模式代替数字/字符串枚举模式,可以让别人不迷惘;用静态方法替代多个类似构造器的含义区分;诸如此类,看到后来,深深的觉得好的代码已经不仅是让你用的舒服(体会对称美、和谐美、无记忆负担),而且会帮你避免错误,这点在effective java的讨论中很多,例如避免遗忘初始化,避免忘记在枚举应用中加某个switch的case等等。

        再到后来,基础知识学完之后,开始不断学习别人的代码来反思自己的代码(比较是个很好的学习方法)。这个时候才发现自己学到很多东西仅仅是记住了一个说法,并没有真正去体会,就像某次和Denny对字符串连接效率的讨论一样:我说书上说某某效率高,某某效率低,他问我有没有自己写过例子测试过,那个说法已经是过去几年前的说法,在当前的虚拟机中是如何优化等等。我就在想,确实,为什么我就那么相信某个说法并夸夸其谈且深信不疑尼。为什么我不去动手去体会体会,后来想了下无非就是“懒”。缺乏质疑且“懒”总是拒人于知识大门之外。

       再到后来,越学越发现自己的不足,于是开始郁闷起来,这些乱七八糟的知识什么时候才是尽头,越学越迷惘越学越觉得自己浅薄,学到后来也开始沉默了,因为当别人夸夸其谈的时候,总是想起了过去的自己。展示自我与知识学习已经在潜意识产生冲突。后来把牢骚发到微薄上,被site manager看到,给我回复说,思科的工作理念之一就是技术是决绝问题的,不能陷入技术中心。我很认同,但是总是觉得缺少什么,不辞辛苦仅仅是为了解决问题嘛?

       再到今天,再次和Denny咨询点技术的时候,他写了一句话:“这表现专业度与对技术的激”,这不正是我期盼已久的答案嘛,是啊,专业和对技术的激情!虽然国人大多为生活而code,但是也可以表现专业和对技术的激情不是嘛?就像stackoverflow上那样,不管问题大小,哪怕拙劣的表达词不达意,也总是有不同国家不同年龄的人给你悉心回答,这点足以你深深感动并觉得真的有必要把技术当作激情的事业来做;人感人确实是一种好的教育方式。

       貌似很久没有写过日志了,今天深有感触,总结下过去对编程的学习及感受。自勉以后不论还会学多久编程,用多久技术,干一天就表现自己对技术的专业和激情。如果学,踏实认真体会,与工作成绩无关。

law后来改iawehi立法为例

  • 2014年09月20日 10:57
  • 166KB
  • 下载

Chrome浏览器中扒出来的一段js,后来搜索了一下出于Chromium 源码中

Chromium :http://git.chromium.org/gitweb/?p=external/WebKit_trimmed.git;a=blame;f=Source/WebCore/ins...
  • Joyhen
  • Joyhen
  • 2015年02月06日 14:37
  • 5823

雷军以为会当一辈子码农,不料后来成了小米董事长

本文转自:IT时代网不会写代码的CEO,不是好技术。在科技互联网行业,其创始人大都由技术人员组成,百度李彦宏,腾讯马化腾,360周鸿祎、特斯拉、SpaceX创始人马斯克,微软创始人比尔盖茨,faceb...

PAT 1023. Have Fun with Numbers (20) 【题目开始没理解好,后来折腾半天才搞懂】

1023. Have Fun with Numbers (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 St...

错过了一场后来觉得不怎么样的手机发布会

中午吃完饭后回到宿舍打开微博,看到下午将会有一场手机发布会,@王自如在参与优酷直播室和大家一起聊天。好久没听到他的行动消息了,于是很是期待下午的他参与聊天的发布会直播,就赶紧去午睡了。没想到一睡醒来,...
  • Jarlinn
  • Jarlinn
  • 2014年04月23日 17:27
  • 1079

一直以来想出一个Git的教程,去年写过一篇,后来没了下文,烂尾了。最近忙里偷闲,还是想把这个Git系列写一遍,这次争取写完。 本文我主要想先简单介绍下Git,然后介绍下Git的安装。 毫无疑问,G

一直以来想出一个Git的教程,去年写过一篇,后来没了下文,烂尾了。最近忙里偷闲,还是想把这个Git系列写一遍,这次争取写完。 本文我主要想先简单介绍下Git,然后介绍下Git的安装。 ...
  • twh69
  • twh69
  • 2017年12月08日 10:52
  • 2

贪心,求最短的时间,将可以省去的数字用0代替然后后来碰见0就continue(链表做会更节约时间)

Problem L Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total S...
  • DSH0106
  • DSH0106
  • 2014年02月21日 23:24
  • 442

基础补充和加强——希望对后来的人有所帮助

银行业务调度系统篇 我觉得,总的逻辑是要在main方

没明白的,后来还是明白oracle的JDBC驱动

ojdbc5.jar (2,091,135 bytes) - Classes for use with JDK 1.5. It contains the JDBC driver classes, ...

朋友圈那个随便辞职的年轻人,后来活成了什么样?

文/谢可慧   前些天,一个读者问我:   辞了职,现在后悔了,又回不去了,该怎么办?   “老实说,当时把辞职后的生活想得太美好,出来之后才知道,一切从头开始,而寻找这个开始的感觉,真的不知如...
  • Conlen
  • Conlen
  • 2017年07月03日 15:25
  • 957
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Coding的学习与思考-后来...后来....
举报原因:
原因补充:

(最多只允许输入30个字)