Как правильно изучать фреймворки
Этот материал поможет понять, какую ценность представляют веб-фреймворки для начинающих и опытных разработчиков. Мы посмотрим, какие существуют фреймворки, какие задачи они решают и как среди них выбрать подходящие инструменты.
Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.
Веб-фреймворк — это каркас для написания веб-приложений. Он определяет структуру, задаёт правила и предоставляет необходимый набор инструментов для разработки.
Типы веб-фреймворков
Классифицировать фреймворки для веб-приложений можно по двум основаниям: задачам, которые они решают, и размеру.
Бэкенд-фреймворки
Это фреймворки веб-разработки, которые работают на серверной стороне. В основном они отвечают за отдельные, но критически важные части приложения, без которых оно не сможет нормально работать. Вот несколько самых популярных фреймворков, а также языки, с которыми они работают:
- Django — Python;
- Symfony, Laravel — PHP;
- Express.js — JavaScript;
- Ruby on Rails — Ruby.
Правила и архитектура серверных фреймворков не даёт возможности разработать веб-приложение с богатым интерфейсом. Они ограничены в своей функциональности, однако вы всё равно можете создавать простые страницы и разные формы. Также они могут формировать выходные данные и отвечать за безопасность в случае атак.
Фронтенд-фреймворки
Фронтенд-фреймворки отвечают за внешний вид веб-приложения. В отличие от серверных, они никак не связаны с логикой работы. Этот тип фреймворков работает в браузере. С их помощью можно улучшать и внедрять новые пользовательские интерфейсы, создавать разные анимации и одностраничные приложения. Вот некоторые из них:
- Angular;
- Vue.js;
- Svelte;
- React — формально это не фреймворк, а библиотека, но значение этого инструмента так велико, что его постоянно сравнивают с другими веб-фреймворками.
Все эти инструменты используют JavaScript.
Фуллстек-фреймворки
Если фреймворк решает задачи и на серверной, и на клиентской стороне, то он относится к категории фуллстек. В качестве примера можно назвать Meteor. Обе его стороны — серверная и клиентская — работают на JavaScript. Поэтому вы можете создавать и использовать для них один и тот же код. Следующая особенность — «режим реального времени». Когда вы что-то меняете в одном интерфейсе, изменения происходят и в остальных.
К фуллстек также относятся фреймворки Next.js и Nuxt. Первый создан поверх React.js, а второй работает на базе Vue.js. Такие веб-фреймворки могут быть сложными для начинающих.
Можно работать и с серверной, и с клиентской стороной веб-приложения
Фреймворки и микрофреймворки
Фреймворки веб-разработки отличаются по размеру. Существуют монструозные инструменты, которые предлагают решения для всего. Более легковесные варианты специализируются на решении конкретных задач. Такие фреймворки называются микрофреймворками. Их функциональность расширяется с помощью сторонних приложений. Вы можете создавать на их основе небольшие проекты или совместить микрофреймворк с большим фреймворком.
3–4 декабря, Онлайн, Беcплатно
Архитектура веб-фреймворков
Архитектура почти всех популярных веб-фреймворков основана на декомпозиции нескольких отдельных слоёв (приложения, модули и т.д.). Это означает, что вы можете расширять функциональность, исходя из своих потребностей, и использовать изменённую версию вместе с кодом фреймворка или добавлять сторонние приложения.
Существует множество open-source сообществ и коммерческих организаций, которые создают приложения или расширения для популярных фреймворков, например, Django REST Framework, ng-bootstrap и т.д.
MVC — Модель, Представление и Контроллер (Model-View-Controller) — три составляющих каждого веб-фреймворка.
Модель MVC используется во всех веб-фреймворках
- Модель содержит все данные и уровни бизнес-логики, её правила и функции.
- Представление отвечает за визуальное отображение данных.
- Контроллер преобразует входные данные в команды для Модели и Представления.
Они неотделимы друг от друга, поэтому важно как следует во всём разобраться, чтобы избежать ошибок во время работы приложения.
Особенности веб-фреймворков
Теперь давайте посмотрим на некоторые общие особенности, которые делают фреймворки для веб-приложений многофункциональными и удобными на практике.
Веб-кэширование — помогает хранить разные документы и позволяет избежать перегрузки сервера. Пользователи могут использовать его в различных системах при соблюдении нескольких условий. Он также работает на стороне сервера. Например, вы можете заметить ссылки на кэшированный контент на странице результатов поиска Google.
Скаффолдинг — веб-фреймворки могут автоматически сгенерировать типичные части приложения или даже всю структуру проекта, это важно для начинающих. Такой подход позволяет существенно увеличить скорость разработки и стандартизирует кодовую базу.
Система веб-шаблонов — набор разных методологий и программного обеспечения, реализованных для создания и развёртывания веб-страниц. Для обработки веб-шаблонов используются шаблонизаторы. Они являются инструментом фреймворка, отвечающим за веб-публикацию.
Безопасность — есть множество средств для идентификации и разрешения или отклонения доступа к различным функциям веб-фреймворка. Инструменты безопасности также помогают распознать профили, которые используют приложение, чтобы избежать кликджекинга — механизма обмана, при котором злоумышленник получает доступ к конфиденциальной информации пользователя и даже его устройствам.
Сопоставление URL — если вы хотите упростить индексацию поисковыми движками, в то же время используя привлекательное название для сайта, то эта функция фреймворков — то, что вам нужно. Также сопоставление URL может облегчить доступ к адресам ваших сайтов.
Приложения — фреймворки позволяют разрабатывать разные веб-приложения. Наиболее распространённые инструменты используются для создания блогов, форумов, универсальных веб-сайтов, систем управления контентом (CMS)
Как выбрать подходящий веб-фреймворк
Перечисленная функциональность свойственна всем фреймворкам. Но их широкий ассортимент приводит к тому, что разработчик теряется и не может выбрать конкретный инструмент. Сузить круг помогают следующие критерии:
- предпочитаемый язык;
- возможности фреймворка.
Полезно также изучить сравнение нескольких фреймворков. Например, вот сопоставление возможностей Django и Ruby on Rails.
Веб-фреймворки для начинающих не существуют. Инструменты одинаково подходят для разработчиков разного уровня. Конечно, лучше использовать фреймворки, которые проще изучить. Однако порой написанные по правилам старой школы и редко используемые, но подходящие инструменты, могут привести вас к успеху.
Как научиться пользоваться веб-фреймворками
Научиться пользоваться фреймворками можно самостоятельно. Чтобы найти руководство по веб-фреймворкам, изучите их документацию. Главный плюс официальных источников — актуальность. В таких обучающих материалах используются возможности последних версий фреймворков.
Если в документации нет простых гайдов, можно поискать их на других площадках. Например, на freeCodeCamp есть бесплатный курс по React, а на сайте Tutorialspoint — туториалы по разным языкам и технологиям.
Неплохой источник информации — YouTube. На видеохостинге выкладывают обзоры и пошаговые руководства. Просмотр таких роликов поможет выбрать подходящий фреймворк, если вы пока сомневаетесь. Не забывайте и про StackOverflow. Но туда нужно приходить уже с конкретными вопросами, которые возникли при изучении или использовании фреймворка.
Есть много разных способов выучить язык, и в этой статье вы узнаете, что я считаю лучшим способом для обучения чему-то новому.
Программирование сложное, и, как и все в этом мире, вы можете научиться делать это различными способами.
Эта статья предполагает, что вы уже обладаете хотя бы некоторыми знаниями в области программирования, потому что стратегия, которой я собираюсь поделиться с вами, предполагает, что вы знаете основы. Например, если вы не знаете, что такое «оператор if» или «цикл for», добавьте эту страницу в закладки и вернитесь, как только вы получите некоторый опыт, потому что этот совет может принести вам больше вреда, чем пользы.
Если вы не знаете, как выучить язык программирования, то вот вам статья - Как выучить язык программирования
Как вы учитесь лучше всего?
Не удивительно, что люди учатся по-разному, поэтому первое, что вы должны сделать, это определить, как вы учитесь лучше всего.
Я ничего не знаю о вас, но я не могу просто открыть книгу на 800 страниц и прочитать ее от корки до корки, а затем сказать «Я знаю кунг-фу!». Как бы я ни хотел, я просто не могу.
Если вы хотите поговорить об общих утверждениях, это известный факт, что большинство людей учатся лучше всего. Вот почему весь мой учебный материал сильно загружен примерами.
Лично я учусь лучше всего на примерах. Я в значительной степени человек типа «Обезьяна видит, обезьяна делает». Покажите мне, как это сделать, а затем позвольте мне попрактиковаться над этим, и я в конечном итоге выучу это.
«Делающая» часть имеет решающее значение. Вы не можете просто читать примеры и ожидать отличных результатов. Чем больше вы практикуетесь, тем лучше вы это сделаете.
Когда я учу себя другим задачам, не связанным с программированием, таким как копирайтинг, я начинаю писать письма о продаже от известных копирайтеров. Я могу не делать это упражнение в течение какого-то времени, но я смогу вспомнить фрагменты всех рекламных объявлений, которые я написал на бумаге. Я не могу объяснить почему, но сам факт их написания действительно помог мне сохранить информацию.
Что вы хотите создать?
Позвольте мне задать вам простой вопрос: что вы хотите создать? Если вы не можете ответить на этот вопрос решительно, то, возможно, захотите сделать шаг назад и спросить себя, почему вы хотите изучать новый язык программирования или веб-среду. Вы можете подумать, что это глупый вопрос, но это действительно самый важный вопрос, который вы можете задать себе, потому что, если у вас нет ничего, чего-бы вы хотели создать, вы наверное изучаете новый язык программирования или фреймворк по неправильным причинам, и в итоге это будет сильно мешать вашему прогрессу. В конце дня вам нужно искренне полюбить то, что вы делаете, а также иметь цель, почему вы это делаете.
Ваше подсознание умнее вас
Если вы действительно не верите в то, что делаете, то вы найдете способы избежать этого. Это в значительной степени то, как все формы промедления выходят и останавливают вас в своих следах - стиль Медузы. Я помню, как однажды разговаривал с другом о том, как разделить свой день на определенные занятия, и я помню, что говорил, что буду тратить 1 час в день на чтение конкретной темы, о которой мне действительно было интересно узнать. Он отвечал мне: «Если бы ты нашел свою вторую половинку, ты бы произвольно ограничил свое время с ней?». Скорее всего, вы бы смеялись и говорили «конечно нет».
Подумай-те об этом. Если вам действительно нравится что-то делать, то с какой стати вы игнорируете этого? Это не имеет смысла. Я понимаю, что большинству из нас приходится делать то, что нам не нравится, и все время жертвовать временем, и именно поэтому так важно научиться быстро учиться.
Вот как я выучил каждый язык, который я знаю
Позвольте мне поделиться тем, как я узнал почти все, что я знаю о программировании. Если вы не знаете, я разработчик-самоучка и считаю, что у меня есть неутолимая жажда общих знаний.
2600 / AOL / Visual Basic 6
Все началось в конце 1990-х годов. Здесь я, подросток-панк, слушал Slayer на 11-м томе, когда собирался на 2600 встреч в Нью-Йорке. Бродит по улицам с различными распечатками и поваренной книгой анархистов. Я думал, что это было увлекательно, и даже однажды создал Redbox (который работал в моей старой школе). Я до сих пор помню, как столкнулся с техником AT & T, который занимался модернизацией таксофонов и говорил с ним об этом. В любом случае, в то время я иногда заходил на AOL, и в то время люди создавали такие инструменты, как AOHell, которая была вредоносной программой, которая позволяла вам делать такие вещи, как стучать по людям (ошеломлять), наводнять чат и делать другие сомнительные вещи. Все, что я думал про себя, было: «Как в мире люди делают это?». Тогда не было ни Google, ни бесконечного множества учебников. Все, что у меня было, - это смутные 1 лайнеры типа «VB6», которые говорили люди в сомнительных чатах.
Visual Basic 6
В этот момент, начался бум интернета. Веб-сайты становились реальностью, поэтому, естественно, я хотел создать свой собственный веб-сайт. Моей платформой выбора тогда был Geocities. На моей первой странице было все. Анимированные GIF-файлы, находящиеся в стадии разработки, крупье, писающий на кнопке Internet Explorer и MIDI-саундтрек темы «Экзорцист». Это был самый крутой сайт в интернете (по крайней мере, на мой взгляд). Я перечислил все мои любимые группы, программы, 2600 приключений, и у меня даже была гостевая книга. Тенденция продолжается. Я хотел иметь свое собственное место во всемирной паутине, поэтому я выучил HTML. Никогда за миллион лет я не думал, что «чертовски чертовски создание таблицы HTML звучит как великолепный способ провести вечер». Нет, это было больше похоже на «Я хочу перечислить свои инструменты AOL в сетке, лучше понять это».
ASP Classic
В конце концов я действительно увлекся видеоигрой под названием Quake 2 (и позже 3). Я был довольно хорош в этом и вступил в «клан». По сути, это была группа из нас, кто играл вместе на регулярной основе. Тогда было не так уж много мест, где можно было бы запланировать игры, чтобы играть против других кланов. Единственное место, которое существовало, было OGL, но их платформа была отстойной. Один из моих приятелей по Quake изучал эту штуку под названием ASP, и мы решили создать свою собственную онлайн-игру. Он занимался программированием, а я - дизайном. Здесь я действительно оттачивал свои навыки HTML и дизайна. Это была довольно сложная платформа для своего времени. Это была постоянная лестница, в которой команды могли автоматически планировать и сообщать о своих играх, загружать демонстрации (запись матча) и оценивать команды по победам / поражениям. Я считаю, что на пике у нас было что-то вроде 14 000 участников, и это считалось «тем местом», куда можно пойти, если вы хотите соревноваться. Время шло, я постепенно начал брать ASP, потому что хотел помочь моему другу построить платформу. Я начал с создания сценариев, которые были дополнениями к сайту. Я до сих пор помню, как делал какой-нибудь генератор конфигурации сервера Quake, который имел около 30 000 применений. Я также потратил некоторое время на создание клановых веб-страниц для других команд, и это был мой первый опыт работы на фрилансе. Иногда мне платили деньгами, а иногда я делал это ради веселья. Опять же, моя точка зрения здесь, у меня было очень сильное желание что-то построить в этом случае. Этот проект длился несколько лет, пока Quake 3 не умер. Я думаю, вы могли бы сказать, что это был мой первый опыт применения SAAS, за исключением того, что мы не взимали и не зарабатывали деньги.
Выводы для применения этого в вашей жизни
Вот 4 основные вещи, которые вы можете использовать для ускорения процесса обучения:
Не бойтесь «тратить» время
Иногда я слышу от студентов, что они не предпринимают никаких действий, потому что считают, что это приведет к потере времени. «Зачем это делать, если я могу просто прочитать об этом или посмотреть?». У меня, безусловно, тоже есть эти мысли, но потом я оглядываюсь назад на некоторые из моих лучших моментов в жизни, и они полны действий, а не зрителей. Это быстро выводит меня из этого. Тратить 3 часа на освоение нового языка программирования - не трата времени. Вы формируете мнения, основанные на реальной обратной связи от человека, который имеет наибольшее значение (вы!). Это, безусловно, лучше, чем тратить 10 раз на пассивный просмотр чего-либо на Youtube, задаваясь вопросом «что если» или постоянно пребывая в состоянии сомнения или нерешительности. Просто погрузитесь и постройте вещи. Если вы ищете конкретные стратегии для начала обучения / построения, вот еще одна статья, которую я написал на тему разработки, основанной на вопросах.
Создавайте вещи, которые вас интересуют
Для меня видеоигры были (и до сих пор в некоторой степени) большой частью моей жизни. Это одно из моих хобби. Написание приложений и веб-страниц вокруг этих игр было для меня очень полезным опытом, потому что это было то, во что я верил, и это напрямую улучшало мой игровой опыт. Если вы увлекаетесь играми, попробуйте сделать это тоже. Может быть, вы могли бы создать веб-приложение для построения дерева навыков или какой-либо инструмент организации информации. Что бы ни имело смысл для игр, в которые вы играете. Если вы не увлекаетесь видеоиграми, это не проблема. Просто выберите то, что вас интересует. Например, если вы увлекаетесь боулингом и находитесь в лиге, создайте свою собственную лестницу отслеживания / ранжирования. Как только вы добьетесь успеха, возможно, управляйте им люди, отвечающие за лигу, и следующее, что вы знаете, у вас может быть что-то, что вы можете продать, или, по крайней мере, десятки или сотни других людей будут использовать это. Это отличный опыт.
Полностью поглоти себя в их мире
Вы часто слышите, что люди, которые отправляются в другую страну, быстрее всего выбирают иностранный язык. Это потому, что они полностью поглощены новой средой. Вы должны приспособиться, или вы собираетесь бороться / умереть. С языками программирования или технологиями не отличается. Вы должны писать код как можно больше, посещать встречи при каждой возможности и ассимилироваться с экосистемой этой технологии. Дайте себе разрешение сказать «фу» медиа-развлечениям. Например, вам действительно нужно смотреть 3 часа телевидения каждую ночь? Конечно, нет. Вместо этого потратьте 1,5 часа на кодирование, а затем посмотрите фильм или что-то на Netflix, если вам действительно нужно расслабиться.
Иногда стоит платить за знания
Проблемы, которые у нас с вами сегодня, не уникальны. Те же мысли и неопределенности, которые преследуют ваши мечты, происходили с людьми тысячи лет назад, просто в несколько ином контексте. Вы не первый человек, который пытается узнать то, что вы пытаетесь выучить, поэтому не бойтесь платить за информацию. Самое замечательное в плате за информацию - это то, что часто это путешествие во времени. То, что вам может потребоваться 6 месяцев, чтобы выяснить, было полностью решено и задокументировано кем-то еще за много лун до вас. Воспользуйтесь этими ситуациями, когда они придут к вам, потому что время - это то, что вы не можете вернуть. У вас всегда будут способы заработать больше. Трата 10 или 100 долларов на курс, который экономит ваши часы, полностью стоит того. И я говорю это не просто потому, что я продаю онлайн-курсы. Этот пост был в моей голове за годы до того, как я начал создавать курсы (что совсем недавно было в общем плане), и я тоже плачу за учебные материалы (книги, другие курсы и т. Д.).
Разработчик, преподаватель и автор курсов по программированию Билл Сорор опубликовал в блоге FreeCodeCamp подробную инструкцию для тех, кто хочет научиться веб-разработке с нуля. В каждому пункте Сорор приводит ссылки на обучающие материалы и рассказывает о том, для чего нужен тот или иной язык программирования или фреймворк.
По словам Сорора, он занимался написанием кода в течение 20 лет. Свою инструкцию он разделил на несколько разделов исходя из целей обучения — для базового изучения языков программирования и получения углубленных знаний по отдельным областям разработки.
«Я решил научиться программированию. Мне нравится веб, но я не знаю, с чего начать»
Как и в любой другой дисциплине, изучение программирования нужно начать с основ всех областей веб-разработки — часто это называют «full stack». «Это поможет определить область, в которой вам интереснее обучаться, и даст базовые знания для старта», — пишет Сорор.
Основы HTML
Разработчик советует начать с изучения основ HTML. «Начав с этого вы освоите разработку пользовательских интерфейсов и взаимодействие с ними. Кроме того, вы сразу увидите результат работы вашего кода», — отмечает преподаватель.
Сорор приводит ссылки на обучающие материалы по изучению HTML:
«Я знаю основы HTML»
Далее Сорор советует приступить у изучению основ JavaScript.
Основы JavaScript
«JavaScript — язык веба, все популярные браузеры (Chrome, Firefox, Safari, IE) имеют встроенную поддержку JavaScript. Каждый сайт или веб-приложение, которым вы пользуетесь, наверняка имеет большое количество JavaScript-кода внутри. Кроме того: язык сейчас становится популярным и на других платформах — например, серверах, рабочих столах и устройствах».
Основные ссылки для изучения JavaScript:
«Я знаю основы JavaScript и HTML»
Далее Сорор предлагает перейти к изучению CSS для настройки внешнего вида HTML-элементов. Для этого можно воспользоваться бесплатным учебником от Mozilla для обучения основам и сайтом CSS-Tricks для решения основных проблем.
Бэкенд
«К этому моменты вы получили знания для так называемой "фронтэнд-разработки". Теперь можно переключиться на "бэкенд". Это код, которые работает на сервере», — пишет Сорор. — Существует множество бэкенд-языков, но так как вы уже знакомы с JavaScript, я рекомендую изучить Node JS (программная платформа — прим. ред.). В дополнение к Node JS можно изучить Express и Mongo DB».
Express — библиотека, которая позволяет облегчить взаимодействие Node JS с веб-сервером. Mongo DB — база данных для хранения и получения информации.
Бесплатные ресурсы для изучения Node JS, Express и Mongo DB.
«Мне нужно выбрать между фронтэнд, бэкенд и фулстэк-разработкой»
После изучения Node JS Сорор предлагает определиться со специализацией в разработке: одна часть связана с взаимодействием с пользователем, вторая — с взаимодействием с данными. Для того, чтобы стать фулстэк-разработчиком, необходимо изучить обе части: фронтэнд и бэкенд.
«Я хочу стать фронтэнд-разработчиком и знаю основы JavaScript, HTML и CSS»
Помимо знаний JavaScript, HTML и CSS фронтэнд-разработчик должен разбираться в нескольких наиболее важных фреймворках.
Глубокое изучение HTML
Глубокое изучение клиентского JavaScript
Для более подробного изучения языка JavaScript Сорор рекомендует серию книг «Вы не знаете JavaScript» Кайла Симпсона. Автор опубликовал всю серию для бесплатного чтения онлайн:
- «Up & Going».
- «Scope & Closures».
- «this & Object Prototypes».
- «Types & Grammar».
- «Async & Performance».
- «ES6 & Beyond».
Также разработчик рекомендует книгу MDN JavaScript Reference.
jQuery
jQuery — самая популярная JavaScript-библиотека всех времен. Сорор рекомендует изучать её с помощью курса на FreeCodeCamp. Далее можно перейти к официальному руководству jQuery.
Также в изучении пригодится API-документация jQuery.
JS-фреймворки
Фреймворки позволяют упростить работу с языком разработки и решать крупные проблемы используя готовую технологию. На рынке существует огромное количество фреймворков из-за чрезмерной популярности JavaScript, пишет Сорор.
React JS
React был разработан Facebook и работает с архитектурой Flux. Это JavaScript-библиотека для создания интерфейсов. Недавно React обошел по популярности другую распространенную библиотеку Angular, поэтому лучше начать изучение фреймворков именно с него, отмечает Сорор. Бесплатный курс для изучения React.
Angular 1 и 2
Angular — разработка Google. Фреймворк по-прежнему популярен среди разработчиков. После анонса Angular Google решил полностью переписать фреймворк и запустил Angular 2, поэтому получилось две совершенно разных разработки с одинаковым названием.
Фреймворк Angular 1 можно изучить бесплатно на Code School. Познакомиться с Angular 2 можно при помощи бесплатных видео.
Ember JS
Фреймворк не такой мощный, как разработки Google и Facebook, однако он набирает популярность среди разработчиков. Официальная документация Ember JS.
Далее Сорор советует перейти к изучению CSS-фреймворков — таких как Bootstrap и Material:
«Я хочу стать бэкенд-разработчиком»
«В бэкенд-разработке существует множество языков, у каждого есть свои минусы и плюсы», — пишет преподаватель. Он также приводит график их популярности за последние 10 лет:
Языки программирования, обозначенные зеленой рамкой, — те, на которых стоит сфокусировать своё внимание, считает Сорор.
Очень популярный язык программирования, разработанный компанией Sun Microsystems (сейчас принадлежит Oracle). Java используется для разработки приложений для Android. Его также можно использовать для создания компьютерных и веб-приложений.
Так как это популярный язык среди разработчиков, в сети можно найти большое количество инструкций к нему. Сорор рекомендует начать с курса для начинающих.
Python
За Python нет никакого крупного бренда. Однако этот язык позволяет вести быструю разработку. Сайт с бесплатными уроками для изучения Python.
Среди разработчиков есть много поклонников Ruby — они активно рекламируют и восторгаются этим языком, пишет Сорор. Однако его популярность растет медленными темпами. По сути язык является смесью функционального и императивного программирования.
Лучшее место для изучения Ruby — RubyMonk, считает разработчик.
Практика
Перед выполнением практических задач Сорор рекомендует сразу создать профиль на сайте GitHub — онлайн-репозитории для хранения, управления и публикации кода. Знакомство с платформой можно начать с инструкции “Hello World" или интерактивного курса.
Новые языки программирования появляются чуть ли не каждый день. Dart, Go, Kotlin, Elixir и многие другие! В таких условиях постоянно учиться непросто, но есть некоторые советы, которые помогут вам.
Есть несколько шагов, которые помогут вам ускорить процесс обучения и повысить уровень владения языком программирования или средой разработки.
Сначала освойте язык. Потом осваивайте фреймворки.
Некоторые зачастую стремятся сразу изучать такие фреймворки как Ruby on Rails, не познакомившись с языком программирования, в данном случае с Ruby. Это огромная проблема, особенно когда речь идет о Rails, которая является для Ruby его DSL (предметно-ориентированным языком программирования).
Решение трудностей программирования.
Существует множество веб-сайтов, таких как LeetCode, HackerRank и Project Euler, которые могут помочь вам достичь свободного владения языком программирования. Вы узнаете с их помощью многое о синтаксисе, библиотеках и логике. Они являются отличный подспорьем при подготовке к интервью с работодателем.
Постоянно обращайтесь на StackOverflow и Code Review.
Когда вы начнете решать задачи по программирования, вы сталкиваетесь с определёнными проблемами. Чтобы разрешить их, вы можете обратиться на StackOverflow, веб-сайт, который не нуждается в представлении.
Недавно я обратился туда за анализом кода, нажмите сюда, если вы хотите увидеть результаты моего обращения.
Просматривайте как можно больше кода.
GitHub имеет важное значение для ускорения обучения. На нем вы найдете большое количество кода на изучаемом вами языке программирования. А если вы захотите внести и свой вклад, это намного повысит эффективность вашего обучения.
Установите инструмент статического анализа кода.
Linter’ы ‑ это инструменты статического анализа программного кода, которые показывают ошибки, идиоматические и стилистические нарушения и ошибки кодирования, а также многое другое. Инструмент статического анализ укажет вам на ошибку, во время исправления которой вы как раз и учитесь программировать. Для Ruby в качестве linter’а я использую RuboCop.
Пишите код идиоматически.
Чтобы проиллюстрировать суть проблемы, предлагаю вам взглянуть на следующий код на Python (выражаю благодарность Oleksandr Kaleniuk):
по сравнению с питоновским способом (идиоматический Python):
Чтобы узнать, как писать код идиоматически, вы должны прочитать много кода, написанного профессионалами.
Создайте что-нибудь!
Это действительно здорово. Основная цель обучения языку программирования состоит в том, чтобы что-то создать с его помощью. Когда я изучал Ruby, я использовал фреймворк Rails для создания блога, приложения todo, клонирования Wikipedia и вэб-сайта Rotten Tomatoes.
Создание чего-нибудь будет способствовать развитию каждого аспекта вашего обучения.
Никогда не сдавайтесь.
Путь изучения языка программирования может быть очень тяжелым. Вам нужно время и сосредоточенность, чтобы добиться успеха. Не сдавайтесь, потому что вы, может быть, уже гораздо ближе к цели, чем вам кажется. Если вы застряли, обратитесь за помощью. Для этого имеется множество ресурсов.
Путь джедая: while(true) => study()
Дело в том, что мы никогда не узнаем все о языке, и это будет подталкивать нас постоянно учиться.
Вы можете быть очень хороши в чем-то, стать в этом экспертом, но всегда будет оставаться нечто большее, чему вам нужно будет еще научиться.
Да прибудет с тобой сила! Оставляйте свои комментарий, расскажите, что еще, по вашему мнению, помогает изучать новые языки программирования.
Читайте также: