如果有这10个迹象,你可能是个糟糕的码农

新闻
我经常在Reddit或Quora上看到类似"我如何知道自己是否会成为一名成功的程序员?"这样的问题(实际上,这篇文章是基于我对Quora的回答而扩展的。) 职业变化,或者对软件开发感兴趣并且对需要的软件感到好奇,不可避免地会出现编程问题。

 我经常在Reddit或Quora上看到类似"我如何知道自己是否会成为一名成功的程序员?"这样的问题(实际上,这篇文章是基于我对Quora的回答而扩展的。) 职业变化,或者对软件开发感兴趣并且对需要的软件感到好奇,不可避免地会出现编程问题。

[[286891]]

实际上,我认为这是人们在没有经过任何计算机正式培训的情况下进入其头脑的主要障碍。 很自然地认为,如果您不擅长编程,那么您的愿望就不会成为初学者。 有点像您是否想当演员,想知道自己是否会擅长演戏。

作为教授全栈Web开发的教育者,我曾教过许多"初学者"。 好消息是,我很少找到无法学习编程的学生。 我将其视为基本的人类技能,就像阅读,写作和算术一样。 任何人都可以做到,这是我们人类能力的一部分,但确实需要学习。

在过去的两年教学中,我目睹了各种学生在此过程中的挣扎,以及他们挣扎中出现的一些共同主题。 如果您查看此列表并亲自查看它们,请放心,您将真正精通编程,并且可能会发现与您的时间有关的其他事情。 但是,如果您仍然致力于成为开发人员的目标,则可以轻松面对这些问题并进行改变。

编程是一项基本的人类技能,就像阅读,写作和算术一样。 任何人都可以花费时间和精力来学习编程。

1、缺乏好奇心

如果您对计算机以及技术的运行方式缺乏好奇心,那么您将永远无法成为一名程序员。

学习的基本要求是对所学事物的积极兴趣。 如果您没有对技术感到好奇的头脑,那么您将没有精力去坚持学习成为一名成功的程序员所需要的广泛而深入的知识。

相反,技术世界就像是一个巨大的海洋,充满了有趣的领域,相互联系的思想以及激发想象力的可能性。 想要潜入并发现所有可能的一切,需要一种内在的内在动力。

找到您的好奇心:问问自己编程是否真正让您感兴趣。 如果您的诚实答案不是,请去寻找您感兴趣的东西。节省时间和精力。 但是,如果您的答案是"是",那么就让自己找到从未见过的新事物,认清广阔的海洋,然后再潜入更深的地方。

2、缺乏自治和机智

如果您不具备为自己解决问题的能力,那么您将永远无法成为一名程序员。

毫无疑问,要成为成功的开发人员,您必须对自己的学习能力充满信心。 这实际上是一项基本的生活技能-如果您超过18岁,则没有人有义务教您任何内容。 那是现实。 由您来查找信息和帮助,以了解对您而言重要的信息。

在发展的世界中,您需要的所有信息都在那个神奇的地方找到,该地方以前被称为信息超级高速公路。 这个庞大的图书馆有一个巨大的门户:Google。 当您想学习技术方面的技能时,首先要克服的障碍就是,您可以轻松地将任何内容输入Google并获取所需的信息。

除了成为优秀的googler之外,所有编程语言都具有明确说明该语言工作原理的文档和规范。 就像使用字典一样,当您看到一个不认识的单词时,便会查找它。 建立程序员技能的最快,最可靠的方法就是简单地阅读文档。 实际上就在那里。

使用资源:认识到您真正需要的所有答案都在那里。 如果您有问题,请在询问其他人答案之前,先强迫自己在Google上进行搜索并查看文档。 当您尝试并确实未能找到所需的答案时,可以节省其他人的时间。

3、面对问题缺乏毅力

如果您在遇到问题时轻易放弃,您将永远不会成为一名程序员。

