JavaRush/Java блог/Random/Как начать программировать
Alex
37 уровень

Как начать программировать

Статья из группы Random
участников

Предисловие

Итак, вы чувствуете, что пришла пора поменять сферу деятельности и освоить новую профессию. Почему бы не попробовать программирование? За это хорошо платят, это перспективно и интересно. Только вот сразу возникает вопрос: что делать, куда бежать, как начать программировать? Как начать программировать - 1Как человек, прошедший этот путь с нуля, могу вас уверить, что при правильном подходе к обучению, терпении и настойчивости вы сможете в скором времени стать программистом и найти хорошо оплачиваемую работу. В этой статье я хочу поделиться советами, как начать программировать.

Ставим цель

Чтобы понять, к чему стремиться и какого уровня достичь, ответьте на простой вопрос – зачем вам программирование? Если ваша цель — стать профессионалом и зарабатывать программированием на жизнь, настраивайтесь на серьезную и интенсивную подготовку. При этом вы должны быть готовы ежедневно уделять время изучению программирования. Если ваша цель — хобби или расширение кругозора, можно выбрать темп помедленнее по мере наличия свободного времени и желания. Но в любом случае не стоит растягивать обучение «на годы». Во-первых, знания уходят быстрее, чем накапливаются, во-вторых, технологии программирования очень быстро развиваются. Пока вы изучаете какой-то инструмент разработки или фреймворк, он может устареть и оказаться ненужным к моменту трудоустройства. Лучшее решение, на мой взгляд, набросать приблизительный план обучения. Но для начала определитесь со стеком технологий.

Выбираем язык

Если у вас есть конкретное представление, чем бы вы хотели заниматься в программировании, то это значительно упрощает выбор языка. Каждый язык имеет свою специализацию и направленность. Конкретную информацию об этом можно легко найти на просторах интернета. Если у вас такого представления нет, присмотритесь к двум аспектам: востребованность технологии на рынке и сложность изучения. Лично я в своё время остановился на Java. Причина такого выбора проста: этот язык очень популярен и востребован на рынке. Кроме того, его несложно изучать. Плюс я хотел быть поближе к веб-технологиям. Как начать программировать - 2

Обновлено 29.11.2021

Оценить популярность Java и ее лидирующую позицию на протяжении длительного времени можно, например, глядя, на индекс популярности языков программирования от компании TIOBE Software, которая занимается постоянным мониторингом поисковых запросов на тему программирования.

Пишем план подготовки

Именно с плана я бы советовал начинать путь программиста. Разбейте свое обучение на этапы и отведите на каждый этап определенное время. Чтобы лучше понять, как программировать, а точнее, что происходит по сути, когда процессор выполняет ваш первый «Hello, Word!» вам потребуются общие знания архитектуры компьютера. Если у вас в этой области пробелы, желательно их устранить. Так что рекомендую включить архитектуру ПК в ваш учебный план. Изучение выбранного языка разбивайте на этапы по мере увеличения сложности материала. Примерное представление о требуемых знаниях можно узнать, изучив вопросы к собеседованию или требования к соискателям на должности в IT-компаниях. Как научиться программировать, если раньше этим не занимались? Ответ прост: чтобы выучить иностранный язык, сначала изучают простые слова, потом правила, позволяющие их связывать, далее вы учитесь понимать и разговаривать. Чтобы выучить Java, попробуйте следовать такому же алгоритму.

Как выучить Java?

Для начала изучите синтаксис языка: ключевые слова, операторы, правила написания кода. Постепенно переходите к изучению более сложных конструкций языка – методов, конструкторов, классов, библиотек и фреймворков. Чтобы понять, как программировать правильно, включите в программу обучения алгоритмы и структуры данных. Это очень полезно для формирования мышления программиста. Данный этап желательно проходить после изучения синтаксиса языка.

И, тем не менее, помните: ваш план — это не статичная конструкция, которую ни в коем случае нельзя модифицировать. Приметили интересную и перспективную технологию или инструмент разработки — смело включайте в свой план!

Как научиться программировать на Java?

Чтобы начать программировать на Java, изучите такие базовые разделы как ООП, исключения, многопоточность, коллекции. Все это входит в Java SE, стандартный набор инструментов разработчика, и обязательно должно присутствовать в вашем плане обучения. После освоения Java SE можете переходить к Java EE, к технологиям клиент-серверного программирования, базам данных, технологиям веб-программирования. Здесь вы столкнетесь просто с колоссальным объемом всевозможных фреймворков и инструментов.

Не обязательно все учить сразу, но основные к моменту трудоустройства желательно освоить. Я бы к основным отнес следующие: Git, Maven, Spring, ORM (Hibernate, JPA), REST, SQL, JUnit, Tomcat, JavaScript, JSP/JSTL, HTML/CSS, XML, знание какой-нибудь БД (MySql, PostgreSql). Мой план выглядел примерно так: Январь
  • Пройти первые 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

