Alex
37 уровень

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

Пост из группы Random
937278 участников

Предисловие

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

Ставим цель

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

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

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

Что делают UX и UI-дизайнеры, а что — фронтендщики?

Близок ли конец Java? Нет! И вот почему…

Что нужно понимать программисту-новичку?

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

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

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

Резюме

Обучение программированию — процесс непростой. Поэтому нужно не распыляться, а задаться целью, всё время держать себя в тонусе, не унывать и… набраться терпения. Не поленитесь наметить основные направления и составить план. Учтите: вам придётся каждый день кодить, и разбираться со сложной и непривычной информацией. Иногда — смело переключаться на другую тему, а порой и терпеливо ждать озарения.… И цель ваша будет достигнута.
Комментарии (5)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизироваться
Руслан К. 1 уровень
9 июля, 17:37
Спасибо за статью;) Если не возражаешь; //а такого быть не должно, ведь инфа в интернете Воспользуюсь твоим планом;//;) ы
Alex 37 уровень
9 июля, 20:31
На здоровье
Vgoose 8 уровень, Москва
пятница, 21:09
Операция "Ы". "Всё украдено до нас"
Олександр 7 уровень, Харьков
7 июля, 22:31
Хочу попытаться пробиться на бесплатное обучение Java в одной из IT-компаний. Опыта особого нет. Как считаете, с какого уровня можно пробовать идти на тестирование? Вот их требования: владение английским языком на уровне Intermediate; знание общей компьютерной терминологии; наличие знаний булевой алгебры и теории множеств; понимание базовых принципов ООП; базовое знание Java и среды разработки (компиляция, запуск, настройка); знакомство с WEB-ом (HTTP, HTML, CSS, терминология). Какие еще посоветуете источники, чтобы подтянуть эти требования?
Alex 37 уровень
8 июля, 14:44
По Web можно тут посмотреть http://htmlbook.ru/, https://www.w3schools.com/ По ООП можно посмотреть Эффективное программирование Д.Блох тут есть инфа про книги javarush.ru/groups/posts/530-prokhozhdenie-javarush-1---35---1