编程的本质是解决问题。 这就是发明计算机的全部原因! 每当您开始编写程序时,都会遇到整个问题。 解决问题后,几乎总会遇到另一个问题。 您正在取得进步,但是总是要面对新的问题。

面对一堆问题可能令人生畏和沮丧。 如果您觉得事情应该"正常运转",那么随着问题继续存在,您将没有持续的精力,并且一点一点地破坏了您的情感决心。 从字面上看,这是您的工作,找出为什么事情不起作用。

根据我在课堂上的经验,通常每班有一两个学生似乎比其他学生有更多的问题遇到麻烦的诀窍,这些问题通常是相当随机且难以理解的问题。 我提醒学生,他们面对的问题越多,学习得越深入和透彻的可能性就越大。 如果他们能够通过这些问题获得理解,他们会很快发现自己比以前的普通学生更有信心,因为他们面对并解决了更多的问题。

患者接受度:您需要认识到问题与领土相关,不是问题,而是挑战。 您面临和克服的每一个挑战都使您有更深刻的理解,并具有更好的能力来应对新挑战并迅速解决旧挑战。

4、解决问题没有成功的感觉

如果您在解决问题后没有感到兴奋和成就感,那么您将永远无法成为一名程序员。

成功解决问题后,与先前的问题太容易放弃有关的是缺乏"良好感觉"。 当修复bug和问题变成永无止境的跑步机时,您会失去克服问题所带来的兴奋。

解决问题时,实际上需要多巴胺。 这类似于完成视频游戏中的关卡,或解决诸如填字游戏或数独游戏之类的挑战的经验。 我们都知道,有一种良好的感觉来自于坚持不懈的挑战并最终赢得胜利。 但是,如果您丧失了感受这些感觉的能力,或者一开始就从未真正关心过,那么您将无法体验编程带来的快乐。 如果您将编程视为一种磨砺,而您只是想尽可能轻松地获得结果,那么您将永远无法真正成为一名成功的程序员。

庆祝您的胜利:每当您解决自己遇到的难题时,无论规模多么小,都应该为自己的成就感到自豪,稍事休息,并为自己所做的出色工作表示祝贺。 让成功感沉浸在其中,并为您面临的下一个问题激发您的精力。

5、对学习和理解不耐烦

如果您对学习没有耐心并且期望快速而轻松地掌握所有内容,那么您将永远无法真正成功地编程。

作为人类,我们是有限的生物。 即使我们的世界运转得越来越快,并且计算机是造成这种情况的主要原因,但我们只能尽我们所能地加快步伐。 我们的大脑以一定的速度运转,并取决于我们的过去,信念,情绪状态,健康状况……我们将以不同的速度学习和整合信息。

技术世界就像一片广阔的海洋。 您将永远不会走到尽头,也永远不会到达一个您无所不能学习的主人的地步。 如果让自己不知所措,您将总是感到要"追赶"的压力,并感到自己永远不够了解。 如果您不接受所知道的知识,然后学到更多知识,您会觉得自己无所适从,放弃了。

相反,您需要享受自我学习的旅程。 您获得的每一点知识或新技能都需要使您兴奋。 像解决问题一样,您需要让自己感到自豪,即使您迈出了很小的一步,也意识到自己已经迈出了一步。

确认您的进步:有很多东西要学习,编程的旅程永远不会结束。 但是知识是累积性的,因此以您所了解的知识为荣,并相信您在学习中所做的一切努力都会为您的职业带给您坚实的知识基础。

6、变得无聊/厌倦了思考

如果您懒于思考并且将集中注意力集中在琐事上,那么您将永远不会真正地成功编程。

编程是一种思考活动。 作为人类,我们确实善于思考,但是现实是,即使我们自然地整天都在思考,但我们的思维却很懒惰。 如果您不习惯,很难在一段时间内集中精力专注于单个问题。

其症状包括茫然地盯着屏幕,感觉到云层在您的思想中落下,拖延问题,在浏览器选项卡之间切换以及拼命扫描StackOverflow以寻找"答案"。 这些迹象表明您已经遇到了精神上的限制,需要找到解决方法。

