1

Этап 1

Расширенные по знания по UNIX системам

2

Этап 2

Изучение фреймворка

3

Этап 3

Изучение основ других скриптовых языков программирования

4

Этап 4

Расширение своих знаний по работе с БД

5

Этап 5

Расширенная работа с VCS

6

Этап 6

Изучение прочих веб технологий, полезных в разработке

7

Этап 7

Научиться печатать вслепую

1

Этап 1

Расширенные по знания по UNIX системам

2

Этап 2

Изучение фреймворка

3

Этап 3

Изучение основ других скриптовых языков программирования

4

Этап 4

Расширение своих знаний по работе с БД

5

Этап 5

Расширенная работа с VCS

6

Этап 6

Изучение прочих веб технологий, полезных в разработке

7

Этап 7

Научиться печатать вслепую

07 июля 2015 22 марта 2018
Цель завершена 26 июня 2018
Общая

Развить свои знания и навыки по программированию

Встал вопрос профессионального самообучения. Потому что после двух лет работы, я понял что последний год практически не развивался профессионально никак. Этому есть две причины - этого не требуют задачи, т.е. попросту я уже вырос из той должности которую занимаю, к тому же на работе нет никаких планов и целей по обучению сотрудников. Компания у нас маленькая и все на собственной инициативе, а второе - у меня не всегда есть на это время. После переезда и взятия билета во взрослую жизнь, на основной работе мне сначала не хватало денег на существование, и приходило подрабатывать фрилансом. Это напрочь съедало все свободное время, мало того что нету времени на личную жизнь, так и на обучение соответственно тоже. И после прохождения определенного времени, и по примеру коллег, которые собрались менять или уже поменяли работу на более высокооплачиваемую, я тоже задумался над этим вопросом. Соответственно просмотрев список вакансий и требований, я понял что во многом не соответствую. И это надо срочно исправлять. Фриланс мой пока не закончен, надо сделать проект друзьям, и сейчас стоит вопрос нужно ли делать свой магазин с другом, и нужно ли создавать какой то стартап с ребятами с работы. Но в любом случае такую возможность терять не буду. Однако не могу оставить себя без развития. Поэтому создаю себе цель. Я backend программист, для веб. Сейчас работаю с PHP, иногда использую Java Script. Поэтому развиваться буду в этом направлении. Сроки самые кратчайшие, 1-2 месяца, т.е. до осени. Но не уверен что все успею, цели очень амбициозные. Потому что к осени скорей всего и настанет момент смены работы, если что в процессе до изучаю. Итак расписываю в этапах.

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

 Критерий завершения

Все поставленные задачи выполнены, получены новые знания, освоены новые навыки

 Личные ресурсы

Личное и свободное от работы время, компьютер с интернетом, энтузиазм

 Экологичность цели

