IT工程师的自我管理

工作多年,我们见识到了很多厉害的人,他们可以兼顾家庭和工作,合理安排自己的事务和时间,能冷静的处理突发事件且理智的做出决策,把所有事情安排的妥妥当当。最初我以为这种能力来源于性格、情商甚至是天赋,因为并没有看到任何一本书来教人们做到这些,直到我把视角从普通的生活移到工作中,才发现原来一个能把生活安排的井井有条的人,在工作中往往也是优秀的管理者。

管理项目或公司和管理生活有很多共通之处。有些人天生做的很好,但是像我这种普通人则不然。庆幸的是,我们依然能找到一些可行的方法和工具来做的像他们一样,在这篇文章中,我会尝试把公司项目管理的各种方法应用到个人生活中,我划分了不同的小节(收集反馈、决策、时间和任务管理、情绪管理)来阐述这些问题和解决方案,在每个小节的结尾,也会附上我使用过或者推荐的一些工具。

收集反馈和接纳自己

在ThoughtWorks,我学到了一个非常有用的方法,并且可以用到生活中。我们称之为“Feedback”,中文含义为反馈。在公司,收集“Feedback”的精神无处不在,完成一个项目、甚至完成了一次公司内部活动,都会有同事发出调查表单或者邮件来收集意见和反馈。反馈,可以给我们提供改进的方向。

在团队里面,领导或者同事确实会站在不同的角度给予你“Feedback”。在此之外,也可以尝试自我反馈,甚至主动向别人索取反馈。我定了一个日历,来提醒自己在每周一晚上对反馈进行整理。在这小段时间里,让“我”不单单是我,想象自己是另外一个独立的个体,方能更客观和理性的认识自己。

在收集反馈和自我审视当中,非常重要的一点就是客观的接纳自己,从心理学的角度看,更好的安排和管理自己的生活也应该从接纳自己开始,接纳自己的优点或者缺点才能积极的坚持和改变,把一副一般的牌打出精彩效果,这就是管理的哲学。接纳自己的过程和项目经理第一天接手一个遗留项目的感受是一样的,无法改变的东西很多,例如deadline、经费,而能改进的东西更多,像团队热情、开发效率和交付质量等。

优柔寡断、缺乏专注,但是也对很多东西充满热情;和人聊天不够站在对方考虑,但有时候也会幽默;拖延,但是还算勤奋。

这是我给自己的评价,通过这种审视和接纳,我应该能回答一些问题:自己不能改变什么?我能改变什么?哪些事我能做的更好?更进一步,也可以从自己有什么价值、优势和劣势、未来的计划和发展方向、风险怎么管控和人际关系等方面审视自己。

我买了一个白板贴到家里墙上,用来写一些需要经常提醒自己的内容。很简单的一个物件,你可以在淘宝上买到,卖家一般还会赠送黑板擦和白板笔。可以记录你想到的每一个idea和自己的计划、任务清单,甚至给自己写一个座右铭作为自己的slogan。白板在公司非常常见,放在家里可以作为自己的可视化工具,通过写下需要的思考的问题可以打开一个“上帝视角”,帮助我们更为客观的思考。

像公司一样决策

一直很好奇大的公司甚至政府是怎样做出好的决策的,普通人往往是在心里合计一下,然后拍个脑门就成,然而决策每天都在发生,小到出门要不要带伞,见女朋友需不需要买礼物,大到购置资产,投资理财,结婚买房等。“拍脑门决定”显然不是适用于所有场景的。

这里想提一个有意思的东西——易学,周易的功能之一是被古代政府用来决策事务,我曾经了解过一门叫做《奇门遁甲》的易学,这种方法是绘制一张格局图,用天干代表你周围的人际关系、资源,而“甲”就是自己,“遁甲”的意思是需要把自己放到一个客观的位置上来看待,方才能清晰的看待形势和做出正确的决策。

现代管理学中同样对“决策”十分重视,有很多书来阐述这个问题,甚至专门的决策学。其中有一个简单思维工具叫做SWOT,SWOT分析法(也称TOWS分析法、道斯矩阵)即态势分析法,20世纪80年代初由美国旧金山大学的管理学教授韦里克提出,经常被用于企业战略制定、竞争对手分析等场合。

举个例子来说明如何使用这个方法,如果我们需要考虑换工作(毕竟换工作对于任何人来说都是一件重要的事情),根据SWOT我们可以绘制一张表格来对比:

