Stanislav Zhornyak

+9
с 2018
0 подписчиков
26 подписок

Rimworld - это та еще жемчужига, возможно запуститься, только потом меня не винить за бесцельно потраченные месяцы.
Factorio - очень крутая игра, она должна запускаться на тапке.
Prison Architect - тоже неплохо.

1

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

Но если бы вчера вы работали с веб приложениями, а завтра с дата-майнингом, послезавтра с фронтендом и потом программировали бы микроконтроллеры - то это слишком много знаний для одной головы, если только эта голова не светла настолько, что затмевает солнце =) Такие люди есть, конечно, но их единицы.

Но в целом если область разработки одинакова, то тот же Angular (даже если брать только вьюху) отличается от React, но опыт переносится, пусть вы будете писать хоть на jquery-ui или Dojo.
Dependency injection, data-binding, dirty-checking, virtual-dom, reactive or functional programming - паттерны\знания не связанные с конкретным фреймворком.

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

Я работаю frontend девом больше семи лет, по образованию - гуманитарий. Было тяжело, учился по сайтам\книжкам и больше всего - на практике. Первый год моей работы был адом, но это быстро стало меняться к лучшему с опытом. К сожалению у меня почти не было коллег, которые могли бы меня чему-то обучить, приходилось расти самому, что помогало менять работу и вырастать в зарплате. В итоге благодаря работе я смог уехать в более развитую страну, чем та, в которой я был.

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

Сейчас много всяких курсов, вебинаров, книг, сайтов, постов. С ними есть одна проблема - новичку тяжело выделить из этого шлак, а его слишком много. Кроме полной чуши в статьях и книгах (именно так), есть еще просто ненужные вещи, которые нет необходимости знать сейчас или вообще. И пусть в меня кидают тапком, но фронту не нужно знать 100500 разных алгоритмов, функциональное программирование, архитектурные подходы и все дизайн паттерны мира, это приходит с опытом, постепенно, когда ты достаточно разбираешься в вопросе, чтобы понимать, что тебе нужно, а что нет. Тем более не все хотят быть продвинутыми разработчиками, некоторых устраивает какой-то определенный уровень, на котором они и останавливаются - что тоже классно. Это такой же выбор, как не быть тимлидом, потому что ты не хочешь ебаться.

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

- htmlbook.ru - потрясающий сайт со всем, что нужно знать по html\css, там есть отличные пдфки, которые меня очень спасали первый год моей работы
- javascript.ru - там не все полезно, но первые шаги в javascript я сделал именно благодаря этому сайту, очень рекомендую
- https://frontendmasters.com/books/javascript-enlightenment/ - потрясающая книга, которая подробно объясняет как работает и как пользоваться JS.
- https://css-tricks.com/ - полезный сайт со всякими статейками по фронту, часто заглядываю туда, забывая как работает flex-box, например (https://css-tricks.com/snippets/css/a-guide-to-flexbox/).
- http://getbem.com/ - это было открытие для меня в свое время. Не углубляйся сильно в тулзы, просто начни писать классы в стиле БЭМ, этого достаточно.

Я бы сказал, что это - первые шаги, после которых уже понимаешь, что читать дальше, углубляясь в разработку, вот просто несколько примеров, но там ты уже подрастешь и сможешь понимать, что тебе нужно сам:
https://addyosmani.com/resources/essentialjsdesignpatterns/book/index.htmlhttps://github.com/MostlyAdequate/mostly-adequate-guide
https://github.com/getify/You-Dont-Know-JS

И гайды по React, Angular (искренне не рекомендую этот фреймворк, сломаешь мозг без выгоды для себя), Redux, RxJS, SASS, Typescript и т.д.

И на заметку - общие советы, которые я бы дал себе тогда, семь лет назад, это несколько предвзято и персонально, но вдруг кому будет интересно:

- Не бойся, это несложно. Если это сложно, то чего-то не знаешь - это нормально, узнаешь позже.
- Слушай только тех, кто умеет аргументировать, не следуй чьим-то словам слепо, но уважай опыт. Бывает у человека просто нет времени\умения объяснить, но он прав и надо делать так, как он говорит. Такое понимание придет с опытом.
- Не недооценивай HTML\CSS, знания этих языков важны не менее, чем JS. Без них ты не можешь быть полноценным разработчиком в этой сфере. (Привет backend\fullstack программистам, которые писали фронт, который я потом переделывал).
- Спрашивай, постоянно, не бойся никого задолбать - они скажут.
- Тянись к людям, которые знают больше, причем не обязательно к фронтам. Я много узнал именно он синьоров в бэке.
- Подписывайся на людей, которые двигают твою сферу, лучше всего юзать Twitter. Они постоянно постят что-то интересное и полезное.
- Читай статьи, а не книги. Книги же читай между строк, останавливаясь только там, где тебе нужно или где ты что-то не понимаешь. Твое время и концентрация ограничены.
- Всегда пиши код так, будто он на века, старайся продумывать структуры данных, разделять код на слои, даже не зная паттернов, потом ты их встретишь и поймешь например, что тут ты использовал фабрику, а это, скажем - фасады. Но ищи грань, если конфигурация переиспользуемого слоя становится больше кода самого слоя - то надо переделывать.
- А вот переделывать не бойся, постоянно рефаторь свой код, причем даже если тебе не выделяют на это время, начальству необязательно знать, а коллеги зачастую поддержат.
- Учи Typescript, строго типизированный язык всегда лучше в долгосрочной перспективе, как для проекта, так и для себя.
- Получай больше удовольствия от работы, не кранчи, если есть возможность этого избежать.

Если есть вопросы, постараюсь ответить.

8