Методология

Для начала необходимо установить требуемые инструменты для написания программы. Если вы хотите понять, как научиться программировать на Java, я советовал бы разобраться с такими понятиями как JRE, JDK, JVM. Что такое IDE, как работает программа, что такое компиляция, как происходит выполнение программы. Чтобы понять, как программировать на Java, обязательно необходимо разобраться с базовыми принципами ООП. Программирование — это набор практических навыков владения языком, который вы расширяете в процессе обучения. Чем больше вы будете практиковаться, тем быстрее овладеете языком. Поэтому кроме изучения теории ежедневно уделяйте время практике. Чем больше — тем лучше. Если практических навыков пока не хватает, разбирайте чужой код, повторяйте примеры из книг и статей в интернете. Хороший путь понять, как научиться программировать — использование дебаггера для анализа чужого кода. Если не удалось освоить материал сразу — не останавливайтесь, возьмите другую тему или повторите пройденную. К трудной теме можно вернуться позже: взгляд по другим углом зрения или другого источника информации иногда помогает в освоении нового материала.
Трудный для понимания материал можно законспектировать, а лучше — разобрать на примерах. При этом рекомендую использовать комментарии в коде для пометок ключевых моментов. Хороший стиль программирования, примеры правильного кода, а также ответы как программировать на Java вы сможете найти в разделе The Java Tutorials на сайте Oracle. Если понимание как программировать так и не пришло, можно обратиться к опытным коллегам или людям, прошедшим уже этот путь. Для этого неплохо найти себе подходящее сообщество для общения. Там вам всегда смогут дать ответ как научиться программировать с нуля.

Выбираем источники информации

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

Используем онлайн-курсы

Если нет возможности оторваться от работы, онлайн-курсы – один из лучших вариантов обучения. Это не волшебная пилюля, но они очень сильно помогают влиться в изучение, особенно если обучение проходит с азов. Лично я, как видно из моего плана, начинал с JavaRush. Мне понравился формат обучения, поэтому я прошел весь курс, включая стажировку.

Проходим практику

Реальная практика, стажировка — неотъемлемая часть обучения в любом процессе, а тем более в программировании. Это начало вашего пути и вам будет большой плюс для старта. Используйте любую возможность приблизиться к реальной работе. Пробуйте писать собственные приложения, изучайте примеры готовых приложений в интернете. Если есть возможность, участвуйте в бесплатных обучающих стажировках от IT-компаний. Не упускайте любую возможность поучаствовать в реальном проекте.

Резюме

