成为后端开发人员的7个步骤

您可以通过以下三种方法学习编码:上大学,参加新手训练或自学。 该博客将探讨第三个选择:自学。 它实际上只是一个有组织的链接列表,向您显示确切的学习内容以及通常以什么顺序进行学习。 我希望我开始时有此列表。

关于编程的困难之一是要学习的信息太多,很难知道从哪里开始。 我将本指南设计得尽可能具体,以便为您提供基础,您可以以此为基础并探索其他领域或专业。

每个部分都会有一个“动作项”,以确保您不仅在阅读和观看内容,而且将其付诸实践。

我希望我在学习时有这个轮廓! 这样可以节省我很多时间和精力!

开始编程! 选择Python或Ruby开始。 这些都是简单易上手的。 Python和Ruby是动态类型化的语言 ,这基本上意味着它们在您第一次启动时(相对于Java或C),将更易于读写。

您应该选择哪一个? 向一些朋友询问他们认识的一个,然后选择他们认识的一个。 这样,您将拥有可以帮助您更快学习的资源。 如果您有一个人,可以问到什么问题,这会加速您的学习时间。 另外,不要两者都选。 只是从一个开始并掌握它。

如果您不认识任何人,请选择Python。 它在大学中更受欢迎和使用更多。

稍后,我将讨论关于学习静态类型语言的部分 。 有什么不同? 这是一篇3分钟的文章,可以帮助您理解。 但是目前,仅关注Python或Ruby。

当您第一次学习如何编程时,有很多东西要学习。 让我分为三个部分。 通过这种学习方式,您可以看到所学内容的底层结构。

  1. 首先,学习语法。 跨语言这是不同的。 例如:

my_var = 123 —红宝石

var myVar = 123; — JavaScript

var myVar int = 123 —转到

myVar = 123 — Python

int myVar = 123; – C

这些基本上都做相同的事情,但是完成相同事情的语法略有不同。 开始学习语法(下面是指向Python和Ruby教程的链接)。

  1. 其次,学习数据类型。 在编程时,每个值都有与之关联的类型。 因此,将123 vs "123" vs [123] 。 这些看起来都很相似,但是数据的存储和使用方式不同。
    让我们将它们加在一起
    123 + 123 = 246 (整数),
    "123" + "123" = "123123" (字符串/字符)和
    [123] + [123] = [123, 123] (数组/数组[int])。
    处理数据时,类型在如何使用该类型的数据方面有很大的不同。 各种类型具有各种优势,或多或少适合于不同情况。 在此处检查Python数据类型,在此处检查R​​uby数据类型。
  2. 第三,学习算法。 算法基本上是您对数据执行的操作顺序。 该顺序是通过编写和调用函数建立的。 有完整的课程将教您算法的核心。

当您开始学习第一门编程语言时,请记住确定使用的语法,数据类型和算法。

您将要下载Sublime3。 Sublime3是一个基本的IDE(集成开发环境),它仅仅是一个用于编写代码的精美文本编辑器。 开始在IDE中编写代码。

学习Ruby。

  1. 使用Ruby版本管理器(RVM)下载Ruby。 (您可能需要阅读“学习命令行”以帮助解决此问题。)
  2. 在这里学习Ruby,然后使用这个免费的.pdf“艰难学习Ruby”,然后跳转到HackerRank并开始解决一些问题。
  3. 购买本书“ Ruby中的实用面向对象设计”,并逐步学习。

学习Python。

  1. 下载Python。
  2. 在W3Schools的此处学习Python,然后使用此免费的.pdf“以困难的方式学习Python”,然后跳转到HackerRand并开始解决一些问题。
  3. 购买本书“ Python 3面向对象程序设计”并逐步学习。

如果您想两者都学习,那就太好了,但是不要同时做。 从头开始,直到完成。 一旦您对语言的基础感到满意,就去看看MIT OpenCourseWare,它有一个很棒的免费算法系列(也如上所述),您应该开始观看,这将花费几周的时间。 他们对数据结构和算法的了解比以上任何来源都深入。

动作物品— HackerRank

用您选择的语言在HackerRank上至少做20个问题。 确保您了解每一行代码的功能。