Мое дальнейшее развитие и выживание

  1. Расширенные по знания по UNIX системам

    Задачи в этап:

    1. Освоение основных комманд shell
    2. Освоение основных пакетов rpm, apt, deb и т.д.
    3. Собрать программу из исходников
    4. Поставить на домашний комп linux, ubuntu например
  2. Изучение фреймворка

    Куда сегодня без знаний минимально одного фреймворка? Да никуда. А т.к. я хочу работать на запад, то и технологии надо изучать западные. Поэтому начну изучать symphony. Хоть по опыту коллеги, который говорит что он изучается тяжело, меня это не страшит. Конечно я думал заняться изучением Yii 2, но пока что отложу это на следующий этап. Хочу разобраться с этим сначала.

    1. Прочесть Symphony 2 Book
    2. Изучить ORM Doctrine
  3. Изучение основ других скриптовых языков программирования

    Изучить ОСНОВЫ и попробовать что то сделать. Пока что очень сырая цель, т.к. изучение нового языка требует много времени. Хотя по быстрому можно что то изучить для понимания. Пока что эта цель что то вроде этого. Изучить основные синтаксические принципы и семантические особенности. Пока по back end. Но надо помнить про фронт енд, и все таки после изучение всего этого попробовать изучить moo tools, т.е. другие либы для работы с js, также фронт-енд фреймворки и может быть другой фронт-енд язык. Вообще после изучения какого то скриптового backend языка, взялся бы за какой то компилируемый. Раньше С++ изучал уже. Можно расширить и обновить знания.

    1. Изучить how-to python, написать простой скрипт или программку
    2. Изучить основы Django framework
  4. Расширение своих знаний по работе с БД

    В цель вношу изучение таких моментов:

    1. индексы, повторить, изучить особые случаи использования
    2. триггеры, повторить
    3. транзакции, изучить какие то особые случаи
    4. хранимые процедуры, теория
    5. оптимизация запросов, построение индексов, теория и практика
    6. сложные запросы (JOIN, UNION)
    7. повторить нормальные формы, теорию
    8. повторить внешние ключи и связи между БД
    9. шардинг mysql БД, изучить, реализовать
    10. Изучить postgres, основные возможности, построить схему, поделать запросы)
    11. не реляционные БД, основы - mongo db, redis, обе уже ковырял, изучить теорию
    12. системы кеширования БД - memcached, изучить основы, прикрутить, посмотреть как работает
    13. полнострочный поиск - elastic, изучить основы query language, попробовать реализовать какой то бизнесс кейс
    14. особенности выполнения миграций для БД
  5. Расширенная работа с VCS

    Требуется изучить расширенное использование системы контроля версий. Сюда отношу:

    1. работа с VCS через командную строку
    2. gitflow - изучить подход
    3. Пройти курс http://githowto.com/ru
    4. После всего этого, убедиться, что я умею пользоваться REBASE мать его, и точно знаю что я делаю :)
  6. Изучение прочих веб технологий, полезных в разработке

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

    UPDATED: сюда дописываю то что требовали от меня по технологиям на собеседованиях, которые я не включал в цели (в том числе и фронт-енд и php то что не ответил), остальное выношу в другие этапы

    1. PHP Unit, изучить методологию и написать тесты например уже к готовому коду
    2. Fpm (fast cgi), изучение что это такое
    3. Формат XML и работа с ним через PHP
    4. NGinx, понимание и базовая настройка
    5. Сокеты и работы с ними через PHP
    6. Основы Scrum и основы отца его - Agile. Также extreme programming.
    7. Основные методологии создания ПО, какая то книга или ряд статей по разработке и выпуску ПО
    8. Composer, надо знать основы сборки, на уровне IDE хотя б. А там может как то через shell освою
    9. Обязательно изучить концепции Inversion of control, dependency injection.
    10. Event bubbling in JS
    11. Как работают XSS атаки и как от них защищаться
    12. Как можно обойти реализацию шаблона singletone, как защититься от клонирования объекта
    13. Что делают магические методы в PHP - __sleep & __wakeup
    14. Что нового в PHP 7, разобраться и попробовать
    15. Как работает функция array_merge_recursive
    16. Сработает ли функция strpos() например для спец. символа, немецкой буквы a с двумя точками, я забыл как она называется )) и как работают функции mb_string
    17. Библиотека SPL , изучить и опробовать основные возможности
    18. Виды ajax запросов, повторить кросс доменные запросы, и остальные (long polling и прочие)
    19. nested sets
    20. Системы очередей (менеджеры) - rabbit mq, gearman
    21. JsonP
    22. что такое php cli
    23. jenkins и другие ci технологии
    24. docker & docker compose
    25. Продуктивное использование PHP Storm
      http://habrahabr.ru/post/212077/

      http://habrahabr.ru/post/157409/
      http://habrahabr.ru/company/JetBrains/blog/236929/
      http://habrahabr.ru/company/JetBrains/blog/261939/
      http://blog.jetbrains.com/phpstorm/2015/11/phpstor...
    26. Изучить behat и TDD/BDD подходы к разработке
    27. Изучить React JS, и какой нибудь redux, для того чтобы можно работать с бекендом.
  7. Научиться печатать вслепую

    Что ж я за программист если не умею печатать в слепую?) Ну т.е. печатать то я могу вслепую, но не на всех клавиатурах, а также с небольшой скоростью и с большим количеством ошибок. Части чтобы напечатать быстро, я просто делаю много ошибок и перепечатываю слова.
    Я уже начинал учиться, и пока учился на самом деле был прогресс. Не хватало систематизма. Я распишу потом план по реализации этого пункта. Отодвигаю в конец как чисто механический навык. Надо будет еще выбрать правильное руководство. Да, я слышал про соло и начинал проходить его. Если убрать мусор из анекдотов и не нужных рассказов, то вполне толково. Потом подумаю стоит ли покупать клавиатуру без стикеров :)
    Цель - хотя бы 250 символов в минуту, но без ошибок.

  • 4663
  • 07 июля 2015, 08:27
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?