最后需要注意的就是别忽略沉没成本在一次决策中的影响,沉没成本是一个经典的经济学概念,通俗来说沉没成本就是已经投入的资源。比如一项商务谈判,前期付出的越多,后期也就越难放弃。有意思的是,沉没成本在恋爱中的效应同样明显,爱一个人越多,投入越多,则越难割舍。

对于一般来说,这种分析已经让做出选择的各项因素非常清晰,如果还是问题更加复杂,我们可以为每一项增加权重来做更为细致的思考,当然也更加复杂和浪费时间。因为做出决策本身也是需要成本的,当然也不应该在决策上花了太多的时间,没有完美的决策,简单的事情还是拍脑门儿吧。

任务和时间管理

时间就像海绵,挤挤就有的。我宁愿相信这句话是谎言、鸡汤和毒药,如果时间可以被挤出来,无非两种情况,其一是其他的安排或者娱乐时间被无情的侵占了,其二是你做事的质量被降低了,如果你在洗碗,那么可能不会洗的太干净。

时间需要被管理,任务需要被有序安排。大量的时间管理书籍证明了这一点,去年流行的《暗时间》写的非常好,书中讲述了作者大量的经历和管理时间的方法。

我更愿意把时间管理和任务管理结合到一起,在工作中我们的项目经理也是这样做的,任务管理是项目经理非常重要的一部分,不过我们用的是针对项目的敏捷开发/瀑布流方法,更为复杂和需要团队参与,对于个人而言需要更简化的方法,分为几个步骤:

  1. 任务拆分。拆分任务使得任务变得更简单可行是众所周知的方法,在笛卡尔的《谈谈方法》中,拆分已经被当做西方哲学和做事思想的内核。
  2. 评估价值。“评估这项任务是不是真的有价值去做”也许是浪费时间的行为,为什么还需要去做。然而我之前做了很多这种无用的事情,还不如打一把王者荣耀。
  3. 优先级排序。我们要把时间挤挤留给优先级高的事情,那么首先我们需要对任务进行排序。
  4. 时间控制。每个任务需要预估时间,以便于我们留出一段合适的时间用而不至于被中途打断。

为了管理这些任务,在公司我们有看板,对于个人而言推荐使用一些Todo List 工具。我偏向使用Chrome 上的插件,工具越简单越好,当然很多笔记工具都带有TODO列表。比如印象笔记、有道笔记,或者任何支持Markdown语法的编辑器,如果没有找到合适的工具,给自己桌子上贴一张便笺也行。

如果TODO列表工具有提醒的功能就更完美了,如果没有可以使用一些提醒工具,比如iPhone的手机提醒、Mac上的Calendar APP、适合国人使用习惯的QQ邮箱甚至提醒到微信和手机短信。

在做事的时候,专注可以提高效率,因此一个很有名的工作方法叫做番茄工作法被提出来。这种工作方法因一个番茄形状的厨房用定时器得名,手机上有大量相关应用可以下载。使用该软件可以让你在专注工作25分钟,随后有5分钟的休息时间,但25分钟内你需要保持高度精神集中,了解更多番茄工作法可以阅读《番茄工作法图解》一书。

(图片来自:番茄工作法图解)

知识体系和储备

我是一个程序员,程序员都有一个焦虑,那就是总有一大堆新的技术和工具等着你去学。几个月前我尝试思考如何解决这个问题,随着IT从业者工作的时间的增加,年龄渐长,同时还要面临家庭和其他方面的事务,越来越不可能把所有精力投入到技术的学习中(毕竟还要学习如何预防颈椎病)。

通过观察一些技术强势、但业余爱好也开展的红红火火的IT大拿,发现几点非常有意思的事情。

不同技术创造的价值不同。我们经常谈论是需要专才还是通才,是需要精通某项技术还是博古通今,这种思考方向还是略显片面。无论是刻意还是偶然,有些技术能学习投入更少但是赚更多的钱,学习技术也需要眼光。不得不承认,从一般趋势下,web前端需要了解一堆繁杂的知识但是没有java等后端开发薪资高。