大多数人与计算机的第一次交互是通过图形用户界面(GUI)。 您一整天都在使用GUI,鼠标和键盘-它是站立式计算机屏幕。

还有另一种与计算机进行交互的方法,可以打开文件,创建文件夹(也称为目录),从网页获取数据,打开应用程序等。另一种工具称为命令行 。 阅读本文,然后观看此视频以获取Windows版本(或此处为Mac版本)。

命令行

您将需要阅读和研究命令行,并阅读本书。

接下来,需要安装git。 Git是一种跟踪您对文件和文件夹所做更改的工具。 每个科技公司都使用Git或类似的工具。 然后转到GitHub并创建一个帐户。 Github是一个可以存储使用Git跟踪的代码的地方。 Codecademy在这里有一个关于git的在线教程。 这里有一个很棒的网站,其中包含手册,教程和可视化效果,因此您可以学习git。 Github在这里也有很棒的向导。

动作项目-第一回购

三项:

首先,采用您在HackerRank上编写的代码,然后将其编写在您自己的计算机上。 使用git跟踪更改。 然后将您的新存储库推送到您的Github页面。 您可以使用它来显示您将为自己的技能工作的潜在公司。

其次,在Github上找到一个仓库,并将其下载到本地计算机。

第三,使用命令行一周来导航到要运行的程序,要打开的文件和要搜索的目录。

并非所有程序员都是计算机科学家。 许多从事开发工作的人不了解其背后的历史。 他们没有意识到创建计算机需要多少数学,逻辑和电气工程。

观看CrashCourse的整个系列文章,您将快速而有趣地介绍计算机科学。 您也许可以将其加快1.25倍。

接下来,您需要了解互联网的工作原理。 一个不错的起点是观看有关互联网历史的视频 只需在YouTube上搜索并观看一些有关它的视频即可。 接下来,您需要详细信息。 这是一个开始在概念层次上开始学习网络工作方式的好地方。 该系列中将有一些视频。

您将要开始研究Web请求的工作原理,有关HTTP的详细信息(查看链接的视频并开始阅读)。 阅读有关HTTPS的文章。 您还将想要开始了解什么是URL(从编码的角度来看)。 您将要学习curl命令的工作方式。 在这里可以了解有关卷曲的详细信息。

由于您正在学习Web请求,因此请确保使用Google的开发工具来调试和检查您使用的一些网站上的网络请求。 您可以开始查看页面的每个部分如何来自对服务器的请求。

这些链接是从何处开始的基本信息,而不是完整的列表。 在线上还有很多其他有用的资源。

动作项目-绘制您的思维模式

对您阅读的每个视频系列和博客进行记录。 然后总结并画出您学完视频后学到的知识。 您应该借鉴所学知识的原因是因为它证明您对正在发生的事情具有正确或不正确的思维模型。 心理模型(以1.5倍的速度观看)非常有用,可以告诉您您还是别人对发生的事情有很好的了解。

数据库是用于存储和检索数据的应用程序。

您浏览“存储”和“检索”的这两个词隐藏了整个生命。 例如:

您如何存储大量数据?

您如何确保数据正确?

您如何快速找到特定的数据?

所有这些问题以及更多其他问题都将与数据库一起使用。

如果您在后端工作,则必须使用数据库。 因此,您需要了解它们。 包括三个部分:

  1. 安装Postgresql。 这只是众多之一。 您可以在此处了解其他类型。 Postgresql非常强大,并在许多现代科技初创企业中使用。 这是一个很好的起点。
  2. 通过本教程和本教程,学习如何编写结构化查询语言(SQL)
  3. 下载SequelPro。 这个应用程序比只使用命令行要容易一些。 您将能够看到数据库,表,行和查询。

行动项目-数据库基础

获取在本地运行的数据库。 创建一个数据库,一个用户和一个表。 为表编写5个迁移。 在数据库上执行以下5个操作:创建行,更新行,查找行,根据查询找到一组行,根据查询删除一行并删除一组行。

额外信用

如果您感到野心勃勃。 编写一个程序,将.csv文件作为输入,然后使用Python或Ruby将其写入数据库。

