译 | 编程与程序员的个人成长

作为程序员,你有想过每天的编程工作对自己有什么影响吗?本文的作者认为,正是编程,帮助他成长为了一名强大、自信的开发人员。本文出自CSDN公众号。

图0:编程与程序员的个人成长

以下为译文:

在成为专业的软件开发人员之前,我曾在一家公司的技术部门工作,当时我只是Javascript爱好者,渴望成为一名真正的开发人员。

当时,我是一名大学刚毕业的学生,对业务组成的各种原型还抱有天真的想法,而让我感到震惊的是,程序员的做事态度与其他同事的态度截然不同。大多数时候,在我眼中那家公司的文化充斥着阿谀奉承,各种角色的职能也一塌糊涂,工作氛围总是让人倍感紧迫与压力。

为了表现努力工作,你需要表现得惶惶不可终日。尽管嘴上不说,但内心深处大家都知道说‘我不知道’是无能的表现,会令高层人士不满。

但是,程序员似乎不同。如果有人气势汹汹地冲到一个程序员的办公桌前,报告了一个bug,然后怒吼道:“为什么会发生这样的事?!”应该对此负责的程序员只是有气无力地坐在那里,然后说,“你去写票吧,我们会做调查。”

哇,我当时想——“我们会做调查”,他们没有费尽心机讨好权威,没有慌慌张张地做解释,而我想成为他们那样的人。

对我来说印象最为深刻的是,虽然当时我可能不敢说那样的话,但是技术部门对负责的工作信心满满。

这些人很聪明,所以有信心也是自然的,但是原因不仅如此。当时我有一种感觉,软件开发人员的工作与现实紧密相连,而其他岗位则没有。当然这样说可能对那些在其他职位的人来说并不公平,不过这些开发人员工作的成败有明确的定义标准,而且他们完全有能力达到这些标准

我不是指企业强加给人的那种不切实际的标准。我说的是:“我的单元测试通过了吗?”、“我的应用程序在加载的时候会崩溃吗?”、“我改好了每个人都担心的bug了吗?”这些标准完全是客观的、非政治性的。

相反的例子是,成功与否的标准定义模糊,通过贬低他人的成功来表现自己——这种情况下你需要把自己的信仰托付给有影响力的某个人,而无需对任何真实情况负责;强调做作和夸夸其谈,而不重视诚实和行动。而且在程序员的这边也没那么多扯淡的事儿。

尽管现在我已经意识到:

我上面描述的这些现象其实极其罕见,可能仅限于我曾经工作的那家公司;

这些信仰可能更多地表现了我对我当时的角色的不满,而不是任何“客观性”的真实情况;

如果其他专家能够定义出难以定义的“成功的标准”,那么这并不总意味着完全没有标准;

我也认识到,在软件开发领域,虽然理论上来讲不应该有任何扯淡的事儿,但实际中也并不是完全一尘不染的。

在我成功获得梦寐以求的转职之后(感谢一些人,直到今天我都心存感激),我发现了一些获得自信的技巧,而在以前我只有羡慕别人的份儿。

首先我意识到,如果程序员是公司里最冷静的人,那么这种生理激励就像是让你写好代码的氪石一样。充满压力会限制你的专注力,导致你无法思考抽象的事物。在任何紧急情况下,我都要学会在不提高我的心率的前提下提高思维水平——我需要学习不被他人的压力影响

我学到的第二件事就是假设测试相对于试错而言的重要性。假设你需要用一个值对一个变量进行初始化,而且你知道这个值应当是几个可能值中的一个。你可以在头脑中模拟系统,直到你知道哪个才是正确的值(假设),或者试验每个值,直到程序正常运行(试错)。

后者可能更快、更“容易”,但很明显前者才对你的掌控能力有帮助,更不用说长远来看前者能增强你以后解决类似问题的能力了。针对正确答案建立假设并验证需要一点“灵感”,相反,无意义地试验集中选项并随机选择一个则无需任何思考——你应该避免那种被代码孤立的感觉,开发者的工作是告诉机器该怎么做,而不是像个机器一样做事

相反,你的目标应该是发展你的思维模式,使得你认为写代码是一种表达的形式,就像奥威尔提倡的写散文时的观点一样。

不过这里的“灵感”和“孤立”这两个词我想多谈一点。

几年前我读过马斯洛的《Towards a Psychology of Being》一书,书中他提到了安全感和成长之间的根本的对立。他的理论认为,童年时期或以后任何重要时期的个性养成,都是基于“灵感”的积累。有时这可能是通过某种自发的行为,在不可能的情况下成功操纵了世界的某一小部分造成的结果。因此,成长是事业扩展的一部分,能够逐渐培养对成功的感觉。