知识像一棵树,需要具备一个体系。这条经验不仅仅适用于IT行业,我们在学习某些东西时,会去网上寻找各种知识清单、书单、技能图谱,我在之前的文章中也介绍过IT行业相关的图谱。对于人脑而言,记忆和学习是线性或者网状的,这也符合我们的认知,零散的知识非常容易遗忘。构建体系的知识,我强烈推荐画图,无论是思维导图(Xmind、MindMap)还是鱼骨图、组织架构图和韦恩图都是很好的方法,甚至构建自己的技术雷达。

(构建自己的技术雷达)

知识需要储备、学习需要有文档产出。在完成一个项目或调研后,公司都会产出一定的文档,每个专业公司都有这样一个资料库,当我们遇到问题的时候可以从中找到相关信息。在工作中我曾经用过禅道、金山云、confluence等,相比之下,禅道不仅仅是一个文档管理工具,更是一个项目管理工具,而金山云文档搜索功能略差,confluence则是一个专业的团队文档管理工具,但是需要付费。

对于个人也一样,学习任何东西都需要有产出,在记笔记之外,写作是一个不错的方式,开通博客或者专栏来让学到的知识能够更好的沉淀,因此我整理了一个在线写作平台的清单:

国内篇

国际篇

就文档管理而言,如果不希望自己的文档被发布出去,或者认为某些资料不是通常意义上的博客,使用Wikidot编写自己的Wiki来管理文档也不错。如果是程序员的话直接使用Github做文档管理或者给自己搭建一个Wiki,也不是非常难的一件事。

我自己偏爱用Markdown格式来管理自己的文档,因此创建了一个代码仓库用来放置所有文档,然后Hexo发布到github提供的静态资源服务器上供自己查看,有了这些工具和输出之后,我们能知道哪些知识是我们需要的,哪些知识暂时不需要但是在需要的时候能被快速的捡起来。

情绪管理

在第一家公司工作时,我们老板讲了一个故事,曾经因为产品出现问题,很多下级经销商上门闹事要求退款,大多数人情绪十分激动,甚至有人打砸物品,都被老板一一化解。后来来了一个年轻的经销商,笑眯眯的来到公司,淡定非凡,和老板重新聊合同和赔偿的事务,这个人看起来并不生气,只是索取了大量相关资料。据老板讲,这个人应该在收集证据和资料用于后面走法律途经,因为是我们理亏,所以老板做出了让步、答应了他全部的退款条件。

我不知道人类演化出“抱怨”“气愤”“愤怒”等情绪的意义在哪里。当我们在工作中遇到麻烦,第一反应是抱怨;当别人指出我们的错误时,往往第一个动作是怼回去;遇到矛盾,我们会被激怒。但是当我们回顾这些行为本身,会发现抱怨对工作毫无益处,怼回别人的意见对自己也并没有帮助,即使在一场战斗中被激怒的一方往往会处于险镜。

我曾经看过一本书叫《不抱怨的世界》,书中提到一个很好的方法来减少抱怨:佩戴一个手链或者手环,当你意识到自己在抱怨时,交换手环到另外一只手,通过这种微小的心理暗示来矫正自己的不良过激反应。

生气是人的本能,没有谁能完全控制自己,一个好的建议是当我们感到愤怒的时候,请不要做任何行动和决策,先让自己安静下来至少30分钟。心理学上对于不良情绪的管理建议不要对抗不良情绪,而接纳和发泄是更为可行的办法,避免形成强迫行为,我们的目的不是消除负面情绪,而是不让情绪影响到决策,然后使用其他途径进行发泄和疏导。

写在最后

很多时候,管理这个词用到个人身上略显奇怪,对大多数人而言,管理知识如同屠龙之技。其实当把管理的各种方法用到生活中,管理并不是权利、控制和压迫,而是理性思考、引导和推动。管理并不一定是对下属,甚至可以管理上级、爱情和家庭,用各种可以学到的方法、技巧把生活打理的仅仅有条。就像古人“修身齐家治国平天下”,“修身”不正是管理自己么。限于篇幅,我们能从公司运作和管理的哲学中学到更多,希望后面有机会分享给大家。


更多精彩洞见,请关注微信公众号:思特沃克

Share

写给自学者的入门指南

在IT工程师和培训机构多如牛毛的时代,拜师学艺并不难。但自学编程对于毫无基础的同学来说却可能是个问题,相信有过类似经历的朋友都有一把辛酸泪和一肚不吐不快的体会。让我们从一个故事说起…

故事

