如何开始学习编程
我被问过几次关于如何开始编码以及如何通过自学来学习的问题。所以我决定写这篇文章,并基于我14年以上的编码经验。在其中,我将介绍:
我是如何开始的
我为什么要开始?
现在开始太晚了吗?
我应该从哪里开始?
我能做些什么来保持进步?
我能做些什么来保持动力?
我不会讨论如何找到软件工作,因为这超出了本文的范围。但希望这篇文章能让你对编码感到兴奋,并让你迈出学习终生技能的第一步。
我是如何开始的
许多年前,我通过将MicrosoftExcel文件与VBA宏组合在一起来学习如何编码,这些宏可以在电子表格中自动计算并更新单元格的颜色。我没有学位,也从未编码过。很多只是出于好奇:这是如何工作的,我如何将这些东西放在一起?这让我很感兴趣,因为我自学了使用Microsoft的Excel手册进行编码。当然,从那时起,我已经走了很长一段路,并且在大学里学习了正式的编程(计算机科学),但我掌握了很多编码知识——我的意思是很多!-来自作为产品工程师的工作编码。
编程很像玩乐高。我需要一个4x4件……我可以使用两个2x2件吗?把所有的积木放在一起后,你就有了你的乐高房子。编程显然比这更深入一些,但从本质上讲,您正在创建和重用代码块来帮助您构建一个(希望如此!)有用的系统。
我为什么要开始?
好问题!你不必。很多人没有,并且非常高兴不需要或不想编码。但你可能想为了好玩而学习它。或者你在大学学习时可能需要它。你可能想发展你的事业。你甚至可能想改变职业。以下是学习编码的一些好处:
如果您知道足够多的危险编码(例如数据分析师等),就会出现有趣的工作
当你真正擅长时,就会出现令人兴奋的工作(例如软件工程师、数据工程师等)
高薪可能是必然的结果。年,全栈工程师的全球平均工资为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的资源列表:
让您的第一个程序(“HelloWorld”)在您的浏览器中运行
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频道
要保持领先地位,您要做的是不断学习和尝试新事物。构建有趣的东西来内化你的学习并将它们应用到你的工作中。这里有一些具体的建议可以帮助你继续学习:
非常非常好地学习你的编程语言。这将帮助您以闪电般的速度编写代码,并使程序达到您想要的效果
阅读书籍(例如JavaScriptheGoodParts)、在线文档(例如MDN文档)以帮助您理解语言
当您对自己的编程语言感到满意时,请转向另一种语言(例如Python)。您会注意到每种语言都略有不同,并且用于不同的目的
好好学习你的网络框架。了解它的附加组件和库。您会注意到已经编写了很多好的代码,您不需要重新发明(每个)轮子
阅读文档(例如React.js文档)
了解生态系统中的附加组件和库(例如React.js生态系统)
加入聚会(例如React.js聚会),向其他人学习
参加课程并观看教程视频
在业余时间制作Web应用程序!
当您对编程和Web框架感到满意时,您可以考虑更多选择:
获得软件开发人员的工作。有时最好的学习方式就是在工作中!
去代码训练营。但是请注意那些声称可以做很多事情的训练营(最终为您提供出色的工作等)但实际上并没有
通过Udemy或TheOdinProject的课程在线学习JavaScript、Python和编程
在学术层面学习它——学习计算机科学或类似的。还有哈佛的CS50:计算机科学概论以及赫尔辛基大学的Mooc等课程
我该怎么做才能保持动力?
学习编码可能是一项艰巨的任务,并且可能会让人感到非常具有挑战性。就像任何其他技能一样,除了锻炼和磨练你的技能之外,没有简单的方法来学习编码。有时事情会变得有点艰难,但这里有一些技巧可以让你保持动力:
当你被卡住时:
与某人交谈。通常大声说出来会有所帮助(请参阅RubberDuckDebugging)
睡在上面。有很多次,当我醒来并知道前一天晚上遇到的问题的解决方案时
去博物馆或做一些不寻常的事情来摆脱路障。有时你会带着一个新想法回来
当你在自学时感到孤独时:
与某人交谈。那里有许多编码论坛(例如dev.to、Slack、Reddit等)
参加聚会,认识新朋友
当你感到泄气时:
尝试新的编程语言,学习新的框架
读一本书。知识并不总是需要来自实践
结论
有很多方法可以开始编码!我只触及了学科的表面。希望这篇文章可以帮助您了解可以从哪里开始,并迈出学习一项伟大技能的第一步。