С какого языка начать изучение программирования самостоятельно
Содержание:
- Как выбрать подходящее направление?
- «Джанго» — это танцы?
- Выбор направления
- Как стать программистом
- Перемещение кода ведомого ядра в SRAM
- Б. Блюменталь “Одна привычка в неделю”
- Выбор языка
- С какого языка начать
- Языки низкого и высокого уровней. Разница и области применения
- 4. Слушайте лекции профессионалов: EdX
- «Джанго» — это танцы?
- Как подойти к вопросу обучения
- Машинный язык
- Пишем план подготовки
- Как выучить Java?
- Как научиться программировать на Java?
- Тренажёры для простого программирования
- Как научиться программировать на Java?
- А можно еще проще?
- Шаг пятый. Пройдите онлайн тренинг
- С чего начать?
- Создайте план обучения
Как выбрать подходящее направление?
Выбор языка программирования напрямую зависит от типа ПО, которые вы будете создавать в будущем:
- Декстопные программы. Этот тип ПО предназначен для персональных компьютеров (разные плееры, конвертеры, текстовые процессоры и так далее).
- Антивирусное программное обеспечение (ПО для устранения вирусов и шпионских программ). Разработчики антивирусов должны иметь общие представления о криптографии и различных алгоритмах шифрования данных.
-
Приложения для смартфонов и планшетов. Наиболее востребованное ответвление современного программирования. Для разных операционных систем требуется знание своего языка. Статьи для разработчиков под IOS, WinPhone и Android подскажут новичку, с чего начать изучать программирование с нуля для смартфонов и планшетов.
- Игровое ПО для персональных компьютеров. Такие игры, как правило, имеют заранее прописанный сценарий, который пользователь должен пройти. Для написания нужно иметь познания в области построения графических трехмерных элементов.
- Онлайн-игры. Довольно популярные сегодня типы ПО. Соответственно, разработчики также востребованы на рынке труда.
- Работа с веб-технологиями. Создание сайтов. Web-программирование с нуля освоить достаточно просто, ведь логика написания сайтов и скриптов намного легче, чем создание ПО со сложным алгоритмом работы.
Если наиболее важную роль для вас играет размер заработной платы, обратите свое внимание на рынок вакансий. Сейчас самыми востребованными считаются разработчики, которые специализируются на языках Java, C#, ASP.NET, C++
«Джанго» — это танцы?
Если на все эти вопросы у вас нет ответа (даже приблизительного), вам нужен курс, немалая часть которого посвящена азам вычислительной науки, объяснению типов данных, алгоритмов и обучению синтаксису языка программирования. Пройти такой можно, например, в SkillFactory. Первые 4 месяца вебинаров как раз и посвящены основам. Затем вы сможете перейти к написанию простеньких программ.
В дальнейшем за 9 месяцев вы узнаете, как использовать Python/Django, базы данных и СУБД, javascript и верстку, как поднять веб-сервер и развернуть на домене созданный сайт. Это как раз то, что нужно для фронтенд и бэкенд уровня.
Последний этап курса — поиск и устранение ошибок в написанном коде, автоматическое тестирование приложения с помощью фреймворков, проектирование интерфейсов, передача навыков по решению проблем, возникающих перед фулстек-разработчиком в самом начале выполнения заказа.
Помимо лекций компетентных специалистов на курсе «fullstack-разработчик на Python» вы сможете выполнять домашние задания, решать задачи разного уровня сложности, а также вам будут доступны тренажеры для программирования. В конце курса предстоит пройти тестовое собеседование, что поможет при дальнейшем трудоустройстве.
Выбор направления
Прежде чем приступать к изучению, какой-либо конкретной системы программирования нужно определиться, какой именно софт вы хотите создавать, то есть определиться с выбором направления. Сейчас в данной отрасли существуют три направления: web или написание сайтов, прикладное и системное программирование. Остановимся вкратце на каждом из них:
- web сайты сейчас обладают таким множеством различных возможностей, что их можно назвать полноценными приложениями. Существуют два типа языков программирования для веб. Одни предназначены для выполнения скриптов на сервере, это PHP, Ruby, Perl, Puthon. Другие нужны для написания скриптов выполняющихся в браузере на клиентской машине;
- прикладное программирование изучает написание софта для конечного пользователя. Это могут быть программы для бухгалтерии, для работы с базами данных, а также игры, программы для просмотра видео и многие другие;
- системный программист занимается написанием драйверов, компиляторов и другого софта который нужен для работы компьютера и используется другими IT специалистами.
Как стать программистом
Прежде чем писать любую программу нужно заняться определением требований к данному софту, то есть определить, что нужно пользователю, изучить предметную область. В зависимости от этого можно выбирать язык разработки. Так же и при изучении нового языка необходимо определить, какие программы вы хотите писать и, исходя из этого, выбирать материал, который вам нужно выучить.
Для написания сайтов вам потребуется знать HTML и CSS для создания красивого дизайна. Также потребуется JavaScript, чтобы можно было сделать скрипт, выполняющийся в клиентском браузере. Функционал, работающий на стороне клиента, чаще всего реализован на PHP.
Системные программисты обычно пишут на Си и Assembler.
Прикладные программы и программы для бизнеса обычно пишут на С++ или Java.
Прежде чем приступать к изучению конкретного языка программирования с нуля, вы должны изучить элементарные теоретические сведения об алгоритмах, знать что такое условное ветвление, циклы, функции. Также будущему программисту полезно знать математику, иметь представление о системах счисления. Еще нужно уметь читать техническую информацию на английском. Книги обычно устаревают еще до того, как выйдут на русском, ведь нужно время чтобы написать книгу, а потом еще ее нужно перевести на русский, а за это время информация уже успеет устареть.
Начинать самостоятельное изучение лучше всего с поиска обучающих сайтов. Лучше всего если обучение происходит на примере разбора реальных проектов, где вы можете увидеть, как создается интересная для вас программа и увидеть все этапы ее создания. Кроме этого, чтобы научиться программировать, вам следует читать официальную документацию и книги.
Сейчас существует множество различных дистанционных и очных курсов, в которых обучение ведется по специально разработанным профессиональным программам с живым наставником, которому можно задавать вопросы. Единственным недостатком такого способа получения знаний является их высокая стоимость.
Научиться писать программы невозможно без практики. Начинать нужно с небольшого и легкого проекта. Когда вы его закончите, можете приступать к написанию более сложного софта.
Хорошим способом для чайника научиться создавать софт является обучения с помощью наставника. Вам сильно повезло, если среди ваших друзей окажется разработчик ПО, который согласится консультировать вас.
Также, чтобы стать хорошим программистом и не отставать от времени, нужно постоянно следить за новинками.
Перемещение кода ведомого ядра в SRAM
В текущей версии приложения прошивки двух ядер хранятся во FLASH-памяти. Оба ядра используют одну и ту же шину для чтения команд. Это не очень эффективно. Поэтому рекомендуется переместить прошивку ведомого ядра в SRAM. Тогда ведущее ядро продолжит загружать команды из FLASH-памяти, а ведомое ядро будет загружать команды из SRAM по другой шине. Сделать это можно следующим образом:
- Перейти в проект ведомого ядра (ядро 1).
- Открыть свойства проекта и в настройках компоновщика (Linker > Config) заменить конфигурационный файл на .
- Пересобрать проект.
- Вернуться к проекту для ведущего ядра (ядро 0).
- Добавить в :
- .
- Выбрать и зафиксировать адрес в SRAM, по которому будет расположена прошивка ядра 1.
- Добавить функцию для определения размера прошивки.
- В коде перед запуском ядра 1 скопировать прошивку из FLASH-памяти в SRAM.
- Обновить стартовый адрес (эта строчка уже должна быть, поменять нужно только адрес).
- Можно собрать прошивку ядра 0, запустить и убедиться, что всё работает.
Если на данном этапе возникли ошибки, нужно проверить что при сборке прошивки ведомого ядра генерируется бинарный файл и содержимое этого файла включается в прошивку ведущего ядра (шаги 2 и 7 из предыдущего раздела).
Б. Блюменталь “Одна привычка в неделю”
Можно сказать, что наша жизнь состоит из привычных действий, доведенных почти до автоматизма. Недавно мы с сыном посчитали наши привычки (хорошие и плохие), и их оказалось довольно много. В каждом дне есть такие дела и мысли, к которым мы регулярно возвращаемся. Их изменение, конечно, приводит и к переменам в жизни.
Бретт Блюменталь предлагает осваивать по одной хорошей привычке в неделю на протяжении года. Итого, получается 52 полезных действия, ведущих к здоровью, улучшению памяти и настроения, что довольно впечатляюще. На каждые 7 дней автор также приготовил задания и упражнения.
Конечно, за неделю привычка не может укорениться, и нужно продолжать работать над собой в будущем. Книга лишь поможет найти свой путь к переменам и новым возможностям.
Выбор языка
Когда вы остановили свой выбор на одном из направлений своей деятельности, стоит выбрать один из языков программирования который следует выучить в первую очередь. Все системы программирования делятся на два вида. В компилируемых языках исходный код, при помощи специальной программы, преобразуется в исполняемый файл. Софт, написанный на интерпретируемом, или скриптовом языке, выполняется последовательно по строкам, написанным в файле с исходным кодом.
Среди интерпретируемых сейчас наиболее популярны PHP, Python и Perl.
Наиболее популярным для написания сайтов является PHP. Его особенностью является то, что никто не проектировал и не руководил процессом его развития, и поэтому в нем нет стиля, который бы отвечал за правила, по которым называют функции, настройки могут находиться в разных местах. Главное достоинство — это легкость его усвоения, можно сесть за компьютер и через два часа начать писать на PHP.
Perl создавался для обработки различной текстовой информации. С появлением интернет стал использоваться для написания скриптов для сайтов. Сейчас по популярности уступает PHP.
Python считается несложным для усвоения языком. Несмотря на простой синтаксис и благодаря множеству функция входящих в стандартную библиотеку он имеет достаточно высокую функциональность. Также для Python существует множество библиотек, разработанных сторонними разработчиками, которые еще больше расширяют возможности данного языка. Python используется как для написания программ, так и для создания различных расширений.
Среди компиляторов можно выделить два языка С++ и Java.
На С++ пишут самый разнообразный софт, но его практически не используют для создания сайтов. Данный язык сложен для начинающего программиста. С++ требует от разработчика высокой квалификации, однако и оплачиваются такая работа соответственно.
Java разработан для написания программ, которые бы могли работать на разных платформах, как на компьютере, так и на смартфонах и других устройствах. Исходная программа преобразуется не в машинный код, а в специальный байт-код, который выполняется на специальной Java машине. Благодаря этому софт, написанный на этом языке, будет выполняться на любом устройстве, на котором установлена Java машина. Одно из самых популярных применений Java — это написание Android приложений. Этот язык проще в изучении, чем С++ и на нем труднее написать плохую программу.
С какого языка начать
В большинстве технических вузов обучение начинают с немного устаревших языков. Это могут быть Turbo Pascal и Turbo C. Сами программисты их сейчас практически не используют, но цель обучения эти языки оправдывают. Они помогают студентам разобраться с тонкостями работы с оперативной памятью и помогают постичь, какой путь требуется пройти, чтобы преобразовать замысел в работающую программу.
Кроме того, тот же язык С является своеобразной основой для создания современных языков и изучить его будущему программисту очень полезно.
Если же интересуют перспективные языки программирования, обратите внимание на:
- Python. К слову, с него многие начинающие программисты и начинают. Секрет его популярности – не в обширном функционале, а в возможности быстро приступить к практике. Чтобы начать работу, достаточно скачать файл и его запустить. Разобраться в тонкостях работы также несложно: есть масса книг, написанных под Python. Кстати, этот язык используется во многих крупных компаниях, и те, кто хорошо в нем разбираются, всегда могут найти работу.
- Java. Очень популярный, применяется на всех устройствах и платформах. Специалисты, которые освоили его, востребованы и всегда смогут найти высокооплачиваемую должность. К слову, он не имеет ничего общего с JavaScript.
- PHP. На сайте уже есть публикации про него. Его называют «не совсем настоящим» языком программирования, так как он заточен исключительно под веб, в то же время его редко применяют в веб-приложениях. Язык лежит в основе самых популярных «движков», или CMS. (В этой публикации я уже писал о том, что такое CMS простыми словами, а здесь вы можете увидеть, какие они бывают и как выглядят) Поэтому, если вы разберетесь с ним, а затем и с WordPress, которая является одной из самых популярных систем управления сайтами, работу себе вы всегда найдете. Здесь я уже писал с чего начать процесс ее изучения.
Есть и другие языки: Ruby (как и Python скриптовый), С# (по функционалу похож на Java, позволяет создавать сайты и приложения на фреймворке .NET), С++ (сложная версия С, которая открывает массу возможностей, разбираться с которыми лучше с наставником).
Языки низкого и высокого уровней. Разница и области применения
Считается, что все языки программирования делятся на высокоуровневые и низкоуровневые. Код низкого уровня более легко обрабатывать компьютеру, но его написание занимает много времени и требует больше знаний в предметной области. Такие языки (например, ассемблер) используются для написания ПО для цифровых микросхем и микроконтроллеров. Они не очень удобны для того, чтобы изучать программирование с нуля. С чего начать написание первых программ, подскажут приведенные далее в статье полезные сервисы и литература от всемирно известных авторов.
Высокоуровневые языки намного легче в применении, ведь они используют встроенные библиотеки для упрощения и визуализации кода. Большинство современного ПО пишется с помощью языков высокого уровня.
4. Слушайте лекции профессионалов: EdX
EdX — это образовательная платформа, созданная Гарвардским университетом и MIT. В ней представлено множество предметов, в том числе, программирование на Java и смежные области. EdX содержит массу утвержденных вводных курсов и сертифицированных программ, проводимых университетами.
Хотите быть в курсе последних новостей, обзоров и обновлений в Java-мире? И это правильно. Java постоянно развивается, обновляется и добавляет новые возможности. Не забывайте каждый день читать полезные статьи по Java.
Помните совет о том, чтобы вступить в профильные сообщества для более эффективного обучения? Можете задавать свои вопросы в разделе Java на Stack Overflow или Coderanch. Кроме того, есть как минимум три крупных сообщества на Reddit (learnprogramming, java и learnjava), где вы познакомитесь с полезными подсказками по изучению как всего программирования, так и отдельно взятого языка. Если нужна более конкретная информация (например, как улучшить код в каких-то заданиях), то почитайте специальный раздел помощи на CodeGym –другие студенты и «наставники по разработке» подскажут вам решение любой задачи. И, наконец, есть еще крупное Java-сообщество на Oracle. Оно рассчитано на новичков и продвинутых разработчиков.
Быть разработчиком — это постоянно совершенствоваться и получать новые знания. Если вы изначально разовьете навык самообразования, то гарантированно добьетесь успехов. Итак, вы готовы начать?
Перевод статьи John SelawskyHow to learn to code in Java: why you should and where to start
«Джанго» — это танцы?
Если на все эти вопросы у вас нет ответа (даже приблизительного), вам нужен курс, немалая часть которого посвящена азам вычислительной науки, объяснению типов данных, алгоритмов и обучению синтаксису языка программирования. Пройти такой можно, например, в SkillFactory. Первые 4 месяца вебинаров как раз и посвящены основам. Затем вы сможете перейти к написанию простеньких программ.
В дальнейшем за 9 месяцев вы узнаете, как использовать Python/Django, базы данных и СУБД, javascript и верстку, как поднять веб-сервер и развернуть на домене созданный сайт. Это как раз то, что нужно для фронтенд и бэкенд уровня.
Последний этап курса — поиск и устранение ошибок в написанном коде, автоматическое тестирование приложения с помощью фреймворков, проектирование интерфейсов, передача навыков по решению проблем, возникающих перед фулстек-разработчиком в самом начале выполнения заказа.
Помимо лекций компетентных специалистов на курсе «fullstack-разработчик на Python» вы сможете выполнять домашние задания, решать задачи разного уровня сложности, а также вам будут доступны тренажеры для программирования. В конце курса предстоит пройти тестовое собеседование, что поможет при дальнейшем трудоустройстве.
Как подойти к вопросу обучения
Для эффективного обучения вам потребуются не только мотивация, но и источники информации и план.
Постановка цели на будущее
Желательно поставить себе цель создать какой-либо проект и постепенно идти к этому. Это необязательно должна быть игра или нечто крупное: можно начать с маленьких скриптов или приложений. Создать код быстро не получится, если вы не будете владеть нужными знаниями. Однако по мере освоения языка вы начнете продвигаться вперед, после создания первого проекта приступите к следующему.
Необходимо поставить цель на будущее и идти к ней.
Оценка собственных способностей
Правильная оценка своих способностей – главное условие обучения. Вы должны хорошо понимать, что вам дается хорошо, а что лучше проработать.
Систематизация и разработка плана обучения
Без плана обучения вы будете продвигаться медленнее, поскольку занятия будут иметь случайный характер. Распишите, сколько часов вы будете уделять программированию и по каким дням.
Необходимые источники информации
В качестве источников информации используют обучающую литературу, форумы, сайты с видеокурсами. Новичкам можно почитать книги, предлагающие освоить программирование за 1 день. Полный набор навыков такая литература не даст, но поможет понять основы.
Машинный язык
Процессор компьютера не способен понимать напрямую языки программирования, такие как C++, Java, Python и т.д. Очень ограниченный набор инструкций, которые изначально понимает процессор, называется машинным кодом (или «машинным языком»). То, как эти инструкции организованы, выходит за рамки данного введения, но стоит отметить две вещи.
Во-первых, каждая команда (инструкция) состоит только из определенной последовательности (набора) цифр: и . Эти числа называются битами (сокр. от «binary digit») или двоичным кодом.
Например, одна команда машинного кода архитектуры ×86 выглядит следующим образом:
Во-вторых, каждый набор бит переводится процессором в инструкции для выполнения определенного задания (например, сравнить два числа или переместить число в определенную ячейку памяти). Разные типы процессоров обычно имеют разные наборы инструкций, поэтому инструкции, которые будут работать на процессорах Intel (используются в персональных компьютерах), с большей долей вероятности, не будут работать на процессорах Xenon (используются в игровых приставках Xbox). Раньше, когда компьютеры только начинали массово распространяться, программисты должны были писать программы непосредственно на машинном языке, что было очень неудобно, сложно и занимало намного больше времени, чем сейчас.
Пишем план подготовки
Как выучить Java?
Для начала изучите синтаксис языка: ключевые слова, операторы, правила написания кода. Постепенно переходите к изучению более сложных конструкций языка – методов, конструкторов, классов, библиотек и фреймворков.
Чтобы понять, как программировать правильно, включите в программу обучения алгоритмы и структуры данных. Это очень полезно для формирования мышления программиста. Данный этап желательно проходить после изучения синтаксиса языка.
Как научиться программировать на Java?
Чтобы начать программировать на Java, изучите такие базовые разделы как ООП, исключения, многопоточность, коллекции. Все это входит в Java SE, стандартный набор инструментов разработчика, и обязательно должно присутствовать в вашем плане обучения.
После освоения Java SE можете переходить к Java EE, к технологиям клиент-серверного программирования, базам данных, технологиям веб-программирования. Здесь вы столкнетесь просто с колоссальным объемом всевозможных фреймворков и инструментов.
Мой план выглядел примерно так:Январь
- Пройти первые 10 уровней JavaRush
- Инструменты разработки IDE, Eclipse, NetBeans
- JRE, JDK, JVM, компиляция, выполнение программы
- Синтаксис Java
- «Философия Java», Брюс Эккель, главы 1- 5
- Яков Файн «Введение в программирование на языке Java» урок 1
Февраль
- Пройти 11-13 уровень JavaRush
- ООП
- «Философия Java», Брюс Эккель, главы 6-10
- Яков Файн «Введение в программирование на языке Java» уроки 2, 4
Март
- Пройти 14-17 уровень JavaRush
- Основы многопоточности
- Алгоритмы на Java, Роберт Седжвик, Кевин Уэйн, главы 1-3
- «Философия Java», Брюс Эккель, глава 21
- Яков Файн «Введение в программирование на языке Java» урок 11
Апрель
- Пройти 18-20 уровень JavaRush
- Основы XML
- Input/Output
- «Философия Java», Брюс Эккель, глава 18
- Яков Файн «Введение в программирование на языке Java» урок 9
Май
- Пройти 21-23 уровень JavaRush
- Строки
- Регулярные выражения
- Основы HTML
- «Философия Java», Брюс Эккель, главы 13-16
- Яков Файн «Введение в программирование на языке Java» урок 3
Июнь
- Пройти 24-26 уровень JavaRush
- Многопоточность
- Исключения
- Внутренние классы
- «Философия Java», Брюс Эккель, главы 10, 12
- Яков Файн «Введение в программирование на языке Java» урок 6-7
Июль
- Пройти 27-28 уровень JavaRush
- java.util.concurrent
- Основы SQL и БД
- JDBC
- Аннотации
- Рефлексия
- «Философия Java», Брюс Эккель, глава 20
- Яков Файн «Введение в программирование на языке Java» уроки 12,13
Август
- Пройти 28-30 уровень JavaRush
- Swing
- Сериализация
- Парсинг XML
- Сервлеты
- JSP/JSTL
- «Философия Java», Брюс Эккель, глава 22
- Яков Файн «Введение в программирование на языке Java» уроки 14- 15
Сентябрь
- Пройти 31-33 уровень JavaRush
- JSON
- URL. Работа с сетью
- Основы CSS
- Яков Файн «Введение в программирование на языке Java» урок 10
Октябрь
- Пройти 34-36 уровень JavaRush
- Логгирование
- JUnit
- Git
- Maven
- List
- Queue
- Работа с коллекциями
Ноябрь
- Пройти 37-38 уровень JavaRush
- Map
- Паттерны проектирования
- «Философия Java», Брюс Эккель, глава 11
- Яков Файн «Введение в программирование на языке Java» урок 8
Декабрь
- Пройти 39-40 уровень JavaRush
- Rest
- Tomcat
- Сборка и развертывание приложений
- Яков Файн «Введение в программирование на языке Java» урок 16-18
Тренажёры для простого программирования
Яндекс.Практикум. Это наш родной тренажёр, где тебя пошагово проводят от первой строчки до небольшого работающего продукта, с пояснениями и интерактивом. Есть тренажёры для веб-программирования, бэкенда, а также аналитики и тестирования. Всё на русском. Бесплатной версии хватит, чтобы понять — нравится вам это направление или нет.
Совет профессионала: если не знаете, какую профессию в программировании выбрать, попробуйте бесплатные версии всех тренажёров, и вы сразу поймёте, к чему лежит душа. Вместо того чтобы читать статьи с описаниями профессий, просто попробуйте сами, и всё станет ясно.
Code Academy (на самом деле CodeCademy, но что?). Похоже на Практикум, только на английском. Из особенностей — помесячная оплата за доступ к материалам курсов.
Codepen. Это не совсем тренажёр, а, скорее, онлайн-редактор кода, где сразу можно увидеть результат. Если вы читаете это с компьютера, посмотрите на HTML-код двух движущихся треугольников, на которые можно залипнуть надолго. Бесплатно, есть необязательная подписка, но нет заданий и проверки кода на ошибки.
Как научиться программировать на Java?
Чтобы начать программировать на Java, изучите такие базовые разделы как ООП, исключения, многопоточность, коллекции. Все это входит в Java SE, стандартный набор инструментов разработчика, и обязательно должно присутствовать в вашем плане обучения.
После освоения Java SE можете переходить к Java EE, к технологиям клиент-серверного программирования, базам данных, технологиям веб-программирования. Здесь вы столкнетесь просто с колоссальным объемом всевозможных фреймворков и инструментов.
Мой план выглядел примерно так:Январь
- Пройти первые 10 уровней JavaRush
- Инструменты разработки IDE, Eclipse, NetBeans
- JRE, JDK, JVM, компиляция, выполнение программы
- Синтаксис Java
- «Философия Java», Брюс Эккель, главы 1- 5
- Яков Файн «Введение в программирование на языке Java» урок 1
Февраль
- Пройти 11-13 уровень JavaRush
- ООП
- «Философия Java», Брюс Эккель, главы 6-10
- Яков Файн «Введение в программирование на языке Java» уроки 2, 4
Март
- Пройти 14-17 уровень JavaRush
- Основы многопоточности
- Алгоритмы на Java, Роберт Седжвик, Кевин Уэйн, главы 1-3
- «Философия Java», Брюс Эккель, глава 21
- Яков Файн «Введение в программирование на языке Java» урок 11
Апрель
- Пройти 18-20 уровень JavaRush
- Основы XML
- Input/Output
- «Философия Java», Брюс Эккель, глава 18
- Яков Файн «Введение в программирование на языке Java» урок 9
Май
- Пройти 21-23 уровень JavaRush
- Строки
- Регулярные выражения
- Основы HTML
- «Философия Java», Брюс Эккель, главы 13-16
- Яков Файн «Введение в программирование на языке Java» урок 3
Июнь
- Пройти 24-26 уровень JavaRush
- Многопоточность
- Исключения
- Внутренние классы
- «Философия Java», Брюс Эккель, главы 10, 12
- Яков Файн «Введение в программирование на языке Java» урок 6-7
Июль
- Пройти 27-28 уровень JavaRush
- java.util.concurrent
- Основы SQL и БД
- JDBC
- Аннотации
- Рефлексия
- «Философия Java», Брюс Эккель, глава 20
- Яков Файн «Введение в программирование на языке Java» уроки 12,13
Август
- Пройти 28-30 уровень JavaRush
- Swing
- Сериализация
- Парсинг XML
- Сервлеты
- JSP/JSTL
- «Философия Java», Брюс Эккель, глава 22
- Яков Файн «Введение в программирование на языке Java» уроки 14- 15
Сентябрь
- Пройти 31-33 уровень JavaRush
- JSON
- URL. Работа с сетью
- Основы CSS
- Яков Файн «Введение в программирование на языке Java» урок 10
Октябрь
- Пройти 34-36 уровень JavaRush
- Логгирование
- JUnit
- Git
- Maven
- List
- Queue
- Работа с коллекциями
Ноябрь
- Пройти 37-38 уровень JavaRush
- Map
- Паттерны проектирования
- «Философия Java», Брюс Эккель, глава 11
- Яков Файн «Введение в программирование на языке Java» урок 8
Декабрь
- Пройти 39-40 уровень JavaRush
- Rest
- Tomcat
- Сборка и развертывание приложений
- Яков Файн «Введение в программирование на языке Java» урок 16-18
А можно еще проще?
- фронтенд — всё, что браузер выводит на экран: контент, дизайн элементов, набор цветов и анимаций, реакции на действия пользователя. Нередко это направление выбирают те, кому нравится дизайн;
- бэкенд — всё, что работает на стороне сервера: функции сайта, обработка запросов пользователей и работа с базами данных. Направление, как правило, выбирают те, кому дизайн и графика не близки.
Другое явное преимущество веб-разработки — оно востребовано всегда. Скажем, захотел сайт-каталог расшириться и добавить онлайн-торговлю — вот и вакансия для бэкенд-разработчика на фриланс-бирже. Или надумала фирма обновить свой дизайн — начинаются поиски фронтенд-разработчика. Регулярно нужно делать и новые сайты, что будет по силам со знаниями фулстек-разработчика.
Кто-то может возразить, мол, веб-технологии динамично развиваются, ежегодно появляются «технологии завтрашнего дня», быстро замещающие актуальные. И не получится ли так, что учишься год-два, а когда выходишь на рынок, это направление устарело и надо учиться заново?
Шаг пятый. Пройдите онлайн тренинг
Преимущество онлайн уроков в том, что вы все видите наглядно, причем от начала до конца.
Если читать книгу, то можно упустить многие моменты, которые авторы считают очевидными и не требующими объяснения.
Поэтому новичкам лучше все-таки начинать свой путь именно с онлайн тренингов. Вот лучшие курсы на русском языке:
- Уроки от Школы программистов. Этот курс подойдет тем, кто ничего не смыслит даже в математике, не знает природу чисел, как представляется информация в компьютере и другие подобные моменты. То есть если вы считаете себя полным профаном, смотрите эти видеоуроки.
- «Фундамент программирования» от EG Lab. Здесь расскажут о данном ремесле в целом, о разработке сложных задач и типах данных (всего три урока). Просмотр данных уроков будет отличным подспорьем, чтобы начать изучать какой-то конкретный язык в дальнейшем.
Рис. 9. Тренинг «Фундамент программирования» от EG Lab на YouTube
После просмотра этих курсов, необходимо переходить на уроки, посвященные какому-то конкретному языку или отрасли, выбранной вами.
Если вы знаете английский, это огромное преимущество, но только в том случае, если вы уже что-то знаете.
Курсов для тех, кто абсолютный ноль в данном вопросе, там почему-то не предоставляют (или их невозможно найти).
Зато есть курсы для конкретных языков. К примеру, есть Learn Java Simply, C++ Programming Tutorial for Beginners, How to program in C# — BASICS и многое другое.
Выбирайте тренинг в зависимости от направления своей деятельности.
Если вы просмотрели хотя бы несколько уроков, можно приступать к чему-то более значимому, изучению книг.
С чего начать?
Программирование это и есть описание алгоритма программным языком, то есть перевод последовательности действий на язык, который понятен компьютеру. Программа – это уже готовый к выполнению и законченный алгоритм действий.
Какой язык программирования выбрать для изначального изучения?
- Java, Swift, C/C++ — именно с этих языков лучше начинать свое знакомство с программированием. Они довольно похожи, поэтому, если освоите один из них на хорошем уровне, с остальными разберетесь еще быстрее.
- Swift стоит выбирать, если вы ориентируетесь на разработку мобильных приложений под разные операционные системы.
- Java – это более универсальное решение, он используется для разработки сайтов, серверных приложений и приложений для компьютеров и мобильных приложений.
- С/С++ необходимо для создания высоко нагруженных приложений, он используется для оптимизации и работы с памятью.
- HTML – один из первых языков освоения, если планируете заниматься разработкой сайтов, именно он задает гипертекстовую разметку на странице.
- JavaScript – добавляет в страницы сайта интерактивность.
- Python – один из самых популярных и универсальных языков программирования, отличается более простыми правилами оформления кода, чем в других языках.
Начать обучение можно с самого простого языка программирования — Microsoft Small Basic. Его сможет освоить любой новичок. А затем уже выбирайте более сложный язык программирования, который хотели бы использоваться в работе в зависимости от ваших целей и предпочтений.
В обучении и работе могут пригодиться площадки, где можно задать свои вопросы и посмотреть примеры кода – Reddit, Stack Overflow, GitHub.
Главное в обучении как можно раньше начать писать код
…, разбирать чужие решения, что-то менять в них и снова пробовать. Если столкнетесь с ошибкой, то площадки для поиска ответов и советов перечислены выше.
В общем виде алгоритм изучения программирования может выглядеть следующим образом:
- Выбор первого языка программирования для освоения. Про языки программирования было написано выше. Стоит отметить, что обучение на курсах строиться следующим образом : Pascal , C++, PHP, а затем все языки, которые связаны с веб-программированием. Выбирать язык программирования необходимо, исходя из ваших профессиональных интересов, при этом первый язык не должен быть очень сложным, чтобы не убить эти самые интересы на корню.
- Изучение компиляторов. Компилятор – это техническое решение, назначение которого в переводе команды, введенной пользователем, в машинные инструкции понятные компьютеру. Все программы в последствии вы будете писать в компиляторах. Выбор компилятора определяется тем, какой язык для изучения вы ранее выбрали: для паскаля компилятор Free Pascal, TMT Pascal, Virtual Pascal, для C++ — Turbo C++ , Visual C++, Dev C++, для Java – Javac, GNU Compiler for Java, После освоения основ языка программирования можно будет переходить на более сложные компиляторы.
- Создание первого кода. Сделать первый код можно по видео-урокам, книгами или в процессе обучения на курсе. После того, как вы своими руками создали программный алгоритм и поняли, что вам интересно развиваться в этой сфере, то стоит переходить к следующему шагу.
- Выбор курсов или тренинга для более глубокого обучения. Вот список курсов, которые подойдут для погружения в программирование на первом этапе:
- CS 50 от MIT – практически легендарный курс программирования,
- Курс от Яндекса на Stepik org,
- Курсы на Coursera org,
- Основы HTML и CSS от «Нетологии»,
- Курсы от HTMLAcademy,
- Школа GeekBrains от Майл.ру
Создайте план обучения
Готовы ли вы сделать Java-разработку своей профессией? Если да, то выделяйте на ежедневное обучение минимум 2–3 (в рабочие дни) — 5 часов (в выходные). Таким образом, где-то за 3–6 месяцев вы дорастете до уровня Junior-разработчика.
Процесс обучения лучше разбить на несколько этапов:
- установка JDK (Java Development Kit) с сайта Oracle и среды выполнения Java (IntelliJ IDEA, Eclipse или NetBeans);
- изучение синтаксиса Java;
- изучение Java Core;
- изучение Java Collections;
- изучение популярных библиотек и фреймворков;
- изучение часто используемых API (например, сервлетов, JSP, JDBC, JUnit);
- освоение Git и т.д.
Старайтесь придерживаться этого плана и находите «золотую середину» между теорией и практикой. Программирование — это навык, требующий ежедневной тренировки. Если вы закончили изучение определенной темы, то выполните несколько задач по разработке (от 3 до 10, в зависимости от сложности).
Изучения Java можно проводить по хорошо известному принципу Парето (правило «80/20»). 20 — это теория, а 80 — практические задания. Это не преувеличение. Для того, чтобы научиться программировать и развить нужные навыки, нужно в 4 раза больше реальной практики, чем чтения учебников. К сожалению, если сразу не написать код, то уже завтра вы забудете о том, чему успели научиться. К счастью, есть полезные ресурсы, которые помогут вам с программой обучения.