知乎整理:写程序的初心是什么?

移动开发
你在问各种写程序的大神第一次写程序的故事的时候,总会挖到很传奇的经历!当然也不全是这样,所谓闻道有先后术业有专攻,总不能让写php的同志们在开始学的时候就做好修硬件的准备是不是?所谓留一个码点一盏灯,念念不忘必有回响,大致也就是下面的这些故事了。

[[161133]]

作者:液漏酱

第一次接触“编程”,是小学六年级。那天上完数学课回家途中买了一本CS攻略一类的书,书的最后一页记录了几个一件买枪脚本。冥冥之中我感觉到有一股不可抗拒的力量在引导我把这个脚本输入到cs的console里(我已经不记得是直接输入到console还是先敲到记事本里再导入了)。录好脚本后,我按下那个键,果然系统自动帮我买好了B41 O2 O4 O5。以后经常在我那帮傻逼队友还在购物的时候,我已经冲出去被爆头了。

如果仅仅是机缘巧合抄了一个脚本,我大概不会爱上编程。接下来我观察了一下脚本,发现里面有个值是用来定义买AK47。但是像我这种儒雅的男人,肯定不会用AK这种粗鲁的武器。于是我从书中另外几个脚本找到的MP5的代码替换掉AK47,再按一下,我擦,居然真就买到这把了。

现在看起来这件事似乎没什么大不了。但是对于我六年级那个智商,我的想法就是:我连我妈下午给我多少钱都没法控制,却能靠输入几个字改变游戏的行为,简直屌爆了!

这件事只让我踏上了这条道路的引子,至于走上了就义无反顾的原因,也是越长大才越能体会到。

不知道大家有没有跟我相似的想法,我总觉得身边充满了太多无能为力没法掌控的东西。大到人的生老病死,小到打车会不会被堵。从医生竭尽全力却没法挽救病人,到你掏心掏肺却没法换得暗恋之人的亲睐。

总之在充满变数的世界里,你的能力总归会有很多力所不及的地方,很多事情你用尽了120%的努力,但就是会失败,而且没人告诉你为什么。

但是在程序的世界里,there is no magic。同样的输入总归是有同样的输出,0和1永远不会坑你。所以理论上来讲,你在编程中遇到的问题,都是你自己疏忽或者错误造成的,但这些疏忽和错误都是有迹可循,你可以靠自己把他们全都解决。

再往大点说,你可以在程序世界里创造你想到的任何东西,再慢慢将它进化,将他改造。不需要看别人脸色,不需要去琢磨别人想些什么。这才是真正一码一世界的境界。

有点词不达意,但是无论如何,这就是我写程序的初心吧。

作者:林习习

QAQ 吾等渣渣先来尝试着回答下这个问题。(其实是刚刚好在写一篇题目差不多的essay)所以同时邀请了 @Cheny Dimpurr 菊苣来回答这个问题。

-----------------(ゝ∀・)笑------------------------------

作为一直在小学的时候就接触了VB的程(xiong)序(hai)员(zi), 真正对于程序的初心应该是源于一种 cool 的感觉,这是一种独特的满足感并且会由外部与内部一同达到。我想这也许是挺多程序员的初心,已经很多现在程序员不断追求的东西。那就是“cool” ,排除一切其他考量,我们要做一个很酷的事情,做一个很棒的项目,让别人看到这个项目的时候会说“哇,这个太棒了!”,然后自己就可以享有着一种Geek的感觉俯瞰众生。如果用通俗一点的话来说就是可以“在别人面前装逼而被羡慕与崇拜”然后腼腆一笑说出“这没什么的”留下一个高尚大的印象。这种感觉可谓是撇开程序员本身,作为一个社会中一份子,所能得到的一种满足感。而成为一个程序员,这是一条相对可能达到的道路。此乃由外界而产生的初心。

而另外的一部分初心来源于内部。就如隔壁答案中说的一般“粗鄙如吾等,也可作为创造者,而赋予他物以灵魂”。 这是一种来源于'创造'的满足感。怀揣着一种,也许有一天,我做出的程序也可以有如此优雅的UI设计,或者是精妙的后端设计。那种精妙的设计感会给予所见到的人一种无法用语言描述的震撼力,甚至于“神造”这种充满着非现实色彩的词语才能描述。记得自己第一次写通快排的时候的畅快一定不亚于当年证明费马大定理的人。我们如同艺术家一样,运用着手中的工具,作为这个数字世界的手工艺人,创造着虚拟的大陆,并且重构真实的世界。

-----(ゝ∀・)笑------

初心的部分在上面算是已经结束,但是我认为,驱动我们继续写程序的不仅仅是“初心”,而是一种不断演化的认知。就好像《黑客与画家》里面说的,“一个好的设计者,看到坏的设计时,会有一种将他修正的冲动”,而程序员正好地就干着这样的工作。当我们看见日常中的设计的时候,“也许这件事情,程序可以干的更好“,然后行动,coding。这就是一个通过程序改变生活的例子,在这个数字化的世界,因为人们很大程度上共享经历,所以几乎零成本的软件传播,成为了使生活更加便捷的最好方式。这也是我到前一段时间为什么会继续学习编程的道理,我希望通过编程,我能将我所处于的世界变得更加方便,不会再因为很多麻烦的情况所耽搁,而同时这也可以解决别人同样存在的问题。我们那么多日常的”效率“应用,不就是源于这样的观点而产生的么。

-----(ゝ∀・)下面是重度中二病(笑------

作为一个爱玩的人,特别是爱玩电脑游戏的人,很大一部分程度上,我的初心,源于一个遥远的梦想。希望自己能和小说,动漫中的人物一样,进入一个”剑与魔法的世界“,突破平日无聊而又劳累的生活,与想好的伙伴一切,探索未知而又伟大的世界。

和DnD一样的三层模式(数学规则,数据与设定,故事与背景),我把广义上的程序,分为地球的三个部分。内层(core),是数学与逻辑,程序最基础的做法集合,包含数据结构与算法。这里是programming属于数学的一部分,它作为核心给予整个构架支持。在这里,出现过的各种大神探讨着不同的算法,加密解密与运作。给予计算机运算所达到的,数学的优雅在这里体现着。喜欢带在这里的数学家们,小心论证着自己的算法(CHA着别人的算法),期望给出更加高效的答案。第二层则是中层(mantle),这里是编程与世界结合的地方,前端的布局,新式的设备(Oculus赛高!),更加强大的引擎在这里存在着。我们用这些事物给予所有的用户一个更加逼真的体验,而同时又给予极大的拓展,使使用者做到存在于这个世界无法企及的事情。而第三层(shell),是由前两层物体所造就的容器,存放着无数的内容,与人们幻想到的实现或者还未实现的虚拟世界。在”地表“,我们通过自己的想象力,从虚无之中创造新的世界(新的位面)。而梦想中剑与魔法的虚拟的世界通过core与mantle连接这我们的真实世界。所以我希望自己可以游走于mantle中,尽一己之力打通这两端的链接。

以上

作者:在好

一.记叙

一开始我是拒绝的!因为我根本就不喜欢写程序。

打高中数理化就不好,什么排列组合、圆锥曲线、电磁场中一带电粒子、水溶液中的水解电离,困扰我有如梦魇。

高考时,祖坟上冒出一缕青烟,数学创历史新高考了88,理综破有史记录考了200,数据不仅太美太感人,而且大吉大利、元亨利贞!终于,我以总分522分考上了一所梦寐以求的2本就读于计算机科学与技术1202班——命中犯2!

可是对于编程其实我是拒绝的——大一花了一年的时间来研究心理学,大二花了一年的时间来研究哲学,大三花了一年的时间来研究中医——结果,《离散数学》挂了,《数字逻辑》挂了,《数据结构》挂了,《编译原理》挂了——恨不得自挂东南枝!

人在做天在看,出来混总是要还的!曾坚信“天生我才必有用”,“我辈岂是蓬蒿人”;曾笃定“心所愿力毕至”,“有志者事竟成”;曾夙愿“天授其赋必赐其福”,“好风凭借力,送我上青云”。可是,一个冷峻若紫电青霜的问题劈面而来:不写程序又能干嘛呢?

然而我根本就不会写程序!试想,一个打字只能用到右手食指、左手食指和左手无名指的人,敲代码时是多么捉急!试想,一个高数补考考了19分,满脑子宏大叙事的理科弱智,写程序时是多么脑洞大开!

后来去公司实习,遇到的第一个项目就是要使用

ESFramework

通信框架,当我第一眼看到了开发手册上的如下句子时,我就知道,春天不会再来了!

客户端通过调用ESPlus.Application.pasic.Passive.IpasicOutter接口对应的方法以及预定其相关的事件,就可以完成基础功能或得到相关状态改变通知。我们可以从 ESPlus.Rapid.IRapidPassiveEngine暴露的pasicOutter属性来获取IpasicOutter引用。

接口、预定、事件、暴露、属性、引用,你们一个一个来,我还大概能明白,你们群起而攻之,我便委地如泥了!

重载的Query方法(带有CallpackHandler参数的)在发送请求信息后,不会阻塞而继续向下执行,而框架在收到对应的回复信息时,会回调CallpackHandler委托指向的方法。由于调用线程与回复回调的线程不是同一个线程,所以称这种机制为回复异步调用。

再当我看到“重载”、看到“阻塞”时,我彻底愤怒了!而紧接着映入眼帘的“委托”、“回调”更使我出离愤怒!最后“线程”、“异步”更令我万念俱灭,心如死灰!

从此,我便以一种菜得抠脚的姿态狼狈不堪地行走在险象环生的程序世界里。莫非是寒更雨歇,葬花天气,猎猎北风袭单衣;荒原寂寂,远听猿啼,近看寒鸦起;鬼影幢幢,步步惊心,不知今夕何夕。

好多次我都想,别瞎费劲了,你不是写程序的料!真正适合写程序的人根本就不可能是这个样子!

于是乎放弃。可是不写程序又能干嘛呢?好歹读了四年大学,何况拉弓没有回头箭。还是要顶风逆水雄心在,不负人民养育情!

终于,苦水的浸泡痛彻了肌肤,磨练了身心,同时也浇灌出了涅槃之花!

某天我突然发现,那些原本看来佶屈聱牙的技术文档如今看来却直白如话,那些原本晦涩难懂的语法如今却能够熟练运用,那些原本看都看不懂的源码如今也能够在自己指下流淌,实习之前我连循环语句都写不对,如今却也能用ESFramework和OMCS等框架开发出像样的网络通信应用。

二.议论

更重要的是,从当初的不喜欢、不擅长、不自信,到而今能够怀揣着一颗欢喜之心来写程序,能够以乐在其中的心绪来开启自己的程序人生,这不仅是我收获到的莫大财富,更是我把握住的莫大幸福!

胡适先生的名言:“怕什么真理无穷,进一寸有一寸的欢喜。”真理无穷并不可怕,因为我们在每一寸的前进中始终获得欢喜。编程之路并非坦途,我们也并非天赋异禀,然而那个最幸福的人,并非是玩转代码的编程高手,也并非是亿万家资的IT精英,而是那个在流年中始终以欢喜之心书写代码,又通过书写代码恒久再获欢喜之人!

常言道:“男怕入错行,女怕嫁错郎”。嫁郎要嫁有情郎——有情饮水饱,无情龙肉都无味!入行也是一样。入了所爱之行,举手投足皆得欢喜;入了所憎之行,坐卧立行尽是苦悲!嫁郎的幸福不在于嫁郎所获得的富贵荣华,其根本在于郎本身。那些通过嫁郎以获取外在利益的女子,她们充其量只是获得了生意上的成功,而根本没有获得婚姻本身的幸福,而这何尝不是一种买椟还珠?同样,那些以工作作为纯粹手段的人,他们也从来没有获得过工作本身的幸福快乐。

由此看来,我想恐怕对于绝大多数的程序员而言——你不是真正的快乐!

所有程序员恐怕可以粗略的划分为这五种状态:

1.不爱,但是迫于生计

2.无感,反正亦步亦趋

3.热爱,但却身心俱疲

4.狂热,打了鸡血一般

5.欢喜,毕竟乐在其中

你是属于哪一种呢?

如果要我来选,我一定会选5,因为唯其如此才能获得程序人生的个中真昧,才能拥有彼此交融的内在完满。而其他的几种状态在不同程度上都是残缺的。

也许我们写程序总是不可避免的为了各种外在的目的,但是写程序时的那份小确幸的欢喜,却始终是我们精神飞鸟的栖息地。 正如孔子赞颜回——子曰∶“贤哉回也,一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改其乐 。贤哉回也!”

罢笔时风烟俱净,但愿自己刚刚开启的程序人生能够无关风月,寂静欢喜。

责任编辑:倪明 来源: 知乎
相关推荐

2020-03-30 15:08:56

知乎崩溃网友

2015-08-05 10:39:54

知乎整理腾讯

2021-08-16 08:28:41

程序员高薪现象

2019-11-25 11:03:19

互联网数据技术

2023-07-18 18:14:51

云原生软件架构

2023-06-27 07:20:45

2018-12-13 11:32:55

知乎裁员调整

2017-06-16 21:00:02

Python爬虫

2015-07-21 15:22:20

点赞仿知乎按钮动画

2015-07-22 09:43:30

2023-10-24 20:32:40

大数据

2019-08-09 14:13:22

Python知乎程序员

2015-11-06 11:28:43

搜狗知乎投资

2017-05-24 15:07:19

Python爬虫爬取

2018-05-07 15:15:26

服务器爬虫数据

2012-05-16 13:11:28

编程语言开发语言Java

2020-10-25 08:58:10

程序员技能开发者

2024-09-20 08:20:20

2020-06-05 14:11:21

Swift运算符代码

2020-02-25 17:55:53

程序员代码35岁
点赞
收藏

51CTO技术栈公众号