某君在一个普通大学读着自己不喜欢的专业,以打游戏、刷段子和睡觉度日,突然有一天想学点什么。学编程好像挺酷,而且听说IT行业充满了机会,没准一不小心就和大佬一起“改变世界”了。

那么第一个问题来了,他该选择什么语言?

是世界上最好的语言PHP?还是语言之母的C?幸好还知道个编程语言排行榜,找到一看、几十种不带重样,这要逼死天秤座的小朋友。选PHP吧?上非诚勿扰都要被灭灯,而且就只能做个网页。万般纠结之后我们选C吧,听起来既高级又底层,说不准还能考个计算机二级。

接下来得干正事儿了。在这个便捷的网络时代,自学可选择的方式非常丰富。除了在网络上收集资料、阅读干货外,某君还向一些前辈咨询了自学的方法。

网络上流传的编程学习方式有:

  • 看书(这是最容易想到的方法)
  • 观看视频教程
  • 阅读官网文档
  • 读源码
  • 到大学蹭课或者报名培训(不知道还算不算自学,没交学费都算吧?)

某君又得纠结一番了,大学蹭课和培训并不一定有合适条件,且不符合自学的气质;观看视频教程,前辈们觉得比较low;阅读官网文档和源码,这不适合初学者。总得来说看书算是比较中肯的方法,至于看什么书呢,前辈推荐了《C Primer Plus》,据说是学习C语言的经典之作。

好吧,不再纠结,直接啃这本大部头,虽然有人说看原版好一些,但是实在能力有限、还是看中文版吧。一口气花了一周时间读完这本书,果然是经典,变量、语句、条件判断甚至指针都知道怎么回事了。

某君决定按照书中的说法实践一下了,于是打开了记事本,折腾很久装了GCC,把书上的第一个例子抄了下来,在控制台的小黑窗输出了“Hello World”,成就感满满。决定上手写点高级的的东西一试身手,合上书。咦,为什么会报错?哦,原来少个分号。不禁陷入思考:为什么学了两个月还是只能在这个黑窗口算算秋水仙数?网友还说要看官网文档、要读源码、要看英文原版,我一样都不能做到,我一定是能力不够,编程果然是天才做的事情……

正经话

上面的故事是我编的,但其中的纠结却是自学者或多或少都经历过的。实际上,IT从业者并不像传说中那样需要天才般的智商,要点在于能否找到合适的入门途径,再加上一点点坚持和思考。比较可惜的情况是一些人没能找到适合自己的学习方法,并在纠结和碰壁后失去信心,然后沮丧的认定自己并不适合干这行。学编程很多时候就是一个趟坑的过程,但不是每一个坑都有必要趟,写这篇文章的目的是希望能够帮助初学者尽量少趟一些坑。

IT世界的地图

初学者遇到的一个典型问题是对IT世界没有一个大的图景。比如大多数的Java书籍,教完你基础语法知识和秋水仙数的求法后就结束了,并没告诉你接下来能干什么。我曾经为此感到非常困惑,学完Java SE后做了一个非常简陋的GUI demo,就失去了后续的Java学习方向,带着对Java的偏见,这成为了我一段令人沮丧的学习经历。关于这个话题一本书可能都不够,简单来说,我尝试从计算机科学知识和技术实践两方面来聊聊成为一名IT工程师需要具备哪些东西。

计算机科学基础

首先初学者要具备一些非常基础的知识,这些知识在你踏上工作岗位后能被实际的用到,比如计算机运行原理、网络的传输、常用数据结构和算法等。这部分属于计算机科学,也是应该被计算机专业本科课程涵盖的,不要伤心错过了大学本科的相关课程,我会分享一些有用的资源。

这里我罗列了一些计算机专业的学生一般需要学习的课程,当然每个学校专业设计都不一样,甚至采用的教材名字也不一样,仅供参考。大学计算机科学课程往往包括:《高等数学》、《离线数学》、《电子电路》、《数据结构》、《程序设计》、《计算机组成原理》、《编译原理》、《计算机网络》、《软件工程》、《数据库原理》等。有些学校会有一些额外的课程,例如《通信原理》、《汇编语言》、《线性代数》、《C语言》、《Java 语言》等。

图片来源于网易计算机专业的课程体系

