一岁的程序猿

coder

我记得我是15年9月21号正式参与工作的,虽然只是作为一个实习生,但总算完成了从学校到社会的一次跨越。然而距离那一次跨越,再过10天居然要满一年了。翻回以前的朋友圈,隐隐约约可以还能找到第一次参加工作的清涩感,焦虑感,菜鸟味。一年能改变的事情真多,认真地想了这一年经历的事,就作为一程序员而言,少少提了几个觉得重要的点,写在简书上。

1.学习的代码与工作的代码

我第一份实习只干了一周,写的是C++。当时求职非常不顺利,C++让我觉得十分沮丧。幸运的是,很快接到另外一个实习offer,语言用的是Java,我那时候几乎不怎么写Java,但考虑到行业Java的使用率很高并且后面的公司给我提供的实习工资达到“惊人的”1200人民币(在此前的面试中,我甚至求过面试官给机会,不要工资),于是我就跳槽了。在第二家公司一呆就是5个月,所以严格而言,那才是我第一家公司。
  此前,我一直都是在宿舍编一下算法,写写二叉树的实现、图的遍历、各种排序和查找,看TCP/IP的协议,几乎没写软件,一切都很学术,很知识。而因为没写过真实的项目,上班前,我还经常在想公司能让我写什么代码,会有哪些代码我会看不懂的吗?(自己对Java教科书的语法很熟悉)
  我现在还非常清楚地记得第一次见到公司代码的情形,绝对是目瞪口呆。我把项目导下来后,居然足足几百M(也包含了不少jar包和前端资源),点开每一个package都有几十个Java文件,随便打开一个都会有好几百行代码。那种感觉,就像在河边住大半辈子的人第一次看到大海的样子,明明都是水,就是被吓得不知所粗——明明知道是Java代码,就是不知从何看起。那一瞬间,我彻底明白了,为什么语言只是工具,因为工具造出来的东西是可以如此宏大,宏大到你不知所措的地步。
  进入公司的前一个月都是在适应公司的代码和堆码规则(吐槽一句,公司代码的命名规则无比糟糕,是逼走我重要原因)。工作后的代码显得非常踏实,一点都不允许花哨,我有时候会发现一种新颖的实现方式,需要多建几个类,结果是找不到合适的放这些类的package,咨询导师后,导师让我放弃新方式,原因是要保证其它同事能看懂。这事让我懊恼许久,但后面慢慢考虑起来,也不无道理。学习的代码和工作的代码就有着最本质的区别:一个是给自己看的,一个是需要大家一起看的。公司写的是政府OA系统,连具体编程都得加了非常多的规矩,我本来认为:大概上班了就这样了,按部就班即可。后来我还是逮到了一次机会,通过运用二叉树结构和数据库的范式设计成功地改良了系统某个模块的性能,这次表现让我获得了提前转正的机会。
  All in all,公司的代码总是带有一些编程约束的,但无可否认的是这些规矩一定程度上是避免了很多无谓的错误,但是在面对具体问题的节点上,学术性的知识和代码往往能让我们“灵机一动”,写出精妙的代码,瞬间提高代码的性能和程序可读性,在学校里坚持基础学习就能在工作上给自己,甚至是公司带来惊喜!这也是为什么下班后最好能坚持学习基础的原因。

2.编程是一门科学,还是一门艺术?

这是一个我大学前就反复问过自己很多遍的问题,编程是理科吗?需要数学吗?现在编程一年了,我认为,只要不去设计太高深的算法,编程研究的问题深到某个程度时就需要用到数学了,然而那些都是研究生或博士要考虑的问题。对于普通地编程,我们的数学已经完全足够用了(数学是一种推力,而不是门槛)。我不认为编程是一门科学,而是一门艺术。
  证据就在大家的口中,因为我们从来都是设计软件,而不会研究软件(设计物理同样听起来非常别扭)。编程就是一门设计的艺术。关于这个观点,Paul Garaham写的《黑客与画家》就非常详细地阐述过。我非常幸运在我真正开始编程前,自己先进入了宣传部,我从我的部长华阳师兄身上体会到设计的美,逐渐有了对丑陋设计零容忍的态度。两年的PS海报设计让我对设计变得异常偏执,虽然不断重做是十分煎熬的,但是逐渐发现,坚持追求美的过程也是一种享受。这种心态顺理成章地也表现在我的程序上,重构的过程就是坚持追求代码美的过程。美丽的设计和实现是一种让人非常着迷的东西,这样的代码一目了然,完美地实现需求的同时,还保持着足够扩展空间,一切都恰到好处,就像一个画家在纸上画出一个完美的圆一般,无可挑剔。编程就是一门设计的艺术。
  给同行和师弟师妹推荐一下,关于什么程序是好程序,我推荐《重构》这本书;关于如何设计好的程序,我推荐《设计模式》。

