1

Step 1

Python

2

Step 2

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

3

Step 3

Углубление теоретических знаний C#

4

Step 4

Django

5

Step 5

Микросервисы

6

Step 6

Основы JS и ES6 в частности

7

Step 7

ReactJS

8

Step 8

Typescript

9

Step 9

Angular 2

10

Step 10

Frontend инструментарий

11

Step 11

HTML5, CSS3, препроцессоры

12

Step 12

SQL

13

Step 13

MongoDB

14

Step 14

TDD

15

Step 15

Паттерны проектирования

1

Step 1

Python

2

Step 2

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

3

Step 3

Углубление теоретических знаний C#

4

Step 4

Django

5

Step 5

Микросервисы

6

Step 6

Основы JS и ES6 в частности

7

Step 7

ReactJS

8

Step 8

Typescript

9

Step 9

Angular 2

10

Step 10

Frontend инструментарий

11

Step 11

HTML5, CSS3, препроцессоры

12

Step 12

SQL

13

Step 13

MongoDB

14

Step 14

TDD

15

Step 15

Паттерны проектирования

01 December 2016 19 March 2017
The goal is overdue by 2809 days

Goal abandoned

The author does not write in the goal 7 years 11 months 12 days

Career & Work

Подготовиться к поиску позиции Senior Full Stack .Net Developer

За сравнительно недолгую пока карьеру программиста пройден этап Junior'а, наработан опыт работы Middle'ом. За это время приходилось верстать макеты, писать плагины, проектировать архитектуру баз данных, разрабатывать сложную серверную логику. Реализованы как небольшие локальные проекты, так и масштабные высоконагруженные отказоустойчивые системы.

Так что, несмотря на то, что трудовой опыт насчитывает пока всего несколько лет, фактический опыт уже намного его превышает, и, думаю, пришла пора попробовать свои силы на позиции Senior'а.

 Goal Accomplishment Criteria

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

 Personal resources

