Стать Senior Software Engineer
С самого детства моя жизнь тесно связано с компьютером. Сначала я просто играл в игрушки, как многие, развлекался. Но как-то раз подумал, что это не так интересно, как освоить компьютер для чего-то большего. Я стал изучать как работает система, пробовал разные операционные системы, случайно пересобирал ядро линукса (кто этого не делал?). И вдохновлял меня на это мой старший брат.
Что для меня значит эта цель? Прежде всего несколько слов о том, почему я переименовал цель с Senior Full Stack Developer на Software Engineer. Дело в том, что инженер в данном контексте в себя включает фул стек разработку, но при этом включает в себя некоторое взаимодействие с архитектурным уровнями, слоями. Для меня это интересное направление, и более универсальное, чем быть просто разработчиком.
Итак, что мне для этого нужно. Мне необходимо развивать навыки в различных технологиях, которые для меня новые, а так же улучшать знания тех, которые уже есть. Сейчас я работаю Junior Software Engineer. Поэтому вижу в каком направлении мне стоит идти, какое направление нравится, какие мне необходимы для этого технологии.
Моя цель будет в чем-то меняться, что-то в неё будет добавляться, я думаю, что это будет интересный и очень крутой процесс, потому что конечная цель всё же получить работу Senior Software Engineer в Соединенных Штатах. Для меня важно стать очень востребованным специалистом, профессионалом во всех областях, необходимых для того, чтобы предоставлять автономного инженера (в плане, что я не привязан к тому, что мне надо взаимодействовать с front-end разработчиками, например, что сокращает время разработки. Т.е. я смог бы решать любые задачи своими силами).
Goal Accomplishment Criteria
Получить работу Senior Software Engineer
Personal resources
Работа Junior Software Engineer, English (Upper Intermediate), опыт учебной разработки, опыт во фронт-энде и разработке интерфейсов.
-
Мэтт Вайсфелд - Объектно-ориентированное мышление
процесс чтения книги
-
Введение в Объектно-ориентированные концепции
-
Как мыслить объектно
-
Продвинутые Объектно-ориентированные концепции
-
Анатомия класса
-
Руководство по проектированию класса
-
Проектирование с использованием объектов
-
Наследование и композиция
-
Фреймворки и повторное использование
-
Создание объектов и оо проектирование
-
Создание объектных моделей
-
Xml и json
-
Постоянные объекты
-
Объекты в веб службах, мобильных и гибридных приложениях
-
Объекты и клиент северные приложения
-
Шаблоны проектирования
-
-
Шаблоны проектирования
Процесс углубления в шаблоны проектирования
-
Delegate
-
Facade
-
Fabric
-
Abstract Fabric
-
Builder
-
Prototype
-
Composite
-
Adapter
-
Decorator
-
Singleton
-
-
Сделать более детальное оформление цели
-
Составить план улучшения
-
Улучшить
-
-
Разобраться с workflowy.com
Интересный сервис, думаю, что он мне поможет в процессе работы/изучения и т.д
-
Добавить навыки и этапы по Front-end developing
-
Разработка сайта impuls47
Моё тестовое задание перед участием в боевом проекте. Надо разработать сайт простой с каталогом для компании на основе фреймворка.
-
Сделать дизайн
-
Сделать верстку всего сайта
-
Написать базовые JS скрипты анимации и т.п.
-
push на мастера в репозиторий
-
создание проекта maven с сайтом
-
разработка сайта
-
Deployment
-
-
Роберт Мартин "Чистый код"
-
Глава 1
-
Глава 2
-
Глава 3
-
Глава 4
-
Глава 5
-
Глава 6
-
Глава 7
-
Глава 8
-
Глава 9
-
Глава 10
-
Глава 11
-
Глава 12
-
Глава 13
-
-
ReactJS
Пообщавшись с большим количеством людей я пришел к выводу, что вместо ангуляра мне стоит изучать реак. Поэтому буду изучать его. Изучать начну здесь: мhttps://ru.hexlet.io/courses/reactjs
-
Виртуальный DOM
-
Компонент
-
Особенности JSX
-
Условные конструкции в JSX
-
Передача свойств в компоненты
-
Комбинирование компонентов в JSX
-
Внутреннее состояние
-
Обработка событий
-
Вложенные компоненты
-
Однонаправленное распространение данных
-
-
Подробный Стек технологий и разделов JUN
Здесь я буду отмечать, какими разделами и технологиями я овладел на уровне Junior или близко
-
Java Core
-
I/O
-
Classes
-
Inheritance
-
Threads
-
Servlets
-
Generic
-
Garbage collector
-
Reflection
-
Collection framework
-
Maven
-
Jetty
-
Git
-
Spring
-
Hibernate
-
JDBC
-
Java FX/fxml
-
JUnit
-
Jenkins
-
Design Patterns
-
Freemarker
-
Web Spark Java
-
Java 8 Stream API
-
-
Углубление знаний в навыках
Список того, что мне необходимо подтянуть в первую очередь
-
Работа с git
-
Проектирование
-
Потоки ввода\вывода
-
Многопоточность
-
Collection framework
-
Functional interfaces
-
Лямба выражения
-
Последовательный вызов методов
-
Java 8 Stream API
-
-
Разработка своих проектов
Этот этап в принципе тоже будет на протяжении всего времени, главное его выполнять. У меня не будет очень много времени на свои проекты в связи с довольно сложной и интересной работой, но я буду делать их и участвовать в других open source проектах.
-
Разработка сайта для компании (на Java и готовом Java фреймворке, который реализовал мой брат)
-
Разработка ПО для Биомедиса
-
Доделать MessageBroker
-
Продолжить работу над LifeRPG
-
Доделать проект Work ToDo для организации
-
Разобрать свой дипломный проект
-
Реализовать тестовое приложение на Android (ну, так, для опыта)
-
Переделать свой сайт на Java (PHP - это скучно и не солидно)
-
Реализация всех учебных проектов из колледжа (там был лютый гавнокод)
-
-
jQuery
-
Обернутые наборы
-
Цепочки команд
-
Модель событий браузера
-
Остановка анимационных эффектов
-
Флаги
-
Динамическая загрузка сценариев
-
Управление объектами и коллекциями
-
Ajax
-
Form Plugin
-
Dimension Plugin
-
UI Plugin
-
-
Bootstrap
-
Изучить механизм работы collapse (а то пользуюсь, не зная точно как работает)
-
-
JavaScript improving
Мне следует улучшить свой знания в JS. Я многое знаю, но многое прошло мимо. Тут я укажу то, в чём мне следует углубиться в JS. Если кто-то сможет что-то подсказать и дать советы, я буду рад
-
Замыкания (надо повторить как следует, что-то подзабыл немного)
-
Prototype, classes, constructors
-
Объекты Error
-
RegExp
-
Обработка ошибок
-
События
-
JS + HTTP
-
JS + XML
-
Operating with canvas
-
Java (aplets, operations with aplets, call js from java and so on)
-
Objects
-
-
HTML5, CSS3
По этим технологиям я знаю много, но есть что углубить. И вот тут ябуду складывать ресурсы и т.п. по этому всему.
-
Canvas
-
Animation
-
Transformation
-
HTML5 - пробежать по новым тегам структуры страницы
-
-
Front-end
Как я уже говорил, я всё же хочу быть Full Stack Developer, поэтому я буду развиваться, как в Java, так и во Front-end'е. Как минимум программисты, которые знают помимо основного языка программирования, например, JavaScript на хорошем уровне - очень ценятся.
-
Углубление знаний в нативном JavaScript
-
Углубить знания HTML5
-
Углубить знания в CSS3
-
Углубить знания в Twitter Bootstrap
-
Angular JS
-
Углубиться в jQuery
-
Require JS
-
Изучить Local WebStorage
-
Углубиться в AJAX
-
Углубиться в проектировании и разработке дизайнов
-
Отточить разработку лендингов
-
-
Занятия английским каждый день
-
Патрик Нимейер - Философия Java
-
Глава 1. Современный язык .
-
Глава 2. Первое применение
-
Глава 3. Инструменты для работы
-
Глава 4. Язык Java
-
Глава 5. Объекты в Java
-
Глава 6. Отношения между классами
-
Глава 7. Работа с объектами и классами
-
Глава 8. Обобщения
-
Глава 9. Потоки выполнения
-
Глава 10. Работа с текстом
-
Глава 11. Основные инструменты
-
Глава 12. Средства ввода/вывода.
-
Глава 13. Сетевое программирование
-
Глава 14. Веб-программирование
-
Глава 15. Веб-приложения и веб-сервисы
-
Глава 16. Библиотека Swing
-
Глава 17. Использование компонентов библиотеки Swing
-
Глава 18. Другие компоненты библиотеки Swing
-
Глава 19. Диспетчеры компоновки
-
Глава 20. Рисование с использованием 2D API.
-
Глава 21. Работа с изображениями и другими медиаданными
-
Глава 22. JavaBeans
-
Глава 23. Апплеты
-
Глава 24. XML
-
Приложение Б. BeanShell: Написание сценариев Java .
-
-
Шилдт - полное руководство Java
-
Глава 1. История и развитие языка Jаvа
-
Глава 2. Краткий обзор Java
-
Глава 3. Типы данных, переменные и массивы
-
Глава 4 . Операции
-
Глава 5. Управляющие операторы
-
Глава 6. Введение в классы
-
Глава 7. Подробное рассмотрение классов и методов
-
Глава 8. Наследование
-
Глава 9. Пакеты и интерфейсы
-
Глава 10. Обработка исключений
-
Глава 11. Многопоточное программирование
-
Глава 12. Перечисления, автоупаковка и аннотации (метаданные)
-
Глава 13. Ввод-вывод, аплеты в прочие вопросы
-
Глава 14. Обобщения
-
Глава 15. Лямбда·выражения
-
Глава 16. Обработка символьных строк
-
Глава 17. Пакет java. lang
-
Глава 18. Пакет java. util, часть 1. Collections Framework
-
Глава 19. Пакет java. util, часть 11. Прочие служебные классы
-
Глава 20. Пакет java. io для ввода-вывода
-
Глава 21. Система ввода·вывода NIO
-
Глава 22. Работа в сети
-
Глава 23. Класс Applet
-
Глава 24. Обработка событий
-
Глава 25. Введение в библиотеку АWТ: работа с окнами, графикой и текстом
-
Глава 26. Применение элементов управления, диспетчеров компоновки и меню из библиотеки АWТ
-
Глава 27. Изображения
-
Глава 28. Утилиты параллелизма
-
Глава 29. Потоковый API
-
Глава 30. Регулярные выражения и другие пакеты
-
Глава 31. Введение в библиотеку Swing
-
Глава 32. Исследование библиотеки Swing
-
Глава 33. Введение в меню Swing
-
Глава 34. Введение вJavaFX
-
Глава 35. Элементы управленияJаvаFХ
-
Тhава 36. Введение в меню JavaFX
-
Глава 37. КомпонентыJаvа Beans
-
Глава 38. Введение в сервлеты
-
Применение документирующих комментариев вJava
-
-
Ресурсы к изучению
Здесь я собираю большую коллекцию ссылок на интересные и полезные видео, онлайн-ресурсы, которые мне необходимо посмотреть.
-
Шаблоны проектирования в Java https://new.vk.com/eignatik17?w=wall-16108331_98467
-
Инструменты для работы с БД Java https://new.vk.com/eignatik17?w=wall-30666517_1383234
-
Курсы по разработке интерфейсов https://new.vk.com/eignatik17?w=wall13674071_6751 (full stack я или кто?!))
-
Практические курсы по Java https://new.vk.com/eignatik17?w=wall13674071_6749
-
Подборки материалов по Java https://new.vk.com/eignatik17?w=wall13674071_6745
-
Regular expressions https://new.vk.com/wall-30666517_1376410 (да-да, теперь у нас проблемы)
-
Подробнее о null in Java https://new.vk.com/wall-30666517_1384348
-
Java EE https://new.vk.com/wall-30666517_1372049
-
Полезные материалы по Java https://new.vk.com/wall-30666517_1372129
-
Реактивное программирование Java https://new.vk.com/wall-30666517_1371132
-
Collection with interesting issues solvings https://www.reddit.com/r/learnprogramming/comments/4msr6f/heres_a_list_of_227_free_online_progra
-
Сборник материалов по работе на Java https://new.vk.com/wall-30666517_1370729
-
Полезные ссылки https://new.vk.com/wall-30666517_1368309
-
Подборка полезных видео https://new.vk.com/wall-30666517_1357048
-
10 interesting questions https://tproger.ru/translations/10-tricky-core-java-interview-coding/
-
Java 8th oportunities https://new.vk.com/wall-30666517_1367714
-
Java EE (the first chapter) https://new.vk.com/wall13674071_6720
-
Алгоритмы и т.д. https://new.vk.com/wall-30666517_1365994
-
Поговорим о погрешностях? https://new.vk.com/wall-30666517_1366010
-
Инструменты тестирования Java https://new.vk.com/wall-30666517_1366120
-
Доклад Oracle об оптимизации Java https://new.vk.com/wall-30666517_1363892
-
Подборка видеоуроков Java https://new.vk.com/wall-30666517_1364708
-
Java Collection (Advanced) https://new.vk.com/wall-30666517_1355600
-
Java Programming Advanced https://www.javacodegeeks.com/2016/05/top-10-advanced-java-talks-see-stay-relevant.html
-
Webinar Java Spring etc by dev.IntelliJ https://new.vk.com/wall-30666517_1359900
-
GIT https://new.vk.com/wall-30666517_1361316
-
Java Hints https://new.vk.com/wall-30666517_1361785
-
Git видеокурс https://www.youtube.com/watch?v=mpK_MYb38zs&list=PLoonZ8wII66iUm84o7nadL-oqINzBLk5g
-
Курс GeekBrains по Git
-
Основы тестирования https://www.youtube.com/watch?v=heAAs8gFHPw&list=PLY4rE9dstrJx9CnuzzHTThoslw568g5Ae
-
Полезные видео с канала https://www.youtube.com/user/b0noI/playlists
-
Design Patterns https://www.youtube.com/watch?v=k6oh9C_71mE&list=PLlsMRoVt5sTPgGbinwOVnaF1mxNeLAD7P
-
Продвинутый git https://www.youtube.com/watch?v=bA20a0zhm7M&list=PLIU76b8Cjem5B3sufBJ_KFTpKkMEvaTQR
-
Уроки по андроиду https://www.youtube.com/watch?v=mmUgcokRJ5k&list=PLIU76b8Cjem7oSU18zTKNfsyzrmf3Zubl
-
Полезное https://www.youtube.com/watch?v=cmN6FyZhDoI&list=PLIU76b8Cjem6NwisglQY6BqPBn9dTxuNJ
-
Хорошая статья по работе с GIT http://webhamster.ru/mytetrashare/index/mtb0/4049
-
цикл разработки http://webhamster.ru/mytetrashare/index/mtb0/13785878736tvke371rj
-
git rebase http://tonyganch.com/git/rebase/
-
git rebase 2 http://www.pvsm.ru/git/21978
-
Java2s http://java2s.com/
-
http://www.javenue.info/themes/ood
-
Проектирование классов и интерфейсов http://info.javarush.ru/fatesha/2016/01/24/%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2
-
Разработка веб-сервиса со Spring https://www.youtube.com/watch?v=e7swABdqOS4&list=PLlsMRoVt5sTNpihn4q4S4an2xpYkSA3RR
-
Regular expressions in Java http://www.javenue.info/post/43
-
Java 1000+ hours of videos https://habrahabr.ru/company/golovachcourses/blog/215275/
-
Библиотека алоритмов на Java https://github.com/indy256/codelibrary/tree/master/java/src
-
-
Опыт работы
на этом этапе для меня важно получить хороший опыт работы Java разработчиком (причём скорее всего опыт будет из разряда full stack)
-
Опыт учебной разработки
-
Довести свой хотя бы один проект до конца
-
Получить работу Junior Developer
-
Получить работу Middle Developer
-
Получить работу Senior Developer
-
Опыт участия в Open-Source проектов
-
-
Книги
Здесь я собираю список книг, которые мне нужно прочитать
-
Мэтт Вайсфельд - Объектно-ориентированное мышление
-
Патрик Нимейер - Философия Java
-
Г.Шилдт - Полное руководство Java
-
Р. Лафоре - Структуры данных и алгоритмы Java
-
Р.Мартин - Чистый код
-
Брюс Эккель - Thinking in Java
-
Иегуда Кац - Подробное руководство по продвинутому JavaScript
-
Шаблоны проектирования "Банда четырех" - Паттерны объектно-ориентированного программирования, паттерны проектирования
-
Мэтт Вайсфелд Разработка программного обеспечения рабочей группой
-
Роберт Сейджвик - Алгоритмы на Java
-
Варбуртон Р - Лямбда выражения в Java 8
-
Брукс, Мифический человеко-месяц
-
Фленэган - JS
-
Git для профессионалов
-
Шаблоны проектирования Enterprise приложений
-
Роберт Мартин - Идеальный программист
-
Фаулер - Программист-фанатик
-
Книга по прототипированию
-
Сила математического мышления
-
Кент Бэк - TDD
-
Ли Атчинсон - Масштабирование приложений
-
RXJava - Томас Нуркевич
-
-
Улучшить навыки разработки
-
Участие в проектах
-
Пройти 1 курс на Pluralsight
-
Пройти 3 курса на Pluralsight
-
Пройти 10 курсов на Pluralsight
-
Дочитать книги
-
-
Улучшить владение языками
-
Улучшить английский
-
Регулярно пользоваться сервисом italki для английского
-
Улучшить польский
-
- 17298
- 30 June 2016, 18:16
Don't miss new posts!
Subscribe for the Goal and follow through to its completion