我为什么要学习编程?学习编程的17个理由
如果你正在犹豫是否应该投入时间学习编程,或者你已经会编程,但感觉停滞不前或缺乏动力——那么这篇文章正适合你。为什么你应该学习编程?我总结了很多理由!这些理由都源于我作为软件工程师的经验以及与同行无数次的交流。希望这篇博文能帮助你做出正确的决定。
最初发布于我的博客Coders Bible上。
在您开始阅读之前,这里有一个简短的列表,其中包含本文的所有段落,每个段落都代表学习编程的一个理由:
- 获得有吸引力的薪水
- 在稳定的行业找到工作
- 体验不同的职业机会
- 简历上有宝贵的技能
- 从众多工作机会中选择
- 随时随地工作
- 享受优秀的工作文化
- 提高解决问题的能力
- 提高协作技能
- 注重实践
- 立即查看您的工作成果
- 构建一些很酷的东西
- 了解您周围的软件如何工作
- 表达你的创造力
- 拥有自由
- 遇见令人难以置信的社区
- 在线学习
获得优厚的薪水
这或许是最显而易见的。软件工程师的平均薪资远高于大多数其他职业。不过,我想告诉你具体高了多少。点击此链接,你可以找到许多顶级科技公司开发人员的薪酬。例如,在谷歌,随着经验和专业知识的积累,你会晋升,级别符号为 L3(二级软件工程师)、L4(三级软件工程师)、L5(高级软件工程师)等。点击网站上的图块,你会看到平均年薪(大部分都经过验证)。如果你想了解世界其他地区的情况,这里有一篇很棒的文章,其中包含了高薪国家的数据。如果你想进一步了解你的国家,我强烈推荐这份来自经济研究所的报告。
在稳定的行业找到工作
美国软件开发人员的失业率保持在惊人的1.6%(据《美国新闻与世界报道》的报道),在全球范围内也处于类似的低位。软件行业非常稳定,但请不要误会——由于技术发展迅速,你现在所学的技能在十年后可能用不上。不过,你可以肯定,大多数公司都会支持你学习新知识,因为他们知道,他们的业务成功取决于使用最新的工具。公司和初创公司来来去去,但只要你不断精进技能(大多数公司都乐意帮助你),即使你现在的工作岗位倒闭了,你也能很快找到新的工作机会。
体验不同的职业机会
当你掌握了编程能力后,你将有独特的机会为各个行业做出贡献,例如:银行业(参见:Revolut、N26、Monzo)、电子商务(参见:Wish、Etsy、Amazon)、约会(参见:Tinder、Badoo、OkCupid)、建筑业(参见:Archdesk、Procore、Buildertrend)、社交媒体(参见:Facebook、Instagram、Snapchat)、人工智能(参见:OpenAI、Boston Dynamics)、游戏(参见:使命召唤手游、巫师、糖果粉碎传奇)甚至性生活(参见 - 但前提是你年满 18 岁 ;) - Elvie Trainer、Lovense Remote)。这些都是软件,可以帮助数百万人!此外,你还可以有多种选择。你可以成为自由职业者、IT 项目经理、大公司的软件工程师,负责许多不同的项目,在小型初创公司维护一种产品的开发人员,团队负责人,或者干脆创办自己的公司。这可能是吸引我的最重要的事情。
在你的简历上写上有价值的技能
史蒂夫·乔布斯曾经说过:“这个国家的每个人都应该学习编程,因为它能教会你如何思考。” 我完全同意,但我还想补充一句:“……而且它会让你的简历看起来很棒。” 无论你决定从事软件工程专业,还是想找到一份略有不同的工作——向任何潜在雇主提及编程技能,都能展现你理解高级主题、理解抽象概念以及进行结构化和批判性思考的能力。
众多工作机会任您选择
微软最近的研究(您可以在这里找到)表明,未来5年全球将新增多达1.49亿个技术型就业岗位。软件开发占这一预测的绝大部分(9800万)。您自己看看吧!在家尝试一下这个小实验:访问您所在国家/地区提供职位的顶级网站之一,然后输入“软件开发人员”(最好使用您的语言)。将搜索范围限制在您的位置。您能找到多少个职位?我住在一个中等规模的城市,人口约80万。我的搜索结果是什么?该地区有300个职位空缺(截至2020年7月9日)!
随时随地工作
远程办公在软件行业已经存在多年。理论上,这种模式允许你在任何地方工作,只要有稳定的网络和一张可以放置笔记本电脑的桌子。对某些人来说,这是梦想,而对另一些人来说,则是噩梦。如果你属于后者,但仍想深入体验世界其他地方的生活,那么我有个好消息——你梦想的地方可能对程序员的需求很高。让我们使用Indeed招聘信息搜索引擎来查看一些我最推荐的地点:巴里(意大利)——45个职位,伦敦(英国)——5000个职位,旧金山湾区(美国,加利福尼亚州)——3300个职位,檀香山(美国,夏威夷)——35个职位(截至2020年7月9日)。
享受优秀的工作文化
和其他地方一样,在这里仍然有可能遇到糟糕的同事。没错——如果你运气不好,你可能会遭遇围攻或歧视,但在IT行业,这种情况发生的概率要小得多。而且,由于大量的工作机会和本地软件工程师之间迅速传播的谣言,你可以成功避开任何糟糕的工作场所(这与许多其他行业不同)。反馈会议、与经理和技术主管的一对一会谈、回顾会议——这些只是现代软件公司培育的一些标准流程,旨在帮助你与你保持持续联系,了解你的工作效率和工作中的总体幸福感。
提升你的解决问题能力
在学习编程之前,我在高中和大学期间曾解决过许多与数学、物理、力学或化学相关的问题。这些问题通常很复杂且具有挑战性,但大多数情况下,你都能从中提取出规律,或者找到适合你的考试答案。此外,这些问题过于理论化,脱离现实世界,很快就会让人感到无聊。最近我得出了一个结论:我如今能够打破思维定式、分解问题并以抽象的方式推理的能力,很大程度上要归功于我过去几年实施的软件项目。当然,像Stack Overflow这样的网站为开发者提供了现成的答案,但当你开始用 Java、Python 或其他编程语言解决问题时,那种愉悦的焦虑感,以及当你最终解决问题(仅借助谷歌的部分帮助)时脸上绽放的喜悦笑容,是我在之前的教育阶段从未体验过的。你真的感觉你的解决问题的能力正在提升!我只能将其比作坐在无限复杂的密室中,一次解决一个谜题,但永远不希望它们完成。
提高协作技能
看看Facebook、Instagram、亚马逊或任何其他你经常使用的软件。它们乍一看可能很简单(大多数情况下,这是开发者提供卓越用户体验的初衷),但如果你持续观察,就会发现其中的深度。这类在线平台的底层非常复杂,单个程序员需要很长时间才能完成,因此团队合作至关重要。与他人合作完成项目可以让你学到很多东西,主要是因为几乎总是存在需要解决的问题。然而,软件行业不会对你置之不理!许多现代公司都采用了巧妙的方法论(例如Scrum或看板),这些方法论促进了这种合作,并且多年来一直行之有效。如果你想学习如何与人合作,我相信IT世界是最酷的地方。
专注于实践
你不会找到很多理论型的程序员。我们的行动专注于提供一些其他人可以使用的东西,或者一些能帮助我们提高效率的东西。考虑到这一点,你能想到在申请第一份工作时,你能做的最重要的事情是什么来脱颖而出吗?展示你实现的真实软件项目!如果你正在寻找学习编程的课程,请务必选择那些提供一个或多个实践项目实施帮助的课程。
立即查看您的工作成果
我毕业于机械工程学院,在那里我学习了泵、齿轮、磨床、活塞……光是写这些就让我感到无聊。但课程枯燥乏味并不是我最大的问题。我学习了大量关于这些大型机器的理论,但每个月只有几个小时的时间去观察它们的实际运转(亲自尝试的时间就更少了)。我在土木工程学院的朋友也有类似的问题。他们希望最终看到他们精心计算和规划的实际结果,但由于这个行业的性质,他们无法实现。软件不是这样的:学习理论、实践、将其应用于代码、编译,然后 BOOM——你几乎立即就能在屏幕上看到输出。以如此快速的方式体验工作成果有助于保持动力,甚至会对自己亲手构建的东西感到惊讶。
打造一些酷炫的东西
在我的职业生涯中,我见过许多有趣(也有些古怪)的软件副项目。康威的“生命游戏”、瑞克和莫蒂 API以及8values 测验都是我最喜欢的。我甚至在我的工程论文中实现了一个:基于卷积神经网络的啤酒标签分类器(在拍摄啤酒标签照片后,机器学习算法成功识别了它)。你会构建什么?天空才是极限!
了解你周围的软件是如何工作的
不久前,我和一位设计师朋友进行了一次有趣的对话。他告诉我,当他走过街道时,他体验世界的方式是通过颜色、字体、形状、设计、标志、图标和图像。我认识的大多数软件工程师(包括我自己)也有类似的情况。他们无法像其他人一样看待网站或移动应用程序。他们通常知道大多数功能的工作原理,或者,如果他们不知道,他们就会尝试去弄清楚。你是否曾有过这样的感觉:某项技术运行得如此完美流畅,就像一个魔术?当你学习编程时,你就会知道这个魔术是如何实现的。
展现你的创造力
很多人不认为编程是一项创造性活动,但我并不这么认为。显而易见,得益于广泛可用的资源,你可以创造出一些不久前还只是你想象中的东西并将其发布到网上,但你每天为雇主工作又如何呢?这能算得上是创造性的吗?诚然,你接下来会接到的一些任务是重复性的(比如设置工具或修复错误)。但我相信,作为一名软件工程师,创造力对于编写精美的代码至关重要,这些代码不仅运行良好,而且对于初级和高级开发人员来说都易于理解和维护。为了实现这一点,你将解决与正确的软件设计直接相关的问题,而网上并没有针对你具体情况的现成答案——只有建议和灵感。这时,你的创造力和突破常规的思维方式将发挥最大的价值!
拥有自由
大多数软件公司允许你每周最多远程工作3天。在健康的组织中,管理者绝不会轻视休假。此外,工作时间总是灵活的,重点不是每天8小时无意识地坐在电脑前,而是要交付真正的成果。
遇见令人难以置信的社区
IT 社区无论线上线下都非常活跃且乐于助人。Stack Overflow是一个非常棒的网站,开发者们在这里帮助解决其他人遇到的常见问题。Medium是一个平台,许多才华横溢的工程师在这里分享他们的软件解决方案,或为最先进的工具撰写教程。更不用说还有各种各样的子版块、YouTube 视频、课程、论坛和 Facebook 群组。为了在现实生活中结识对同一种编程语言或技术感兴趣的人,我建议在Meetup上寻找活动。记住,建立人脉(结识业内新朋友)非常重要,因为它可以为你带来现在或未来的新工作机会。
在线学习
我见过由以下代码生成的许多行代码:
- 从未上过大学的人,
- 大学辍学生,
- 博士,
- 计算机科学毕业生,
- 非技术类毕业生,
- 顶尖大学的毕业生,
- 我甚至不知道有这些大学的毕业生,
- 成绩不好的学生,
- 成绩优异的学生。
我也和这些团体的许多代表进行了交流。其中一些人还是我的同事。你知道吗?根据我的经验,我可以自信地说,大学学位并不能很好地预测IT行业员工的成功。无论你是否选择上大学,我都有好消息要告诉你。网上有很多编程课程,你一定能找到适合自己的课程!最近,我还创建了一门课程!如果你想从零基础入门,最终拥有一个能够独立完成的复杂编程项目,请点击此处了解更多关于我的课程的信息。
感谢您的阅读
如果这篇博文说服了你开始学习编程,或者在你感到困惑时给了你动力,那么也许它也能帮助到其他有类似情况的人?如果你认识某个人,觉得他/她可以从中受益,请分享!
鏂囩珷鏉ユ簮锛�https://dev.to/matdziu/why-should-i-learn-to-code-17-reasons-to-learn-programming-4pcd