干货:什么样的人不适合做编程

干货:什么样的人不适合做编程,第1张

软件蚕食一切。未来属于程序员。所以人人都想当程序员。但是并不是每个人都能当好程序员。在你做出决定前还是先看看自己能不能当好程序员吧。可是什么样的人不适合当程序员呢?不要喝鸡汤,我们看看Quora上面是如何回答的。

<img #0020ff"="" title="干货:什么样的人不适合做

在全栈开发者Adam Leffert看来,最重要的是态度:

我认为编程要想成功最重要的是态度。当然,最低水平的 智力 还是要的。以我这么久的经验来看,还没见过蠢到不会做的。

但是好坏程序员之间的差别几乎永远是态度。

耐心 :对我来说这是最重要的一条。写代码和调试极其令人沮丧。要想做好,你得保持冷静,至少冷静到能够保持清晰的头脑。

精力 :处理棘手问题,编写大量代码容易使得身心俱疲。最重要的是要有我朋友Joshua Wachs所谓的“坐能量(tushie power)”。也就是屁股不离座直到工作完成的能力。

逻辑思维 :这条看似明显,其实不然。一般的程序员在碰到棘手问题的时候一般是靠猜来解决的。运气好可能猜得中。但运气不好就难搞了。问题是猜并不能有效缩小可能原因的范围。好的程序员会提出猜想然后进行测试,从而排除掉一堆的可能性。比方说,屏蔽一段代码,看看问题是不是还出现。

自负 :编程不是你自己的事。这跟你的团队、代码、客户、利益攸关者等等都有关系。(eShare CEO Henry Ward说自己永远都不会要自负的人。)

曾写过不成功OS的Peter Nierop则总结出了当不好程序员的3个迹象:

讨厌用 Google

在github、google和在线网站上面有大多数现成的解决方案。买本老教授的书学编程的日子已经过去了。现在的代码来得快去得也快。而至关重要的事情是把你的东西尽快推向市场。任何不愿每天至少使用 搜索 引擎1小时的人都应该另寻高就(编者注1:Google自己的研究也发现,开发者搜代码越来越频繁 注2:有人可能会说自己不是讨厌用而是用不了。好吧如果是这样的话,我要加最重要的一条:不懂用google的想都不要想当程序员了)。注意,这某种程度上可能是因为你什么都想自己来,想成为全世界唯一的那个纯粹的coder。

朝九晚五的心态

再强调一遍:及时发布很重要。普通的程序员往往每天工作不到8小时,好吧这就是你平庸的原因所在。不平庸的程序员连续22小时冲刺以后才能打个盹隔4天才洗次澡并在接下来的2周时间里每天要用2小时写一些报告。不能或者不愿在必要时 加班 的人最好打住。

极其糟糕的记忆

编程就是开很多的会,做各种各样的变更,可能脑子里面要装100页的代码。未必是每一行都要记得清清楚楚,但起码在管理层又折腾出一个变更或客户突然又冒出一个想法时要知道你的程序是干什么用的,什么地方可能会失败,怎样才能很快修好。如果你的 记忆力 实在是太糟糕的话,最好还是找份其他的工作。

我在这个行当干了这么久,碰到过各种各样的程序员,不变的一点是一旦有上面的问题这些人基本都干不久。

开发者JohnPurcell:

由于开发界总是渴望有新鲜血液进来,所以除非你实在是太差(或者你原来基本都不用工作)否则想不成功都很难。我喜欢Peter Nierop的回答,不过说到正式的付费工作,我本人总是严格遵守朝九晚五的习惯,所以那个说法应该看工作情况而定。

如果你发现编程很乏味, 学习 又总是繁琐无趣的话,那你想做好就很难了。因为你要跟已经编程上瘾的人竞争。不过我也见过几个人虽然不喜欢编程,业余时间基本也不编程,虽然称不上出色的程序员,但是的确能够借此谋生。

要记住的是,编程不是什么精英才能干的事情。这个行业永远都缺人。所以除非你一点都不喜欢编程,或者也没有准备好看在钱的份上忍住这种不喜欢,否则都可以来编程。

而享受编程乐趣的Prince Pranav提供了3个不适合编程的迹象:

因为错误而过早放弃

永不放弃。哪怕是简单的错误也不要放弃。这会让你的代码和心态大不同。好的程序员,在写一长串代码的时候会把代码分解出来,分段测试。如果你因为前面1个小时总是碰到同样的问题就把电脑给关掉了事,可以认为这是迹象1。最后你总会找到问题的,但一定不要放弃。

只对输出而不是质量感兴趣

开发出好应用是你的责任。如果你为了赶时间而牺牲应用的质量,你可以成为程序员,但不会是伟大的程序员。

乐趣不是找来的

你开始写代码前看了看表,13:02,然后你再看的时候变成13:09了。有的人再看表的时候已经是15:37了。真的,除非你是因为有趣才干这个时间才不会流逝(注:不得不说,这又绕到了做你所爱还是爱你所做这个问题。)

究竟什么样的人当不好程序员,你觉得呢?

1. 逻辑思维力(或推衍的能力):这个是做称职程序员的底线。比如不能写的代码出个Exception就抓瞎不知道哪里出了问题,而是有能力从Exception顺藤摸瓜反推出哪里出了问题。Code即逻辑,Code有问题即逻辑有问题。没有逻辑的人是无法找到逻辑漏洞的,也写不出条理清晰的代码。

2. 抽象思维力:这个能力大体可以决定一个程序员的上限。没有这个能力是做不出一切皆文件这种抽象的,可以试试学习函数式编程,如果无法理解并使用高阶函数,你不适合做程序员。再来几个更初级的例子。如果你学写代码的过程中,理解指针的指针的指针这个东西的时间超过了一天,那你不适合当程序员。

3. 专注力:我理解的专注力只是兴趣的衍生品,你打Dota打CS打个几个小时能越打越精神,为什么?因为你觉得有趣儿。如果也觉得写代码有意思,那专注自然就不是个事儿。

4. 想象力与记忆力:这个不是说过目不忘的那种,只是说你大概记得有什么类,都有什么函数,每个函数里的大体过程是什么样的。然后走路、坐地铁的时候就可以用想象力在脑子里做代码的重构啦,找Bug啦什么的,然后回到电脑前就噼里啪啦敲代码。我听说有人在梦里也能写代码,我还没有锻炼出这个技能。当然,这些能力不是必须的,你随身带个笔记本也行,就是效率低些,影响职业成长的上限。

5. 英语:很遗憾地,目前多数有价值的东西都是英文的。所以无障碍阅读Stackoverflow的回答是起码的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7859292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存