Как стать Front-End разработчиком в 2022 году в Узбекистане
Tags: javascript, frontend, career, middleit
Published: 2022-01-18 06:53:22

Окей, у меня стоит задача научить своего брата фронтенд-разработку и попутно решил написать пост об этом. 

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

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

Но суть не в этом. Давайте вернемся к теме. 

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

Я смотрю на людей, которые добиваются успеха в своим 23-25 и задаюсь вопросом: **насколько дальше я мог бы продвинуться, если б начало было лучше?**
Теперь, когда я стал профессионалом (какой-же я скромный да?😊), я хочу поделиться с тобой брат мой (Асрор)  и с вами тем, как, оглядываясь назад, я должен был войти в этот мир и как правильно научиться программировать.


### Первое, что нам нужно это понять основные концепции.

***Смотрите объясняю на пальцах.***

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

Окей и так предлагаю ознакомиться с постом(на английском), которая написала нам Аманда Фосетт: [Руководство для начинающих по веб-разработке](https://www.educative.io/blog/beginner-guide-to-web-dev)
P.S:  я тоже не дружу с английским, но, к счастью, есть переводчик страница, переводим страницу и читаем.


### Второе, нужно крепко научиться CSS, он кажется простим, но я б посоветовал больше времени тратить на него.

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

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

Понимаете? Вы можете так же столкнуться с такими проблемами. Итог, я получу отпуск в этом году и пойду учить СSS, то есть вы по любому должны будите его выучить, если хотите выделяться среди серой толпы и смело назвать себя профессионалом. 

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

Я пока выбираю какой курс купить для брата, чтобы он закрыл все проблемы связанные с HTML и CSS. Когда найду и куплю, я поделюсь ссылкой на курс ([тут](https://www.udemy.com/course/web-coder/))Update. А пока оставим как есть. 


### Третье и немало важная часть. Вы должны освоить на хорошем уровне ванильный JavaScript.

Не понимаю почему, но пошла тенденция сейчас учить сразу  [React ](https://ru.reactjs.org/) или  [TypeScript](https://www.typescriptlang.org/) , но ведь начав с фреймворков или библиотек,  вы  максимум чему научитесь, так это то, как они работают, что писать и куда писать и не более. 

Вы не поймете, как сработала функция за капотом, почему у вас undefined вместо результатов функции. Почему у вас не отрабатываются обработчики и т.д.
Правильное понимание ванильного JS знакомит вас с его основной механикой и объясняет, почему язык работает именно так.

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

Когда я сидел изучал JS я просидел не понимая как сработала простая итерация и не понимая почему если считаем с 0, то i.length равно 5, а не 4. 

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

Но я продолжал искать решения чтобы четко понять для себя.
Ну комон, Ислам, действительно что сложного длина равна количеству элементов в массиве? 

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

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

Я бы порекомендовал вам  [этот курс](https://www.udemy.com/course/fundamental-javascript/) , который я прохожу сейчас, он даст вам все, что вам нужно знать о языке. 
После этого, если вы хотите лучше знания о JavaScript вам стоит прочитать бесплатную книгу под названием  [«Вы не знаете JS» ](https://github.com/getify/You-Dont-Know-JS)   спасибо Садриддину, что поделился этой книгой со мной. 

### Четвертое: и так кульминация моей карьеры 😊 

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

Я покупал курсы и проходил их, но ничего не практиковал и тупо копировал что видел в видео. Потом снова покупал курсы, снова и снова. Почему спросите вы у меня? Потому, что мне казалось я прогрессирую, следуя видео, казалось, что я знаю достаточно, потому что я мог написать что-то опередив видео. Иллюзия была на столько сильна в то время.  

Мне мой наставник по бекэнд разработке Мирзохид всегда твердит:

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


 Я осознаю, на сколько он был прав.  Время цитат умных людей:  

> 
Действие ведет к обучению, обучение ведет к неудаче, а неудача в конечном итоге приводит к успеху. 



### Пятое: сосредоточиться на одном фреймворке

За три года профессионального опыта я работал со многими интерфейсным фреймворками. Если так взять каждый день появляется новый. И очень интересно попробовать, и перейти на новую технологию, но после дел с Google, и со временем я узнал, что большинство из этих новинок не доживет вообще. Те, которые я думал взлетят сейчас исчезли их почти никто не используют. 

Если спросите как обстоят дела сегодня, то я бы выбрал и  освоил бы один широко распространенный фреймворк. И если спросите моё мнение, я бы порекомендовал бы вам  [React](https://ru.reactjs.org/) , так как он не исчезнет в ближайшее время и будет продолжать расти как наиболее распространенная среда для веб-разработки. 

### Шестое: К сожалению большинство программистов не владеют практикой кодирования на собеседовании (включая меня😊) 

Я как-то раз пришел в банк на собеседовании и задали мне простую задачу, я просто потерял уверенность в себе и очень разволновался, что забыл вообще, как решить задачу я просидел пол часа и отпустив руки сказал, что я волнуюсь, но могу показать решение, потому что я решал подобные задачи в  [leetcode](leetcode.com) . Вот поэтому я открыл эту тему и включил его в этот пост. 

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

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

Можете почитать о   [интервью по system design](https://habr.com/ru/company/gms/blog/516718/) 

**Итог: ** Я до сих пор задаюсь вопросом, сколько еще я мог бы знать, если бы я начал с правильных шагов в своей карьере, я хотел бы, чтобы у меня был кто-то, кто поддержал бы меня с самого первого шага, который я когда-либо делал в этой области.

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




> 
**Как всегда, я открыт для любых ваших предложений**