24 сайта для обучения программированию на русском языке, в том числе бесплатно
Содержание
- 1 Где еще можно бесплатно изучать программирование?
- 2 С чего начать обучение
- 3 Где найти самоучитель по программированию?
- 4 Книги по программированию для начинающих
- 5 Что учить веб-разработчику на все «двадцатые»?
- 6 Личностное развитие
- 7 Как совершенствовать навыки
- 8 Шесть шагов как стать веб-программистом
- 9 Как подойти к вопросу обучения
- 10 Плюсы и минусы профессии
- 11 Как выучить Java?
- 12 Нужен ли диплом и опыт работы после обучения веб программированию с нуля?
- 13 Выбираем источники информации
- 14 Лекции и литература
- 15 Как стать программистом с нуля
- 16 YouTube-каналы
Где еще можно бесплатно изучать программирование?
- Помимо сайтов, обучающих программированию, много бесплатных уроков можно найти на YouTube. Советуем посмотреть подборку образовательных каналов, где можно учиться программировать.
-
В Клубе фрилансеров собрана подборка 20 бесплатных курсов по веб-разработке, верстке, анализу данных, ООП и другим темам. Также в этой группе выкладываются новые курсы, в том числе по программированию, поэтому советуем на нее подписаться.
С чего начать обучение
Если Вы начнете искать в интернете запрос о том, как обучиться программированию, Яндекс с Гуглом сразу начнут советовать десятки разных курсов. Я считаю, что подходить к этому вопросу нужно с другой стороны.
Ниже я приведу небольшую инструкцию, которая, возможно, кому-то очень пригодится и убережет от многих серьезных ошибок и их последствий.
Итак, с чего начать, если у Вас возникло желание стать разработчиком:
- Подумайте, почему Вы хотите начать программировать. Ответ на этот вопрос поможет выбрать конкретное направление. Стоит честно признаться, готовы ли Вы посвящать программированию большую часть своего свободного времени, а то и все свободное время целиком. Программирование нельзя учить время от времени. Это постоянная ежедневная практика. Как только Вы делаете даже маленький перерыв, сразу же откатываетесь назад в своем обучении на 2-3 шага.
- Выберите правильный язык. С одной стороны, не существует лучшего языка программирования и надолго зацикливаться на выборе не стоит. Изучив один, Вам будет несложно начать учить другой язык. Так делают многие разработчики. С другой стороны, лучше все-таки выбрать более легкий язык, чтобы не отбить у себя желание двигаться дальше. Многие советуют начинать обучение с Python, JavaScript или Swift. Выбор также будет зависеть от конкретных задач, которые Вы хотите научиться выполнять.
- Не спешите проходить платные курсы. Если Вы решили начать программировать с полного нуля, не нужно сразу покупать дорогие курсы. Почти все образовательные онлайн-программы рассчитаны на людей, которые способны на самообучение и имеют хотя бы минимальное базовое представление о том, что они собираются изучать. Поэтому начинать лучше с бесплатных источников, которые можно легко найти в свободном доступе.
- Будьте готовы очень много «гуглить». Об этом Вам скажет любой разработчик. Даже самый крутой программист 80 уровня с двадцатилетним стажем и огромной базой знаний что-нибудь да гуглит. Поэтому примите это как данность. Даже если Вы запишетесь на платные курсы и Вам пообещают всему научить с полного нуля, все равно во главе угла будет самообразование и навыки делать запрос в поисковой системе.
- Подтягивайте английский. Не верьте тем, кто говорит, что в программировании можно обойтись без языка. Если в школе Вы учили французский или немецкий, самое время начать шевелиться в сторону английского. Именно он является основой для каждого языка программирования, на нем пишутся все оригинальные источники важной информации, отлаживаются ошибки в коде и т.д. Конечно, можно годами обращаться к тому же Гугл-переводчику, но без языка потолок в карьере существенно ниже.
- Наберитесь терпения и не прыгайте выше головы. Самое главное – понять азы и отточить их до автоматизма. Не бегите по учебной программе галопом. Читайте и обязательно все пробуйте на практике. Пишите код, стирайте и переписывайте заново. И так снова и снова.
- Не стесняйтесь пользоваться ресурсами для детей. Это могут быть обучающие мобильные приложения или книги. Сейчас программированию учат даже малышей 6-8 лет. Логично, что информация для них изложена максимально просто и доходчиво. Такие средства отлично помогут понять основы программирования.
- Участвуйте в бесплатных марафонах, тренингах и вебинарах. Даже если сначала большую часть сказанного там Вы не будете понимать, хотя бы начнете привыкать к терминологии и смотреть на код.
- Читайте литературу. Несмотря на то, что большинство книг по программированию устаревает еще до того, как они появляются на полках магазинов, базовые вещи можно изучать по ним. Также в сети можно найти интерактивные книги, которые постоянно обновляются, по мере появления нововведений.
- Найдите наставника или станьте им. Отлично, если среди вашего окружения найдется человек, к которому можно будет обращаться при возникновении сложностей. Если нет – зарегистрируйтесь на тематических форумах, подпишитесь на сообщества программистов, занимающихся разработкой на вашем языке, и задавайте вопросы. Еще доказано, что лучше всего усваиваешь информацию, когда пытаешься ее объяснить другому человеку. Возьмите под «крыло» друга, который тоже хотел бы изучать программирование, и рассказывайте ему азы, которые уже освоили.
Где найти самоучитель по программированию?
Лучше всего подходить к изучению комплексно, например, совмещая онлайн-курсы, официальную документацию к языкам, лекции, статьи, книги. На GitHub можно найти огромную коллекцию бесплатных книг по программированию. Также доступен корпус электронных книг, охватывающий 24 языка программирования.
Книги по программированию для начинающих
В 2018 появилась книга «Введение в разработку программного обеспечения» Якова Крамаренко. Для изучающих программирование с нуля — вполне стоящая книга, с которой стоит начать. Освещены начальные шаги в веб-разработке, не затрагивая серверной части. В доступной форме рассказано про HTML, CSS и Javascript, которые необходимы, если вы изучаете веб-программирование в 2020.
К тому же книга есть на трёх языка. Ви можете розпочати вчити програмування українською or start learn programming in English — все варианты доступны! Главное начать 🙂
Что учить веб-разработчику на все «двадцатые»?
Волшебной таблетки не существует, чтобы стать full stack веб-разработчиком вам потребуется знать сразу несколько технологий:
- Python — мощный язык программирования высокого уровня, завоевавший популярность по всему миру за счет своей простоты и универсальности. Считается одним из самых доступных в плане освоения для новичков;
- SQL — для работы с базами данных и взаимодействия с системой управления БД. Если работали с таблицами Excel, то и с этим сможете разобраться;
- модуль Django — для разработки функционала и возможностей сайта во время его работы на сервере (бэкенд). Модуль работает на языке Python;
- javascript — для обработки запросов пользователей (фронтенд). Это будет второй язык программирования, который вы освоите (после Python будет уже проще);
- CSS и HTML — две системы разметки, используемые при верстке и оформлении для создания привлекательного сайта. Освоите их — и сможете настроить внешность любого сайт под нужды клиента.
Как все это изучить — вопрос немаловажный. Можно, конечно, самостоятельно, но без внешнего куратора вы никогда не узнаете, все ли достаточно хорошо освоили или надо еще теорию и практику подтянуть. Да и многие техники останутся вне вашего фокуса внимания. Ответ на все эти вопросы — в следующей карточке.
Личностное развитие
Каким бы вы крутым разработчиком не были, важно помнить, что так или иначе вам придется работать с людьми. И тут вдруг становится важно то, как вы умеете ладить и общаться с коллективом. На сколько грамотно можете выражать свои мысли и подбирать доводы за предложенные идеи.
“Коммуникабельность, проактивность, работа в команде” – должны быть не пустыми словами в резюме. Это может стать вашим личным кредо. Вы должны решать проблемы вашего клиента, а не создавать ему новые.
Разговаривайте на языке клиента, будьте готовы, что вас могут не понять – и это нормально. Учитесь отстаивать свою точку зрения, но в то же время слышать и уметь принять чужое мнение.
Как совершенствовать навыки
Как перейти с начального уровня на средний?
Типичный вопрос, который мы получаем от многих новичков, — «что дальше?» В частности, когда они пытались проработать какие-то уроки, пособия, курсы, но в итоге всё равно не смогли заполнить пробел между пониманием, как работает оператор if или цикл for, и как именно применять то, что они изучили, чтобы создать сложные и интересные программы.
Переходить от обучающих материалов к сложному коду может быть затруднительно, и это обычное дело для тех, кто учится кодить. Такое явление очень хорошо описано в этой статье. Многие курсы (особенно коммерциализированные сайты по, обучающие программированию, вроде CodeAcademy) помогают тщательно разобраться с основами, но на этом завершаются, а новички остаются топтаться на месте.
Но если не сдаваться и преодолеть замешательство, вы начнёте замечать, что постепенно становитесь всё лучше и лучше, пока однажды не поймёте, что, сами того не осознавая, уже начали выходить на новый уровень.
Перейдите с пассивного обучения на активное
Вместо того, чтобы брать курсы и уроки, которые (как вы думаете) научат вас тому, чему вы хотите научиться, начните активно искать способы обучиться самостоятельно. Например, если вы понятия не имеете, как создать игру, загуглите «как написать игру на Х», где «Х» — это язык программирования, который вы собрались использовать. Если у вас всплыло сообщение об ошибке, которая вам незнакома, попробуйте загуглить её. Если вы хотите освоить машинное обучение — погуглите и найдите годную книгу, пособие или онлайн-курс.
Вам будут нередко попадаться учебные пособия, разъясняющие, что именно вам следует делать, или по крайней мере статьи, которые дадут общее представление и подсказки о том, как составить более точные поисковые запросы. Тем более, нет ничего стыдного в том, чтобы искать источники новых знаний — как раз наоборот. Все программисты, как начинающие, так и профессиональные, постоянно делают две вещи: гуглят и учатся.
Постоянно практикуйтесь
Программирование похоже на физические упражнения в том смысле, что стать лучше можно только если непрерывно тренироваться. Начните с малого и попробуйте написать простейшую игру вроде «камень-ножницы-бумага» в командной строке. Когда закончите, попробуйте взяться за более смелый проект и справьтесь с ним. При желании параллельно можете выполнить какие-либо упражнения по программированию.
Главная цель программирования — разработка прикладного решения задач, а лучший способ научиться этому — постоянно решать задачи, большие и маленькие.
Научитесь декомпозировать задачу
Пытаясь справиться с крупным проектом или задачей, прийти в отчаяние можно уже от того, насколько большими и устрашающими они выглядят. Вместо того, чтобы унывать, разбивайте задачу на всё более мелкие подзадачи (это называется декомпозиция), пока каждая отдельная подзадача не начнёт казаться вполне подъёмной и осуществимой.
Допустим, вы хотите создать игру «камень-ножницы-бумага». Её можно разделить её на несколько подзадач: как получить вводные данные от пользователя, как заставить компьютер сделать случайный выбор, как определить победителя и как повторить игру (если вы хотите играть несколько раз подряд).
Если вы не уверены, как решить каждую из этих подзадач, продолжайте разбивать их дальше. Например, если вы не знаете, как определить победителя, то можете выделить ещё больше подзадач: как определить ничью, как определить вашу победу (если вы выбираете камень), как определить вашу победу (если вы выбираете бумагу) и как определить вашу победу (если вы выбираете ножницы).
Если вы совсем не знаете, как сделать что-то (например, как заставить компьютер выбрать случайное значение), погуглите. В данном примере поиск «Х выбрать случайное значение» (где Х — используемый язык программирования) покажет несколько различных способов, которые вы сможете использовать. Иногда задачу получается разбить на множество частей без поисковика, а иногда без него не обойтись.
Так, если вы учите Java и хотите научиться писать игры, но понятия не имеете, с чего начать или как разбить задачу на составляющие, загуглите «java игры уроки». Поиск даст несколько хороших источников, которые научат вас писать игры и (обычно автоматически) разбивать процесс написания игры на подзадачи поменьше.
По сути, этим вы прививаете себе образ мышления разработчика. Если задача слишком сложная, не расстраивайтесь. Продолжайте разбивать её на всё более простые составляющие и исследуйте вещи, которые кажутся неделимыми. Потом снова по кругу: разбиваете, гуглите, разбиваете, гуглите…
Это достаточно эффективная стратегия самообучения. С практикой вы станете лучше понимать, как раскладывать задачи, а также расширите свой багаж знаний и запас возможных способов их решения.
Будьте систематичны
Когда вы пишите и отлаживаете код, ни в коем случае не привыкайте просто пробовать сделать что-то, рассчитывая, что это случайно сработает. Будьте максимально чётки и последовательны — метод «проб и ошибок» здесь не подойдёт.
Во время написания кода остановитесь на минуту и составьте на листе бумаги приблизительные план действий. Попробуйте нарисовать какие-то схемы или набросать что-то вроде псевдокода. Если вам придётся изменить свой план (что вы, скорее всего, и сделаете), подумайте, для чего вам нужно это изменение и каким будет ваш новый план действий. (Этот этап планирования — также подходящая возможность, чтобы потренироваться декомпозировать задачи!)
Во время отладки кода ставьте чётки цели. Попробуйте мыслить, как учёный: проводите эксперименты, чтобы либо попытаться исправить баг, либо сузить область его поиска, и запишите результаты. Если ваша догадка/предпринятая попытка оказалась неверной или произошло что-то, чего вы не предусмотрели, остановитесь и разберитесь, в чём причина. Можете фиксировать эксперименты и тесты в блокноте, если это поможет вам придерживаться плана.
Баги возникают тогда, когда ваши предположения не совпадают с реальностью. Если что-то кажется неправильным, не игнорируйте это: продолжайте искать, пока не выясните, в чём дело/какое из ваших предположений было неверным.Не делайте что попало, пока что-нибудь не сработает — будьте последовательны.
Не расстраивайтесь, если приходится исправлять баги или гуглить
Не все новички понимают, что проводить большую часть времени за исправлением багов и поиском информации — абсолютно нормально даже для профессиональных программистов.
Отладка (и трудности!) — неотъемлемая часть программирования. Если получится, постарайтесь не отчаиваться и не злиться. Отнеситесь к этому как к занимательному квесту или головоломке.
Даже когда из-за бага вы не можете продолжать работу над самим кодом, если вы будете последовательны, то в любом случае хорошо потренируете навык декомпозиции задач, хоть и несколько другим образом.
В конечном итоге, даже если у вас уйдёт много часов на один-единственный баг, это время будет потрачено не зря. Отладка — один из лучших способов научиться решать задачи.
(Это станет ещё вернее по мере того, как вы будете приобретать всё больше опыта. В жизни с ростом вашей компетентности сложность багов, с которыми вы будете сталкиваться, будет только увеличиваться. Иногда даже опытным программистам приходится тратить месяцы на то, чтобы найти один особенно проблемный баг.)
Шесть шагов как стать веб-программистом
Итак, если вы всерьез решили самостоятельно научиться программировать, выполните всего шесть шагов.
Шаг первый. Научитесь верстать.
Начните с верстки сайтов. За верстку сайтов отвечает технология HTML и для придания красивого внешнего вида каскадная таблица стилей или по другому ее называют CSS.
С помощью этой технологии, вы научитесь из обычной картинки формата JPEG или PSD макета Photoshop программировать внешний вид сайта, чтобы верстка сайта корректно открывалась в браузере.
Верстка сайта — это процесс создания визуальной части сайта, без функциональной составляющей сайта. Сверстанную страницу можно будет открыть в браузере, она будет выглядеть как сайт, но если вы нажмете например на кнопку, то ничего не произойдет.
Обязательно нужно тренироваться. С помощью HTML и CSS попробуйте создать 10 — 20 страниц вашего будущего веб-сайта.
Найдите сайт в интернете, но не слишком сложный, который вам понравится и попробуйте создать похожий. Сначала у вас не будет получаться, но этот этап пройдет, если вы будете пробовать снова и снова.
Шаг второй. Фреймворк Bootstrap.
Пускай вас не пугает страшное слово фреймворк. Вскоре вы поймете, что это ваш самый близкий друг, который будет выручать вас при создании многих сайтов.
С помощью фреймворка Bootstrap вы сможете создавать ту же самую верстку сайта, но намного быстрее. И одно из самых важных преимуществ Bootstrap, в том, что верстка ваших сайтов, будет адаптивной.
То есть ваш сайт будет хорошо выглядеть как на больших мониторах, так и на смартфонах и планшетах. Верстка сайта будет автоматически подстраиваться под устройство и вам для этого практически ничего не нужно будет делать, за вас позаботится Bootstrap.
На фреймворке Bootstrap пробуйте также создавать верстку сайтов, чтобы немного освоиться.
Шаг третий. Программирование.
После того, как вы поймете основы верстки и создадите несколько своих сайтов-прототипов, переходите к программированию. Можете начать с языка PHP. Он невероятно простой и понятный.
Простота языка программирования с одной стороны хорошо, что на нем можно очень быстро научиться создавать скрипты на PHP, но с другой стороны плохо, что если вы упустите теоретическую часть, ваш код будет очень сложным для понимания, а программы написанные на нем, ограничены.
Изучение PHP начните с процедурного процедурного подхода в программировании. Изучите основные понятия любого высокоуровневого языка программирования: Переменные, Типы переменных, Массивы, Циклы, Функции и другое. Именно в такой последовательности.
Напишите с помощью процедурного подхода несколько простых программ, например, калькулятор или светофор.
Когда разберетесь более-менее с процедурным программированием на PHP, изучайте Объектно-ориентированное программирование (ООП).
ООП очень популярная парадигма программирования. Ее используют как минимум 90% всех софтверных компаний по всему миру, начиная от разработки простых сайтов, заканчивая разработкой огромных социальных сетей, например Facebook или VK и даже игр.
Системы написанные с помощью объектно-ориентированного программирования можно масштабировать и расширять до гигантских систем.
Когда изучите основы ООП на языке PHP, перепишите созданные ваши скрипты на процедурном подходе к программированию, в объектно-ориентированном стиле.
Шаг четвертый. База данных MySQL и CRUD.
Когда изучите предыдущие шаги, переходите к изучению взаимодействия языка программирования PHP с базой данных, с помощью языка запросов SQL.
Дело в том, что большая часть информации и даже текст который вы сейчас читаете, хранится не статично в HTML странице, а в таблице базы данных. Эта технология позволяет эффективно хранить и обрабатывать информацию.
С помощью языка запросов SQL, вы сможете “создавать”, “получать”, “обновлять”, “удалять” информацию из базы данных. Так вы перейдете к CRUD. Эти четыре буквы с английского языка расшифровываются как CREATE(создавать) - READ(читать) - UPDATE(обновлять) - DELETE(удалять).
На этом шаге вам нужно будет попробовать создать CRUD приложение, которое сможет, к примеру, создавать на сайте новости, удалять на сайте новости, обновлять на сайте новости и просматривать новости.Когда вы напишите несколько CRUD приложений, можно двигаться дальше к пятому и самому интересному шагу.
Шаг пятый. MVC фреймворк.
Изучите простой php фреймворк, например Codeigniter. На этом шаге вам нужно будет перенести верстку вашего сайта, созданную на предыдущих этапах, в фреймворк. Основная задача - это понять паттерн MVC. Расшифровывается MVC как MODEL(модель) - VIEW(вид) - CONTROLLER(контроллер).
Благодаря этому паттерну, вы сможете создавать удобную структуру кода вашего веб-приложения и сможете, имея правильную структуру, быстро дописывать новый функционал для вашего сайта.
Создайте на простом PHP фреймворке и на паттерне MVC, сначала CRUD приложение, а затем и ваш первый веб-сайт.
После этого, создайте еще 3 - 5 веб-сайтов для себя, друзей, коллег, родственников. Это прибавит вам опыта и эти сайты пригодятся вам в качестве портфолио, когда вы решите, что готовы попробовать создавать сайты за деньги.
Как подойти к вопросу обучения
Для эффективного обучения вам потребуются не только мотивация, но и источники информации и план.
Постановка цели на будущее
Желательно поставить себе цель создать какой-либо проект и постепенно идти к этому. Это необязательно должна быть игра или нечто крупное: можно начать с маленьких скриптов или приложений. Создать код быстро не получится, если вы не будете владеть нужными знаниями. Однако по мере освоения языка вы начнете продвигаться вперед, после создания первого проекта приступите к следующему.
Оценка собственных способностей
Правильная оценка своих способностей – главное условие обучения. Вы должны хорошо понимать, что вам дается хорошо, а что лучше проработать.
Систематизация и разработка плана обучения
Без плана обучения вы будете продвигаться медленнее, поскольку занятия будут иметь случайный характер. Распишите, сколько часов вы будете уделять программированию и по каким дням.
В план вы можете включить как чтение литературы, так и просмотр курсов, работу над проектом и т. д.
Необходимые источники информации
В качестве источников информации используют обучающую литературу, форумы, сайты с видеокурсами. Новичкам можно почитать книги, предлагающие освоить программирование за 1 день. Полный набор навыков такая литература не даст, но поможет понять основы.
Плюсы и минусы профессии
Что привлекает людей в профессии программиста, заставляет выбирать профильные специальности в вузах, менять профессию и уходить в IT? Перечислю основные достоинства:
- Высокий заработок. Средняя зарплата опытного программиста редко бывает ниже 100 тысяч рублей. Новичок в профессии может стартовать с 30-40 тысяч в зависимости от компании и города. Те специалисты, которые развиваются в профессии не один год и высоко ценятся руководством, могут зарабатывать 200-300 тысяч рублей и выше.
- Востребованность. За счет цифровизации всех сфер общественной жизни спрос на разработчиков растет с каждым годом. Сегодня в IT-специалистах нуждается даже сельское хозяйство.
- Возможность работать удаленно по свободному графику. Специалисты в области IT приносят своим работодателям огромные деньги, а потому за комфортом разработчиков тщательно следят. У них удобные современные офисы, многие компании считаются с хронотипами сотрудников (совами и жаворонками), позволяя работать в удобное время суток, а то и вовсе из дома. В 2020 году, когда началась пандемия и миллионы людей остались без зарплаты, айтишников просто распустили по домам, и они спокойно продолжали работать в том же режиме.
- Карьерный рост, в том числе за рубежом. Для сферы программирования нет никаких географических ограничений. Вы можете сидеть у себя в квартире в провинциальной глубинке и работать на крутую забугорную компанию. А с хорошим знанием английского можно легко переехать в Европу – специфика работы будет та же. Чего нельзя сказать, например, о юристах или врачах. Даже если у них будет безупречный английский, им придется заново проходить обучение, получать квалификацию, изучать местное законодательство, оформлять кучу документов и т.д.
- Интересные задачи, общение с единомышленниками. Во-первых, работа разработчика очень творческая – он пишет код, отлаживает его, тестирует, переписывает и видит свой результат – рабочую программу, которая выполняет какие-то свои цели. Есть программисты, которые пишут игры, есть те, что создают «мозги» роботам. Во-вторых, программист – это командный сотрудник, которому приходится знакомиться и общаться со множеством людей.
- Можно легко уйти в смежные области. Внутри IT-сферы есть много других направлений помимо разработки, которые при желании можно освоить – дизайн, аналитика, маркетинг, менеджмент, архитектура ПО и др.
Но даже у такой заманчивой профессии есть свои минусы:
- Сидячий образ жизни.
- Сильная нагрузка на зрение.
- Быстрое устаревание знаний. В программировании нет такого, что вы все выучили и можете спокойно работать. Разработчик вынужден постоянно учиться, повышать свою квалификацию, следить за стремительно развивающейся отраслью, иначе его ценность как профессионала начнет очень быстро падать.
Как выучить Java?
Для начала изучите синтаксис языка: ключевые слова, операторы, правила написания кода. Постепенно переходите к изучению более сложных конструкций языка – методов, конструкторов, классов, библиотек и фреймворков. Чтобы понять, как программировать правильно, включите в программу обучения алгоритмы и структуры данных. Это очень полезно для формирования мышления программиста. Данный этап желательно проходить после изучения синтаксиса языка.
И, тем не менее, помните: ваш план — это не статичная конструкция, которую ни в коем случае нельзя модифицировать. Приметили интересную и перспективную технологию или инструмент разработки — смело включайте в свой план!
Нужен ли диплом и опыт работы после обучения веб программированию с нуля?
Считается, что высокие инженерные или исследовательские должности без высшего образования недостижимы. Также диплом необходим тем специалистам, которые захотят работать за границей. При этом многие российские HR-специалисты говорят, что при приеме на работу смотрят, в основном, не на строку «образование» в резюме программиста, а на реальный опыт работы. Кроме того, перед собеседованием или во время него претенденту, скорее всего, предложат выполнить тестовое задание.
Выбираем источники информации
Для понимания как научиться программировать с нуля, используйте все, до чего сможете добраться – статьи в интернете, обучающие видео, книги, форумы, официальную документацию.
Лекции и литература
Освоив метод Франклина, ищите информацию, которая бесплатно доступна в интернете в огромном количестве, особенно на английском языке. Вкратце план действий такой:
- Выучить английский язык (хотя можно найти немало курсов и на русском языке).
- Выбрать программу обучения. Определиться, какое направление программирования наиболее интересно.
- Найти учебные материалы по этому предмету.
Образовательные ресурсы с курсами и лекциями
- MIT OpenCourseWare: обучающие курсы, видеозаписи лекций и семинаров Массачусетского технологического института.
- KhanAcademy: бесплатные лекции, в том числе по математике и информатике.
- Coursera: курсы от ведущих западных университетов.
- Статьи по программированию от Skillbox.
Учебная литература
- Список бесплатных книг по программированию (англ. яз.).
- Сборник учебной литературы для программиста.
- Бесплатные книги по программированию на русском и английском.
- Подборка бесплатных книг.
Самоучители для начинающих
- Занимательное программирование. Самоучитель. М. Мозговой.
- C# для школьников. Учебное пособие. М. Драйер.
- Программирование на Java для детей, родителей, дедушек и бабушек. Я. Файн.
Самообучение для неподготовленного человека не так эффективно, как отработанные методики передачи знаний и навыков, которые гарантируют качественный результат без особых затрат. Тратить силы и время всё равно придется, но не в таком фанатичном режиме, как у самоучек.
Как стать программистом с нуля
Прежде всего надо изучать теорию алгоритмов и структур данных. Они не зависят от конкретного языка, наоборот, языки программирования устроены в соответствии с алгоритмами и структурами.
Язык – это просто инструмент для решения бизнес-задач. Поэтому новичку надо определиться с тем, как решать задачу, разбить это решение на этапы, оптимизировать процесс, чтобы не тратить время и ресурсы впустую.
После освоения алгоритмов и структур данных нужно выбрать направление программирования. Лишь потом можно приступить к изучению веб-технологий и инструментов. Это серверные языки и языки разметки, стили CSS и JavaScript, веб-фреймворки, подходящие к выбранному языку программирования.И напоследок научиться работать с базой данных.
Подбор направления
Перед изучением языка надо определиться с направлением. У программирования широкий спектр возможностей и вариантов работы. Можно создавать сайты и мобильные приложения, игры, социальные сети, интернет-магазины, разрабатывать операционные системы и программное обеспечение.
По основной классификации программистов делят на прикладных, системных и веб-разработчиков.
Прикладные создают программы и приложения, которые решают конкретную задачу. Примерами прикладных программ могут быть онлайн-переводчики, аудио- и видеоплееры, игры, редакторы‚ мессенджеры и т. п.
Системные занимаются разработкой операционных систем и драйверов, а также условий и инструментов для их слаженной работы. Благодаря программистам сервис может работать как единый механизм. Специалисты предотвращают или устраняют перебои и ошибки в работе целого ряда программ на предприятии.
Веб-программист работает над созданием веб-сервисов и пишет для них программную составляющую. Соцсети, интернет-магазины, информационные сайты, форумы и прочее – все это труды специалистов по работе в сети.
Выбрать направление деятельности можно среди доступных профессий:
- Data Scientist – специалист по работе с большими данными.
- Frontend-разработчик – программист, отвечающий за лицевую составляющую сайта.
- Backend-разработчик – человек, который работает с серверной частью веб-сервиса.
- Fullstack-разработчик совмещает в себе frontend- и backend-разработчика.
- Администратор базы данных – человек, разрабатывающий требования к базе данных, которая используется конкретным предприятием, и отвечающий за проектирование и использование хранилища.
- Системный инженер настраивает и обслуживает внутренние компьютерные сети, офисную технику и ПК.
- Верстальщик работает над оформлением страницы и ее элементами: заголовками и подзаголовками, рамками вокруг картинок, шрифтом, отступами, абзацами.
- Архитектор ПО создает сложные IT-системы для решения бизнес-задач. С его помощью организации автоматизируют и упрощают повторяющиеся бизнес-процессы.
- Визуализатор – это специалист по разработке реалистичных трехмерных макетов зданий, интерьеров, памятников, мебели, одежды, окружающего пространства в компьютерной игре и т. д.
- Веб-дизайнер занимается созданием удобного и привлекательного интерфейса для веб-платформ.
И это только часть должностей, которые может занимать программист.Для каждой работы нужен свой инструмент, который может не подходить для создания чего-то другого. Поэтому направление – решающий фактор при выборе языка программирования для изучения.
Выбор языка программирования
Когда начинающий специалист встает перед выбором языка, ему надо учитывать количество имеющихся на рынке труда вакансий и выбранное направление.
Можно найти предложения о работе, в которых сразу написано, с каким языком надо будет работать, например, PHP-программист или программист Python.
Если же отталкиваться от направления, то надо знать, что веб-разработчик пользуется C++, Python, Java. Системный программист – Assembler, C, C++, Python. Администратор базы данных – SQL.
Ниже приведены самые распространенные и популярные представители языков программирования:
- Python – это универсальный и распространенный язык программирования. Он популярен во всем мире и используется в большинстве своем в научных проектах, в области разработки ПО и при работе с Big Data.
- JavaScript. Этот язык тоже универсальный и часто используемый. С ним работают при разработке игр, интерактивного веб-дизайна интерфейса и в робототехнике.
- Java – это один из самых простых в использовании и понимании языков программирования. С ним часто создают различные веб-приложения.
- PHP – один из лидеров среди языков программирования, используемых при создании динамических веб-платформ. Часто является инструментом разработки веб-приложений.
- Паскаль – известный, но несколько устаревший язык программирования. Тем не менее он является основой для некоторых других языков и до сих пор применяется для обучения программированию в старших классах в школе и на первых курсах в вузе.
- Swift – новый язык, созданный компанией Apple. Он легок в использовании и позволяет новичкам разрабатывать мобильные приложения для iOS и macOS.
Чтобы изучить язык, сначала надо разобраться с его синтаксисом, т. е. ключевыми словами, операторами, правилами написания кода. А дальше можно перейти к более сложным конструкциям.
Если к этому времени специалист еще не приступал к изучению фреймворков, структур и баз данных, то сейчас эти знания просто необходимы. Не надо бросаться на все сразу, лучше выбрать что-то из основного: Git, SQL, HTML, CSS, XML, JSP, Maven, Spring, ORM, REST, MySQL, PostgreSQL.
Самообразование
Книги хороши тем, что их можно читать и учиться бесплатно, и тем, что они быстро погружают в тему. Рекомендую следующие пособия:
- Роберт Мартин “Чистый код”
- Дональд Кнут “Искусство программирования”
- Игорь Савчук “Отъявленный программист. Лайфхакинг из первых рук”
- Панос Луридас “Алгоритмы для начинающих. Теория и практика для разработчика”
- Дэвид Харрис, Сара Л. Харрис “Цифровая схемотехника и архитектура компьютера”
- Галина Иванова “Основы программирования”
- Чед Фаулер “Программист-фанатик”
- Кент Бек “Экстремальное программирование”
Можно использовать бесплатные обучающие платформы, сайты и приложения, форумы, где делятся своим опытом профессиональные программисты. А можно положиться только на самостоятельное обучение, но такой путь сложен для новичка. Лучше совмещать его с другими методами, например, с онлайн-курсами.
Онлайн-курсы
Новичку предлагаются курсы от онлайн-платформ GeekBrains, Нетологии, Skillbox, Coursera, beONmax. Постигать азы сферы информационных технологий можно в своем темпе и в домашних условиях. Так цена будет ниже, чем обучение в вузе.
Обучение предполагает как теоретическую, так и практическую часть. Нередко выпускники курсов имеют портфолио, диплом или сертификат, подтверждающий их навыки и знания.
Предлагаю ознакомиться со следующими обучающими программами:
- Основы программирования
- Как стать программистом
- Факультет веб-разработки
- Старт в программировании
- Веб-разработчик с нуля
- Веб-разработчик с нуля до PRO
- Веб-разработчик 2020 – с нуля до результата
На блоге вы найдете список курсов по программированию с нуля с подробным описанием условий обучения, а также отдельные статьи с перечнем курсов по созданию сайтов с нуля, по геймдизайну и разработке видеоигр.
Составление резюме и портфолио
Можно начать работать на бирже, чтобы было что написать про свой опыт в резюме и добавить работы в портфолио. Для первого реального опыта подойдут и небольшие проекты. Главное – начать.
Лучше выбирать иностранные биржи, особенно если есть знания английского языка. Там и заказов больше, и доход выше. Подойдут, например, Upwork и YouTeam. Если говорить о русскоязычных биржах, то популярны Kwork, FL.ru и Freelance.ru.
Заполнить портфолио могут помочь и собственные проекты, если есть идеи, возможность и желание.
А дальше можно уже перейти на специализированные сайты с вакансиями только для программистов, например, We Work Remotely и Хабр Карьера. А можно поискать работу на таких ресурсах, как hh.ru или SuperJob.ru.
У специалиста должно быть резюме, когда он откликается на вакансию. В нем надо указать правдивые факты о проектах, в которых он участвовал, и свои достижения на этой работе. Не помешает рассказать и о собственных проектах, если они есть. Это показывает профессиональный уровень и любовь к IT-сфере.
Надо указать свои знания и навыки, но не на несколько страниц, а коротко, четко и лаконично. Нужно писать саму суть, без воды.
В портфолио лучше указывать несколько самых лучших проектов, которыми специалист если не гордится, то хотя бы доволен ими.
YouTube-каналы
LearnCode.academy — здесь размещены англоязычные видеоролики на тему веб-разработки, созданные Уиллом Стерном. Просто тонны бесплатных пособий по JavaScript и другим языкам программирования, а также видео о самых популярных инструментах, применяемых разработчиками.
thenewboston — здесь вы найдете свыше 4000 видео по самым разным тематикам в программировании, начиная от разработки игр и заканчивая дизайном. Один из самых популярных англоязычных каналов с более, чем двумя миллионами подписчиков.
Derek Banas — особенностью данного англоязычного канала является сжатая информация о языках программирования в одном видео на каждый язык отдельно + есть и привычные туториалы.
ProgrammingKnowledge — данный англоязычный канал ориентирован на новичков, желающих изучить программирование. Пошаговые учебные плейлисты охватывают разные языки программирования.
Гоша Дударь — не отметить этого парня в русскоязычном YouTube было бы непростительно. Очень много уроков по очень многим языкам программирования, фреймворкам и не только. Отлично подойдет для новичков.
Хауди Хо — уклон больше сделан на разговорные и развлекательные видео, касающиеся темы IT и программирования, но также есть и уроки.
#SimpleCode — канал о программировании на C++ и C# с вкраплениями разговорных видео о программировании.
- https://www.kadrof.ru/articles/44711
- https://investbro.ru/programmirovanie-s-nulya/
- https://trends.rbc.ru/trends/education/5d6bdbd99a79479d59272f35
- https://itman.in/kak-stat-programmistom-s-nulya-samostoyatelno/
- https://vgtimes.ru/guides/69777-kak-nachat-izuchat-programmirovanie-s-nulya-5-sovetov.html
- https://dimlix.com/programming-for-beginners/
- https://techrocks.ru/2018/06/19/learn-programming-from-zero/
- https://ru.wh-db.com/article/kak-samostoatelno-izuchit-web-programmirovanie/
- https://legkonauchim.ru/hobbi/kak-samomu-nauchitsya-programmirovaniyu
- https://javarush.ru/groups/posts/1902-kak-nachatjh-programmirovatjh
- https://skillbox.ru/media/code/kak_pravilno_izuchat_programmirovanie/
- https://iklife.ru/internet-professii/programmist/s-chego-nachat-obuchenie-programmirovaniyu.html
- https://ravesli.com/70-besplatnyh-resursov-dlya-izucheniya-programmirovaniya/