代码基础:免费的初学者教程

哈Ha! 我们Hexlet于今年推出了一个面向初学者的开放免费项目: code-basics.ru 。 这些是针对从未编程的人的交互式实践课程。 我们教授编程的基础知识,并讨论计算机的基本设计。


现在,将提供完整的PHP课程和第一个JavaScript模块。 在球拍和Python的路上。 平台的整个源代码和课程本身都是开源的。


今天,我想简单介绍一下Code Basics的本质,它的内部结构和技术堆栈。



到底为什么


主要问题是:“为什么您需要定期的基础课程,其中一百万门?” 不幸的是,大多数可用的材料更像是指南或常规教程,其风格为“这样做,在这里看看,它有用,很酷,对吗?”。


在编写有关Hexlet的主要培训计划的过程中,我们遇到了一个问题:如果一个人从头开始完全,完全从头开始,不知道变量和函数是什么,那么典型的基础课程或教程不仅会帮助他,甚至会伤害他。 初学者将很容易习惯于“魔术”,而不是最佳的编码标准,而不是理解细节而不是记忆系统。


乍一看,该项目可能类似于Codecademy,但存在三个重要区别:


1.俄语课程。 我们从PHP开始,出于这个原因-没有高质量,交互式和免费的俄语课程,并且该语言在业界中仍然很流行并且很重要。


2.我们不是肤浅的教学。 这是一个永恒的难题-一方面,您需要涵盖广度(和“流行词”)方面的很多事情和兴趣,另一方面,我们在Hakeslet继续遵循我们的基础和对系统而非功能的重要性的原则。 通过示例更容易理解:


a)我们考虑副作用和可变性-这是非常重要的,但是在基础课程中几乎没有人涉及这些主题。


b)关于字符串,谈论编码的概念很重要。 使用符号并不会变成“魔术字”。


c)当很明显该语言允许您执行诸如1 + '7'类的奇怪操作时,重要的是向学生介绍打字,尤其是弱打字


d)当通过基础并且几个不同的部分同时出现在同一行代码上时,非常重要的一点是,该人员应立即了解该表达式是什么以及它与指令的不同之处。 以及如何在定义中包含表达式。


e)开始使用函数时,继续考虑表达式非常有用,但是已经在调用,返回和参数的上下文中考虑了。


我想你明白了。 我们程序员对foo(a+b)return foo(x)并没有太多的考虑,但是对于初学者来说,这样的构造通常比标准foo(a)return x复杂得多。 在这里,您可以仔细研究所有个案,但是最好解释一下编程语言基本规则的实质和系统。


内容是颗粒状并按顺序送达,逐渐增加深度。 例如,将相同的函数和表达式分成几节课,在此我们考虑各个方面,并将它们逐步组合成一个整体。


3.免费和互动。 我们之所以制定Code-Basics,还因为没有地方可以派遣初学者来准备我们的主要程序“ PHP开发人员的职业”。 根本没有免费的在线课程! 更确切地说,现在有:)



其他重要功能:


  • 我们教您正确命名函数并遵循编码标准。
  • 我们分享我们的经验和最佳实践。
  • 在每个练习中,都有老师的决定,可以在独立决定或尝试半小时后使用:)同时,您的决定可以与一页上的老师的决定进行比较。
  • 每个课程都可以与其他学生讨论。 我们尝试清除“破坏者”的讨论
  • 围绕“权力的游戏”构建任务:)(例如,请参见上面的屏幕)

授权,到目前为止,您只能通过Github访问练习并保存课程进度。 我们借此机会激发新来者尽快在Github上创建帐户:)


引擎盖下


Hakeslet写在Rails上。 我们在三年前(哦,三年!)写了有关Hakeslet内部的文章,此后,情况发生了很大的变化,但从根本上说都是一样的:Rails,PostgreSQL,一切都在AWS上,部分在Azure上,积极使用docker,通过Ansible进行部署和编排。 在每个用户的每次练习下,都会出现一个容器,它使您可以进行几乎任何复杂的练习:使用框架,服务器和Web访问。


最初,Code-Basics决定尝试一些比Rails更新颖,更轻量的东西。 例如,nodejs +打字稿+一些微框架。 但是,最好的表达能力不低于Rails。 鉴于我们对Erlang的热爱, Phoenix的选择自然就落在了Phoenix上 ,尤其是因为痒痒的手早已被划伤尝试Elixir。


该框架意外地感到惊讶。 尽管功能数量明显减少,但制作得非常好。 与JavaScript集成,开发的测试基础结构,出色的ORM(但不寻常,您需要习惯它),许多铁路产品(例如,对slim或gon的支持)。


甚至有一件事情比其他框架做得更好:为特定路由或一组路由创建一组中间件。 即使您不使用凤凰,我们也建议您熟悉管道


考虑到参与者的存在(以及Phoenix中的预制渠道),我们可以肯定地说,Elixir在几乎所有情况下都比Node JS表现更好。 在其他条件相同的情况下,我们将选择凤凰城进行发展。



在最前面-我们使用React + Redux。 布局是建立在Bootstrap 4上的,就像我们所有的站点(hexlet.io,guides.hexlet.io)一样。 交互式练习的编辑器使用Monaco ,它是VS Code的基础。 我们还切换到了Hexlet本身的摩纳哥。


基础架构和部署是Terraform,Ansible和最流行团队的许多捷径。 可以在Github上找到Code Basics源,并且我们接受请求请求。


教训和实践练习本身也是如此 。 其中包括我们接受要求将课程翻译成英语的请求。 到目前为止, 这里仅提供少量的英语课程。


谁应该使用代码基础


  • 零经验的初学者。
  • 初学者,他们“游说”一些基本主题,并且不完全理解教科书中简单示例以外的工作原理。
  • 与初学者一起工作的老师。

计划


以下代码基础课程是JavaScript,Racket和Python。 现在在PHP中有63课,不久将发布更多课程:关于库函数,使用日期和时间以及unicode。 JavaScript具有第一个模块,大部分内容与PHP类似:从算术到函数的所有内容。


进一步的计划包括翻译成英文。 您可以为此提供帮助:)所有这些Code Basics课程也将完全免费。


我们很乐意在评论中回答您的问题。 谢谢你

Source: https://habr.com/ru/post/zh-CN415301/


All Articles