在编程时,您会感到疲倦,而思考实际上会消耗身体的能量,就像锻炼我们的身体一样。 当您不习惯发挥所需的精神能量时,很难集中精力。 但这就像去健身房一样,您做的越多,就会越坚强。

您的心灵就像一块肌肉:相信您的大脑就像一块肌肉,使用它的时候,思维会变得更好,更有效。 当您将各个部分放在一起并发展出思维概念时,发现解决方案变得容易得多。

7、无法为自己思考

如果您希望别人为您考虑,而又不愿考虑自己情况的细节,那么您将永远不是真正的成功程序员。

当您学习新事物时,很容易感觉到您自己缺乏知识和经验。 主动做或说错事似乎有风险。

我们所有人都有一种内在的恐惧,那就是错误。 当对错误的恐惧限制了您的探索和好奇心时,您就会抑制发展真正知识的能力,即从经验和"失败"中获得的知识。 当您需要依靠"专家"的意见,流行的博客作者,最佳实践或"教科书"的答案时,您并没有真正整合编程方面的实用知识。

您需要就什么可行,和什么无效提出自己的看法。 您需要了解为什么,您认为您的解决方案有效,以及有什么好处。 您需要开发一个细微的视角,超越明显的视角。 您需要能够"支持"您的立场,然后如果您进行更改,则可以拥有自己所获得的新观点。

自己思考:通过您的经验和批判性思维技能,发展自己的观点。 做出合理的猜测,采取立场,并愿意随着新信息的出现而发生变化。

8、僵硬,狭隘和/或混乱的思维

如果您思维僵化,并且很难使代码井井有条,并且通过扩展思路使您的思想井井有条,那么您将永远不会成功编程。

我有时在学生中看到两个极端。 首先是僵化而狭隘的思维方式。 这种态度拒绝帮助,尽管有反馈,但这种态度不会改变。 仅从一个角度看事情,而忽略建议。

我看到的第二个极端是思维混乱。 学生似乎使事情变得不必要的复杂,他们的代码混乱而且难以遵循。 他们认为问题太多了,原本10行代码可以解决的问题,就写了一百行代码。

当将这两种思维方式结合在一起时,结果便是一种笨拙的编程方法,例如蛮力方法导致层层修复和"Hack"。 所需要的是能够回顾解决方案,重新评估解决方案,放弃最初的方法并进行重组的能力。

无法看到其他可能性,或无法收到反馈,这会抑制其成长和提高的能力。 杂乱无章的速度会使您放慢脚步,并阻止您看到原本显而易见的模式。 并且您的工作的整体质量下降。

自我反思:您需要退后一步,并从更大的角度看待您如何对待事物。 您如何更好地做到这一点? 有什么可以做的使您的生活更轻松? 您缺少什么可以帮助您的?

9、需要"正确"答案,而不是认识到一系列"好"和"坏"答案

如果您将编程的最终目标看作是找到合适的解决方案,而不是找到各种解决方案,那么您将永远无法真正成为一名程序员。

在开始学习技能或编程时,学生经常想知道他们所做的是否"正确"。 答案始终是"取决于情况"。

计算机科学是评估权衡的科学。 在不同情况下,哪条路更好? 这完全取决于环境和目标。 当您将编程视为正确答案或错误答案的测试时,您将失去整体视野,而放弃自己的创造力。 如果您可以根据情况证明其正确性,那么任何答案都可能是"正确"的。

现实情况是,编程更像是写诗或短篇小说(如果程序很大,则可能是小说)。 在您的代码中可以看到一种美感和美感,有时只有您和其他程序员才能识别出它。 您决定解决方案的原因以及答案的构想比"正确的方法"或"错误的方法"更为重要。 拥有艺术家的思想使您可以选择和尝试,而不是仅仅想办法。 那就是编程的美,有很多方法可以解决问题,而对各种可能性的考虑会导致人们感觉哪种方法最适合这种情况。

