Обучение программированию с нуля: с чего начать изучение в домашних условиях
Каждый раз, с трудом преодолевая жизненные преграды, хочется взять и перекроить этот мир под себя. К сожалению, мы не рождены творцами этой вселенной. Тем, кто хочет удовлетворить свои амбиции создателя, остается лишь виртуальный мир.
Хотя для творения здесь понадобится не столько волшебство и знание рун, сколько знание основ программирования. Поэтому для всех начинающих творцов виртуальной реальности мы поведаем о том, как научиться программировать.
- Что нужно знать «чайнику»
- Особенности обучения программированию на постсоветском пространстве
- С какого языка начать изучать программирование
- Программы (компиляторы) для программирования
- Тенденции на рынке программирования
Как бы ни хотелось этого признавать, но в реальности программирование является не таким уж волшебным делом. Создание кода порой можно сравнить с хождением босыми ногами по морскому дну, устланному острыми каменными обломками.
Чтобы стать программистом, нужно быть не только умным, но еще терпеливым и настырным. Обучение программированию всегда сопровождается головой болью, красными от недосыпания глазами и отрешенным взглядом. Именно по нему можно легко узнать программиста.
Многие начинающие обучение считают написание кода чуть ли не самой романтической профессией. Особенно увеличилось количество желающих познать программирование после просмотра фильма «Матрица». Именно главный герой этой картины Нео подтолкнул многих к становлению на путь постижения программных наук:
Но большая часть начавших изучение бросают его уже через несколько недель. И основной причиной этого является неправильно выбранное направление обучения, методика или даже учебник по программированию.
После развала СССР все отечественные ВУЗы долгое время даже и не пытались перекроить свою систему обучения под потребности современного рынка. Не являлись исключением из этого правила и технические ВУЗы.
Программирования как отдельной отрасли и специализации не существовало как таковой. Его основы преподавались лишь как привязка к другим инженерным дисциплинам. И даже те крохи знаний, которые давались студентам в этой области, не соответствовали современным стандартам и утратили свою актуальность еще 20-30 лет назад.
В странах бывшего СССР основным языком программирования, преподаваемым в технических ВУЗах, был Бейсик.
Ситуация кардинально не изменилась и через 10 лет. Лишь некоторые учебные заведения, учуяв веяния нового времени, в начале двухтысячных года начали перекраивать свое обучение под мировые стандарты. И только с этого момента программирование стало восприниматься как отдельная профессия и специализация обучения:
В это же время стали появляться различные специализированные коммерческие курсы и учебные заведения. Но качество преподавания и даваемых в них знаний находились на крайне низком уровне. Не хватало грамотных профессионалов, способных обучить новичков не только теоретическим знаниям, но и практическим навыкам программирования.
А это в профессии программиста является наиболее важным аспектом. Поэтому большинство из сегодняшних гуру российской IT-индустрии начинали свое обучение программированию с нуля самостоятельно.
В некоторой мере такая тенденция сохраняется и по сей день. Хотя в наше время количество профессионалов, занимающихся преподаванием, заметно возросло.
Постижение программных наук характеризуется не только тяжелым обучением, но и его началом. Новичку порой трудно не только начать самостоятельное обучение, но и определиться с координатами отправной точки процесса. Поэтому мы постараемся помочь вам обойти все эти трудности:
Прежде чем ломать зубы об гранит науки, следует определиться, с чего начать изучение программирования. На первых этапах очень трудно определиться со специализацией. Поэтому начнем с подбора первого языка.
Чаще всего выбор падает на язык программирования C (си). Именно с него большинство новичков во всем мире начинают свое обучение. На основе C было создана основная часть программных языков, и во многом они наследуют его структуру и синтаксис.
Изучая C, вы постигаете основы не одного языка программирования, а сразу нескольких.
Рассмотрим особенности этого языка, делающего его оптимальным для изучения:
- Простая для понимания основа – часть встроенных возможностей языка для простоты вынесена в отдельно подключаемые библиотеки. К таким элементам относится большая часть математических функций и методов для работы с файловой системой;
- Оптимально подогнанная система типов – благодаря простому набору типов данных и строгой типизации уменьшается риск допущения ошибок в процессе написания программного кода;
- Направленность C на процедурный тип программирования, при котором соблюдается четкая иерархия всех элементов кода;
- Доступ к памяти машины с помощью указателей;
- Минимальное количество поддерживаемых ключевых слов;
- Поддержка области действия имен;
- Поддержка пользовательских типов данных (объединения и структуры).
Проще говоря, C – это то, с чего следует начинать новичку перед тем, как научиться программированию на других языках.
Для обучения программированию недостаточно одного лишь желания и наличия компьютера с выходом в интернет. Для написания программ на C вам потребуется специализированное программное обеспечение – компилятор.
Компилятор – специальная программа, переводящая программный код в форму, понятную для компьютера.
Вот несколько специализированных компиляторов с поддержкой языка C:
- Microsoft Visual Studio – профессиональный инструмент, поддерживающий множество языков, в том числе и несколько серверных. Подойдет для новичков, если брать его «на вырост»:
- Borland C++ — бесплатный компилятор, идеально подходящий для начинающего обучение. В отличие от предыдущего инструмента, отличается ясным и понятным интерфейсом. Поэтому его освоение не вызовет особых трудностей даже при самостоятельном освоении азов программирования:
- Code::Blocks – бесплатная среда разработки, поддерживающая написание кода на нескольких языках. Средний по сложности освоения вариант:
Что касается специализированной литературы, то советовать книги определенных авторов мы не будем. Тут, как говорится, выбирайте, что душе угодно. Потому что в большинстве случаев подбор самоучителя по программированию – это индивидуальный процесс. Используйте тот источник, который больше подходит именно для вас.
Да и в интернете можно найти очень много информации.
После освоения основ программирования у многих сразу появится вопрос, куда двигаться дальше. Уже на этом этапе обучения следует задумываться о выборе основной специализации в области программирования. Вот те, которые больше всего востребованы на современном рынке:
- Веб-программирование – здесь понадобятся знания PHP, CSS и HTML;
- Разработка приложений под мобильную операционную систему Android – данная платформа построена на основе Java. Поэтому потребуется знание основ этого языка;
- C# (си sharp) – дальний потомок C. На основе C# построена веб-технология ASP. net от Microsoft.
И последний совет всем начинающим. Перед тем, как приступить к обучению программированию с нуля, следует запастить терпением. А также: таблетками от головной боли, кофе, чаем и побрить череп наголо. Потому что во время постижения программных наук, обучающиеся часто вырывают волосы со своей головы вместе с корнем. Удачного старта!
АБАнастасия Бондаренкоавтор
Программирование с нуля с чего начать?
Программист – перспективная профессия, востребованная практически в любой стране мира. Принято считать, что программирование дано только людям с хорошим знанием математики и английского языка. На самом деле, научиться может каждый, пусть и с разными усилиями, и за разное время. Узнаем, как изучать программирование с нуля, с чего начать, что и как учить, и главное – зачем в принципе это делать.
Подать заявку в деканат университета
Я даю согласие на обработку персональных данных, согласен на получение информационных рассылок от Университета «Синергия» и соглашаюсь c политикой конфиденциальности.
5 причин изучать программирование
Главная мотивация к изучению программирования – это трудоустройство на должность с хорошим доходом и неограниченными перспективами к росту. Но это не единственный повод заняться обучением программированию, хоть и привлекательный. Ниже рассмотрим еще 5 причин:
- Творческая самореализация. Разработчик – это творец. Кодер сам решает, каким будет интерфейс, функции и прочие фишки приложения, игры, сайта или пусть даже скрипта.
- Расширение круга знакомств. Объемные и сложные проекты делать в одиночку – сложно и долго. Специалисту нужно взаимодействовать с другими кодерами, узнавая новых людей.
- Развитие интеллекта и мышления. Программирование – это постоянное обучение навыку смотреть на проблему целиком, и в то же время умению делить большую задачу на мелкие.
- Изучение английского языка. Он нужен для чтения самого кода, изучения документации и общения с коллегами из других стран.
- Обучение решению проблем. Обучение разработке – дело непростое, и даже спустя годы придется сталкиваться с нетривиальными задачами, которые будут держать в тонусе.
Если эти причины мотивируют, можно переходить к выбору методики обучения.
С чего начать изучение программирования
Для начала пройти через три начальных этапа в изучении программирования – выбрать язык, определиться с методикой обучения и источниками информации, а затем сделать первый шаг.
Выбор языка программирования
Чтобы выбрать язык программирования для дальнейшего обучения, важно уделить внимание критериям:
- Популярность. Чем популярнее язык программирования, тем больше у него комьюнити, а значит легче будет найти решение возникшей ранее проблемы или получить ответ на вопрос. Также с ростом популярности растет и объем обучающих материалов.
- Число вакансий. Чем больше вакансий, тем больше возможностей найти работодателя на выгодных условиях. Надо учесть и уровень конкуренции, хоть это и неочевидный критерий.
- Доходность. Здесь имеется ввиду средняя зарплата разработчиков, которые используют тот или иной язык программирования. На этом критерии сильно зацикливаться не стоит, так как з/п сильно зависит от компании, но представление о доходности языка знать полезно.
В Интернете есть много рейтингов языков программирования, например, IEEE как самый известный в индустрии. По ним можно оценить популярность того или иного ЯП, за которой также следует размер комьюнити, количество обучающих материалов и в целом людей, разбирающихся в языке.
Выбор методики обучения
Принято выделять несколько методов обучения языку программирования и разработке в целом:
- изучение литературы;
- просмотр видеоуроков;
- прохождение курсов;
- обучение у наставника.
Идеальное обучение – это комбинация перечисленных методик. Например, найти курс по языку программирования, в цену которого входит взаимодействие с наставником. В процессе прохождения программы обучения важно углубляться в тему и закреплять знания чтением литературы и просмотром видеоуроков. По возникшим вопросам и для проверки кода следует обращаться к ментору.
Переход от теории к практике
Прежде, чем начать изучение языка программирования, надо найти в интернете его дорожную карту, она же Roadmap. Сразу нужно привыкнуть к тому, что придется много гуглить и искать информацию на тематических сайтах и форумах по типу Stack Overflow. Такая необходимость будет сопровождать не только на этапе обучения, но и непосредственно в работе над своими проектами или над задачами работодателя.
Итак, дорожная карта покажет, с каких моментов в изучении языка программирования следует начать, и какие темы за какими лучше разбирать. Использование Roadmap решает основную проблему новичков – непонимание того, что надо делать на старте обучения, с чего начать.
Второй момент – матрица компетенции программиста, которую также можно найти по запросу в Google. Матрица разбита на навыки, у каждого из которых есть уровни. Во время обучения периодически нужно просматривать таблицу, чтобы понять, как и в каком направлении идет прогресс.
Далее – поиск обучающих материалов. Можно начать с платного курса, но и в этом случае придется много изучать самостоятельно. Не стоит думать о том, что, пройдя один курс, получится стать хотя бы начинающим программистом.
Обязательно надо вооружиться этими источниками информации:
- Google. Друг и наставник в одном лице, к которому каждый даже опытный кодер обращается буквально каждый день, не говоря уже о тех, кто учит ЯП самостоятельно.
- YouTube. В поиске надо написать название языка или технологии, которой планируется обучиться, затем выбрать один из плейлистов, автор которого объясняет тему лучше всего, и изучать материал.
- Stack Overflow. Лучший источник информации на случай, если вдруг появятся ошибки при компиляции или в работе кода. В основном сайт англоязычный, но можно и переводить.
В процессе самостоятельного обучения регулярно придется сталкиваться с непонятными моментами, ошибками, проблемами и вопросами. Каждый раз важно искать решение в Интернете – там 99,99% ответов. Нельзя пропускать то, что непонятно, иначе пробелы в знаниях будут нарастать как снежный ком. Важно проявлять больше интереса и любопытства – эти качества помогают программировать.
Какие языки программирования изучать
Языков программирования сотни, но новичку необязательно знать каждый – хватит начать с одного. Рассмотрим несколько популярных технологий, которые будут востребованными еще долго.
HTML и CSS
HTML и CSS нельзя назвать ЯП, так как первый – это язык гипертекстовой разметки текста, а второй является формальным языком описания внешнего вида веб-страницы. Оба инструмента используются в веб-разработке, так как из них собирается каркас сайта независимо от сложности.
Несмотря на то, что HTML и CSS не являются ЯП в классическом понимании этого термина, они оба хорошо подходят для плавного входа в IT. Синтаксис можно изучить за несколько вечеров, после чего приступить к созданию пусть и простых, но сайтов, постоянно наращивая сложность.
JavaScript
JavaScript – это ЯП, популярный в первую очередь в веб-программировании. Вот что он дает:
- превратить статичный сайт в интерактивный, в т.ч. с анимацией;
- организовать обмен данными между пользователем и сервером;
- выполнять вычисления на стороне сервера или прямо в браузере;
- написать серверную часть для приложения либо для веб-сайта.
JavaScript используется для разработки веб-сайтов и веб-приложений, браузерных расширений и мобильных программ. Следовательно, ему легко найти применение, а разработчику – работу.
Язык прост в изучении, подходит в качестве базы для новичка, универсален и уже долгие годы остается актуальным за счет регулярных обновлений. Имеет большое комьюнити.
Python
Python – это еще один популярный среди новичков ЯП, который дает программировать и веб-сайты, и визуальные интерфейсы, и базы данных. Применяется в автоматизации бизнес-процессов, в машинном обучении и
Data Science. У него простой синтаксис, большой выбор фреймворков под разные задачи, огромное сообщество и столь же большой объем обучающих материалов. На Python написан игровой искусственный интеллект AlphaStar для игры StarCraft 2. Он настолько проработан, что способен победить профессиональных игроков.
C/C++
C и C++ представляют собой два компилируемых языка программирования, которые отличаются производительностью, скоростью и эффективностью. Принято считать, что они сложнее в изучении, нежели Python, но у начинающего разработчика ряд причин заняться обучением:
- универсальность – на том же С++ можно написать что угодно, от драйвера до нейросети;
- фундамент для дальнейшего роста – после С и С++ научиться другим языкам проще;
- С/С++ программист востребован на рынке труда независимо от страны.
Оба языка считаются одними из самых непростых в изучении, особенно в качестве первого ЯП в карьере новичка. Однако вложенные в обучение усилия окупятся.
Java
Не стоит путать Java с JavaScript, хоть и оба языка хорошо подходят в качестве первого инструмента. Java широко используется для разработки Android-приложений, серверных программ, веб-скриптов и приложений. Он применяется в Data Science и игровой разработке. Причины изучать ЯП Java:
- большое сообщество и многообразие обучающих материалов;
- кроссплатформенность – один код работает на разных устройствах;
- обратная совместимость, которая упрощает поддержку софта;
- универсальность – вакансия для Java-разработчика найдется всегда.
На Java уже написано очень много кода, и кто-то должен его поддерживать, получая за это весьма неплохие деньги.
Какими бывают программисты
Программист – это не конкретная профессия, а скорее собирательный образ человека, который так или иначе работает с IT-инфраструктурой. Специализаций много, ниже рассмотрим популярные.
Frontend-разработчик
Создает клиентскую часть сайта или приложения – то, с чем взаимодействует пользователь. Это кнопки, формы обратной связи, анимация, корзины в интернет-магазинах. Использует технологии HTML и CSS, а также JavaScript, некоторые фреймворки Python, среды React, jQuery и Angular.
Backend-разработчик
Занимается разработкой и поддержкой серверной части сайтов и веб-приложений, в том числе это касается обработки данных, взаимодействия пользователя с сервером, алгоритмических расчетов. Используются преимущественно языки C++, Python, Java.
Fullstack-разработчик
Объединяет методы работы Frontend и Backend разработчиков, а значит, является универсальным программистом. Работает как с серверной логикой, так и с пользовательским интерфейсом, за счет чего может обеспечить полную совместимость обеих частей. Ответственности много, но и доход выше.
QA-инженер
Он же тестировщик. Испытывает собственный либо чужой код на предмет работоспособности и качества, используя unit-тесты и другие инструменты тестирования. От компетенции тестировщика во многом зависит стабильность работы сайта, сервера, приложения или скрипта.
Мобильный разработчик
Занимается созданием приложений для мобильных платформ, например, для устройств на базе операционных систем Android и iOS. Это касается как самих ОС и драйверов, так и интерфейсов, оболочек, функциональных приложений и игр, а также обновлений.
Game Developer
Специализация затрагивает разработку игр – проектирование игрового процесса, физики, анимации объектов, интерфейса, игровой логики. Игровая индустрия сегодня развивается семимильными шагами, а значит, Game Developer без труда найдет работу.
Плюсы и минусы работы программистом
Как и любая профессия, программирование имеет и плюсы, и минусы, которые нужно сопоставить и принять для себя решение – нужно ли уделять время обучению разработки, или лучше не надо.
В первую очередь это серьезный доход даже в России, не говоря уже о международном рынке. По статистике, средняя заработная плата кодера выше (иногда значительно) зарплат специалистов из остальных областей. В том числе этот фактор создает ощущение привилегированности профессии.
Вот еще плюсы профессии программиста:
- Профессия глобальна. Это значит, что программист почти не зависит от города и даже страны. Это открывает возможность переезда в другое государство для работы в нем.
- Стабильно высокий спрос. Разработчики востребованы у работодателей, из-за чего многие компании готовы обеспечить программистам отличные условия труда и соцпакет.
- Карьерные перспективы. Начиная с Junior-разработчика можно постепенно продвигаться к ступени Middle, затем Senior, после чего стать тимлидом и даже руководителем компании.
- Удаленная работа. С каждым годом больше компаний, в том числе российских, дают программистам работать не в тесном офисе, а в комфортных домашних условиях.
Обучившись программированию на достаточном для начала работы уровне, можно забыть о тревоге потерять рабочее место или потерять востребованность на рынке труда. Однако для этого придется постоянно совершенствоваться, и здесь следует плавно перейти к минусам профессии.
Недостатки
Вот ряд не самых приятных моментов в работе программистом, о которых надо знать:
- работа сидячая, поэтому важно следить за здоровьем, в частности, за осанкой и зрением;
- конкуренция высокая и стабильно растет, но с другой стороны, увеличивается и спрос;
- для уверенной работы важно знание английского языка хотя бы на техническом уровне;
- нужно постоянно обучаться и актуализировать знания, чтобы не остаться на обочине рынка.
Даже с учетом этих недостатков программирование – это доходное, интересное и эффективное в плане личного и профессионального развития занятие. Да, поначалу будет сложно, порою придется пересиливать себя и садиться за код, но в дальнейшем вложенные усилия окупятся в разы.
15 БЕСПЛАТНЫХ курсов для изучения программирования с нуля
Главная/Блог/Программирование/Учитесь кодировать: 15 БЕСПЛАТНЫХ курсов для изучения программирования с нуля первоначально опубликовано в 2019 г. обновлено 20 октября 2021 г. Многие ранние разработчики начали интересоваться учебными курсами по кодированию и онлайн-курсами по кодированию вместо того, чтобы получить степень в области компьютерных наук — и не зря! Уроки программирования в ведущих университетах могут быть дорогими, поэтому, чтобы помочь преодолеть этот барьер, я перечислил 15 абсолютно БЕСПЛАТНЫХ курсов, которые помогут вам начать свое путешествие. Здесь есть что-то не только для начинающих разработчиков, но и для опытных разработчиков.
Все эти курсы являются частью серии «С нуля» от Educative.io, в которой представлены высококачественные текстовые курсы и учебные пособия для начинающих разработчиков программного обеспечения. Наша платформа онлайн-обучения включает в себя среды кодирования в браузере, что означает, что настройка не требуется. Они полны викторин, алгоритмов, учебных пособий по кодированию и задач для создания лучших практик кодирования.
- Изучение Python с нуля
- Изучите веб-разработку с нуля: выходите за рамки синтаксиса
- Изучайте Java с нуля
- Изучайте Scala с нуля
- Изучайте C++ с нуля
- Изучай C с нуля
- Изучаем дартс: первый шаг к флаттеру
- Изучение ржавчины с нуля
- Изучение Perl с нуля
- Изучите R с нуля
- Изучите PHP с нуля
- Изучите Ruby с нуля
- Изучайте HTML, CSS и JavaScript с нуля
- шаблонов функционального программирования с RamdaJS
- Понимание Flexbox: все, что вам нужно знать
1.
Изучайте Python с нуляPython — один из самых популярных языков программирования в мире, отчасти благодаря его способности удовлетворять множеству вариантов использования. Его можно использовать для веб-разработки, анализа данных, машинного обучения и разработки программного обеспечения. Изучая Python, вы откроете множество возможностей для карьеры, начиная от некоммерческой работы и заканчивая ведущими технологическими компаниями, такими как Apple.
Изучение Python с нуля начинается с изучения основных строительных блоков, таких как типы данных и переменные, условные операторы и структуры данных. Затем вы перейдете к более высокоуровневым концепциям, таким как функции и циклы. В каждом разделе будут викторины и задачи по кодированию, которые будут сопровождать вас на протяжении всего пути и помогут применить все концепции, затронутые в курсе.
Этот курс предназначен для учащихся, не имеющих опыта программирования на Python. Это также хороший курс повышения квалификации для тех из вас, кто давно не прикасался к Python и хотел бы вернуться к нему. После того, как вы закончите этот курс, есть даже подробный план обучения, поэтому вам не придется спрашивать: «Что я должен узнать дальше как инженер-программист?».
2. Изучите веб-разработку с нуля: выходите за рамки синтаксиса
Когда вы начинаете изучать веб-разработку, количество ресурсов, доступных в Интернете, может усложнить задачу. Стоит ли смотреть видео на HTML5 и CSS? Какой онлайн-класс по кодированию обеспечивает лучший контент? Вы используете Javascript или jQuery? Разобраться с количеством концепций и жаргоном, связанным с разработкой веб-приложений, само по себе может стать работой на полный рабочий день.
Learn Web Development from Scratch: Go Beyond the Syntax был разработан, чтобы охватить основы веб-дизайна, от семантической разметки вашей страницы с помощью HTML до стилизации вашего контента с помощью CSS. Затем он познакомит вас с основами программирования с помощью Javascript, а в конце вы будете достаточно удобны для разработки полнофункциональных веб-модулей с использованием Javascript, включая карусель изображений и приложение со списком дел.
Вместо того, чтобы смотреть бесконечные видео и думать, как преобразовать эти видео в реальный код, вы будете практиковать то, что вы узнали, с помощью интерактивных текстовых упражнений. Лучшая часть? Это все в вашем собственном темпе.
3. Изучайте Java с нуля
Потребность в Java-разработчиках растет с каждым днем, и те, кто специализируется на Java, делают долгую и очень успешную карьеру в области разработки программного обеспечения, игр и многого другого. В Java по-прежнему много жизни, поскольку в настоящее время он поддерживает около 3 миллиардов устройств и используется ведущими технологическими компаниями, такими как Microsoft, Google и Apple. Одной из ключевых причин, по которой код Java является особенным для многих программистов, является тот факт, что вам нужно написать его только один раз, и он будет работать в любой операционной системе в мире без каких-либо модификаций. Заинтересованы в том, чтобы начать? Не смотрите дальше.
Learn Java from Scratch знакомит вас с фундаментальными концепциями программирования на Java. Он начинается с простой программы «Hello World» и продолжается рассмотрением общих понятий, таких как условные операторы, циклические операторы, простая математика и логика.
Наконец, он погружается глубже, чтобы рассказать о дополнительных концепциях, таких как классы и наследование, обобщения и списки массивов. К тому времени, когда вы закончите, вы станете разработчиком Java среднего уровня, готовым взяться за свои собственные проекты.
Этот курс предназначен для тех, кто не знаком с программированием на Java. Благодаря 97 урокам программирования, 11 викторинам и 32 задачам вы быстро улучшите свои навыки программирования и обретете уверенность в изучении более сложных концепций.
4. Изучайте Scala с нуля
Scala, т. е. масштабируемый язык, ни в коем случае не является новым языком, но он пережил возрождение благодаря своей выразительности, совместимости с Java и множеству парадигм. Это позволяет вам работать в различных стилях, свободно смешивая конструкции, предоставляя вам большее количество инструментов для решения более широкого круга задач.
Scala был разработан, чтобы быть «лучшей» Java, и хотя это можно интерпретировать, есть много причин, по которым Java-разработчики предпочитают Scala. Scala часто используется в корпоративной среде (она используется в таких компаниях, как Twitter и LinkedIn), поэтому начальная зарплата разработчиков Scala настолько высока. Посмотрите, какие программные технологии принесут вам самую высокую оплату. Готовы изучать Scala?
Learn Scala from Scratch знакомит вас с фундаментальными концепциями программирования на Scala, где он начинается с обзора общих понятий, таких как: переменные и типы, операторы и работа со строками.
Затем вы познакомитесь с некоторыми более сложными темами, такими как структуры управления, функции, функции высшего порядка и, наконец, классы и объекты. К концу этого курса у вас будет четкое понимание как функционального, так и объектно-ориентированного программирования, которые являются важными парадигмами, которые вам необходимо изучить. Этот курс предназначен для тех, кто никогда не программировал на Scala.
5. Изучайте C++ с нуля
Общеизвестно, что C++ имеет крутую кривую обучения, но время, потраченное на изучение этого языка, сотворит чудеса для вашей карьеры и выделит вас среди других разработчиков. Вам будет легче осваивать новые языки, вы сформируете настоящие навыки решения проблем и заложите прочный фундамент на основах программирования.
C++ поможет вам привить хорошие привычки программирования (т. е. четкий и последовательный стиль кодирования, комментирование кода по мере его написания и ограничение видимости внутренних компонентов класса для внешнего мира), а поскольку абстракций практически нет, вам потребуется определить почти каждый атрибут, чтобы ваш код работал; это заставит вас по-настоящему понять, что вы делаете и как ваша программа повлияет на систему. Готовы учиться?
Learn C++ from Scratch знакомит вас с фундаментальными концепциями программирования на C++. Вы начнете курс с простой программы «Hello World» и перейдете к пошаговому рассмотрению общих понятий, таких как условные операторы, циклические операторы и функции в C++.
Затем он размышляет об идее указателей и массивов, а также о возможностях, которые они дают программисту для написания лучшего кода. Наконец, он углубляется, чтобы рассказать о таких продвинутых концепциях, как классы, наследование и шаблоны в C++, с помощью интерактивных задач и упражнений.
Этот курс был разработан для начинающих, и, несмотря на значительную кривую обучения, этот курс объединяет то, что вам нужно знать, чтобы начать, и все это в одном месте. Существует также специальный путь обучения, который подскажет вам, что изучать дальше, поэтому у вас не останется вопроса «Куда мне двигаться дальше?».
6. Изучайте C с нуля
Прямо сейчас посмотрите на ближайший к вам гаджет. Скорее всего, он работает на C. Ваша операционная система наверняка написана — «по крайней мере, частично» — на C. Драйверы тоже.
Поскольку «Интернет вещей» (IoT) продолжает распространяться в мире, многие из них основаны на C. Все, что обрабатывает огромные объемы данных или требует оптимальной производительности, обычно пишется на C из-за его замечательной маленькое время работы. Самые популярные в мире базы данных, такие как Oracle, MySQL, MS SQL Server и PostgreSQL, написаны на C. Популярные распределенные репозитории, такие как Git, также написаны в основном на C.
Невероятно эффективный и мощный язык C служит основой для многих других таких языков, как C++, Java и Python. Это позволяет вам напрямую взаимодействовать с памятью и низкоуровневыми компьютерными операциями, тем самым улучшая ваши навыки программирования и углубляя ваше понимание.
C считается языком программирования среднего уровня. Для большинства людей это самое близкое к написанию машинного кода. Вы можете запрограммировать систему, а затем развернуться и разработать приложение, работающее в этой системе. Это помещает C между языком ассемблера и более высокоуровневыми языками, такими как Java.
Learn C from Scratch познакомит вас со всеми основными и продвинутыми концепциями программирования на языке C. В нем подробно и сжато описываются типы данных, поток управления, функции, ввод/вывод, память, компиляция, отладка и другие сложные темы, такие как параллельное программирование.
Этот курс предназначен для начинающих или разработчиков среднего уровня. Даже если вы не хотите специализироваться на C, плюсы изучения этого языка намного перевешивают минусы. Изучая C, вы легче освоите другие языки, углубите свое понимание таких понятий, как управление памятью, и четко поймете, как то, что вы программируете, влияет на систему.
7. Изучите Dart: первый шаг к Flutter
Хотите разрабатывать приложения для Android и/или iOS? Вы должны изучить Dart и Flutter. Learn Dart: First Step to Flutter предназначен для программистов, которые никогда не программировали в Dart и хотят начать работу с Flutter.
Dart — это чистый, простой, основанный на классах объектно-ориентированный язык, который имеет больше структуры, чем JavaScript, язык программирования, на котором он в значительной степени основан. Разработанный Google, Dart отлично подходит для разработчиков, которые заинтересованы в структуре своего языка программирования, чтобы они могли легко проводить рефакторинг и создавать большие веб-приложения.
Однако нельзя говорить о Dart, не упомянув Flutter.
Flutter — это мобильная среда пользовательского интерфейса Google, используемая для создания высококачественных нативных интерфейсов на iOS и Android. Приложения Flutter написаны с использованием языка программирования Dart, который помог сделать Dart любимым языком сообщества разработчиков. Прежде чем вы сможете создавать мобильные приложения с помощью Flutter, вам нужно изучить Dart.
Вы изучите дартс с нуля; просмотрев все, что вам нужно знать, чтобы написать базовую программу, предполагая, что у вас нет предварительных знаний языка. Темы включают: типы данных и переменные, операторы, коллекции, операторы потока управления, функции и классы. К концу этого курса вы будете готовы использовать Flutter для создания потрясающих пользовательских интерфейсов. Этот курс предназначен как для начинающих, так и для профессионалов. Он идеально подходит для тех, кто хочет разрабатывать приложения для iOS или Android.
8. Изучайте Rust с нуля
Всем известно: разработчики любят Rust. Он быстро становится одним из самых популярных языков среди системных и встроенных программистов, а спрос на программистов на Rust значительно растет. Это очень мощный язык с точки зрения производительности, надежности и продуктивности, особенно по сравнению с C++. Разработчикам C++ также понравилось изучать Rust из-за его «простоты» при разработке параллельных и многопоточных приложений, что исключительно сложно сделать на C++. Если вы системный разработчик и ищете новый язык для изучения, то Rust — отличное место для следующего поиска.
С помощью Learn Rust from Scratch вы сможете изучать Rust, пачкая руки на этом пути. Он начинается с простой программы «Hello world» и переходит к рассмотрению общих понятий, таких как массивы, строки, векторы, перечисления, структуры, черты, обобщения, функции и логика. Наконец, он глубже погружается в более сложные концепции, такие как управление временем жизни и памятью.
Этот курс предназначен для начинающих и разработчиков среднего уровня, которые хотят специализироваться на программировании систем и встраиваемых систем.
9. Изучайте Perl с нуля
Perl — один из самых популярных языков обработки текста в мире. Это позволяет вам создавать чрезвычайно эффективные анализаторы текста для всех видов приложений. Из-за мощных возможностей синтаксического анализа текста он часто используется в качестве инструмента для специалистов по данным, но тот факт, что это язык общего назначения, делает его идеально подходящим для веб-разработки, сетевого программирования и разработки графического интерфейса.
Learn Perl from Scratch поможет вам быстро освоить Perl, начиная с базовых понятий, таких как циклы, строки и массивы. Вы перейдете к более сложным темам, таким как структуры данных, пакеты, подпрограммы и условные операторы.
Для изучения этого курса не требуются базовые знания.
10. Изучите R с нуля
Цифровой мир, в котором мы живем, предоставил компаниям и людям доступ к ошеломляющим объемам данных, и каждый, кто может использовать это для получения ценной информации, получит выгоду. Способность работать с большими объемами данных становится стандартным требованием для бесчисленных рабочих мест в различных отраслях.
Введите R, вероятно, самый известный язык для обработки данных. Он используется в течение многих лет благодаря надежной статистической функциональности, выдающимся графическим возможностям и расширяемости с помощью пакетов.
Learn R from Scratch поможет вам быстро освоиться и не предполагает никаких предварительных знаний R. Вам будет предоставлено введение с самыми основами, и вы сможете перейти к более сложным понятиям, таким как обработка исключений. К тому времени, когда вы закончите, вы сможете написать подробный полезный код на R для работы с большими объемами данных.
Этот курс специально разработан для программистов или статистиков, которые никогда раньше не программировали в R, но хотят развить свои навыки в R. Этот курс не только научит основам синтаксиса в R, но также представит основные проблемы, которые вы можете решить на практике. .
11. Изучайте PHP с нуля
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, который особенно подходит для веб-разработки. По сути, все, что вы хотите сделать на веб-сервере, вы можете сделать с помощью PHP. Это включает в себя: ведение блога, создание полноценного приложения «программное обеспечение как услуга» и написание скриптов для обработки данных.
Лучшее в использовании PHP то, что он чрезвычайно прост для новичка, но предлагает множество дополнительных функций для профессионального программиста.
Learn PHP from Scratch знакомит вас с фундаментальными концепциями программирования на PHP. Он начинается с простой программы Hello world и продолжается рассмотрением общих понятий, таких как условные операторы, циклические операторы и логика в PHP.
Затем он размышляет об идее функций и массивов, а также о возможностях, которые они дают программисту для написания лучшего кода.
Наконец, он углубляется, чтобы рассказать о таких продвинутых концепциях, как классы, наследование и обработка исключений в PHP. К тому времени, когда вы закончите, вы будете хорошо разбираться в основах PHP и будете готовы к изучению продвинутых концепций.
12. Изучайте Ruby с нуля
Хотите стать фанатом интерпретируемых языков? Вы устали запутываться в плотных синтаксисах? Вас раздражает необходимость сначала компилировать код в машинный язык? Вы ищете простой в использовании язык сценариев? Что ж, Руби — лучший выбор для вас.
Ruby — это интеллектуальный, простой в использовании, функциональный объектно-ориентированный язык программирования, представляющий собой удивительное сочетание мощности сценариев Perl, возможностей Pythonic и многого другого. Как подразумевает Мацумото, создатель Ruby: «Я надеюсь, что Ruby поможет каждому программисту в мире быть продуктивным, получать удовольствие от программирования и быть счастливым. Это основная цель языка Ruby».
Learn Ruby from Scratch предоставит вам практическую практику с основами, а также с расширенными концепциями. Темы включают: переменные, встроенные классы, объекты, методы, блоки, условные операторы и многое другое. Есть 30 задач, которые помогут вам попрактиковаться и закрепить то, что вы узнали, и все упражнения по кодированию можно выполнять в браузере без необходимости в среде разработки.
Конечно, трудно упомянуть Ruby, не упомянув немного о Ruby on Rails. Фактически, вы, вероятно, использовали приложения, созданные с помощью Ruby on Rails, такие как GitHub, Shopify, Hulu, Airbnb и Square. Если вы хотите подать заявку в какую-либо из компаний, перечисленных выше, вы найдете этот курс полезным началом для достижения ваших целей.
13. Изучайте HTML, CSS и JavaScript с нуля
Являясь одним из наших самых популярных курсов, «Изучение HTML, CSS и JavaScript с нуля» обеспечивает основу для всех, кто хочет стать разработчиком интерфейса. С таким количеством бесплатных курсов по программированию, доступных в Интернете, поиск материала для изучения HTML, CSS и Javascript не является проблемой, но он определяет, какой класс или курс стоит вашего времени. Хотя онлайн-курсы по программированию на таких сайтах, как Гарвард, Массачусетский технологический институт и EdX, могут быть полезным ресурсом, вы не сможете учиться в своем собственном темпе, а материал может не соответствовать вашим карьерным целям. Так чем же отличается этот курс?
С помощью программы «Изучение HTML, CSS и JavaScript с нуля» вы сразу же погрузитесь в «дело» и сэкономите время, затрачиваемое на многочасовой просмотр коллективного видео. С пошаговыми инструкциями и подробной разбивкой тем вы закончите этот курс с полным пониманием основ становления фронтенд-разработчиком.
К концу этого курса вы поймете, как создавать семантические макеты веб-страниц с помощью HTML, как стилизовать HTML-контент с помощью CSS, а также понимать поток программ и структуры данных JavaScript. В довершение всего вы получите практическую практику создания карусели изображений и списка дел с использованием наших встроенных сред кодирования.
Прежде чем вы уйдете, я хотел бы отметить, что наши курсы написаны профессионалами, работающими в ведущих технологических компаниях. Почему это важно, спросите вы? Наши курсы написаны с целью помочь вам получить работу в ведущей технологической компании или создать личный проект. Этот курс вооружает вас необходимыми знаниями, избегая при этом словесной чепухи, которая в противном случае могла бы привести к пустой трате времени. Если вы хотите узнать, как стать фронтенд-разработчиком, вы также можете ознакомиться с нашим планом обучения «Как стать фронтенд-разработчиком».
14. Шаблоны функционального программирования с RamdaJS
Ramda — это библиотека функций, предназначенная для того, чтобы сделать функциональное программирование на JavaScript простым и мощным, не делая его менее похожим на JavaScript.
Могу ли я сделать FP в ванильном Javascript? Конечно, можно, но разница в том, что RambdaJS — это библиотека, специально разработанная для функционального стиля программирования.
В разделе «Шаблоны функционального программирования с RamdaJS» автор делится с вами проверенными и надежными шаблонами, которые помогут вам писать воспроизводимый и чистый код.
Прежде чем пройтись по ним, курс закладывает основы таких понятий, как чистые функции, каррирование и бесточечный стиль. Несколько распространенных паттернов, которые вы найдете, — это функторы и линзы. Есть также полномасштабный проект, целью которого является перевести студента от выполнения фрагментов и недолговечных упражнений к конкретному примеру из реальной жизни.
Этот курс отлично подходит для средних или продвинутых разработчиков JavaScript, где вы научитесь распознавать отличительные черты FP, такие как карта, фильтрация, сокращение и, возможно, использовать что-то вроде Lodash, чтобы сделать вашу жизнь проще.
15. Понимание Flexbox: все, что вам нужно знать
Модель flexbox обеспечивает эффективный способ компоновки, выравнивания и распределения пространства между элементами в вашем документе, даже если область просмотра и размер ваших элементов являются динамическими или неизвестными. .
Нам всегда приходилось иметь дело с поплавками, хаками отображения таблиц и их последствиями. Если вы когда-нибудь писали на CSS, вы, вероятно, понимаете это.
Теперь мы все можем отказаться от этих хакерских трюков с CSS. Нет больше непрекращающегося использования поплавков, дисплеев табличных ячеек. Пришло время использовать более чистый современный синтаксис для создания интеллектуальных макетов. Добро пожаловать в модель CSS Flexbox.
Понимание Flexbox: все, что вам нужно знать, охватывает все фундаментальные и расширенные концепции, необходимые для того, чтобы стать экспертом в модели CSS Flexbox. В процессе вы научитесь создавать адаптивное музыкальное приложение, которое станет отличным дополнением к вашему портфолио. В этом курсе рассматриваются следующие темы: контейнеры и элементы Flex, автоматическое выравнивание полей, адаптивный дизайн с помощью Flexbox и многое другое.
На этом все заканчивается. А теперь иди и покажи миру свое мастерство программирования.
Приятного обучения!
НАПИСАЛ Кэмерон Уилсон
Присоединяйтесь к сообществу из 1,7 миллиона читателей. Наслаждайтесь БЕСПЛАТНЫМ еженедельным информационным бюллетенем, в котором собраны самые популярные учебные ресурсы Educative, советы по кодированию и советы по карьере.
13 лучших сайтов для изучения программирования с нуля
Изучение языка программирования может быть полезно не только людям, работающим в специализированных технологических отраслях. Если вы хотите стать веб-разработчиком, специалистом по данным, разработчиком игр или просто автоматизировать повседневные задачи, программирование для вас.
В этой статье мы рассмотрим лучшие сайты для изучения программирования на разных языках, включая Java, PHP, C#, Python, C++, SQL и многие другие. Вам не нужно идти в колледж, чтобы стать программистом, когда есть много бесплатных ресурсов и доступных курсов.
Содержание
Codeacademy не нуждается в особом представлении, потому что она хорошо известна своим выбором бесплатных курсов по программированию. Вы найдете все ресурсы, необходимые для изучения языков для веб-разработки, разработки приложений для Android или машинного обучения. Попробуйте вводные курсы, чтобы получить представление о занятиях и о том, подходят ли они вам. Кроме того, попробуйте HTML и CSS, если вы новичок в программировании.
Codeacademy преуспевает, когда вы подписываетесь на план Pro. За 15,99 долларов США в месяц вы получаете более подробное руководство, доступ к реальным проектам для практики и сертификаты. Если вы уже знаете свои цели, вы можете выбрать предустановленный карьерный путь, например Data Scientist или Front-End Engineer, который включает в себя все необходимые уроки в одном удобном пакете.
Плюсы | Минусы |
Бесплатные курсы | Сертификаты не аккредитованы |
Wide variety of programming languages | |
Beginner-friendly | |
Community forums and Discord channel |
Like the name suggests, freeCodeCamp is a learning platform with free programming courses. Если вы только начинаете и еще не знаете, на каких языках программирования сосредоточиться, freeCodeCamp — хорошее начало.
Бесплатные ресурсы на freeCodeCamp включают базовые языки сценариев, такие как HTML, и вводные курсы, но вы также можете специализироваться, изучая такие вещи, как Bootstrap, React, Redux, Tensorflow и алгоритмы сценариев. Выберите один из удобных пакетов курсов (например, «Научные вычисления с Python»), которые включают 300 часов учебного материала, чтобы встать на путь, ориентированный на карьеру.
Pros | Cons |
Free courses | No course progress indicator |
Starts you off with GitHub | |
Build projects from scratch | |
Introductory steps для непрограммистов |
Coursera — еще одно отличное место для старта, если вы хотите попробовать свои силы, не тратя денег.
Тем не менее, Coursera сияет, когда вы инвестируете 59 долларов в месяц в программу Coursera Plus. Вы откроете множество дополнительных специализированных курсов и получите доступ к управляемым проектам. Таким образом, вы получите некоторый практический опыт программирования, а также получите сертификаты, которыми сможете поделиться в своем резюме.
Плюсы | Минусы |
Бесплатные курсы и доступные цены | Многие курсы требуют предварительных знаний |
В партнерстве с университетами | |
Загрузите курсы и изучите офлайн | |
Официально признанные сертификаты |
Udemy — это онлайн-платформа. Вы можете найти тысячи курсов программирования, как бесплатных, так и платных, которые научат вас всему, от основ до специализированных тем.
Самое лучшее в Udemy — это его система. Это похоже на онлайн-рынок. Это облегчает поиск типа курса, который вы хотите. Вы можете просматривать самые популярные курсы по количеству студентов, рейтингам и отзывам. Например, трудно ошибиться, выбрав курс Python с 200 000 зачисленных студентов, средним рейтингом 4,8 звезды и множеством подробных обзоров, поясняющих курс.
Еще стоит упомянуть о гарантии возврата денег. Udemy предлагает возмещение без вопросов, независимо от того, что говорит преподаватель курса. Поэтому, если вы закончите курс и не почувствуете, что ваши деньги стоят того, у вас есть 30 дней, чтобы запросить возврат средств.
Pros | CONS | |
БЕСПЛАТНЫЕ Курсы и доступные цены | .0254 | Контроль качества курсов иногда отсутствует |
Пожизненный доступ | ||
Форумы сообщества |
Pluralsight — это платформа для обучения и обучения, как и Udemy. Он предлагает вам все ИТ-курсы, которые вы можете себе представить, но вы также можете выбрать предустановленный путь обучения. Путь обучения научит вас определенному навыку, например программированию на Python, от начала до конца.
Pluralsight также регулярно обновляет свой контент, поэтому стоит вернуться, чтобы обновить свои знания об определенном языке программирования. Вы можете попробовать пути обучения во время бесплатного пробного периода, а затем перейти на план подписки, который соответствует вашим потребностям.
Pros | Cons |
Free trial period | No free courses |
Courses are available offline | |
Quizzes test your knowledge retention | |
Great customer поддержка 24/7 |
Академия Хана идеальна, если вы только начинаете. Изучить основы компьютерного программирования на любом языке еще никогда не было так просто, и это бесплатно. И лучше всего то, что вам даже не нужно регистрировать учетную запись. Вы сразу начинаете учиться программировать.
Если вы пробовали другие обучающие платформы, но вам было трудно придерживаться уроков, попробуйте Академию Хана. Эта платформа превратила обучение в своего рода игру. За каждый пройденный урок или достигнутую цель вы получаете награды в виде очков и различных значков. Взрослому это может показаться глупым, но игровое обучение может вас мотивировать.
Плюсы | Минусы |
100% бесплатно | Качество контента варьируется |
Игровое обучение с отслеживанием прогресса | |
Подходит для детей | |
Он предлагает курсы программирования и информатики на уровне колледжа от самых авторитетных университетов мира.
Узнайте о новейших технологиях и языках программирования из лекций Гарварда и Массачусетского технологического института. Практикуйте все, что вы изучаете, с помощью викторин, тестов и виртуальных сред. Вы можете учиться в своем собственном темпе, не беспокоясь о подписке, потому что edX бесплатен, но вы также можете выбрать премиум-версию, которая включает оцениваемые задания и экзамены, а также сертификацию.
Pros | Cons |
Free courses | Certificates and graded assignments only for premium users |
14-day refund policy | Course inconsistency |
Partnered with universities like Гарвард | |
Дополнительные сертификаты |
Team Treehouse производит весь контент своих курсов вместо того, чтобы принимать у себя репетиторов и инструкторов. Это означает, что ваш опыт обучения будет гораздо более последовательным, чем на других платформах, и вы будете работать над реальными проектами. Особое внимание к обучению через проекты — это то, что отличает Team Treehouse от других сайтов.
Team Treehouse — это обучающая платформа на основе подписки, похожая на онлайн-учебный лагерь. Выбрав план ежемесячной подписки за 25 долларов, вы получаете доступ ко всем курсам программирования на платформе и можете приступить к созданию своего профессионального портфолио.
Pros | CONS |
БЕСПЛАТНЫЙ 7-дневный испытание | Ограниченная диапазон.0254 |
Материалы для карьеры | |
Проектное обучение |
Udacity предлагает большую коллекцию курсов по программированию на основе ваших интересов. Есть несколько «школ» на выбор, например, школа программирования и разработки и школа кибербезопасности. Каждая школа поставляется с набором программ, которые охватывают все концепции, необходимые для освоения определенной темы.
Курсы Udacity состоят из лекций, викторин, проектов и дискуссионных форумов, где вы можете общаться с однокурсниками. Кроме того, если вы выберете степень по языку программирования, вы также получите поддержку от инструктора.
Pros | Cons |
Free courses | Expensive compared to other platforms |
Resume, LinkedIn, and GitHub reviews and advice | |
Courses designed with industry-leading партнеры, такие как Google | |
Викторины и проекты являются частью курсов |
Если вы любите обучение, ориентированное на проекты, Odin Project может быть лучшим вариантом для вас. Несмотря на зловещее название, которое звучит как проект ЦРУ, Odin Project — это удобная для начинающих платформа с бесплатными курсами кодирования. Идея заключается в том, чтобы научить вас языкам программирования на практике, работая над реальными проектами, а не просто просматривая видео и делая заметки. Это означает, что вы будете работать с нуля, включая настройку собственной IDE.
Проект Odin предлагает вам два основных направления: учебная программа Ruby on Rails и учебная программа полного стека JavaScript. Хотя ваши возможности кажутся ограниченными, на самом деле это не так. Например, учебная программа Ruby on Rails научит вас HTML, CSS, SQL и JavaScript наряду с программированием на Ruby. Вы получаете большую ценность бесплатно.
Плюсы | Минусы | ||||||||||||||||||
Полностью бесплатно | Без помощи учителей/репетиторов | ||||||||||||||||||
Обучение на основе проектов | Очень мало рук. Это интерактивная платформа, которая учит вас, ставя перед вами задачи. Каждая задача — это упражнение или задача по программированию, которую вам нужно решить, чтобы перейти к следующей. Вы найдете самые популярные языки программирования для практики, включая Python, C#, Ruby, Java и SQL. Просто выберите свой любимый язык и решите проблему. Чем дальше вы продвигаетесь, тем сложнее становятся упражнения. Это делает Codewars отличным компаньоном для обучения рядом с одним из сайтов с большим количеством курсов в этом списке, таких как Udemy, Coursera и Pluralsight.
Code.org — это некоммерческая учебная платформа, которая предлагает разнообразные уроки программирования для учащихся всех возрастов. Хотя большинство курсов предназначены для более молодой аудитории, они по-прежнему отлично подходят для начинающих из-за своей простоты. Кроме того, вы можете выбрать короткие уроки продолжительностью 1 час, если у вас не так много времени, чтобы инвестировать в кодирование.
W3Schools — один из самых популярных бесплатных ресурсов для написания кода. Вы найдете учебные пособия по наиболее часто используемым языкам программирования, и вам даже не нужна учетная запись. Вы также найдете лучшие текстовые руководства с краткими, но четкими пояснениями, за которыми следуют примеры кода, и вы сможете проверить себя с помощью упражнений и тестов. Тем не менее, вы также можете дополнительно оплатить доступ к различным курсам и пакетам курсов, купив их. Например, курс премиум-класса по SQL или Bootstrap стоит 95 долларов, а пакет разработки интерфейса — 190 долларов. |