竹笋

首页 » 问答 » 环境 » 编程不努力,老大徒伤悲CSDN
TUhjnbcbe - 2023/8/5 20:28:00

面向编程,有人擅长且如鱼得水,有人感兴趣却不知从何入手,也有人徘徊于门口而举棋不定。在日新月异的高科技时代,编程是未来发展的主流趋势之一,那么,除了敲代码技能之外,它还需要具备哪些技能?一个人又该如何判断自身是否真的能够胜任这份高并发、高性能、高可用的高薪工作?或许本文能给你一些启发。

作者

JonathanBluks

译者

弯月,责编

屠敏

以下为译文:

我经常在Reddit或Quora上看到有人提问:“如何才能知道我会成为一名成功的程序员?”当人们在考虑职业转型,或者对软件开发感兴趣时,提出这个有关编程的问题也再所难免。

实际上,我认为在没有经过任何有关计算机的正式培训的情况下,入门编程行业最大的阻碍就是怀疑自己能否成为成功的程序员。我们很自然地认为,如果自己不擅长编程,那么就不愿意迈出第一步。就好像你想成为演员,想知道自己是否擅长表演。

作为一名教授Web全栈开发的讲师,我曾教过许多初学者。好消息是,我很少遇到学不会编程的学生。

我认为编程是人类的一项基本技能,就像阅读、写作和数学一样。任何人都能学会,这是我们人类能力的一部分,但确实需要学习。

在过去的两年教学中,我目睹了很多学生在学习编程的过程中遇到了很多困难,其中许多困难都是共通的。仔细阅读本文列举的十大迹象,如果你发现自己遇到了这些问题,那就表明你确实不擅长编程,也许你应该将时间投入到其他领域。但是,如果你的目标仍然是坚持成为开发人员,那么请坦然面对这些问题,并慢慢改正。

下述迹象可以帮助你了解自己是否不擅长编程,以及如果你想做出改变,应该做些什么。

缺乏好奇心

如果你对计算机以及技术原理缺乏好奇心,那么永远也无法成为一名成功的程序员。

学习的基本要求就是对所学事物感兴趣。如果你对技术并不好奇,那么就没有动力坚持学习,掌握成为一名成功的程序员所需的广泛而深入的知识。

如果你感觉自己如鱼得水在技术的海洋里畅游,感觉这个世界里充满了乐趣、相互联系的思想以及激发想象力的可能性。发现所有的一切需要的是内在的动力驱使。

找到自己的好奇心:问问自己是否对编程感兴趣。如果你的真实答案是“否”,那么请寻求其他你感兴趣的事物。但是,如果你的回答是“是”,那么就请开始寻找从未见过的新事物,认识这片广阔的海洋,然后再不断深入。

缺乏自主性和资源

如果你不培养解决问题的能力,那么永远也无法成为一名成功的程序员。

毫无疑问,如果想成为一名成功的开发人员,你必须对自己的自学能力充满信心。这实际上是一项基本的生活技能,如果你已年满18,那么任何人都没有义务再教你任何东西。这就是现实。你需要自己动手寻求对你来说很重要的信息并学习。

在开发的世界里,你所需的所有信息都可以在一个神奇的地方找到,这个地方以前被称为信息超级高速公路。这个庞大的图书馆有一个巨大的门户:搜索引擎。当你想学习科技方面的技能时,首先要学会如何通过网络搜索所需的信息。

除此之外,所有编程语言都拥有详细的文档和规范解说语言本身的工作原理。就像使用字典一样,遇到不认识的单词就要查字典。最快、最可靠的培养程序员技术力的方法就是阅读文档。文档里什么都有。

利用资源:认识到所有的答案都可以通过互联网找到。如果你有任何疑问,在向其他人询问答案之前,务必先尝试自己搜索并查看文档。如果你的尝试失败了,而且未能找到所需的答案时,向他人求助可以节省时间。

面对问题时缺乏毅力

如果你在遇到问题时轻易放弃,那么永远也无法成为一名成功的程序员。

编程的本质是解决问题。发明计算机的根本原因也在于此!无论何时开始从事编程的工作,都会遇到一系列的问题。在解决完这个问题之后,还会遇到另一个问题。你在不断地进步,但是新的问题会源源不断地涌现。

在面对一堆问题时,我们可能会有点泄气和沮丧。如果你觉得每样事物都应该“正常运转”,那么当问题没完没了地涌现时,你就会失去坚持下去的勇气,而你的决心也会一点一点地被瓦解。你的工作正是搞清楚为什么有些地方不能正常工作。

