Яндекс Практикум запустил бесплатный курс «Основы Go». Это курс для тех, кто хочет оценить Go и у кого есть опыт в программировании на других языках. 

Курс поможет освоить базу Go, научиться писать простые тесты, портировать код с другого языка, править мелкие баги. Учёба займёт примерно 30 часов.

Почему мы сделали этот курс

Одна из наших целей — способствовать тому, чтобы больше программистов писали на Go, внести свой вклад в развитие Go-сообщества в России и за её пределами. Поэтому мы сделали курс бесплатным — чтобы больше разработчиков оценили Go и начали писать на нём свои проекты. 

Кому курс будет полезен

  1. Бэкенд-разработчикам. Освоите Go в дополнение к С-подобным языкам и сможете использовать его в своих задачах.

  2. Фронтенд-разработчикам. Изучите основы Go, чтобы писать бэкенд и развиваться в этой области.

  3. Тем, кто знаком с основами бэкенд-разработки. Познакомитесь с Go, чтобы потом освоить профессию самостоятельно или на курсе для Go-разработчиков.

Чему вы научитесь на курсе

Программа объединена в три двухнедельных спринта. Если заниматься по 5 часов в неделю и изучать по одному уроку в день, можно пройти программу за полтора месяца или быстрее, в зависимости от вашего упорства и подготовки.

За это время вы научитесь:

  1. Читать код на языке Go.

  2. Писать простые SQL-запросы к базам данных.

  3. Проверять работоспособность кода при помощи юнит-тестов и бенчмарков.

  4. Переводить код на Go с другого языка программирования.

  5. Исправлять мелкие ошибки под руководством тимлида.

Как проходит обучение

  • Во время обучения мы проводим аналогии с другими компилируемыми языками и делаем отсылки к языку C, поскольку сам Go является C-подобным. После завершения бесплатной программы можно углубиться в профессию Go-разработчика на платных курсах Практикума.

  • Теоретическая часть разбита на три блока и представлена в виде интерактивного учебника. На курсе нет записанных видеолекций, есть уроки в текстовом формате.

Пример из интерактивного учебника
Пример из интерактивного учебника
  • На курсе нет тренажёра. Практические работы вы выполняете в своей IDE. 

  • Студенты на этом курсе учатся самостоятельно в свободном режиме, без дедлайнов и сдачи проектов. Вы можете начать учиться в любой момент: учёба асинхронная, проходит индивидуально и не привязана к дате старта потока.

  • При этом на курсе есть пространство для общения студентов — это Telegram-чат. Там вы можете задавать вопросы по теории и помогать другим студентам.

  • На курсе не предусмотрено сопровождение. Вы сможете получить помощь, оставив заявку в техническую поддержку или задав вопрос в Telegram-чате курса.

Что нужно, чтобы начать курс

Чтобы начать проходить курс, от вас потребуются знания основ бэкенд-разработки. Поэтому на курсе есть входной тест, чтобы убедиться, что курс подходит вам по сложности.

Подробную программу и все подробности можно посмотреть на сайте


*Изображение Go gopher, используемое в настоящем курсе, является модификацией изображения маскота, созданного Renee French и лицензируемого на условиях CC BY 3.0.

Комментарии (8)


  1. sukhe
    24.06.2022 21:46

    поскольку сам Go является C-подобным

    Точно Си? Я его когда первый раз увидел, сразу Оберон вспомнил.


  1. Mitch
    25.06.2022 10:26

    За это время вы научитесь:

    1. Писать простые SQL-запросы к базам данных.


    А во входном тесте умение "простые SQL-запросы к базам данных" уже требуется кстати.


    1. a0fs
      25.06.2022 11:30

      Учиться работать с БД в рамках языка программирования с того, чтобы учиться работать с БД в целом, ИМХО плохая затея. Ибо человек такое создание, что склонно терять лес за деревьями, а реляционная логика, понятие множеств и действий над ними, на которых она строится и общая логика работы СУБД даст достаточно деревьев, чтобы за ними напрочь, месяцев на 6 минимум, полностью потерять GO из виду =))))) Эту часть квеста лучше проходить заранее....

      А в рамках топика, о ALL, а никто не порекомендует обновляемый, адекватный, online справочник по синтаксису и стандартной библиотеке Go на русском языке.


  1. allexx
    26.06.2022 17:40

    (уже оставил в обратной связи) однако сделаю это и тут может создаст обсуждение.

    Внимание спойлеры на тест курса.

    Вопрос 1 - неоднозначность

    RFC 7231 §4.3.1 states that a body "has no defined semantics", but that's not to say it is forbidden. If you attach a body to the request and what your server/app makes out of it is up to you.

    Вопрос 2 - неоднозначность

    Being valid ECMAScript doesn't necessarily mean a document is valid JSON - JSON is generally defined in RFC 4627, and that spec does not allow the trailing comma.


    1. Arty_Fact
      26.06.2022 19:40

      А можете вторую пояснить? Вроде ответ с запятой в конце корректно неправильный судя по вашей же выдержке.


      1. allexx
        27.06.2022 04:51

        ECMAScript != RFC 4627. RFC (spec) does not allow the trailing comma.

        example (python)

        In [57]: import json
        
        In [58]: json.loads('''{"a": 1, "b": "2", }''')
        ---------------------------------------------------------------------------
        JSONDecodeError                           Traceback (most recent call last)
        <ipython-input-58-7660b1a33870> in <module>
        ----> 1 json.loads('''{"a": 1, "b": "2", }''')
        
        /usr/local/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
            344             parse_int is None and parse_float is None and
            345             parse_constant is None and object_pairs_hook is None and not kw):
        --> 346         return _default_decoder.decode(s)
            347     if cls is None:
            348         cls = JSONDecoder
        
        /usr/local/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py in decode(self, s, _w)
            335 
            336         """
        --> 337         obj, end = self.raw_decode(s, idx=_w(s, 0).end())
            338         end = _w(s, end).end()
            339         if end != len(s):
        
        /usr/local/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py in raw_decode(self, s, idx)
            351         """
            352         try:
        --> 353             obj, end = self.scan_once(s, idx)
            354         except StopIteration as err:
            355             raise JSONDecodeError("Expecting value", s, err.value) from None
        
        JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 20 (char 19)
        
        In [59]: json.loads('''{"a": 1, "b": "2"}''')
        Out[59]: {'a': 1, 'b': '2'}


    1. HellWalk
      27.06.2022 11:54

      RFC 7231 §4.3.1 states that a body "has no defined semantics", but that's not to say it is forbidden. If you attach a body to the request and what your server/app makes out of it is up to you.

      Кстати да, мне раз доводилось работать с API, в котором был GET запрос с body. Было забавно наблюдать, как одни пакеты могут с таким вариантом работать, а другие ломаются.


  1. Licantrop
    27.06.2022 00:36
    +1

    Там нет проверки решений, можно только готовый ответ посмотреть. Бесполезная фигня. На Степике курс лучше, хоть и с заморочками.