尽管IT行业知识更迭非常快,但是基础知识并不容易过时,因此有大量的资料可以选择。可以选择从计算机经典丛书系列开始,比如佛罗赞和莫沙拉夫的《计算机科学导论》,甚至可以阅读一些计算机科普类读物例如《穿越计算机的迷雾》。另一种直观的方式是观看大学精品课和去跟慕课课程,比较推荐的有几个:

  • 中国大学精品开放课程,高等教育出版社的精品课程项目,有全国大量的名校授课视频和课件
  • 中国大学MOOC ,这个是中国大学MOOC和网易合作的,提供了上文附图中计算机课程体系中所有课程
  • 果壳网的MOOC学院,主打翻译全球名校的优秀课程,比如斯坦福的《编译原理》和MIT的《Python》

从知识到实践

除此之外,还需要了解实际应用于设计软件或者开发网站中的实践类知识,包括某个特定语言以及周边的库、框架和工具等。 我们可以把特定需求中用到的语言、库和框架以及其他的工具称为技术栈,在技术选型上通常也是被这样考虑的,HR常常会根据技术栈来寻找需要的工程师。比如需要学习SSH 三大框架和Java的Java技术栈;为服务器web开发而生的PHP技术栈;在移动开发领域流行的IOS、安卓技术栈等。当然这里面有一些重合和共用的技术也需要学习,比如版本管理器Git、SVN就是每个合格的工程师需要去学习的。

换句话说,大学课程主要定位在上面说到的计算机科学基础知识,而市面上的培训机构主要是告诉你在怎么在实际工作中运用,所以大学和培训机构都有他们的价值。

想要更加详细的了解这部分内容,这里有一些开源的技能图谱可以参考:

图片来自: http://skill-map.stuq.org/

如何挑选你的兵器?

在介绍完计算机领域的大致图景后,就需要选择一门合适的编程语言,一个较为形象的例子是把编程语言比喻成兵器,因为我们深知编程语言对于工程师而言是实实在在的工具,我们不是为了学它而学,学编程不仅仅是学语言特性,一般来说我们也不用知道赋值语句像“茴香豆蔻”的“茴”字有四种写法。

当然语言之争从来没有停止过,如果把编程语言比喻江湖武器的话十分有趣。

C语言是M1式加兰德步枪,很老但可靠。

C++是双截棍,挥舞起来很强悍,很吸引人,但需要多年的磨练来掌握,很多人希望改用别的武器。

Perl语言是燃烧弹,曾经在战场上很有用,但现在很少人使用它。

Java是M240通用弹夹式自动机枪,有时它的弹夹是圆的,但有时候不是,如果不是,当你开火时,会遇到NullPointerException问题,枪会爆炸,你就会被炸死。

JavaScript是一把宝剑,但没有剑柄。

— 来自网络

老实来讲IT行业的最终目的是交付可用的软件,编程语言也是适应市场的。这对于初学者或许有些残酷,在工作中我们发现最好的语言是用来处理工作任务或者构建合适的应用,并不是出于爱好或者某种Geek精神。

对于初学者而言,在选择合适的入门语言时至少需要考虑两点:

  • 是否能适用于构建你想要的应用。如果你的目标是创建一个运行在IPhone上的APP,那么最好选择 Object C 或者 Swift,学习web开发可以选择PHP 或者JAVA。实际上我们仍然可以用汇编做出网页,但是这样做成本高昂。
  • 是否容易学习,在满足第一点的条件下请尽量选择容易学习的语言。容易不仅仅指语法简单,包括环境搭建、部署等都需要考虑在内,以及能不能容易找到好的学习资料,因此尽可能的选择主流语言。

别忘了非常重要的一点,学习编程语言还包括平台提供的API,比如Win 32 之于C++/C#/VB,以及周边的库和框架(这些库、框架和工具能在上面说的技术图谱中找到)。IT历史上甚至出现框架和库引领编程语言走向的情况:JQuery 和Angular 改变了前端开发的思想; Rails 抢走了Ruby的名气;而SSH三大框架一度代表了Java世界。

最后我为初学者整理了一个流行编程语言和用途的表:

另外还需要注意的是开发工具,可以选用IDE和有代码提示的编辑器,但尽量不要在这上喋喋不休,这就像用来盛放你锋利兵器的架子,用着顺手就行,也不推荐使用纯文本编辑器,这看起来像赤手空拳。 推荐一些编辑器和IDE

挑选合适的资料和有效的阅读