从我上课的经历来看,每个班级通常都有1-2名学生似乎会遇到更多的问题,而且通常都是随机而且难以理解的问题。我会告诉学生们,他们遇到的问题越多,就越有可能更加深入和透彻地学习。如果他们能够通过这些问题学习到知识,那么很快就会发现他们比普通的学生更有信心,因为他们遇到并解决了更多的问题。

耐心接受:你需要认识到,你遇到的每一个问题都不是问题,而是挑战。每次遇到问题并克服困难都可以加深你的理解,同时还可以培养应对新挑战的能力,并加速解决旧问题。

解决难题后没有成就感

如果你在解决问题后没有感觉到兴奋,没有成就感,那么永远也无法成为一名成功的程序员。

与前一个“太容易放弃”相关的问题是,在成功解决问题后,缺乏“成就感”。当你感觉修复错误和解决问题就好像一场永无止境的磨难,那么就无法感受到解决问题所带来的兴奋感。

每当问题得到解决时,你的多巴胺就会飚升。就好像某个游戏通关,或解决某个填词游戏或数独游戏。我们都知道,通过坚持不懈的努力解决难题并最终赢得胜利的感觉非常好。但是,如果你失去感受这些感觉的能力,或者一开始就不怎么关心,那么就无法体验编程带来的快乐。如果你将编程视为一种磨砺,而你只想尽可能轻松地获得结果,那么永远也无法成为一名成功的程序员。

庆祝胜利:每当你解决某个问题时,无论问题多么小,都应该为自己的成就而感到自豪,休息一下,祝贺自己出色地完成了工作。深深地感受成功的喜悦,并为迎接下一个问题而充满动力。

对学习没有耐心

如果你对学习没有耐心,而且希望快速而轻松地掌握所有内容,那么永远也无法成为一名成功的程序员。

作为人类,我们是能力非常有限的生物。即使世界发展的脚步越来越快,而且计算机是推动世界发展的主要因素,但我们只能尽最大努力加快步伐。我们的大脑的运转速度很有限,而且还会受到过去的经历、信念、情感状态、健康状况等各种因素的影响。我们学习和整合信息的速度也不同。

技术的世界就像一片广阔的海洋。你永远也走不到尽头,而且永远也无法成为无所不能的大师。如果你感觉不堪重负,那么就总会感觉到拼命追赶的压力,而且总感觉自己掌握的知识永远不够。如果你无法接受自己掌握的知识很有限,并努力学习更多知识,那么就会觉得自己无所适从,并最终放弃。

你应该学会享受学习的过程。为自己掌握的每一点知识或新技能感到兴奋。就像解决问题一样,你应该为自己感到自豪,并认识到自己向前迈出了一步,即使是很小的这一步。

认可自己的进步:需要学习的东西很多,编程之旅没有尽头。但是知识是一点一滴累积起来的,所以你应该为自己掌握的知识感到自豪,并相信自己在学习中所做的一切努力都会成为职业生涯坚实的基础。

不愿思考

如果你不愿思考,并认为集中注意力专心做事是件苦差事,那么永远也无法成为一名成功的程序员。

编程是一种思维活动。作为人类,我们善于思考,但现实是,即使我们无时无刻不在思考,但我们的思维却很懒惰。长时间集中精力解决某个问题是一件很难的事情,所以需要养成习惯。

下列症状表明你并没有积极地思考:茫然地盯着屏幕,思绪四处飘荡,一直在一个问题上纠结,来回在浏览器选项卡之间切换,拼命在StackOverflow上寻找“答案”。这些迹象表明你的思维遇到了阻碍,你需要找到解决方法。

在编程的时候,你会感到疲倦,思考会消耗身体的能量,就像锻炼身体一样。如果你不习惯运用精神能量,则很难集中精力。但这就像去健身房一样,锻炼得越多就越强壮。

思维就像一块肌肉:坚信你的大脑就像一块肌肉,只要不断练习我们的思维就可以更强壮,更有效。当你将各个线索放到一起并在脑海中拼凑出整体的概念,解决方案就会越来越简单。

无法独立思考

如果你希望别人为你思考,又不愿考虑自身的情况,那么永远也无法成为一名成功的程序员。

每当学习新事物时,你往往会感觉到自己缺乏知识和经验,因此无法形成自己的观点。采取主动或做/说错事似乎有风险。