但这个概念也与价值和天赋有关。例如,马斯洛的书中,可能“亲吻某个人能带来比亲吻其他人更多的灵感”,他继续描述这种“通过灵感获得成长”的结果:

这样,我们能学到我们擅长的东西,喜爱或不喜爱的东西,我们的口味、判别能力和接受程度。一言以蔽之,这就是我们发现自我并解答那个终极问题的方法:“我是谁?我是什么?”

关于孤立,马斯洛是这样说的:

当孩子能够意识到时,与主观灵感(信任自己)相反的,是他人的意见(爱,尊重,认可,仰慕,来自他人的奖励,相信他人而不相信自己)。对于无助的婴儿和孩童而言,他人极其重要,因此失去他人(即失去他人提供的安全感、食物、爱和尊重等)是极其可怕的危险。

因此,当孩必须在自我灵感和他人的认可中二选一时,他们必然会选择他人的认可,然后压抑自己的灵感,或者干脆消灭之,或无视,或者下意识地约束。一般来说,这会造成对自我灵感的否定,或者对其产生害羞或神秘感,最终造成无法表达这种灵感。

我认为这正是他人尊重(特别是来自权威的尊重)和个人信仰之间的对立,让我被技术圈的那些冷静自信的人所打动。自我的发展,包括自信,可以认为是一系列“自我灵感”的结合,每个灵感都在前一个的基础上发展,就像土壤不断增长成小山丘一样。而且这种发展出现在对世界的直接认知过程中,而不会被他人的认知和价值观所影响。

图1:编程与程序员的个人成长

也许正是我的认知失败,使我选择了编程的路。我的能力不足以让我用自己的眼睛和耳朵去认识世界;我也“无法去表达”自我灵感。这让我想起了希伯来圣经中的一段:

异教徒的崇拜是金子和银子,以及人们双手的工作。

他们有嘴,但他们不说;有眼睛,但不看。

编程给我带来了一个方便、决定性的微观世界,在这个世界中我可以得到控制感、精通和对世界的直接认知,而这正是我的一生中失去的东西。新发现的“信任自己的判断”的能力,将我的世界的中心从他人的判断上(一种高度的“自我监视”状态)移动到自己身上。

我发现,在我实施“假设测试”方法之后,某些人认为的冰冷、抽象的原则,对于我来说却十分有意义。如果程序与之前做过的假设相关,那么理解程序(或者任何事物)的行为会更容易记忆,而且特点更明显,产生更多的“灵感”。这样,尽管操纵屏幕上的光标的艺术对于婴儿来说并没有“灵感”科研,但对于成人来说则是个人成长和自信的快车。这就是我的情况。

用自己的眼睛和大脑去决定何为“好的软件程序”,能够导致更少地依赖别人。自己对真实判断负责,能够让你对好的东西负责。我认为“生活方式设计”行动就是个很好的思维成长的例子。它能鼓励你忽视惯例,批判性地评估你的生活方式,并根据你对自己和你的偏好了解的内容进行调整,让这些学习影响你现在和将来的选择。

关于这个话题我还要说最后一件事。马斯洛理论的中心,也是他看到的主要增长障碍,就是对抛弃的恐惧。为了冒险进入操场,孩子需要确保母亲正在等待并且自己能随时返回。再次引用马斯洛的话:

如果维持自我的唯一方式就是失去他人,那么一般的孩子会选择放弃自我。

这段话表明,艾默生在编写《Self-Reliance》一书时头脑中想到的最终技巧,并不是让我们所有人都成为程序员。 这当然不是我想在这篇文章中传达的信息,尽管乔布斯这样推荐过。自信可以通过各种方式实现,而编程恰好是我的方式。更重要的是提醒自己这样一件事:

你永远是人类家族的一员,长期有效且不可撤销。

正是这种信念促使你无所畏惧地生活。它为你带来了探索未知的能力,并赋予你天生的自发性和自然而然的成长,同时保证你不会成为局外人,不会被驱逐。

有了这种信念,一个人才能安全地追随“头脑中的那道闪光”,才能在一群人之中维持“孤独的独立”。我还认为这种信念与人们所说的“自我接受”强烈相关,它可以帮助你摆脱最深刻和最原始的恐惧。

试试吧,结果会很有启发的。

原文:https://medium.com/the-polymath-project/programming-for-personal-growth-64052e407894

作者:Matt Oxley,程序员,专注于设计、音乐科技。

译者:弯月,责编:郭芮

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注