对初学者而言,我仍然推荐好的视频教程,虽然我已经听到不下5个人声称是靠阅读官方文档或者看源码学会编程的,而且认为观看视频教程见效太慢。但这个思想对初学者很危险,不得不承认阅读文档和源码能更准确找到自己想要的信息,这对深入技术原理非常有用,但视频能比文字传达出更丰富的内容,有更直观的演示和细致的讲解,我想没有比这个更适合初学者了。

除了上面提到的精品课程和慕课教程,国内有像网易云课堂,国外有lynda.com这种在线学习视频网站,甚至在优酷和土豆都能找到足够的教程资源。

如果选择了阅读技术类书籍,我们来聊聊怎么有效的阅读一本技术书籍。

读IT类书籍和读考试类书籍的方式不同,初学者需要选择更接地气、并且能告诉你最终能做出什么案例的书籍。你不需要通读整本书,而是需要搭建好和书中版本一致的环境,然后把书中的每行代码敲入电脑,观察这些代码怎样被运行,在遇到问题时去请教朋友或者到搜索引擎中寻找解决办法,直到示例程序能被正确运行。

可能一个月才能读完一本书,但慢点并没什么坏处,敲过一遍的代码才能算是你的,否则永远存在于纸上的代码清单中。对于关键的概念和知识点,可以在阅读的同时做一些笔记,去尝试使用思维导图来做你的笔记吧,这让你的笔记跟上你的思考,并形成一个知识网络。

自我激励

自学无疑是寂寞的。编程学习耗时较长,如何保证在这个阶段能坚持下去?

我们知道很多人都能对游戏产生强烈的兴趣、愿意为之投入时间,这其中的秘密就是游戏的奖励规则。杀死一个怪物就能得到一些金币,通过完成任务获得满足感,通过关卡的设计产生持续吸引力,进而形成正向的反馈。

其实学习编程也一样,实现一小段程序并运行,足以让人感到成就感和满足,借鉴这个简单的心理学技巧,定期给自己设定一些有实际意义但是不太难的目标和任务。太难会让人失去耐心,太简单又很无聊,最好设定一个跳起来刚好摸得着的任务。每完成一个目标就给予自己奖励,可以是完成任务的成就感,也可以是其他的物质奖励。

这个时候一个代办记事的清单就可以帮上忙了,可以是一个to do list的软件,或者自己手写一张卡片贴到墙上,关键在于不要忘了在任务达成后给予自己适当的奖励。

图片来源:https://appadvice.com

那如果真的遇到一些麻烦的任务呢,如何顺利解决而不至于丧失信心?笛卡尔在《方法论》一书中告诉了我们研究复杂问题的方法和步骤:

  • 尽量将其分解为多个比较简单的小问题,一个一个地分开解决
  • 将小问题从简单到复杂排列,先从容易解决的问题着手
  • 子问题被解决后,进行联调测试,看是否能协同运行

在敏捷开发这种工程思想中我们正是这样做的,我们需要把业务需求进行拆分然后评估工作量,不仅可以直观的看到任务进展,手上的工作也不会看起来庞大得难以完成。

最后多说几句

非科班出身的工程师入门是有一定痛苦的,不像武侠世界里面的名门正派弟子,也没有机缘遇到骨骼精奇的世外高人,如何选择合适自己的学习方式并自我管理是很重要的一方面。没有任何Low的学习方式,只要直接而又高效,而且要能达到我们的目的就好。以我为例,从大专学校毕业并没有机会参加本科课程,曾经也在网上攫取各种视频教程,去别的学校蹭课,甚至带上礼物去一个老师那里登门拜访补课。

另一方面是如何上桌,吃上编程这碗饭。学习的成果如果无处施展便成为屠龙之技,参加一些开源项目和一些公益活动,谁不喜欢一个热心的人呢。也可以尝试去实现自己的一些idea,当做一个小项目来开发,有了一些项目实践后去找一个公司实习会容易的多。

我不知道算是有幸还是不幸经历了这一个过程,矫情一点来说是有一些曲折,但是我知道“聪明”从来不是这个行业的门槛。引用流行于知乎的一句老话“以大多人的努力程度,还轮不到拼天赋的程度”,在Thoughtworks有大量优秀的工程师,从他们身上我能看到聪明不是学习编程成功的关键,坚持和勤于思考才是。


更多精彩洞见,请关注微信公众号:思特沃克

Share