3.快速学习编程的捷径

在大学里,我很长一段时间都自以为自己理科思维好(高中物理成绩好),所以就感觉自己的编程天赋比一般人都要好,我可以快速地学习编程。当然,事实是自己和一般的同学在所谓的天生能力上别无差异。但随着毕业工作,我们的编程能力慢慢呈现了高低之分。这促使我思考一个问题,什么样的方法才是好的学习编程方法呢?
  经过了1年工作,两次换公司的亲身体会,我发现,折腾才是学习编程最快的捷径。什么是折腾?可以理解为:明明不需要也可以,但偏要整出来,这就是折腾。我每一次换公司,就是一次折腾:第一家写政府的公司,自己本来就不会Java,活生生折腾两个月,最后能够独立开发模块;第二家公司是游戏公司,基本上每天晚上都在折腾各种bug,没试过消停。Java领域上,一家公司让我从入门到熟悉,另一家让我从熟悉到深入。每个过程都是非常难熬的,为了各种自己不明白的错误焦头烂额,但一旦解决后,就会有种豁然开朗的感觉,并且以后会自动地免疫这种问题和错误。所以,一个老成的程序员,他编程的神态总是异常平静,仿佛所有的bug都不是问题一样,你折腾好几个小时都找不到的坏代码,他能动几下键盘和鼠标就定位出来,事后平静地拍一下你的肩旁,留下一句“能重现的bug都不是bug”如此大气的话,让我等菜鸟自觉地献上膝盖,现在公司里的宇哥就是这样的一号人物。这样的程序员,并不能看到他所谓的天赋,他身上散发的都是他在代码上饱经风雨的气息。
  这也是我为什么十分喜欢现在的公司,游戏代码每一周都会更新一次,任何自己写得不好的代码,周四更新,周五就会有人投诉出异常了,快速地暴露自己的问题代码会让自己编程能力提升很快,而且还要有这么多的玩家来给自己的代码检查,作为一个菜鸟,这既是挑战也是一个非常难得的机会,越是折腾,越是进步。错误总是让人印象深刻,生活是这样,编程更是这样。

最后

工作一周年了。不管是编程,还是为人处事,回想起去年今日,这一年的进步确实让我觉得很惊喜。去年这个时候还因为找不到实习而哭过,幸好还是坚持下来了,能从事自己喜欢的工作确实是一件很幸运的事。工作后有了收入,有了更大的自由,无论是对自己、朋友、家庭还是公司,作为一个社会独立角色的存在,慢慢开始觉得自己有了更多的责任,未来会有更多的问题和事情等着我。
  作为一个市井小人,我的目标也不过是多赚一分几毛,争取日后富成一个废人,躺在沙发上让别人服侍。偶尔想像一下,感觉又有了新的动力去面对新一天的工作。
  【全文完】

思考设计
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,062评论 25 707
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,054评论 6 244
  • 1、在web.xml中配置 HiddenHttpMethodFilter 过滤器。2、浏览器发送 POST 请求。...
    暮雨随风阅读 5,632评论 0 2
  • 用公式表达世界 是男人们颠扑不破的浪漫情话 可我却分不清一塔,三塔,还是珠穆朗玛 可我是谁呐? 镀铬的活塞环,和有...
    俗人杂文阅读 384评论 0 3
  • 减脂知识 目录 一.我们每天究竟需要那些营养 二.你的脂肪是从哪里来的 三.到底怎么做才能有效减脂 四.如何做到最...
    贺一胜阅读 9,945评论 15 79