Время

  1. Python

    Изучение Python'а с нуля до уровня, позволяющего написать простые веб-приложения, парсеры, грабберы и тому подобное.

    Для начала ограничимся книгой Марка Саммерфилда "Программирование на Python 3"

    1. Быстрое введение в процедурное программирование

    2. Типы данных

    3. Типы коллекций

    4. Управляющие структуры и функции

    5. Модули

    6. Объектно-ориентированное программирование

    7. Работа с файлами

    8. Усовершенствованные приемы программирования

    9. Процессы и потоки

    10. Сети

    11. Программирование приложений баз данных

    12. Регулярные выражения

    13. Введение в программирование графического интерфейса

    14. Подведение итогов

    15. Написание скрипта, использующего полученные знания

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

    Курс алгоритмов изучался ранее, поэтому для того, чтобы освежить память, лучше воспользоваться книгой-инструкцией от Рода Стивенса "Алгоритмы. Теория и практическое применение". Все примеры и упражнения лучше выполнять на Python'е

    1. Основы алгоритмизации

    2. Численные алгоритмы

    3. Связные списки

    4. Массивы

    5. Стеки и очереди

    6. Сортировка

    7. Поиск

    8. Хеш-таблицы

    9. Рекурсия

    10. Деревья

    11. Сбалансированные деревья

    12. Деревья принятия решений

    13. Основные сетевые алгоритмы

    14. Строковые алгоритмы

    15. Криптография

    16. Теория вычислительной сложности

    17. Распределенные алгоритмы

    18. Головоломки на собеседованиях

  3. Углубление теоретических знаний C#

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

    1. IAsyncResult и пулл потоков

    2. TPL. Параллельное программирование

    3. Домены приложений. NT-службы

  4. Django

    Для решения моих задач Python без Django вообще никак, так что сразу после введения в Python нужно осваивать этот фреймворк. Можно взять книгу "Django. Подробное руководство" Адриана Головатого, а можно сразу пойти по документации. Книга написана по версии 1.1 и новее ее нет, а вот в документации можно сразу изучать последнюю, 1.9, версию. План пока можно определить примерно такой:

    1. Введение

    2. Представления и конфигурирование URL

    3. Шаблоны

    4. Модели

    5. Административный интерфейс Django

    6. Формы

    7. Углубленное изучение шаблонов, моделей и представлений

    8. Развертывание тестового проекта

    9. Форматы содержимого

    10. Сеансы, пользователи и регистрация

    11. Кэширование

    12. Дополнительные процессоры

    13. Интеграция с унаследованными БД и приложениями

    14. Интернационализация

    15. Безопасность

  5. Микросервисы

    Уже приходилось неоднократно проектировать и разрабатывать сложные высоконагруженные и отказоустойчивые системы, однако всегда что-то было не до конца учтено, что-то не продумано, о чем-то просто не подозревал, пока не столкнулся. В общем, нужно было сразу начать с матчасти. Все основы с подробным анализом и отличным стилем изложения написал Сэм Ньюмен в своей книге "Создание микросервисов". С нее и стоит начать.

    1. Основы

    2. Архитектор развития

    3. Как моделировать сервисы

    4. Интеграция

    5. Разбиение монолита на части

    6. Развертывание

    7. Тестирование

    8. Мониторинг

    9. Безопасность

    10. Закон Конвея и проектирование систем

    11. Масштабирование микросервисов

    12. Итоги

  6. Основы JS и ES6 в частности

    JS очень динамично развивающийся язык, за нововведениями которого необходимо периодически следить,. Вот и сейчас получается такая ситуация: в разработке последний стандарт как то без надобности, а знать его нужно обязательно. Книга Кайла Симпсона "ES6 и не только" из его супер-серии "Вы не знаете JS" в помощь.

    1. Повторение основ на learn.javascript.ru

    2. Введение в стандарт ES6

    3. Синтаксис

    4. Структура

    5. Управление асинхронными операциями

    6. Коллекции

    7. Дополнения к API

    8. Метапрограммирование

    9. Выводы

  7. ReactJS

    JS фреймворки плодятся непрерывно и вот новый тренд в этом направлении: ReactJS. При знании ряда таких библиотек как JQuery, AngularJS, ExtJS, думаю, изучение этого фреймворка не должно занять много времени. Для этого вполне должно хватить документации и многочисленных туториалов, надо будет лишь выбрать самые толковые и по ходу дела набросать план. А пока не в теме что к чему, придется ограничиться несколькими общими пунктами:

    1. Основы

    2. Flux

    3. Redux

    4. Relay

  8. Typescript

    И снова начал не с того конца. То есть с этой технологией работать приходилось, но матчасть очень страдает, так что надо бы пройтись "обо всем по порядку"

    1. Основы

    2. Настройки компиляции

    3. Типы данных и переменные

    4. Работа с типами данных

    5. Функции

    6. Типы функций и лямбда-выражения

    7. ООП

    8. Работа с заголовочными файлами

    9. Применение в ASP.NET MVC

  9. Angular 2

    Неплохо бы еще ознакомиться с новым Angular'ом: https://habrahabr.ru/post/309300/

  10. Frontend инструментарий

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

    1. Flow

    2. Babel

    3. AsmJS

    4. SystemJS

    5. Gulp.js

    6. Grunt

  11. HTML5, CSS3, препроцессоры

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

    1. SVG

    2. Canvas

    3. Transformation

    4. Less, Sass

  12. SQL

    Хранимки, вьюхи, оптимизации запросов, транзакции - все нуждается в повторении

  13. MongoDB

    Поднять старые проекты, освежить знания и посмотреть, что изменилось. Возможно, стоит пробежаться по "The Little MongoDB Book" (http://jsman.ru/mongo-book/index.html)

  14. TDD

    И снова по матчасти:

    1. Основы TDD

    2. Unit

    3. Stub объекты

    4. Mock объекты

    5. Isolation Frameworks

  15. Паттерны проектирования

    И опять повторение старых добрых шаблонов:

    1. Наблюдатель

    2. Декоратор

    3. Фабрика

    4. Одиночка

    5. Команда

    6. Адаптер

    7. Фасад

    8. Шаблонный метод

    9. Итератор и Компоновщик

    10. Состояние

    11. Заместитель

    12. Составные паттерны

    13. Другие паттерны

  • 951
  • 01 December 2016, 11:56
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?