一个过来人的自述:每一个年轻人都可以从编程中受益

640?wx_fmt=jpeg

全文共2469字,预计学习时长5分钟

640?wx_fmt=png
@anthonydelanoix unsplash.com

小时候,父母并没有打算把我培养成一个程序员。相反,他们想让我去学医。但由于我生性外向,最终作为折衷之策,我去读了商科。

那时我主修市场营销,结识了一群计算机专业的同学。与他们相处了一段时间后,我决定辅修信息系统作为第二专业。当时,我参加了很多课外活动,在活动中学习了图表、诗歌和摄影等知识。在了解信息系统之前,我已经开始学编程,涉及HTML(超文本链接标示语言)和CGI(通用网关接口)。

互联网就是从那时走向繁荣的。我认识的每个人都想在华尔街大展身手。编程是为我那些“性情古怪”却“博采众长”的朋友们量身打造的工作。

奇妙的是,我的艺术灵魂从一开始就被编程深深吸引了。

在通宵达旦阅读编程书籍后,我坚信这就是我要终生追逐的事业。很幸运能在华尔街的IT公司谋得一份工作。在转行前,我一直在那工作。

人们问我会不会教儿子编程,我经常回答“不知道”。这要看他对编程感不感兴趣了。然而事实上,我每天都在有意无意地教他“编程”的概念。而这一点,直到我在思考他的这些技能从何而来时才意识到。

我的孩子还在蹒跚学步。但可以预见,就算我不教他编程,等他十几岁的时候,他也会从我这里学到很多人生经验。而这些人生经验,大部分来自我的程序员生涯。我的父母都是科学家,正如我能从他们那里学到某些人生经验一样,不管是否愿意,我们自己的身份、习得的技能,都将传给下一代。

如果你的孩子也对编程感兴趣,那就保护他们的好奇心,鼓励他们去涉猎、创造和学习。学习编程可以让孩子们获得很多人生经验。至于分析能力能否从中得到培养,其实并不重要。

640?wx_fmt=jpeg

结构、秩序与混乱交错间的美感

在编程中,秩序感是非常重要的。变量、数据结构、函数等任何部分都有其固定位置。项目伊始,你可以想象所有原始材料都摆在面前。然后利用这些材料,通过设计、构建和测试,创建一个结构。内在逻辑总是以某种方式组织起来的。美妙之处就在于,在最初的混乱中总能找到秩序。项目最初一向混乱,而在每一步中,各种想法混杂在一起也总是会产生混乱。然而,一旦将想法汇聚在一起,终会出现一定的秩序,其优雅与美丽则会令人惊叹不已。

不管你学的是文科、STEM(科学、技术、工程和数学)、历史还是其他学科,编程总有办法让你将先前所学的所有技能联系起来。

要去欣赏能够产生创造性解决方案的混乱和秩序。

开放心态与反思

编程是一个过程。在这一过程中,需要作出不断修正。我在编程时知道的第一件事就是,“你写的代码简直糟透了。”

花了几个小时写代码,导师却说你的代码很糟糕。但事实上,这会激发人的创造力,促使你去学习。通过阅读相关书籍,你会把事情完成得更好,不仅会修改代码,还会反思自己到底错在哪里,甚至反思是不是做事方式不对。

一段时间后,再有人告诉你,他有更好的想法时,你的思维就会稍微开放一些。编程总是会带给你很多想法,让你觉得“这太奇怪了,那也太简单了。但是这非常棒!”,而不仅仅是简单惊叹而已。

这是真正接纳的时刻。

这是信任的时刻。

功能性只是开始

初次编程时,我关注的是其功能。我记得自己检查过不同按钮在用户界面中执行的不同功能。但这些在现在看来都微不足道。随着功能的实现,用户就可以看到可用于优化代码的其他工具。

像往常一样,我会从函数开始讲起。之后,我还将继续介绍模式、交互和优化问题。无论是在开始阶段还是在编程之中,都有着许多选择。这些选择就是编程的趣味性所在。

实现一个有效的函数仅仅是开始。

坚持是自然而然的事情,并非什么目标。

人们常说,毅力是后天练就的。毅力出自实践。但事实上,如果你从事编程的时间足够长,坚持就会成为一种自然而然的习惯。

你将永不言弃。

不仅编程是如此,生活中总有事情要去不断探索。

最初从事了几年编程后,我意识到坚持已经成为我生活的一部分。我必须学会放弃不重要的事情。坚持也并非什么目标。学习编程并不是为了学会如何坚持完成任务。相反,编程需要坚持。想要完成任务,就必须坚持不懈,这一点,毋庸置疑。

640?wx_fmt=jpeg

学习及学习方式的艺术

在编程之前,我就喜欢很多学科。我热爱科学,对科学充满好奇,也很喜欢相关理论。但我并不喜欢数学。通过编程,我了解到学习的途径。我找到了个学习新技能的方法,并将其成功应用到其他技能的学习中。

学习路径因人而异,因而编程能够帮你制定学习计划。

创造性思维的起源

仅有创造性思维还不够。我在编程中遇到过许多困难。很多时候,在日常工作中,我在思考问题时就会灵光一现。很快,你就知道在处理难题时,灵感、动力和创造力从何而来。

要珍惜难题,因为难题能开拓我们的创造性思维。

解决问题的过程

编程本质上就是解决问题。有时,对于某些难题毫无解决办法,但尝试的过程十分重要。要从实际问题出发编写初稿。修改之后再运行,再修改。一旦完成,就进行测试。

解决问题的方法非常明确,就是坚持到底。

从事编程一段时间后,我开始想象自己在处理生活中问题时的状态。

思维方式的艺术

史蒂芬·乔布斯说过,编程教会你思考。确实如此。编程涉及提出问题、给出解决方案、尝试、失败、再尝试,从而产生一种秩序之美。编程这一过程以及过程中提出的问题会体现出于你对目标、存储、函数及表达式的理解。

深思熟虑某个问题后,你会从编写的程序中发现自己的影子。这种体验最为美妙。

就好像你创作了一幅画。这幅画反映了你的想法。程序也是如此。

于我而言,编程是个赋能的过程,我从中习得了宝贵的生活技能。跳出功能、代码位,总览整个过程时,编程教给你的人生经验便显而易见。早年学习编程的经历帮助我后来习得了经商技能,还帮助我正确把握了人生方向。在某种意义上,编程可以帮你发掘新技能,惠及生活的方方方面。

那么,你还在等什么呢?

640?wx_fmt=png
推荐阅读专题


640?wx_fmt=jpeg

留言 点赞 发个朋友圈

我们一起分享AI学习与发展的干货

编译组:徐梦瑶、张婷华
相关链接:
https://medium.com/swlh/life-lessons-learned-as-a-programmer-9b1ac0d4b636

如需转载,请后台留言,遵守转载规范

推荐文章阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值