Обучение программированию — процесс непростой. Поэтому нужно не распыляться, а задаться целью, всё время держать себя в тонусе, не унывать и… набраться терпения. Не поленитесь наметить основные направления и составить план. Учтите: вам придётся каждый день кодить, и разбираться со сложной и непривычной информацией. Иногда — смело переключаться на другую тему, а порой и терпеливо ждать озарения.… И цель ваша будет достигнута.
Комментарии (22)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Polina Grigoryeva
Уровень 0
24 июня 2021, 11:52
Самый фундамент лучше получить из книги - книга обычно хорошо раскладывает по полочкам, дает нужную теоретическую базу, задает правильную последовательность. Я редко дочитываю техническую литературу до конца, до практики - так как и читаю для базы и теории. А вот всякие среды разработки, фреймворки, новые инструменты мне хорошо заходят по небольшим видеоурокам. Еще по видеоурокам хорошо делать первую практику - понятно что откуда скачивается, откуда берется. Есть андройд-приложение с бесплатными видеокурсами по программированию. Много курсов на русском языке, есть фильтр по языкам программирования. Называется itVideo - https://play.google.com/store/apps/details?id=ru.polina.itvideo А вот уже вопросы, которые в процессе разработки возникают - хорошо закрываются либо документацией либо ответами с сервисов "вопрос-ответ"
DEF
Уровень 19
16 октября 2022, 00:25
Недавно выяснил, что книги даже сеньорам полезно читать - пусть большую часть они знают, но все равно из каждой книги выносят для себя что-то новое и полезное.
Антохич
Уровень 5
8 февраля 2020, 01:01
Всем привет. Такое дело: 22 года, работаю на среднюю зарплату, 8-12 часов. Решил для себя что хочу заняться программированием, т.к. еще а университете хорошо получалось в Паскале работать, всей группе решал.... Стоит ли углубляться именно в Java, или в 2020ых годах он уже не нужен?Просто есть огромное желание научиться программированию и заниматься этим, но не достаточно осведомлен в этой теме....Заранее спасибо за ответ.
Дмитрий Романюк Java Developer в СберТех
8 февраля 2020, 10:28
если начнешь изучать Java 1000% не прогадаешь, т.к. он является самым популярным и используемым язаком. И к тому же одним из самых высокооплачиваемых. на позиции Senior можно получать 3500$+
Антохич
Уровень 5
8 февраля 2020, 10:58
Спасибо, ну тогда вперед и с песней, как говорится!)
Evgeny Karpel
Уровень 4
1 мая 2020, 21:58
От Java один шаг в Кронштадт :), в смысле до Kotlin, признанного Google лучшим языком разработки для Android и ставшего официальным таковым :) Но главное - не язык и синтаксис, а математика и алгоритмы. Если думать - хорошо будет на любом языке, а путь копипастера вонюч и невзрачен везде :)
Денис
Уровень 7
14 января 2020, 09:44
Вопрос к автору, получилось придерживаться плана и выполнять задачи в срок? сколько получалось уделять времени в день или неделю? Получилось ли устроиться на работу с полученными знаниями и опытом приобретенным тут?
Дмитрий Романюк Java Developer в СберТех
13 января 2020, 11:46
Первый день изучения на JavaRush.
Дмитрий Романюк Java Developer в СберТех
7 февраля 2020, 19:11
ровно 3 недели и Java Syntax пройден! Параллельно обучаюсь на онлайн курсах с ментором и в свободное от учёбы время решал задачи на Java Rush. Те кто серьёзно настроен в кратчайшие сроки устроится на работу разработчиком, советую одним JavaRush не ограничиваться и искать хорошие онлайн или офлайн курсы с живыми преподавателями. Которые могут тебе прояснить многие непонятные моменты и фишки.
CilitBang QA в КЕФИР!
3 марта 2020, 19:28
Привет. Где еще учишься? Ток лучше в личку, а то вдруг накажут)
Илья Мартынов
Уровень 17
8 мая 2020, 15:39
и мне в личку, где еще учишься?
Anany Bareyan
Уровень 0
21 декабря 2019, 14:04
Начните с простейшего языка программирования Microsoft Small Basic. Освоив простейший язык, можно переходить к более популярным языкам программирования. Ms Small Basic создан специально для начинающих, для русскоговорящих пользователей он имеет адаптированный интерфейс и интерактивные всплывающие подсказки при написании кода. Вот сайт с описанием зыка и бесплатными обучающими материалами на русском языке: http://small-basic.ru/
Дмитрий Романюк Java Developer в СберТех
15 января 2020, 17:26
ты забыл как людей плавать учат?)
Justinian Judge в Mega City One Master
26 апреля 2020, 23:03
Для школьников такое работает. Для тех кто школу закончил - нет. Время более ценно, и по аналогии с плаванием, тратить время на то, чтобы: -три года читаем о воде, о море -два года отрабатываем в ванне -два года отрабатываем в бассейне - можем попробовать поехать в отпуск на море и покупаться в нем Для взрослого человека, это уже не вариант. Нужно брать и делать. Его уровень интеллектуального развития в любом случае позволит справиться с программой обучения, ведь к этому времени навыки чему-то обучаться и решать жизненные хотя бы задачи, уже достаточно высок.
Кристина
Уровень 3
19 декабря 2019, 18:10
Подскажите, а какой уровень английского должен быть для начала обучения?
Sergey Bolgov
Уровень 25
11 декабря 2019, 06:00
Интересно, почему у все ЯП падающий тренд популярности. Особенно печалит тренд у Java в 2016-2018 годах. Правда это может быть связано (теоретически) с изменением методологии подсчёта или вообще изменением популярности поисковика с которого они юзают данные.
Богдан
Уровень 31
12 августа 2018, 16:54
Большое спасибо за подробный план. Лучше не придумаешь, тем более от человека понимающего в этом деле. Систематизация обучения это все, по крайней мере для меня!
Руслан К.
Уровень 1
9 июля 2018, 17:37
Спасибо за статью;) Если не возражаешь; //а такого быть не должно, ведь инфа в интернете Воспользуюсь твоим планом;//;) ы
Alex
Уровень 37
9 июля 2018, 20:31
На здоровье
Vgoose
Уровень 22
13 июля 2018, 21:09
Операция "Ы". "Всё украдено до нас"
SanD
Уровень 35
7 июля 2018, 22:31
Хочу попытаться пробиться на бесплатное обучение Java в одной из IT-компаний. Опыта особого нет. Как считаете, с какого уровня можно пробовать идти на тестирование? Вот их требования: владение английским языком на уровне Intermediate; знание общей компьютерной терминологии; наличие знаний булевой алгебры и теории множеств; понимание базовых принципов ООП; базовое знание Java и среды разработки (компиляция, запуск, настройка); знакомство с WEB-ом (HTTP, HTML, CSS, терминология). Какие еще посоветуете источники, чтобы подтянуть эти требования?
Alex
Уровень 37
8 июля 2018, 14:44
По Web можно тут посмотреть http://htmlbook.ru/, https://www.w3schools.com/ По ООП можно посмотреть Эффективное программирование Д.Блох тут есть инфа про книги javarush.ru/groups/posts/530-prokhozhdenie-javarush-1---35---1