.

编程不只是技能,更是满满的人生道理

白癜风治疗体系 http://m.39.net/pf/a_6682961.html
乔布斯说:“每个人都应该学习编程,因为它教会你思考的方式。”我们学习编程,是不一定要成为程序员的。就像每个人都应该学习法律,但不是都要成为律师;就像每个人都应该学习经济学,但不是必须成为经济学家;就像每个人都要学习数学,也不是为了成为数学家。不同的学科知识给予我们不同的思考方式,这些思考方式将贯穿在我们日常生活的点点滴滴。而编程本身就是一个培育思维的过程,可以帮助我们掌握逻辑思考的能力。我从10岁开始自学程式、组电脑,21岁与大学朋友创办哈酷网、硕网,开始实际把程式运用在商业世界,28岁在纽约参与社群网站Sosauce、游戏制作公司Muse的创办,32岁回台成立AppWorks帮助年轻人发展网路新创,可以说整个人生都与程式脱不了关系。回头看这趟旅程,程式教了我太多人生的智慧,以下是其中我认为最重要的,跟大家分享。——林晨之

编程的目的不是编程

编程是让使用者运用,帮助他们解决问题、满足需求的工具。所以真正的目标是“问题被解决”、“需求被满足”,而不是编程的我本身。一个工程师必须认清编写的程序不是一件作品,而是过程中的介质,才能设计出真正增进用户生活的好软件。

困难的事不一定有价值

很多时候,工程师辛苦刻了一些功能,却发现用户根本没有这样的需求。另一些时候,我们发现按钮的颜色、说明的文字、新手上路的引导、会员登入后体贴的问候,这些功能做起来很简单,用户却非常在乎。人生也是,我们辛苦的付出,人家不一定有感受,但一句不经意的话,却可能掀起社会运动。

新东西不一定好

人天生喜欢新事物,但在设计软件产品的过程中,新技术往往不是最好的选择。新技术通常有很酷炫的核心,但缺乏完整的周边配套,甚至没有太多工程师真的懂。因此实务运用上,往往带来更高的成本与更大的风险。因此,聪明的工程师会选择成熟或接近成熟的技术。

懒惰不是坏事

优秀的工程师往往是最懒惰的动物,正是因为懒惰,所以可以做出最方便好用、容易维护的软体。

简化才是王道

N倍复杂的软件,带来N平方成长的用户教育、团队沟通协作、后续维护成本。因此,学程式会教你力行减法的重要,KISSeverything.(KeepItSimpleandStupid)

系统思考

程序往往不是一个独立存在的个体,而是由许多互相连动的模块、物件、平台所形成的体系。因此,学习设计程式的同时,也势必会增强系统思考的能力,帮助你理解单独模组的优化不一定能提升整体战力,以及找到系统内杠杆点等重要人生观念。

没有情绪、只有逻辑

人是理性与感性兼具的动物,但机器却只有%的理性。因此当你的程式无法Compile(编译过关),跟机器生气、求情、说谎都是没用的。只有学会摒弃自己的情绪,用完全合乎逻辑的方式,才能通过他们严格的关卡。在过程中,你也学会了如何运用EQ。

问题的根源都是自己

当程序出现问题、当用户的问题没解决、需求不满足,你并不能怪罪用户、也无法推卸给机器,只能怪自己没有做出好的选择、设计出对的架构、写出可靠的程序。人生也是一样,问题都根源于自己过去某个时点做出的选择,没什么好责怪别人。

速度与债

在设计早期版本软件时,为了求快、求提早取得市场反馈,工程师往往会用较粗鲁的方式完成功能,因此欠下所谓“技术债”。而后,当产品获得市场欢迎,用户量持续成长,偿还这个技术债所需的时间与人力就会日益膨胀,就像现实生活中的负债会生利息一样。因此,工程师要懂得在对的时间点,把前债还清,才不会在日后造成永不超生的后果。经历过几次这个过程,你将学会用成熟的态度去面对选择、负债、偿还。

可以一时绕过麻烦,但无法永远逃避它

这跟技术债的概念很类似,有时候,工程师可以用WorkAround暂时绕过问题,但它不能取代解决问题本身。迟早,你必须正面面对、解决它。

永远帮自己留条后路

编程做久的工程师,往往会养成习惯在回圈,或是需要长时间的执行程序中,帮自己留一个跳出的路径,免得事情出状况时,无法抢救。在人生中,永远想好后路也是很重要的观念。

用小里程碑激励自己

在做一个大系统时,如果花数周、数月的时间埋头苦干,却一直没办法看到成果,很难维持自己在意志高昂的状态。厉害的工程师会把它切割成许多小片段,每个阶段完成都有可运作的部份成果,利用这些小里程碑来让自己保持热情。

专注的重要

专心的设计程式1小时,生产力恐怕抵过边做边玩10个小时。

团队合作的重要

无论一个工程师再强,也无法一个人完成一个大系统。与其他人组织、协做、发挥整体战力,是工程师必修的功课,也是所有人一生中必修的功课。预览时标签不可点收录于话题#个上一篇下一篇

转载请注明:http://www.abachildren.com/xgyy/716.html