Развить свои знания и навыки по программированию
Встал вопрос профессионального самообучения. Потому что после двух лет работы, я понял что последний год практически не развивался профессионально никак. Этому есть две причины - этого не требуют задачи, т.е. попросту я уже вырос из той должности которую занимаю, к тому же на работе нет никаких планов и целей по обучению сотрудников. Компания у нас маленькая и все на собственной инициативе, а второе - у меня не всегда есть на это время. После переезда и взятия билета во взрослую жизнь, на основной работе мне сначала не хватало денег на существование, и приходило подрабатывать фрилансом. Это напрочь съедало все свободное время, мало того что нету времени на личную жизнь, так и на обучение соответственно тоже. И после прохождения определенного времени, и по примеру коллег, которые собрались менять или уже поменяли работу на более высокооплачиваемую, я тоже задумался над этим вопросом. Соответственно просмотрев список вакансий и требований, я понял что во многом не соответствую. И это надо срочно исправлять. Фриланс мой пока не закончен, надо сделать проект друзьям, и сейчас стоит вопрос нужно ли делать свой магазин с другом, и нужно ли создавать какой то стартап с ребятами с работы. Но в любом случае такую возможность терять не буду. Однако не могу оставить себя без развития. Поэтому создаю себе цель. Я backend программист, для веб. Сейчас работаю с PHP, иногда использую Java Script. Поэтому развиваться буду в этом направлении. Сроки самые кратчайшие, 1-2 месяца, т.е. до осени. Но не уверен что все успею, цели очень амбициозные. Потому что к осени скорей всего и настанет момент смены работы, если что в процессе до изучаю. Итак расписываю в этапах.
В дальнейшем надо будет повторить математику, изучить то чего не знаю, а также изучение программирования в сторону компилируемых языков.
Goal Accomplishment Criteria
Все поставленные задачи выполнены, получены новые знания, освоены новые навыки
Personal resources
Личное и свободное от работы время, компьютер с интернетом, энтузиазм
Goal ecological compatibility
Мое дальнейшее развитие и выживание
-
Расширенные по знания по UNIX системам
Задачи в этап:
Освоение основных комманд shellОсвоение основных пакетов rpm, apt, deb и т.д.Собрать программу из исходниковПоставить на домашний комп linux, ubuntu например
-
Изучение фреймворка
Куда сегодня без знаний минимально одного фреймворка? Да никуда. А т.к. я хочу работать на запад, то и технологии надо изучать западные. Поэтому начну изучать symphony. Хоть по опыту коллеги, который говорит что он изучается тяжело, меня это не страшит. Конечно я думал заняться изучением Yii 2, но пока что отложу это на следующий этап. Хочу разобраться с этим сначала.
Прочесть Symphony 2 BookИзучить ORM Doctrine
-
Изучение основ других скриптовых языков программирования
Изучить ОСНОВЫ и попробовать что то сделать. Пока что очень сырая цель, т.к. изучение нового языка требует много времени. Хотя по быстрому можно что то изучить для понимания. Пока что эта цель что то вроде этого. Изучить основные синтаксические принципы и семантические особенности. Пока по back end. Но надо помнить про фронт енд, и все таки после изучение всего этого попробовать изучить moo tools, т.е. другие либы для работы с js, также фронт-енд фреймворки и может быть другой фронт-енд язык. Вообще после изучения какого то скриптового backend языка, взялся бы за какой то компилируемый. Раньше С++ изучал уже. Можно расширить и обновить знания.
Изучить how-to python, написать простой скрипт или программкуИзучить основы Django framework
-
Расширение своих знаний по работе с БД
В цель вношу изучение таких моментов:
индексы, повторить, изучить особые случаи использования- триггеры, повторить
- транзакции, изучить какие то особые случаи
- хранимые процедуры, теория
- оптимизация запросов, построение индексов, теория и практика
сложные запросы (JOIN, UNION)- повторить нормальные формы, теорию
повторить внешние ключи и связи между БД- шардинг mysql БД, изучить, реализовать
- Изучить postgres, основные возможности, построить схему, поделать запросы)
- не реляционные БД, основы - mongo db, redis, обе уже ковырял, изучить теорию
- системы кеширования БД - memcached, изучить основы, прикрутить, посмотреть как работает
- полнострочный поиск - elastic, изучить основы query language, попробовать реализовать какой то бизнесс кейс
особенности выполнения миграций для БД
-
Расширенная работа с VCS
Требуется изучить расширенное использование системы контроля версий. Сюда отношу:
работа с VCS через командную строкуgitflow - изучить подход- Пройти курс http://githowto.com/ru
- После всего этого, убедиться, что я умею пользоваться REBASE мать его, и точно знаю что я делаю :)
-
Изучение прочих веб технологий, полезных в разработке
Я очень сильно отстал от трендовых технологий, которыми пестрит сейчас рынок. Нужно срочно наверстывать. Есть даже те которые зарекомендовали себя временем, но досконально я ими так пользоваться и не научился.
UPDATED: сюда дописываю то что требовали от меня по технологиям на собеседованиях, которые я не включал в цели (в том числе и фронт-енд и php то что не ответил), остальное выношу в другие этапы
PHP Unit, изучить методологию и написать тесты например уже к готовому кодуFpm (fast cgi), изучение что это такоеФормат XML и работа с ним через PHPNGinx, понимание и базовая настройка- Сокеты и работы с ними через PHP
- Основы Scrum и основы отца его - Agile. Также extreme programming.
- Основные методологии создания ПО, какая то книга или ряд статей по разработке и выпуску ПО
Composer, надо знать основы сборки, на уровне IDE хотя б. А там может как то через shell освоюОбязательно изучить концепции Inversion of control, dependency injection.- Event bubbling in JS
- Как работают XSS атаки и как от них защищаться
- Как можно обойти реализацию шаблона singletone, как защититься от клонирования объекта
Что делают магические методы в PHP - __sleep & __wakeup- Что нового в PHP 7, разобраться и попробовать
Как работает функция array_merge_recursiveСработает ли функция strpos() например для спец. символа, немецкой буквы a с двумя точками, я забыл как она называется )) и как работают функции mb_stringБиблиотека SPL , изучить и опробовать основные возможности- Виды ajax запросов, повторить кросс доменные запросы, и остальные (long polling и прочие)
- nested sets
- Системы очередей (менеджеры) - rabbit mq, gearman
- JsonP
что такое php clijenkins и другие ci технологииdocker & docker compose- Продуктивное использование 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... - Изучить behat и TDD/BDD подходы к разработке
- Изучить React JS, и какой нибудь redux, для того чтобы можно работать с бекендом.
-
Научиться печатать вслепую
Что ж я за программист если не умею печатать в слепую?) Ну т.е. печатать то я могу вслепую, но не на всех клавиатурах, а также с небольшой скоростью и с большим количеством ошибок. Части чтобы напечатать быстро, я просто делаю много ошибок и перепечатываю слова.
Я уже начинал учиться, и пока учился на самом деле был прогресс. Не хватало систематизма. Я распишу потом план по реализации этого пункта. Отодвигаю в конец как чисто механический навык. Надо будет еще выбрать правильное руководство. Да, я слышал про соло и начинал проходить его. Если убрать мусор из анекдотов и не нужных рассказов, то вполне толково. Потом подумаю стоит ли покупать клавиатуру без стикеров :)
Цель - хотя бы 250 символов в минуту, но без ошибок.
- 4908
- 07 July 2015, 08:27
Don't miss new posts!
Subscribe for the Goal and follow through to its completion