1

Step 1

Структура и интерпретация компьютерных программ (SICP)

7

Step 7

Архитектура компьютера

12

Step 12

Операционные системы + *NIX

16

Step 16

Информатика

20

Step 20

Математика

25

Step 25

Алгоритмы и структуры данных

28

Step 28

Профессия "Бэкенд JS-программист (node.js)" на Hexlet.

30

Step 30

Английский язык

31

Step 31

Практика

1

Step 1

Структура и интерпретация компьютерных программ (SICP)

7

Step 7

Архитектура компьютера

12

Step 12

Операционные системы + *NIX

16

Step 16

Информатика

20

Step 20

Математика

25

Step 25

Алгоритмы и структуры данных

28

Step 28

Профессия "Бэкенд JS-программист (node.js)" на Hexlet.

30

Step 30

Английский язык

31

Step 31

Практика

13 November 2017 21 August 2022
Goal completed 11 May 2021

Goal author

Дмитрий К

Russia, Ростов-на-Дону

42 years old

General

Настоящий программист

Название цели провокационное, ибо кто такой настоящий программист не знает ни кто, а точнее, у каждого свой ответ на этот вопрос.

Для меня это значит:

  • эффективно решать задачи при помощи различных инструментов (языков программирования);
  • обладать алгоритмическим мышлением (думать как программист);
  • можно добавить еще что-нибудь, но два пункта выше для меня основные.

Исходя из того, что целью является стать программистом, а не уметь программировать, скажем на JavaScript или PHP, обучение в этот раз (а уже были попытки) начну с "базы" - математика + алгоритмы и структуры данных + архитектура ЭВМ и т.д. Параллельно буду практиковаться в решении задач, с помощью языка JavaScript, подробнее будет понятно из этапов цели.

В этапы будут вноситься различные источники получения знаний (курсы, книги и пр.), но это не значит, что изучать их я буду все, если для понимания темы достаточно будет одной книги, остальные читать я не буду и т.д.

Многие этапы будут выполняться одновременно, некоторые последовательно.

Отчеты в этой цели каждый день, еженедельные "саммари" в блоге kovaldmitriy.ru

Цель будет дополняться.

 Goal Accomplishment Criteria

Зарабатываю программированием (офис или Upwork).

 Personal resources

время - несколько часов в день, базовые знания в верстке, ЯП python, js, php.

  1. Архитектура компьютера

    Цель этапа.

    • Общее устройство компьютеров
    • Понимание принципов работы процессора и исполнения машинного кода (опкоды, ассемблер)

    Курс отсюда

    1. Книга “Код. Тайный язык информатики” Чарльз Петцольд.

    2. Курс Введение в архитектуру ЭВМ. Элементы операционных систем.

  2. Операционные системы + *NIX

    Цель этапа

    • Процесс/Поток (понятие, состояния, жизненный цикл, сигналы)
    • IPC (пайпы, сокеты)
    • Владение командной строкой (bash)
    • Умение оценить состояние системы (ps, top, free, df, du)
    • Понимание системы прав в linux
    • Просмотр логов (syslog)
    • Перенаправления и потоки
    • Переменны окружения
    • Системы инициализации (systemd)
    • SSH
    • Генерация и использование ключей
    1. Курс hexlet "Операционные системы"

    2. Книга “Современные операционные системы”. Эндрю Таненбаум, Х. Бос.

    3. Курс hexlet "Linux: Пользователи"

    4. Книга “Операционная система UNIX”. Андрей Робачевский, Сергей Немнюгин, Ольга Стесик.

    5. Книга “Руководство администратора Linux”. Эви Немет, Гарт Снайдер, Трент Р. Хейн.

  3. Информатика

    Трудно отнести к какому то одному этапу, но в целом важные знания )

    1. Курс на stepik "Введение в теоретическую информатику"

  4. Математика

    Цель этапа

    Получить базовые знания в следующих разделах математики

    • Теория множеств
    • Булева алгебра
    • Комбинаторика
    • Теория автоматов
    • Теория графов
    • Статистика
    • Подготовить мозг к пониманию алгоритмов )

    Источники, в основном, курсы МФТИ в "исполнении" Райгородского

    1. Курс на stepik "Основы дискретной математики"

    2. Курс на stepik "Ликбез по дискретной математике"

    3. Курс на coursera "Математика для всех"

    4. Курс на coursera "Комбинаторика для начинающих"

    5. Курс на coursera "Современная комбинаторика"

    6. Курс на coursera "Теория вероятностей для начинающих"

    7. Курс на coursera "Теория графов"

    8. Курс на coursera "Случайные графы"

  5. Алгоритмы и структуры данных

    Цель этапа

    • Массивы
    • Ассоциативные массивы/Словари
    • Связаные списки
    • Графы/Деревья
    • Очереди
    • Сортировка массивов
    • Алгоритмическая сложность
    • Обход деревьев
    • Операции над списками (вставка, удаление, переворот, поиск циклов и т.п.)
    1. Книга "Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих". Адитья Бхаргава

    2. Курс на coursera "Алгоритмизация вычислений"

    3. Книга "Алгоритмы. Вводный курс". Кормен

    4. Книга "Алгоритмы. Построение и анализ" Кормен

    5. Книга "Структура и интерпретация компьютерных программ"

    6. Курс на Hexlet "Структура и интерпретация компьютерных программ"

  6. Профессия "Бэкенд JS-программист (node.js)" на Hexlet.

    Пройти все этапы и минимум 3 проекта.

    Ссылка на курс ru.hexlet.io/professions/backend

  7. Английский язык

    Цель этапа

    • Читать любую техническую документацию, понимая 80-90% слов
    • Вести деловую переписку, уровень intermidiate
    • Разговорный английский - понимать и поддерживать разговор на простые темы + профессиональные термины.

    На первом этапе главный способ достижения - чтение документации и художественной литературы, занося неизвестные слова в ANKI или LinguaLeo (есть Premium) + слушать радио (BBC).

    На следующих этапах (через 6-9 месяцев, видимо) - сериалы, метод Умин, Пимслер, Italki и пр.

    Изучение языка один из важнейших аспектов в профессии "программист", поэтму ежедневные занятия должны быть протяженностью не менее 2-х часов.

  8. Практика

    Цель этапа

    На первом этапе, при изучении математики, информатики и пр. не забывать зачем все это, для этого решать задачки на перечисленных ниже ресурсах.

    • hexlet (практика)
    • codewars
    • leetcode

    На последующем этапе внедрять полученные знания на hexlet, путем разработки проектов.

  • 4334
  • 13 November 2017, 08:28
Sign up

Signup

Уже зарегистрированы?
Quick sign-up through social networks.
Sign in

Sign in.
Allowed.

Not registered yet?
 
Log in through social networks
Forgot your password?