我被问过几次关于如何开始编程以及如何通过自学来学习的问题。所以我决定写这篇文章,并基于我 14 年以上的编程经验。在其中,我将介绍:
- 我是如何开始的
- 我们为什么要开始?
- 现在开始太晚了吗?
- 我应该从哪里开始?
- 我能做些什么来保持进步?
- 我能做些什么来保持动力?
我不会讨论如何找到软件工作,因为这超出了本文的范围。但希望这篇文章能让你对编程感到兴奋,并让你迈出学习终生技能的第一步。
我是如何开始的许多年前,我通过将 Microsoft Excel 文件与 VBA 宏组合在一起来学习如何编程,这些宏可以在电子表格中自动计算并更新单元格的颜色。我没有学位,也从未编程过。很多人只是出于好奇:这是如何工作的,我如何将这些东西放在一起?这让我很感兴趣,因为我自学了使用方法 Microsoft 的 Excel 手册进行编程。当然,从那时起,我已经走了很长一段路,并且在大学里学习了正式的编程(计算机科学),但我掌握了很多编程知识——我的意思是很多!- 来自作为产品工程师的工作编程。
编程很像玩乐高。我需要一个 4x4 件……我可以使用两个 2x2 好吗?把所有的积木放在一起后,你就有了你的乐高房子。编程显然比这更深入一些,但从本质上讲,您正在创建和重用代码块来帮助您构建一个(希望如此!)有用的系统。
❓我为什么要开始?好问题!你不必。很多人没有,并且非常高兴不需要或不想编程。但你可能想为了好玩而学习它。或者你在大学学习时可能需要它。你可能想发展你的事业。你甚至可能想改变职业。以下是学习编码的一些好处:
- 如果您知道足够多的危险编程(例如数据分析师等),就会出现有趣的工作
- 当你真正擅长时,就会出现令人兴奋的工作(例如软件工程师、数据工程师等)
- 高薪可能是必然的结果。2021 年,全栈工程师的全球平均工资为 5.6 万美元。在美国,同一职位的平均工资为 12 万美元 [ * ]。
- 这是一种可转移的技能,你可以把它带到不同的国家。大多数软件工作也是远程的
- 乐趣!编程可以成为推动者,并允许您创建有趣的项目。我喜欢制作东西,并且一直在进行项目。
有些人可能会问,现在开始是否为时已晚——我说当然不会!直到高中毕业,我才开始学习。在大学正式学习之前,我是自学的,几乎我所有的同学都已经有多年的编程经验。我被吓坏了,但凭借好奇心和坚韧,我想方设法跟上我的同学,并真正享受学习过程。我今天还在继续学习。以下是为时不晚的原因:
- 好奇心就是你所需要的。如果您真的有兴趣学习如何编写代码并且让您兴奋不已,那么现在开始永远不会太晚。
- 大多数人不知道如何编程。所以学习一些东西会让你很快领先。
- 工作比人多。每年都有很多创业公司诞生。最近的公司将专注于技术并招聘技术职位。现有的公司需要更多的技术人员来保持创新。作为一名软件工程师,每周让招聘人员与您联系几次并提供工作职位并不罕见。
- 您可以选择自己的利基市场。编程和编程中有很多领域。有很多利基市场没有很多开发人员,你可以成为其中之一。例如,您可以成为 Wordpress 开发人员或 Low-Code 开发人员
为了这篇博文,我们假设您正在构建一个 Web 应用程序或网站,并坚持使用最流行的语言(请参阅开发人员调查):JavaScript。我们所说的语言是指编程语言。在开发中,我们经常说前端开发来描述用户界面的编程,后端开发来描述服务器的编程。对于前端,我们将使用React.js——迄今为止最流行的前端 Web 框架——而对于后端,我们将使用Node运行时和一个名为Koa.js的后端框架. 简而言之,Node 是为您运行 JavaScript 的程序,因为编程语言不会自行运行。Koa.js 使用 JavaScript 编写的运行在 Node 上的服务器程序……我希望这是有道理的!
我们从哪里开始使用 JavaScript、React.js、Node 和 Koa.js?最好的方法——在我看来——就是尽快动手并开始编写代码。对我们来说幸运的是,有大量的资源可以帮助我们。在下面的资源中,您会发现也使用了 HTML/CSS。如果您不熟悉 HTML 和 CSS,请不要太担心,并尽可能多地按照教程进行操作。事不宜迟,以下是可以帮助您学习 JavaScript 和 Node 的资源列表:
让您的第一个程序(“Hello World”)在您的浏览器中运行
- javascript.info包含大量学习 JavaScript 的好材料
开始使用 React.js,这是一个 JavaScript “框架”或工具,可帮助您编写 Web 应用程序(即网站)
- React.js 是迄今为止最流行的 Web 框架
使用 Koa.js 编写你的第一个后端服务器程序
上面的教程将引导您了解前端(JavaScript、React)和后端开发(Node、Koa)的基础知识。为什么要做前后端开发?因为一旦您精通编写 JavaScript 和使用框架,您就可以创建一个与后端通信的前端。这是网络中最重要的(初学者)概念——客户端-服务器模型:
- 很简单,前端是客户端,后端是服务器
- 客户端通常是用户的浏览器。这是我们运行 JavaScript/React.js 程序的地方
- 服务器是后端。这是我们的 Node/Koa.js 程序运行的地方
当我们让前端与后端进行通信时,会发生很多事情:
- 客户端可以向服务器请求数据
- 服务器可以从数据库中获取一些东西并将其发送给客户端
- 等等
这一切的关键在于,一旦你开始学习一点 JavaScript、一点 React.js 和一点 Koa.js,你就会越来越多地了解 Web 的工作原理,这将成为一个跳板了解有关编程的更多信息!
我该怎么做才能不断进步?编程和软件开发是一项持续的学习活动。这不是您将在一节课堂课程中涵盖并完成的事情。软件从早期开始就发生了巨大的变化,并且在今天继续发展。
有大量的资源可以自学编程。然而,与所有其他事情一样,Reddit 是一个很好的起点:请参阅/r/programming 中的这篇文章。它列出:
- 很棒的网站和应用程序,您可以免费学习
- 游戏化学习资源
- 让您保持参与的 YouTube 频道
要保持领先地位,您要做的是不断学习和尝试新事物。构建有趣的东西来内化你的学习并将它们应用到你的工作中。这里有一些具体的建议可以帮助你继续学习:
非常非常好地学习你的编程语言。这将帮助您以闪电般的速度编写代码,并使程序达到您想要的效果
- 阅读书籍(例如JavaScript: The Good Parts)、在线文档(例如MDN 文档)以帮助您理解语言
- 当您对自己的编程语言感到满意时,请转向另一种语言(例如 Python)。您会注意到每种语言都略有不同,并且用于不同的目的
好好学习你的网络框架。了解它的附加组件和库。您会注意到已经编写了很多好的代码,您不需要重新发明(每个)轮子
- 阅读文档(例如React.js 文档)
- 了解生态系统中的附加组件和库(例如React.js 生态系统)
- 加入聚会(例如React.js 聚会),向其他人学习
- 参加课程并观看教程视频
- 在业余时间制作 Web 应用程序!
当您对编程和 Web 框架感到满意时,您可以考虑更多选择:
- 获得软件开发人员的工作。有时最好的学习方式就是在工作中!
- 去代码训练营。但是请注意那些声称可以做很多事情的训练营(最终为您提供出色的工作等)但实际上并没有
- 通过Udemy或The Odin Project 的课程在线学习 JavaScript、Python 和编程
- 在学术层面学习它——学习计算机科学或类似的。还有哈佛的CS50:计算机科学概论以及赫尔辛基大学的Mooc等课程
我该怎么做才能保持动力?
学习编程可能是一项艰巨的任务,并且可能会让人感到非常具有挑战性。就像任何其他技能一样,除了锻炼和磨练你的技能之外,没有简单的方法来学习编程。有时事情会变得有点艰难,但这里有一些技巧可以让你保持动力:
当你被卡住时:
- 与某人交谈。通常大声说出来会有所帮助(请参阅Rubber Duck Debugging)
- 睡在上面。有很多次,当我醒来并知道前一天晚上遇到的问题的解决方案时
- 去博物馆或做一些不寻常的事情来摆脱路障。有时你会带着一个新想法回来
当你在自学时感到孤独时:
- 与某人交谈。那里有许多编程论坛(例如dev.to、Slack、Reddit 等)
- 参加聚会,认识新朋友
当你感到泄气时:
- 尝试新的编程语言,学习新的框架
- 读一本书。知识并不总是需要来自实践
有很多方法可以开始编程!我只触及了学科的表面。希望这篇文章可以帮助您了解可以从哪里开始,并迈出学习一项伟大技能的第一步。
,