发挥创意:认识到有很多方法可以解决问题,并且通过经验和暴露,您将逐渐加深对哪些解决方案比其他解决方案感觉更好的理解。 放眼大局,想象不同的可能性,并相信自己的直觉会带来更令人满意的,更好的解决方案。

10、不注意细节

如果您掩饰细节,却忽略了一些小事情,那么您将永远不是真正的成功程序员。

计算机是精密的机器。 在对计算机进行编程时,您需要按照计算机期望的方式准确地提供必要的命令。 如果您不这样做,将无济于事。 在大多数情况下,没有中间的事情可以起作用,要么起作用,要么不起作用。

这意味着在编程时,您必须注意细节。 每个空格,方括号或分号都重要。 不合适时,将无任何作用。 当计算机发回错误消息时,您必须能够查看该消息并准确了解它在告诉您什么。 现实情况是,如果您错过了这样的细节,您可能会花费数小时来查找实际上是拼写错误导致的问题。

正如他们所说,细节决定成败。 对于编程绝对是正确的。

注意细节:细节很重要,您必须接受。 完成后,您可以开始始终在代码中扫描任何不适当的内容。 您可以组织代码并使用可帮助您快速发现问题的工具。

奖励:具有商业头脑

我注意到这是一个旁观者,尤其是具有商业头脑的学生,通常专注于结果而不是过程。 他们希望获得一个"可运行的应用程序",以使他们的经营理念向前发展,他们希望"首先进入市场",并且他们将学习曲线视为实现其业务发展目标的障碍。

在反思那些难以真正帮助他们成长为程序员的学生时,我发现这种过程不耐烦,阻碍了真正理解技术所需的学习。 他们倾向于将技术视为达到目的的手段,而不是要探索和享受的知识领域。

作为一种自然的延伸,我发现某些学生更倾向于业务,并且学习困难,常常很快让自由职业者签约,他们实际上没有技能自己做的工作! 他们会争先恐后地寻找资源/模板来使项目为客户服务,或者将工作外包给其他人。 他们确实很喜欢编程,但是付钱找别人编程更为便捷!

因此,我要补充的是,那些渴望创业的学生,擅长销售,网络和业务发展,他们可能比其他人更难以学习编程技能。 他们天生渴望创造财务机会并将人们与解决方案联系起来,这使他们对编程中涉及的繁琐细节不耐烦。

结论

尽管编程可能是一种很难学习的技能,但肯定是大多数人可以学习的技能。 上面的列表中包含了妨碍您前进的态度和心态,但是大多数人都可以克服它们,并在编程领域发展你的能力(如果不是精通的话)。

如果您有兴趣学习编程,我鼓励您开始旅程。 请牢记上面的清单,并开始探索许多在线可用资源,这些资源可以使您快速前进。 您不会后悔的。

责任编辑:华轩 来源: 今日头条
相关推荐

2023-09-25 10:24:47

CIOIT团队

2017-11-02 15:04:15

2015-08-07 16:59:16

程序员习惯

2023-04-20 09:08:55

IT重组CIO

2012-08-30 09:44:27

2024-01-26 11:19:36

CIOIT领导者企业

2013-08-22 10:10:31

2019-12-24 19:42:50

JavaScriptJavaTypeScript

2022-06-09 09:27:16

前端行业生存

2020-02-28 10:51:17

编程代码开发

2015-05-15 09:56:26

程序员代码

2015-05-13 13:59:02

码农拒绝

2015-05-27 09:50:17

码农程序员

2021-10-25 22:48:53

手机电池中毒

2023-06-14 07:23:57

打印文档打印机

2020-03-10 17:50:21

编程技巧编程语言

2022-08-26 16:31:28

苹果iPhone14印度

2023-03-22 11:09:09

数字化转型ITCIO

2014-12-04 10:02:55

2021-08-02 08:21:53

Python编程语言开发
点赞
收藏

51CTO技术栈公众号