最好将Python和Ruby作为您的第一门编程语言,因为它们很容易上手,您还有很多东西要学习(命令行,数据结构,算法,运行和编译等)。 现在,您已经花了几周/几个月的时间来学习如何学习静态类型的语言

在线搜索最流行的编程语言,并阅读一些文章。 这可以帮助您决定下一步应该使用哪种编程语言。

参加有关最流行语言之一的教程。 此处提供了一些常用链接和教程的链接:Java,C ++,C或Go。

然后转到HackerRank并开始使用您选择的语言解决问题。

您要学习第二种静态类型的语言的原因是,它们通常比简单的版本更快,更强大。 它们还要求您更多地了解正在编写的代码,因为您必须非常具体地了解所键入的函数,参数和变量。

动作项目— HackerRank和比较语言

从上面的列表中选择一种静态类型的编程语言。 完成至少20个HackerRank问题。 选择上面解决的10个相同问题,然后将静态类型代码与动态类型解决方案进行比较。

附加:因为您现在对互联网,数据库,数据类型等有了更多的了解,所以使用该编程语言来构建简单的CRUD api。

库是可以下载并在程序中使用的代码。 它们通常是几乎每个程序都可以使用的通用代码。 因此,不必像一遍又一遍地编写代码来解决某些问题,开发人员(如您)将创建库,这样您就不必在每个项目中都“重新创建轮子”。 人们称它们为“包装”,“宝石”,“模块”等。

可以帮助您编程的一件事是

  1. 阅读文档。
  2. 编写一个实现该工具的小程序。
  3. 阅读该库的实际源代码。 在这里,您可以将代码提高到一个新的水平。 您将看到事情如何进行以及专家如何编写和组织代码。

提示:如果您习惯于阅读和理解源代码,那么您将成为专家级开发人员。

动作项—阅读源代码

在线搜索以找到一些常用的库,这些库是您选择的第二种语言。 找到3个图书馆。 编写一个使用每个程序的程序。 然后花一周时间阅读源代码,以便您开始了解代码的工作原理。

有一本非常惊人的书,叫做《清洁代码》。 这本书将教您如何编写井井有条的代码。 人们没有意识到的一件事是,大多数编程实际上是在阅读和寻找要阅读和理解的正确的东西。 但是,大多数开发人员开始写作,他们没有以井井有条,一致,简单,整洁的方式进行写作。 这本书将帮助您开始考虑编写简洁代码。

诚然,您可能不需要立即阅读本手册。 但是,在6mo-1.5年后,或者如果您决定从事编码行业,请确保花一些时间阅读并内化。

在计算机科学中有一种说法是:“简单性倾向于规则性。”这意味着简单的事物更加规则或一致,而一致/规则的事物则更加简单。 如果您可以以更简单,清晰的方式编写代码。 您会受益匪浅。

行动项目-了解干净代码的价值

立即购买书或将其添加到您的愿望清单。 如果您现在不阅读,请确保在所有项目上使用Linter! ESLint(Javascript),Rubocop(Ruby),golang / lint(Go)等。

转到Meetup.com并创建一个帐户。 您将可以使用此网站找到喜欢编码的书呆子人群! 搜索您附近的Javascript,前端或网络开发聚会,然后开始参加。 您将能够结识新朋友,了解更多信息并与正在招聘的公司建立联系。 也许有一天您可以在Weave和我一起工作-这是一个了不起的地方!

动作项目-找到工作,加薪

去申请实习或初级职位。 确保参考您已经构建并推送到Github的内容,以便他们可以看到您的实际代码。 如果您没有找到工作,请确保询问他们是什么导致他们说“不”,那么您将知道应该关注哪些弱点!

祝好运! 我希望这是新职业的良好起点! 希望您找到自己喜欢的东西,并创造出一些真正令人惊奇的东西。 如果您在奋斗中感到兴奋并最终使事情开始工作,您就会知道自己是程序员的内心!

最终行动项目-不要停止!

设定每天x小时和每周X天的代码! 保持一年的时间,然后您就可以成为专业人士。 不要忘记与其他专家和同行合作以获取有关您的代码的反馈!