我们的内心很害怕犯错误。当对错误的恐惧限制了探索欲望和好奇心时,你学习知识的能力就会被扼杀,无法从经验和失败中吸取教训。当你对“专家”的意见、流行的博客、最佳实践或“教科书”的答案形成依赖时,那么这些编程的知识就不会成为你自己的能力。

你需要针对哪些有效,而哪些无效提出自己的看法。你需要理解为什么你觉得你的解决方案有效,以及有什么好处。你需要从细微的视角观察问题,而不仅仅着眼于显而易见的问题。你需要为自己的立场辩护,并在立场发生变化时,建立自己的新观点。

独自思考:通过经验和批判性思维技巧,建立自己的观点。做出合理的猜测,站定自己的立场,并愿意随着新信息的出现而改变自己的观点。

僵硬、狭隘和混乱的思维

如果你的思维僵化,而且很难保持代码井井有条——即通过扩展思路保持思维有条理且专注,那么永远也无法成为一名成功的程序员。

我经常看到两个极端的学生。第一种是思维僵化狭隘。持有这种态度的学生拒绝别人帮忙,而且无视反馈,不改变自己的态度。仅从一个角度看待事物,忽略所有的建议。

第二种极端是思维混乱。这类的学生经常把事情搞得不必要的复杂,他们的代码混乱且难以阅读。他们过度思考问题,即便10行代码就够了,他们也会写够行。

当这两种思维方式结合在一起时,就会得出一种笨拙的编程方法,例如蛮力方法会导致层层修复和各种奇技淫巧。他们需要做的是回到解决方案,重新评估解决方案,放弃最初的方法,并重新组织。

看不到其他可能性或不愿接收反馈会抑制自身的成长和提升。思维混乱会拖慢前进的脚步,让你一叶障目看不到原本显而易见的模式。最终只会导致工作的整体质量下降。

自我反思:你需要退一步,从大局着眼思考问题。如何才能更好地完成工作?如何才能减轻自己的负担?是否遗漏了能够帮助到自己的人或事物?

一味寻找“正确”答案,看不到一系列“好”和“坏”答案

如果你认为编程的最终目标是寻找唯一正确的解决方案,而不是一系列解决方案,那么永远也无法成为一名成功的程序员。

在刚开始学习技术或编程的时候,学生们经常纠结自己的做法是否“正确”。而答案往往是“取决于具体情况”。

计算机科学是权衡利弊的科学。在不同的情况下哪条路更好,完全取决于环境和目标。如果你认为编程只有正确答案与错误答案,那么你就会一叶障目不见森林,放弃自己的创造力。任何答案都可能是“正确”的,只要你把它放到特定的情况下。

实际情况是,编程更像是写诗或短篇小说(如果程序很大,则可能是长篇小说)。透过你的代码可以看到一种美感和优雅,尽管有时只有你和其他程序员才能看到。你决定解决方案的原因以及发现答案的方法远比“对还是错”更为重要。通过艺术家的思想选择和尝试,而不是仅仅思考一种方法。这就是编程之美,解决问题的方法可以有很多种,只有认真思考各种可能性才能发现最适合的解决方案。

发挥创意:你必须明白解决问题的方法可以有很多种,你可以通过自己的经验和实践,锻炼判断哪种解决方案更好的能力。放眼大局,想象不同的可能性,并相信自己的直觉会带来更令人满意的、更好的解决方案。

不注意细节

如果你掩饰细节,忽略小事情,那么永远也无法成为一名成功的程序员。

计算机是精密仪器。在计算机上编程时,你需要按照计算机期望的方式精确地提供必要的命令。如果做不到这一点,就无法进行任何操作。在大多数情况下,没有“差不多能行”的中间地带,只有“行”或者“不行”。

这意味着在编程时,你必须注意细节。每个空格、括号和分号都很重要。如果使用不当,就会引发问题。当计算机返回错误消息时,你必须认真查看消息,并弄明白消息说明了什么问题。在实际工作中,如果你错过了这样的细节,那么就有可能需要花费数小时来查找拼写错误等导致的问题。

常言道,细节决定成败。在编程领域,此言非虚。

注意细节:细节很重要,你必须意识到这一点。在写完一段代码后,你应该仔细检查,确保没有意外。你可以通过组织方法和工具帮助你快速发现问题。

补充:商业头脑

这是我注意到的一个小问题,有些学生特别有商业头脑,他们往往更加

1
查看完整版本: 编程不努力,老大徒伤悲CSDN