Java — Где учиться дальше после основ программирования


Содержание

Как освоить Java-программирование и начать зарабатывать

Если вы раздумываете, чем заниматься и как зарабатывать деньги — присмотритесь к профессии программиста. Она не так сложна, как кажется со стороны, и осваивать её можно удалённо, без ущерба для основной работы или учёбы в вузе. Но с чего же начать? Языков программирования больше десятка, как понять, какой лучше подойдёт для старта? Пожалуй, обратимся к опыту западных стран: в США школьники и студенты младших курсов сначала проходят обучение на Java. И это правильно — мы расскажем, почему.

Кофе и дуб

Java — один из самых популярных языков программирования, и один из самых старых среди «ныне живущих»: его начали писать в 1990 году — возможно, ещё до вашего рождения. Тогда язык хотели назвать Oak — то есть «Дуб». Но в итоге Джеймс Гослинг, создатель языка, остановился на популярном названии кофе, который, похоже, очень любил. Отсюда взялся и логотип с дымящейся чашкой — наверняка вы его видели, запуская какую-нибудь игру на старом телефоне. По другой версии, чашка с кофе появилась, так как изначально Java планировали использовать для программирования бытовых приборов. А кофемашина для многих главный бытовой прибор — у миллионов людей новый день начинается именно с неё.

Java стал поистине «народным» языком, и работают под его управлением не только видеоплееры, холодильники и прочая встраиваемая техника, но и банковские системы. Программы, написанные на Java, можно увидеть на любом Android-устройстве. Построена на нём и серверная часть огромного количества сайтов — Amazon, eBay, PayPal, «Газпрома», РЖД, МВД, «Одноклассников». В этом «Джава» особенно хорош. Даже карточка, на которую падает ваша зарплата, работает с банкоматом не в последнюю очередь благодаря одной из версий Java. Ну, а если вы грезите об игровой индустрии, вам достаточно знать, что Маркус Перссон написал на Java «Майнкрафт».

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

Кроссплатформенность — один из главных плюсов Java. Разумеется, нельзя просто взять и перенести код с одной платформы на другую, и если вы написали что-то для браузерного приложения, это не значит, что оно тут же заработает на Android-смартфоне. Но если есть необходимые библиотеки, при портировании вы отделаетесь малой кровью.

Предположим, у вас есть автомобиль, и вы хотели бы не только ездить на нём, но и плавать. Если прямо сейчас направить его в озеро, он утонет. Но в вашем распоряжении есть инструменты, чтобы превратить дорожный транспорт ещё и в водный. Или в воздушный. Подземный. Какой угодно. Java — именно такой универсальный инструмент, который используют повсюду, несмотря на его солидный возраст.

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

И всё же Java остаётся одним из самых популярных и востребованных языков. На GitHub, крупнейшем сервисе для программистов, он занимает второе место в рейтинге популярности, пропуская вперёд лишь ещё более возрастной Python.

Как и где освоить

Научиться писать на Java за пару часов, параллельно с просмотром новых серий «Игры престолов», вряд ли получится. Программирование — трудоёмкий процесс, сопряжённый с постоянным отслеживанием ошибок, багов и потерянных фигурных скобок. Но двух часов хватит, чтобы создать нечто простенькое: например, аналог «Тетриса» или «Змейки». Особенно если вы будете это делать не самостоятельно, а под руководством преподавателя. Интернет-площадка GeekBrains регулярно проводит web-семинары, посвящённые работе на Java. Посмотрите пару уроков сами и убедитесь: в программировании нет ничего архисложного.

Одними играми возможности Java-разработчика не ограничиваются, и Java-программист может найти себя, например, в разработке ПО для встраиваемой техники, Android-приложений или бэкендов — серверной части сайтов и сервисов. Специалист, знающий этот язык, никогда не останется без работы. Вправе он рассчитывать и на неплохую зарплату: средняя стоимость услуг Java-программиста в Москве оценивается в 110 тысяч рублей. Конечно, никто не станет платить такие деньги пусть и талантливому, но неопытному соискателю — нужна подготовка и стажировка.

К сожалению, при самых радужных перспективах далеко не каждый сможет «всё бросить и пойти учиться на кодера». Но Java — язык с низким порогом вхождения, и, чтобы его освоить, вовсе не обязательно пять лет просидеть в стенах учебного заведения — можно пройти специальные курсы. Выбирая их, нужно смотреть не только на цену, но и на структуру преподавания, и даже на дальнейшую карьеру выпускников, чтобы не потратить своё время и деньги впустую — в сфере образования довольно легко получить услуги низкого качества.

Пример добросовестного подхода к обучению — курсы GeekBrains. Обучение поэтапное — от вводно-ознакомительной части до полного погружения в тему, а подход вузовский — студенты посещают онлайн-занятия, выполняют домашние задания и делают проекты. По окончании курсов каждый проходит полноценную стажировку, работая в команде над реальным проектом в известной компании. Выпускники приобретают опыт, а многие находят работу по новой специальности.

Курсы идут семь месяцев (практика занимает два). Обучение организовано так, чтобы его можно было совмещать с работой или очной учёбой. Все уроки записываются, чтобы вы могли пересматривать их в любое удобное время. А в специальном чате можно обсуждать интересующие вопросы с преподавателями и другими студентами.

Для ознакомления есть бесплатные web-семинары и краткие курсы. Затраты на учёбу компенсируются за пару месяцев — после нескольких программистских зарплат. Так что, если хотите научиться кодить на Java и зарабатывать этим неплохие деньги, оставляйте заявку на сайте GeekBrains. Скоро набор, а места в группе ещё есть.

Как обучиться программированию, работая в другой сфере — отвечают эксперты

Нам в редакцию Tproger пришёл вопрос от подписчика, которым мы хотим поделиться с вами:

«Как обучиться программированию, работая в другой сфере?»

Мы обратились за разъяснениями к нашим экспертам, а полученные ответы представляем вашему вниманию.

Евгений Картавец , руководитель отдела обучения GeekBrains, Mail.Ru Group

Первое — нужно получать знания. Непринципиально, откуда вы их возьмёте: из книжек, лекций или вебинаров.

Второе — нужны навыки, практика: решать учебные задачи, писать тренировочный проектик в свободное время.

Третье — наставник, дающий обратную связь по тому, что вы делаете. Он ответит на вопросы, поможет пройти затыки и проверит правильность кода. Например, если даже программа формально работает, может оказаться, что код написан плохо, работает ваш софт неоптимально, а при изменении входных значений программа падает.

Если все эти составляющие (источник знаний, возможность практиковаться и обратная связь) у вас есть, со временем вы добьётесь успеха.

Роман Репринцев , разработчик интернет-холдинга Банки.ру

Научиться программированию легко! Как говорил один великий русский певец: «Невозможное — возможно!» Сам я в прошлом так себе звукорежиссёр.

В своё время я скачал книгу по основам программирования, которая помогла мне определиться с направлением — веб-разработка. После этого я просмотрел много различных видеокурсов для «чайников» на темы: как работает сеть, HTML и CSS, JavaScript, PHP и Mysql.

Изучение проходило по вечерам за компьютером, т. к. курсы сопровождались практикой. В дополнение читал книги при любом удобном случае: в метро, в электричке, в очереди в Дикси или ожидая девушку. Помимо книг очень полезны статьи на различных «гиковских» сайтах. Они хороши тем, что можно не вдаваясь в детали получить общее представление о любой желаемой теме, подкрепив примерами, и сэкономить время на изучение.

Сделав пару сайтов по видеокурсам и несколько различных примеров по статьям, я написал письмо в одну из топовых веб-студий с таким примерно содержанием: «Мне нужна бесплатная стажировка, вам — бесплатная рабочая сила». Мы договорились. Около 3 месяцев я работал там в качестве стажёра, набираясь опыта у коллег. По истечении этого срока я был принят на работу в качестве junior-разработчика на оклад. Я был счастлив!

За 3 года я многому научился, работал в различных компаниях – от Qsoft до Mail.ru. Получил бесценный опыт от коллег и научился командной работе, что очень важно в IT-индустрии. В программировании желательно быть «на волне», т. к. сфера очень быстро эволюционирует. Я не перестаю изучать всё, что делает из меня профессионала. Особенно всячески пытаюсь закрыть пробелы по базовым знаниям, а именно: математика старших классов на KhanAcademy, алгоритмы и структуры данных на портале MIT, различные парадигмы программирования, языки, администрирование Linux и многое другое.

«Если очень захотеть, можно в космос полететь». Главное, что может дать плоды, — мотивация. Желание учиться и делать шаги, хоть какие-нибудь. Лично меня всегда вдохновляет успех других людей.

Сергиус Офицеров , преподаватель HackerU

(Ответ подготовлен совместно с Михаилом Субботиным, преподавателем израильской высшей школы IT и безопасности HackerU)

Изучать книги, смотреть онлайн-курсы, решать задачи и участвовать в open-source projects. Откровенно говоря, либо никак, либо очень сложно. Можно быть управляющим проекта, а по вечерам штудировать его исходники. Конечно же, придётся забыть про сон, потому что у большинства программистов и разработчиков (и, возможно, у всех людей творческих профессий) мозговая деятельность более активна ночью.

Можно также прокачиваться с помощью игр. Это стимулирует и не особенно давит на мозг в процессе обучения. Никогда не стесняйтесь задавать вопросы, какими бы глупыми они вам ни казались. Есть ещё суицидальный метод: резко перейти на Linux без графического интерфейса. Достаточно быстро заставляет разум выйти из зоны комфорта.

Олег Власенко , заместитель генерального директора СимбирСофт

Давайте сразу определимся, что, не решая программистские задачи, программированию научиться невозможно. Общепринято считать, что чтобы более-менее уметь программировать, надо написать от 5000 строк кода собственноручно. Желательно, решая разные задачи.

Самый простой способ обучиться программированию, не работая программистом, — учиться в вузе на ИТ-специальности. За 4 года, НЕ РАБОТАЯ ПРОГРАММИСТОМ, можно научиться программированию.

Если вам уже не 18, или вы не попали на ИТ-специальность, то есть другие пути.

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

Третий по действенности способ — берём реальную задачу и решаем её, по ходу дела узнавая необходимую информацию из интернета. Если вы хотите стать программистом, но в настоящее время работаете «не-программистом», и не хотите бросать эту работу, пока не научитесь программировать, то рекомендую такой алгоритм:

1) Посмотрите на hh.ru, какие вакансии в программировании вам интересны. Выберите специализацию (например, «Веб-разработчик», «Java-программист» и т. п.).
2) Найдите курсы (есть масса бесплатных) по этому направлению. Запишитесь на них. Честно пройдите 1-2-3 таких курса.
3) Если у вас ничего не получается после 2-3 попыток — попробуйте другую специализацию.
4) Если всё ок, значит, у вас уже есть базовые знания (после курсов), теперь надо получить опыт. Для этого найдите интересные вам задачи, которые можно решить при помощи этого языка. Это может быть что-то для вас или вашей семьи. Может быть реальная задача с вашей текущей не-программистской работы. Может быть идея стартапа. Это может быть ЧТО УГОДНО!
5) Делайте эти задачи!
6) Когда вы в общей сумме напишите 2000-3000, а лучше 5000 строк — вы уже что-то будете уметь, и можете претендовать на базовые вакансии программистов.
7) Выбирайте те компании, где есть выстроенная система обучения. Где вами будут заниматься и будут прокачивать.

Рустам Кильдиев , руководитель отдела разработки BigData компании «Иннодата»

Сегодня сделать это очень просто. Существует практически бесконечное количество курсов, как онлайн так и офлайн, платных и бесплатных. Правда, есть большой шанс натолкнуться на курс, от которого будет крайне мало эффекта. Очень часто вижу рекламу: «Научим программированию за 21 день», даже видел объявление «за 7 дней». На самом деле, если покопаться в Интернете, поспрашивать у сообществ в профильных чатах, то вы точно найдёте отличный курс и не один. Можно сказать, что универсальная и одна из самых популярных и качественных площадок с курсами — это Coursera.

Артем Литвиненко , координатор обучения, scrum-мастер REG.RU

Начать стоит с изучения основ программирования на несложном языке общего назначения. Например, PHP, JavaScript, Python и т. д. В нашей компании для обучения новичков программированию мы используем Python, потому что этот язык отлично показал себя в web-разработке, прост для понимания, хорошо спроектирован, имеет обширную и простую документацию, а также большое активное сообщество в сети.

К основам относится базовый синтаксис языка, конструкции и встроенная библиотека, с которой язык поставляется. Это лучше всего изучать по книгам-учебникам, которые существуют в изобилии для каждого языка. Для быстрого старта рекомендую проходить туториалы с официальных сайтов языков (PHP, Python), online-курсы (pythontutor.ru, coursera.org) или смотреть видео. Понимание базовых конструкций и библиотеки языка обычно приходит на практике. Тут вам помогут задания, которые есть в каждой книге-учебнике, а также отлично помогают сайты-задачники: HackerRank, W3resource, Codewars, Checkio.

Когда вы утолите жажду «начать уже программировать», решая простые задачки, следует приступить к изучению архитектуры ПК. Фаворитом тут является книга Эндрю Таненбаума «Архитектура компьютера». Это поможет понять, что же на самом деле делает язык программирования, когда вы запускаете ваш код. Параллельно надо продолжать практику, переходя к написанию более сложных программ. Например, написать парсер, который конвертирует лекции с вашего любимого Youtube-канала в звуковые файлы для прослушивания с телефона, или парсер погодных сайтов для вычисления наиболее вероятной погоды, или игру «Змейка». В завершении этого этапа будет не лишним получить опыт работы за деньги. На сайтах freelance.com, upwork.com сконцентрировано большое количество задач, преимущественно несложных, за выполнение которых вам заплатят.

Следующим этапом будет повышение технического уровня и качества кода. Здесь потребуется более сложная литература о таких аспектах в программировании как структуры данных, алгоритмы, шаблоны проектирования, архитектура операционных систем. Знания, полученные из этих книг, закреплять лучше всего на задачах, работа над которыми ведётся вместе с другими программистами. Тут самым ценным будет фидбэк от коллег: они подскажут, если что-то сделано неверно, поделятся своим опытом. Не менее важна возможность посмотреть на код других людей. Часто достаточно один раз увидеть, как надо делать правильно, чтобы запомнить навсегда.

Такие задачи можно найти в opensource-проектах, которые разрабатываются сообществами программистов во главе с профессионалами. Тут ваш код обязательно будет проходить code review. Более опытные коллеги будут направлять вас на поиск оптимальных решений для поставленной задачи. Обычно у таких проектов есть баг-трекеры, которые содержат перечень проблем, подлежащих решению. Найти такие проекты в интернете несложно, вот например — medium.mybridge.co. Почти всегда они хранятся на github.com, что также способствует изучению систем контроля версий, таких как Git или Mercurial. Этот этап, кстати, наиболее качественно можно пройти на стажировке в крупных компаниях. Мы часто набираем на стажировку тех, кто уже умеет программировать и в дальнейшем хочет получить предложение работать у нас.

Александр Толмачев , специалист группы поддержки мобильного приложения Link компании «Аэроклуб ИТ»

Составляющие успеха можно разбить на 4 блока. Самую важную роль играет мотивация — желание и предрасположенность. На мой взгляд, именно мотивация обеспечивает 40% успеха. Следующий блок — непосредственно работа, а именно ежедневное планирование последующего дня и реализация плана, только таким образом можно приобрести и усвоить новые навыки. Это — второй по значимости блок, и я бы отвёл на него 30% успеха. Немаловажную роль в процессе обучения играют программы самообучения, на них приходится 20% успеха реализации. Причём обязательным критерием в отборе программ должно быть наличие чекпоинтов, контроля и статистики. Ну, и, можно сказать, вишенкой на торте (10%) является tacit knowledge, которое вы приобретаете при взаимодействии с профессионалами ИТ-сферы. Работа в ИТ, причём не важно, какую позицию вы занимаете, обеспечивает возможность учиться изо дня в день различным способам решения задач, а также даёт поддержку и свежий взгляд на вопросы, которые стоят перед вами.

Цукерберг рекомендует:  Php - Парсинг Web-сайтов на PHP (извлечение данных из html)

Эльдар Мингалиев , разработчик 1С, компания Neti

Если вы хотите обучиться программированию и преуспеть в этом, то без плана — никак. Технологий вокруг очень много, и часто люди теряются в этом обилии вариантов, не зная, с чего начать, или перескакивая с технологии на технологию, не добившись результата.

Потому, для лучшей концентрации нужен учебный план. Поскольку обучение будет проходить в свободное от работы время, стоит запастись терпением. Лучше всего, если более опытный товарищ или преподаватель курсов поможет составить план на год — дорожную карту технологий, которой начинающий должен следовать. Также можете попытаться найти подобные списки материалов сами.

Придумайте какой-то простой, но интересный мини-проект. Тут всё уже зависит от области: мини-браузер, калькулятор, аркадную игру на смартфон и т. д. И дайте себе обещание: ни в коем случае не сворачивать с пути, пока не дошёл до конца своего плана. Это очень важно! Стоит понимать, что мир программирования, каким бы разнообразным он ни был, работает по одним и тем же правилам. Если вы изучите фундаментальные законы на примере одного языка или одной технологии, то понять, как работает другой язык или технология, будет в разы проще. Поэтому так важно не бросать начатое на полпути. Даже если путь в итоге окажется ошибочным, он позволит без проблем в краткий срок изучить что-то другое.

Алена Батицкая , frontend-разработчик, преподаватель курса «Профессия frontend-разработчик» университета онлайн-профессий «Нетология»

Если случилось так, что в один момент вы решили сменить профессию и обучиться программированию, то я советую вам запастись терпением. Несмотря на то, что многие курсы и школы заверяют, что «программирование — это просто», на самом деле это, в некоторой степени, лукавство.

Мотивация и ориентация. Если вы не совсем уверены, что хотите стать именно разработчиком, то пройдите несколько бесплатных курсов, где учат основам программирования.

Время на учёбу. Для того, чтобы стать востребованным специалистом, вам потребуется уделить ощутимое время на освоение новой профессии. Я не до конца согласна с теорией 10 000 часов, но эта цифра очень удобна для понимания того, сколько времени вам потребуется. Возьмите 10 000 и поделите на то количество часов в день, которое вы готовы уделять изучению программирования. В итоге вы получите количество дней, нужных для освоения профессии. Прибавьте к ним выходные, поделите на количество дней в месяце и перед вашими глазами будет срок, после которого вы сможете конкурировать на рынке трудоустройства. Хотите быстрее? Уделяйте больше времени!

Если вы — работающий человек, у которого нет запаса свободного времени, на период обучения придётся пересмотреть приоритеты. Всё будет зависеть от того, насколько сильна ваша мотивация.

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

Ещё один способ эффективного обучения — персональный наставник. Он выступает в роли репетитора, корректирует ваш план обучения, останавливается и разъясняет непонятные моменты, проверяет ваши практические задания. Но лично я бы советовала идти к наставнику с уже имеющейся базой. Так вы сможете взять от подобного формата максимум. Искать наставника можно среди знакомых и коллег, стучаться в профессиональные чаты и искать «своего» человека или нанять специалиста за деньги.

Начало карьеры. Если вы прошли обучение и готовы выйти на рынок труда, то мне хотелось бы вас предостеречь. Интерес к программированию в последние пару лет очень высок, и на рынке прямо сейчас очень много начинающих разработчиков, на профессиональном сленге называемых джуниорами. Это низкоквалифицированные специалисты. Из-за большого предложения и низкого спроса найти первую работу будет не так-то просто. Всё будет решать ваш опыт. Поэтому никогда не останавливайтесь в развитии. Вплоть до первого дня своей первой работы программистом уделяйте свободное время самообучению и пополнению своего портфолио. Читайте webref.ru, learn.javascript.js, документацию на сайте MDN и изучайте веб-стандарты. Если у вас есть финансовые обязательства, то не стоит увольняться с работы сразу после окончания курсов. Хотя кого-то подобные действия стимулируют и заставляют искать работу в 100 раз усерднее.

Юлия Романова , head of marketing @ Driveback

Программирование становится новой грамотностью. Кто-то может не согласиться с этим, но в ближайшие годы тренд только усилится. И даже если нет цели стать программистом, надо научиться читать код и понимать, как всё устроено.

Во-первых, меняются требования к известным профессиям, и знание программирования становится нормой. Если раньше круто было прочитать в резюме «уверенный пользователь ПК, Microsoft Office», то сегодня мы спокойно реагируем на «опыт программирования на PHP, Python».

Во-вторых, появляются новые профессии, в которые без программирования не попасть. То есть ты вроде бы не программист, но уровень подготовки должен быть таким же. Целый пул подобных специальностей появился в аналитике, рекламе, маркетинге.

Казалось бы, я — типичный не-программист, занимаюсь маркетингом и пиаром. Но дело касается IT-продукта. Хорошим специалистом я была бы, если бы не понимала, как работает продукт.

Я учусь по-разному.
1. Бесплатные и платные онлайн-курсы. Выбор огромный: Coursera, Stepik, Codecademy, GeekBrains и многие другие. Потому я всегда опираюсь на опыт тех, кто может оценить качество контента. Из последнего рекомендованного — курс по JS на Codecademy, например. Собираюсь пройти.
2. Блоги и тематические порталы. Качество публикации тоже валидирую — отправляю ссылку на статью и задаю вопросы. Даже если они кажутся глупыми и доходят до «расскажи-ка подробнее, зачем выпустили третью версию Python». Следующим шагом уточняю, что ещё почитать по теме.
3. Офлайн-мероприятия для «новичков». Открытые лекции, семинары, хакатоны — возможность попрактиковаться, задать вопрос и получить обратную связь в моменте. А еще познакомиться с теми, у кого позднее можно валидировать п.1 и п.2. Недавно, например, открыла для себя DjangoGirls, которые делают такие ивенты в Москве.

Наконец, важно найти человека, который будет «менторить» процесс обучения. Даже если это менторство в лайтовом формате вопросов и ответов. Я пришла к выводу, что это необходимо, потому что в какой-то момент почти утонула в информации вокруг. «Ментор» подскажет, куда идти, что читать, как практиковаться. Особенно актуально, если большая часть времени уходит на основную работу и нет возможности пройти офлайн-стажировку, которая решает похожие задачи.

Как правильно учиться Java-программированию: история одного тьютора

Моя история

Все началось больше десяти лет назад. Решив стать программистом, я начал изучать несколько языков, чтобы в конечном итоге найти «свой» язык.

В Java я влюбился с первого взгляда! Я с головой погрузился в программирование: я посвящал написанию кода по 10-18 часов каждый день. С каждым днем получалось все лучше и лучше.

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

Я был счастлив…почти. Мне казалось, что я упускаю какую-то часть своей самореализации.

Я активно искал, чего же мне так не хватает. Подсказкой стало призвание моих родителей. Обучение! Теперь я понимаю, что унаследовал от них желание преподавать.

Отрасли нужны новые программисты, а новым программистам нужны наставники. Поэтому я стал Java-тьютором. Признаюсь, преподавать мне нравится не меньше, чем программировать. Может, даже больше.

С тех пор прошло несколько лет. Все это время я наблюдал, как мои ученики и другие люди учатся программировать. Многие из них допускают одни и те же ошибки: не в коде, а в самом процессе обучения.

Это ценный опыт: теперь я знаю, какие ошибки существуют, как их не допустить, как их исправить.

Я нашел много полезных интернет-ресурсов, которые рекомендую своим ученикам. Они подходят всем, кто решил серьезно заняться Java-программированием. В этой статье я расскажу об этих ресурсах. Однако, главная цель этой статьи — предотвратить распространенные ошибки в обучении.

Давайте по порядку.

Распространенные ошибки и методы борьбы с ними

1. Слишком много теории в самом начале

Итак, вы начали изучать язык программирования.

Что нужно сделать в первую очередь? Прочитать много теоретического материала, а затем сесть писать программу? Не совсем. Нужно прочитать совсем немного и сразу приступить к написанию кода.

Вспомните детский сад или начальную школу. На уроке рисования вам читали лекцию о том, как нужно рисовать? Я уверен, что нет. Вы и другие дети просто взяли в руки карандаши и начали рисовать. В лучшем случае, учитель показал, как правильно держать карандаш и объяснил, что из красного и синего получается фиолетовый. Или школьные спектакли: вам дали роль огурца или брокколи. Не думаю, что исполнителям таких ролей объяснили систему Станиславского.

Та же история и с программированием. Просто начните писать код. Теория важна, но не в самом начале обучения.

2. Желание получить все и сразу

Этот параграф снова о «вреде теории». Некоторые студенты погружаются в нее довольно глубоко: им хочется уже с первого задания понимать каждое слово в System.out.println. Это непосильная задача. Всему свое время. Лучший способ изучить теорию Java — это учиться поэтапно, постепенно увеличивая сложность. Несколько месяцев спустя вы с лёгкостью справитесь с задачей, которая сегодня кажется непосильной.

Сначала изучите основы Java Core, а уже потом начинайте читать книги и документацию — так чтение будет даваться вам намного легче.

3. Слишком мало практических заданий

На первых этапах обучения нужно освоить написание кода — я настаиваю на этом.

Новичкам лучше решать много маленьких и простых заданий, чем несколько сложных. Нет, я не говорю, что нужно совсем избегать сложных заданий.

Конечно, сложные задания тоже нужны. Одна сложная задача на 10–20 простых — вот идеальное соотношение. Где взять все эти задания? Об этом расскажу позже.

4. Слишком сложные задания, работа над которыми занимает целую вечность

Некоторые новички просто не знают, как прекратить работу над слишком сложной задачей. Если у вас что-то не получается, займитесь чем-нибудь более простым и вернитесь к сложному заданию позднее. Но если решение нужно вам прямо сейчас, смотрите 5-й пункт.

5. Неумение задавать вопросы

Есть новички, которые вообще ничего не спрашивают. Они боятся задать глупый вопрос, боятся выглядеть глупо в глазах опытных программистов. Есть и другие: они постоянно задают вопросы в стиле «Эй, ребят, здесь что-то пошло не так!».

Итак, что же делать, если что-то пошло не так? Задавать вопросы! Спросите на форумах—например, на Javaranch или stackoverflow. Спросите у своего наставника, если он у вас есть.

Как сформулировать вопрос? Обязательно подробно опишите проблему и покажите свой код. Затем опишите, что вы делали с этим кодом, как пытались его исправить и что из этого вышло. Я уверен, вам помогут. Каждый, абсолютно каждый программист бывал в такой ситуации.

6. Ошибка самоучек: невнимание к фактическим ошибкам в коде

Когда самостоятельно учишься программировать, довольно сложно понять, насколько хорошо работает твой код. Вдруг он выдает идеальный результат только при определенных условиях? Вдруг вы что-то упустили из виду? Если у вас есть наставник, который все проверит, то все в порядке. А если нет? Научитесь задавать себе вопрос «а что, если?» и проверять, как программа работает в разных условиях. В будущем этот навык поможет вам писать модульные тесты.

Тем не менее, в последнее время учиться программированию становится все легче и легче. Появляется все больше онлайн-курсов и ресурсов, на которых можно выполнить упражнение и тут же автоматически его проверить. Я приведу ссылки на такие ресурсы ниже.

7. Отладка кода? Извините, это не для меня!

Дорогой новичок-разработчик, тебе придется заниматься отладкой. Тем более, что с помощью современных IDE это довольно просто. Стоит один раз научиться отладке и у вас появится навык, полезный для обучения и будущей работы. Начинайте заниматься отладкой с первого месяца обучения.

8. Обучение ради обучения

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

9. Вы пишете код, не придумав решение задачи

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

10. Страх экспериментов

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

A. Решите проблему обычным, проверенным способом и проверьте, получилось ли.

Б. Попытайтесь решить ту же проблему по-новому. Это не пустая трата времени. Представьте, что решаете уже другую проблему. У вас уже есть правильное решение, теперь можно вдумчиво и неспеша попробовать найти новое. Научившись чему-нибудь новому, возвращайтесь к уже выполненным заданиям и пробуйте снова решить их с помощью новых знаний.

11. Потеря мотивации из-за трудностей

Это очень распространенная проблема среди самоучек и тех, кто учится медленнее, чем все остальные в группе.

Поймите, что программирование — это не ядерная физика.

Если приложить достаточно усилий, почти любой может этому научиться.

Вам кажется, что у вас ничего не выйдет? Скорее всего, еще слишком рано об этом думать. В Интернете есть тысячи историй людей, у которых раз за разом не получается достичь цели. Среди этих людей много программистов.

Полезные ссылки для каждого новичка в Java

Как вы уже поняли, я сторонник обучения программированию на практике. Соответственно, я всегда советую своим ученикам использовать как можно больше ресурсов с заданиями по Java-программированию. За последние два года я нашел несколько замечательных сайтов. Вот они.

CodeGym. «Это он», — подумал я, когда нашел CodeGym. — «Это тот самый курс, о котором я мечтал».

Этот курс Java Core, на 80% состоит из практики. Он поможет как новичкам, так и опытным программистам. Главное достоинство CodeGym — это его система упражнений. На сайте полно заданий: можно каждый день заниматься и улучшать свои навыки. На CodeGym около 1000 упражнений для разных уровней.

Делать упражнения в CodeGym можно с помощью IDE в браузере или используя плагин для IntelliJ IDEA, самой популярной Java IDE. Интеллектуальная система проверки проверит ваш код и укажет, что нужно исправить. Это особенно полезно самоучкам и ученикам, у которых есть наставник: ни один человек не может правильно проверить 10 программ у 20 учеников в день. А система проверки может.

CodeGym разделен на 40 уровней. Каждый уровень состоит из 15–30 заданий на написание кода, 10–20 уроков по Java и мотивирующих статей. Таким образом, решая задачи, вы проходите уровень за уровнем— это своего рода игра, в которую вам не надоест играть. Еще один плюс: у CodeGym веселые, полные юмора уроки, мне они очень нравятся.

CodinGame. Решение заданий на CodinGame — это хороший способ улучшить навыки программирования. Этот сайт предназначен для людей, которые как минимум уже знают основы программирования (на Java или на других 22 языках). Есть и сложные задания для опытных разработчиков.

У CodinGame есть IDE для браузера (как и у CodeGym). С ее помощью можно писать код и компилировать его в том же окне — так вы видите результаты в режиме реального времени. Это не онлайн-курс, а сложные упражнения, связанные с реальной разработкой игр. Сделав упражнение, вы получаете визуальную обратную связь: видите небольшое изменение в игре.

На Codewars можно оттачивать мастерство программирования, соревнуясь с другими разработчиками. Это полезный и интересный сайт для продвинутых Java-программистов. Здесь вы найдете сложные задачи, а не уроки.

Сначала вам дается восьмой кю (уровень мастерства). Добравшись до первого кю, вы достигнете вершины мастерства.

Вывод

Программируйте ежедневно, уделяйте этому много времени. Используйте приведенные выше сайты с упражнениями. Иногда изучайте теорию. Задавайте много вопросов. Начинайте программировать! Даже не сомневайтесь.

Java: с чего начать изучение, чтобы прочно занять свое место в IT

Когда речь заходит о том, как «пойти в IT», многие начинают судорожно читать форумы и спрашивать у друзей-айтишников, каким был их путь в мир высоких технологий, дабы последовать примеру и облегчить себе жизнь. Советы и чужие истории — это хорошо, но у каждого своя дорога, отличная от других.

В этой статье мы познакомим вас с Java-технологией, подскажем, с чего начать и как продолжить, как найти работу по специальности и не разочароваться в выбранной профессии.

История технологии Java: с чего все начиналось

Java создали в начале 90-х. Технология с историей, так сказать. В основу этого языка программирования лег синтаксис семейства технологий С (С, С++, С#). Это означало, что программирование будет как минимум легким, как максимум безопасным.

Изначально Java использовалась как язык для разработки мобильных приложений, но потом создатели рассмотрели ее потенциал и решили, что в мобильной разработке ей будет мало места.

Основной принцип работы кода на Java — возможность писать код один раз, чтобы он работал где угодно. Написал — и спокоен. Вместо компиляции различных файлов под каждую платформу, здесь создаётся JAR-файл. И если система поддерживает Java, то файл исполняется.

Чтобы такой принцип стал реальностью, была разработана Виртуальная машина Java или JVM.

JVM — набор инструкций, определяющий ход компиляции кода в зависимости от платформы и дальнейшее его исполнение.

Как начать программировать на Java или соберите всю волю в кулак

Оговоримся сразу, что точного ответа на вопрос, за сколько можно выучить Java, не существует. Но одно правило вам все же следует усвоить: не «ведитесь» на кричащие призывы образовательных курсов «Выучить Джава за месяц? Легко!». Программа таких школ рассчитана на получение поверхностных знаний. Поэтому надеяться на то, что вы сразу станете программистом и найдете работу своей мечты, не стоит.

Цукерберг рекомендует:  Почта - Как сменить почту

В среднем, для изучения Java требуется год.

Результат зависит от осознанности вашего решения изучать программирование на Java. Если вы твердо решили, что вам это интересно и нужно, то учеба будет в удовольствие, хоть и с трудностями. А если перед глазами маячат высокие заработки программистов, то лучше расстаться с этой мыслью раз и навсегда. Все от этого только выиграют.

Кстати! Для наших читателей сейчас действует скидка 10% на любой вид работы

Почему стоит изучать Java?

Существует множество языков программирования, но почему стоит начинать свой путь в IT с Java? Во-первых, согласно все тому же индексу TIOBE, Java занимает первое место в рейтинге востребованных языков программирования последние лет десять и не собирается сдавать позиции.

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

Где используется Java?

  • Android-приложения,
  • десктопные приложения,
  • системы предприятий: обработка личных данных, банковские операции, финансы, торговля,
  • встроенные системы: смарт-часы, контроллеры и даже некоторые системы гибридных авто,
  • Internet of Things,
  • научные исследования. Наряду с Python и MATLAB, Java отлично справляется со сложными задачами.

В-третьих, у Java-технологии припасена куча плюсов, которая перевешивает редкие минусы:

  1. Легкость в использовании. Хоть основы Java взяты из сложного и, порой, неадекватного синтаксиса С/С++, со временем технология была улучшена и упрощена. В результате мы имеем мощный, но простой язык программирования.
  2. Надежность. Объектно-ориентированное программирование тем и хорошо, что сводит к нулю ошибки, которые допускают программисты при написании кода. В отличие от Javascript, который может выдать код с ошибками и даже не обратить на это внимания, Java тщательно анализирует данные и, при наличии ошибок, не пропускает код дальше.
  3. Безопасность. Java создавалась для разработки мобильных приложений. Это означало, что работа по-любому будет вестись с данными пользователей. Отсюда делаем вывод, что данная технология изначально была настроена на высокий уровень безопасности, которого придерживается и сейчас. Есть мнение, что это самый безопасный язык программирования.
  4. Платформонезависимость. Программы, созданные на Java, работают вне зависимости оттого, на какой платформе они запускаются. Технология Java — переносимый язык, которому неважна ни операционная система, ни аппаратная составляющая компьютера.

Java создавалась на основе синтаксиса языка С

С чего начать освоение Java: план самостоятельного изучения java с нуля

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

Общий план для начала изучения Java таков:

  • читаем базовую литературу: Head First Java, Second Edition; Java. Библиотека профессионала, том 1. Основы. Кей С. Хорстманн, Гари Корнелл; П.Ноутон, Г.Шилдт — «Java 2. Наиболее полное руководство»;
  • читаем статьи про сферу применения Java и выбираем направление, в котором хотим развиваться: Станислав Лозенко: Цикл статей об обучении Java, Сергей Немчинский: Java Enterprise, что и как учить;
  • находим информацию по стеку технологий выбранного направления;
  • составляем план изучения тем и практических заданий по ним;
  • изучаем темы по схеме: книги — статьи — форум — видео. Форумы: Cyberforum — самый крупный русскоязычный форум, Stack Overflow — IT-форум мирового значения (внимание! Нужен английский!) ;
  • устанавливаем JDK и ставим среду разработки: Eclipse, Intellij Idea, NetBeans.

Каждую ступень плана тщательно прорабатываем. Особое внимание уделяем практическому направлению. В этом вам поможет условно-бесплатный ресурс Javarush, который на 80% состоит из практики.

Можно прочитать горы книг, но так и не научиться программировать на Java.

Если хотите и чувствуете в себе потенциал для изучения Java, то дерзайте и твердо стойте на своем, не опуская руки в случае неудач. Со всем остальным поможет студенческий сервис, который освободит вас от написания курсовых, рефератов, контрольных и других студенческих работ.

Где пройти курсы по Java программированию с нуля?

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

Кто такой программист Java: что нужно знать о профессии?

Java (также его называют «Джава» или «Ява») – язык программирования, разработанный в 1995 году американской компанией «Сан Майкросистемс». Благодаря его особенностям (в частности, делению объектов на классы и типы) на нем можно быстро писать программный код. Кроме того, приложения, написанные на Джава можно запускать на любом устройстве с помощью виртуальной машины. Это сделало язык очень распространенным: на нем пишут компьютерные программы и мобильные приложения, а также широко используют для создания «движков» различных интернет-сайтов. Так, на Java написаны такие ресурсы, как eBay, Amazon и поисковая система Yahoo.

Задачи и обязанности

Вот какие обязанности обычно возлагают на Джава-программиста:

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

Работа и зарплата

Заработная плата разработчика Java не зависит от региона и находится в пределах от 60 000 рублей до 200 000 рублей.

В профессии Java-программиста есть возможность карьерного роста. В крупных компаниях всех программистов принято ранжировать на три категории в зависимости от опыта и стажа работы. Поскольку колыбелью программирования были США, они имеют английские названия. Вот эти категории.

  • Junior developer. Младший разработчик. В эту группу входят специалисты, только что получившие образование и относительно недавно приступившие к работе. Им чаще всего доверяют выполнять самые простые задания. Кроме того, у них самый малый размер дохода.
  • Middle developer. Разработчик среднего звена. Это программист, имеющий опыт работы в три – четыре года. Получает среднюю заработную плату.
  • Senior developer. Это опытный специалист. Он выполняет наиболее сложные задачи при разработке программ, которые требуют определенных знаний и навыков. Зарабатывает больше всего среди программистов организации.
  • Team lead. Человек, занимающий эту должность, руководит группой из нескольких других сотрудников, контролирует их работу и координирует их деятельность.

Кроме того, Java-программист может дорасти до руководителя отделения компании или до IT-директора. Это тоже существенно увеличит его доход. Еще один путь развития Java-разработчика – регистрация в качестве индивидуального предпринимателя и работа на себя.

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

Плюсы и минусы профессии

Среди достоинств профессии можно назвать следующие:

  • высокий уровень заработной платы;
  • возможность карьерного роста;
  • свободное планирование рабочего времени;
  • высокая востребованность профессии;
  • возможность работать на себя.

Однако есть у специальности и некоторые недостатки. Вот они:

Помогите начинающему программисту JAVA

Дорогие пикабушники. Если среди вас есть программист по java, подскажите новичку как набирать опыта. т.е. требуется практика, примеры работы или участие в каком не будь проекте как новичку.

Дубликаты не найдены

Я вижу несколько вариантов.

1. Классический. Как уже писали — ищешь вакансию джуна. На оплату смотришь сквозь пальцы, ты туда не за деньгами идешь, а за опытом. Правда, тут можно и прогадать, если попадёшь в падаваны к «недооцененному гуру», коих много среди джавистов. Лучше, если это будет энтерпрайз, вэб-строительство, еще какие-нибудь популярные и востребованные технологии.

2. Дебильно-хобийный. Я начинал именно так. В чем-то желаю, в чем-то нет. Не читал ни одной книги (кроме пару глав паттернов), до джавы сидел на паскале и дельфи, получалось так себе. Взял сервер lineage (потому как фанат оной, можно взять что угодно сложнее зубочистки, лишь бы на джаве было, можно, к примеру, майнкрафт — и сложно и интересно и наглядно) и ковырял его, что-то улучшал, что-то рефакторил, разбирался как и что устроено. Потом начал свои поделки писать, всякую мелочь. Потом уже мидлом ушел на энтерпрайз, где сейчас неофициально сеньором считаюсь (ведущий программист).

3. Самостоятельный путь. Возьми идею, заведомо сложную, например, написать CMS с форумом, полностью интегрированные. Узнай технологии, которые обычно при этом используют. Накачай книженций и читай, читай, читай. Читай книги, читай гугол, читай стековерлоу, еще кучу интернетов. Шаг за шагом пиши свою поделку. Сначала будут костыли и говнокод — не обращай внимания, не оглядывайся на рефакторинги ежеминутно. Вернулся с определенной целью — осмотри код класса целиком, отрефакторь чтобы глаза не ело. Не переинжениривай, и не гонись за преждевременной оптимизацией. Когда поймешь, что уже достаточно свободно плаваешь в используемых технологиях, а простая задачка не вводит в ступор — сразу ищи должность мида на аналогичную технологию, на собеседованиях не ври, говори реальный опыт и реальные возможности. Обычно компании, которые не воспринимают это в штыки — самые удобные для обучения.

Главное — помни. Люди, с пеной у рта утверждающие, что без профильного образования в программирование ни ногой, просто идут нахер. И очень часто они знают на много меньше твоего. Говорю это по собственному опыту, всё моё обучение — 9 классов школы.

Когда выберешь свой путь, и появятся вещественные вопросы — задавай, большинство программистов больше любят отвечать на конкретные вопросы.

Как правильно учиться Java-программированию: история одного тьютора

Моя история

Все началось больше десяти лет назад. Решив стать программистом, я начал изучать несколько языков, чтобы в конечном итоге найти «свой» язык.

В Java я влюбился с первого взгляда! Я с головой погрузился в программирование: я посвящал написанию кода по 10-18 часов каждый день. С каждым днем получалось все лучше и лучше.

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

Я был счастлив…почти. Мне казалось, что я упускаю какую-то часть своей самореализации.

Я активно искал, чего же мне так не хватает. Подсказкой стало призвание моих родителей. Обучение! Теперь я понимаю, что унаследовал от них желание преподавать.

Отрасли нужны новые программисты, а новым программистам нужны наставники. Поэтому я стал Java-тьютором. Признаюсь, преподавать мне нравится не меньше, чем программировать. Может, даже больше.

С тех пор прошло несколько лет. Все это время я наблюдал, как мои ученики и другие люди учатся программировать. Многие из них допускают одни и те же ошибки: не в коде, а в самом процессе обучения.

Это ценный опыт: теперь я знаю, какие ошибки существуют, как их не допустить, как их исправить.

Я нашел много полезных интернет-ресурсов, которые рекомендую своим ученикам. Они подходят всем, кто решил серьезно заняться Java-программированием. В этой статье я расскажу об этих ресурсах. Однако, главная цель этой статьи — предотвратить распространенные ошибки в обучении.

Давайте по порядку.

Распространенные ошибки и методы борьбы с ними

1. Слишком много теории в самом начале

Итак, вы начали изучать язык программирования.

Что нужно сделать в первую очередь? Прочитать много теоретического материала, а затем сесть писать программу? Не совсем. Нужно прочитать совсем немного и сразу приступить к написанию кода.

Вспомните детский сад или начальную школу. На уроке рисования вам читали лекцию о том, как нужно рисовать? Я уверен, что нет. Вы и другие дети просто взяли в руки карандаши и начали рисовать. В лучшем случае, учитель показал, как правильно держать карандаш и объяснил, что из красного и синего получается фиолетовый. Или школьные спектакли: вам дали роль огурца или брокколи. Не думаю, что исполнителям таких ролей объяснили систему Станиславского.

Та же история и с программированием. Просто начните писать код. Теория важна, но не в самом начале обучения.

2. Желание получить все и сразу

Этот параграф снова о «вреде теории». Некоторые студенты погружаются в нее довольно глубоко: им хочется уже с первого задания понимать каждое слово в System.out.println. Это непосильная задача. Всему свое время. Лучший способ изучить теорию Java — это учиться поэтапно, постепенно увеличивая сложность. Несколько месяцев спустя вы с лёгкостью справитесь с задачей, которая сегодня кажется непосильной.

Сначала изучите основы Java Core, а уже потом начинайте читать книги и документацию — так чтение будет даваться вам намного легче.

3. Слишком мало практических заданий

На первых этапах обучения нужно освоить написание кода — я настаиваю на этом.

Новичкам лучше решать много маленьких и простых заданий, чем несколько сложных. Нет, я не говорю, что нужно совсем избегать сложных заданий.

Конечно, сложные задания тоже нужны. Одна сложная задача на 10–20 простых — вот идеальное соотношение. Где взять все эти задания? Об этом расскажу позже.

4. Слишком сложные задания, работа над которыми занимает целую вечность

Некоторые новички просто не знают, как прекратить работу над слишком сложной задачей. Если у вас что-то не получается, займитесь чем-нибудь более простым и вернитесь к сложному заданию позднее. Но если решение нужно вам прямо сейчас, смотрите 5-й пункт.

5. Неумение задавать вопросы

Есть новички, которые вообще ничего не спрашивают. Они боятся задать глупый вопрос, боятся выглядеть глупо в глазах опытных программистов. Есть и другие: они постоянно задают вопросы в стиле «Эй, ребят, здесь что-то пошло не так!».

Итак, что же делать, если что-то пошло не так? Задавать вопросы! Спросите на форумах—например, на Javaranch или stackoverflow. Спросите у своего наставника, если он у вас есть.

Как сформулировать вопрос? Обязательно подробно опишите проблему и покажите свой код. Затем опишите, что вы делали с этим кодом, как пытались его исправить и что из этого вышло. Я уверен, вам помогут. Каждый, абсолютно каждый программист бывал в такой ситуации.

6. Ошибка самоучек: невнимание к фактическим ошибкам в коде

Когда самостоятельно учишься программировать, довольно сложно понять, насколько хорошо работает твой код. Вдруг он выдает идеальный результат только при определенных условиях? Вдруг вы что-то упустили из виду? Если у вас есть наставник, который все проверит, то все в порядке. А если нет? Научитесь задавать себе вопрос «а что, если?» и проверять, как программа работает в разных условиях. В будущем этот навык поможет вам писать модульные тесты.

Тем не менее, в последнее время учиться программированию становится все легче и легче. Появляется все больше онлайн-курсов и ресурсов, на которых можно выполнить упражнение и тут же автоматически его проверить. Я приведу ссылки на такие ресурсы ниже.

7. Отладка кода? Извините, это не для меня!

Дорогой новичок-разработчик, тебе придется заниматься отладкой. Тем более, что с помощью современных IDE это довольно просто. Стоит один раз научиться отладке и у вас появится навык, полезный для обучения и будущей работы. Начинайте заниматься отладкой с первого месяца обучения.

8. Обучение ради обучения

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

9. Вы пишете код, не придумав решение задачи

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

10. Страх экспериментов

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

A. Решите проблему обычным, проверенным способом и проверьте, получилось ли.

Б. Попытайтесь решить ту же проблему по-новому. Это не пустая трата времени. Представьте, что решаете уже другую проблему. У вас уже есть правильное решение, теперь можно вдумчиво и неспеша попробовать найти новое. Научившись чему-нибудь новому, возвращайтесь к уже выполненным заданиям и пробуйте снова решить их с помощью новых знаний.

11. Потеря мотивации из-за трудностей

Это очень распространенная проблема среди самоучек и тех, кто учится медленнее, чем все остальные в группе.

Поймите, что программирование — это не ядерная физика.

Если приложить достаточно усилий, почти любой может этому научиться.

Вам кажется, что у вас ничего не выйдет? Скорее всего, еще слишком рано об этом думать. В Интернете есть тысячи историй людей, у которых раз за разом не получается достичь цели. Среди этих людей много программистов.

Полезные ссылки для каждого новичка в Java

Как вы уже поняли, я сторонник обучения программированию на практике. Соответственно, я всегда советую своим ученикам использовать как можно больше ресурсов с заданиями по Java-программированию. За последние два года я нашел несколько замечательных сайтов. Вот они.

CodeGym. «Это он», — подумал я, когда нашел CodeGym. — «Это тот самый курс, о котором я мечтал».

Этот курс Java Core, на 80% состоит из практики. Он поможет как новичкам, так и опытным программистам. Главное достоинство CodeGym — это его система упражнений. На сайте полно заданий: можно каждый день заниматься и улучшать свои навыки. На CodeGym около 1000 упражнений для разных уровней.

Делать упражнения в CodeGym можно с помощью IDE в браузере или используя плагин для IntelliJ IDEA, самой популярной Java IDE. Интеллектуальная система проверки проверит ваш код и укажет, что нужно исправить. Это особенно полезно самоучкам и ученикам, у которых есть наставник: ни один человек не может правильно проверить 10 программ у 20 учеников в день. А система проверки может.

Цукерберг рекомендует:  Разработка SOA-приложения с помощью WCF

CodeGym разделен на 40 уровней. Каждый уровень состоит из 15–30 заданий на написание кода, 10–20 уроков по Java и мотивирующих статей. Таким образом, решая задачи, вы проходите уровень за уровнем— это своего рода игра, в которую вам не надоест играть. Еще один плюс: у CodeGym веселые, полные юмора уроки, мне они очень нравятся.

CodinGame. Решение заданий на CodinGame — это хороший способ улучшить навыки программирования. Этот сайт предназначен для людей, которые как минимум уже знают основы программирования (на Java или на других 22 языках). Есть и сложные задания для опытных разработчиков.

У CodinGame есть IDE для браузера (как и у CodeGym). С ее помощью можно писать код и компилировать его в том же окне — так вы видите результаты в режиме реального времени. Это не онлайн-курс, а сложные упражнения, связанные с реальной разработкой игр. Сделав упражнение, вы получаете визуальную обратную связь: видите небольшое изменение в игре.

На Codewars можно оттачивать мастерство программирования, соревнуясь с другими разработчиками. Это полезный и интересный сайт для продвинутых Java-программистов. Здесь вы найдете сложные задачи, а не уроки.

Сначала вам дается восьмой кю (уровень мастерства). Добравшись до первого кю, вы достигнете вершины мастерства.

Вывод

Программируйте ежедневно, уделяйте этому много времени. Используйте приведенные выше сайты с упражнениями. Иногда изучайте теорию. Задавайте много вопросов. Начинайте программировать! Даже не сомневайтесь.

Где пройти курсы по Java программированию с нуля?

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

Кто такой программист Java: что нужно знать о профессии?

Java (также его называют «Джава» или «Ява») – язык программирования, разработанный в 1995 году американской компанией «Сан Майкросистемс». Благодаря его особенностям (в частности, делению объектов на классы и типы) на нем можно быстро писать программный код. Кроме того, приложения, написанные на Джава можно запускать на любом устройстве с помощью виртуальной машины. Это сделало язык очень распространенным: на нем пишут компьютерные программы и мобильные приложения, а также широко используют для создания «движков» различных интернет-сайтов. Так, на Java написаны такие ресурсы, как eBay, Amazon и поисковая система Yahoo.

Задачи и обязанности

Вот какие обязанности обычно возлагают на Джава-программиста:

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

Работа и зарплата

Заработная плата разработчика Java не зависит от региона и находится в пределах от 60 000 рублей до 200 000 рублей.

В профессии Java-программиста есть возможность карьерного роста. В крупных компаниях всех программистов принято ранжировать на три категории в зависимости от опыта и стажа работы. Поскольку колыбелью программирования были США, они имеют английские названия. Вот эти категории.

  • Junior developer. Младший разработчик. В эту группу входят специалисты, только что получившие образование и относительно недавно приступившие к работе. Им чаще всего доверяют выполнять самые простые задания. Кроме того, у них самый малый размер дохода.
  • Middle developer. Разработчик среднего звена. Это программист, имеющий опыт работы в три – четыре года. Получает среднюю заработную плату.
  • Senior developer. Это опытный специалист. Он выполняет наиболее сложные задачи при разработке программ, которые требуют определенных знаний и навыков. Зарабатывает больше всего среди программистов организации.
  • Team lead. Человек, занимающий эту должность, руководит группой из нескольких других сотрудников, контролирует их работу и координирует их деятельность.

Кроме того, Java-программист может дорасти до руководителя отделения компании или до IT-директора. Это тоже существенно увеличит его доход. Еще один путь развития Java-разработчика – регистрация в качестве индивидуального предпринимателя и работа на себя.

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

Плюсы и минусы профессии

Среди достоинств профессии можно назвать следующие:

  • высокий уровень заработной платы;
  • возможность карьерного роста;
  • свободное планирование рабочего времени;
  • высокая востребованность профессии;
  • возможность работать на себя.

Однако есть у специальности и некоторые недостатки. Вот они:

Как учиться программировать: 6 вещей, которые я понял, учась на Хекслете

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

Большинство этих вещей до меня дошли именно в процессе обучения и общения с ребятами-программистами на Хекслете. Для кого-то это явно будут откровения Капитана Очевидность, но, возможно, кому-то оно и принесет пользу.

Какой язык программирования изучать первым? Неважно!

Не нужно тратить сильно много времени на выбор и мучаться этим. Берите Ruby, Python, JavaScript, PHP, Java, Lisp, да хоть паскаль — не ошибетесь. Для начала вам все равно нужно будет освоить базовые вещи, такие как циклы, условия, переменные, функции, объекты, рекурсию и т.п. Я когда-то в школе немного программировал на всяких бейсиках и C++, но к тому времени, как решил стать программистом, все это успешно забыл.

Начал изучение с Java, и не жалею, после этого было легче изучать менее строгие языки, вроде JS и PHP. Минус Java в том, что, если вы живете не в милионнике, вам будет весьма сложно найти на нем работу джуниора и получается, что обучение какое-то бесцельное, ради обучения, что сильно снижает мотивацию. В то время, как изучая PHP, например, уже очень быстро можно брать какие-то первые заказы на фрилансе, устроиться на первую работу в веб-студию и т.п., т.е. начать на своем хобби зарабатывать первые деньги, что очень сильно поднимает мотивацию.

Новички так серьезно подходят к вопросу “Какой же язык программирования выбрать”, будто им предстоит подписать договор с дьяволом, и всю жизнь писать только на этом единожды выбранном языке. Лично для меня просветлением стало, когда я увидел профили высокооплачиваемых программистов на бирже Upwork, почему-то очень во многих из них было написано примерно следующее — могу Django, могу Rails, а еще Meteor и Angular, да и Spring тоже. И Joomla само собой.

Потом я порасспрашивал некоторых знакомых (и малознакомых) программистов об их карьере, и увидел некий паттерн, которого раньше не понимал. Человек может, например, год работать с PHP, потом уйти на Java, потом плюнуть и выучить руби, стать RoR разработчиком, и в итоге заняться Node.js или Clojure. Любой нормальный программист знает несколько языков хорошо и десяток поверхностно. Поэтому не ломайте голову, не пытайтесь выбрать Самый Лучший Язык и строчить для этого тысяча первый вопрос на тостере. Просто берите любой язык и прочитайте по нему хотя бы одну книгу/пройдите курс. Попытки выбрать Самый Лучший Фреймворк из той же серии.

Про первую работу.

Очень многие программисты начинают свою работу с весьма непрестижных компаний и крошечных зарплат. И это нормально. Но это сложно принять, особенно тем, кто решает “войти в айти” уже не в юном возрасте, имея семью и детей. Мифам об огромных зарплатах программистов зачастую способствуют школы программирования, которым нужно продавать свои курсы и в итоге на своих лендингах они крупным шрифтом пишут какие-то заоблачные цифры, вроде “средняя зарплата JavaScript программиста 150 000 рублей”, при этом часто забывают сказать, что такую зарплату получают люди с опытом в несколько лет (или даже десяток лет), которые могут решать реальные сложные задачи, а вам после их курсов на старте светит тысяч 30 на испытательный срок, и это в Москве. А то и вообще попросят бесплатно поработать. За опыт и еду. Не нужно бояться идти на непрестижную и малооплачиваемую работу, потому что как только вы официально начнете работать программистом, даже за 20 тысяч в месяц, ваша привлекательность в глазах других работодателей и HRов сильно вырастет. На старте работу никто не мешает менять хоть каждые 3-6 месяцев, каждый раз уходя на бОльшую зарплату и более интересные задачи.

Но я, конечно же, не говорю, что нужно идти работать за еду, может конкретно вы найдете первую работу и за 100 000 в месяц. Просто нужно понять, что карьера тоже требует немалых усилий, и необходимо активно изучать рынок труда, время от времени общаться с рекрутерами и ходить на собеседования, чтобы адекватно себя оценивать в каждый момент времени. А первая работа — это не навсегда.

Учиться программировать сложно.

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

Лично я долго (слишком долго) учился на всяких курсах из серии “посмотри на меня, делай как я”. Когда начал учиться на хекслете, у меня от некоторых заданий просто мозг кипел, да и сейчас кипит. Одно задание я пытался сделать 3 дня. Но в итоге я прокачался, и теперь могу решать более сложные задания, чем мог раньше. Мне кажется, именно в этом должна быть цель хороших курсов программирования. Не в том, чтобы натренировать вашу память на запоминание 1000 функций из какой-то библиотеки. А в том, чтобы заставить мозг напрягаться и с каждым днем решать все более сложные задачи.

Про code kata

На определенном этапе (почти сразу после изучения основного синтаксиса одного из языков программирования), нужно набить руку в решении простых (хотя бы простых, для начала), алгоритмических задачек. Есть десятки разных сервисов, где это можно делать — codewars.com, exercism.io, hackerrank.com и т.п. Проскочить этот этап не получится. Если вы зашли на codewars и просто не понимаете, что от вас хотят и как решать даже самые простые задачи первых уровней, срочно вливайтесь в какое-то сообщество, где есть программисты и единомышленники, изучающие программирование, и где можно будет задавать вопросы и получать помощь. Одно из таких мест — слак чат Хекслета. Если вы не научитесь решать эти простые задания, вероятность резиста того, что вы сможете решать какие-то реальные рабочие задачи, крайне мала.

Не нужно зубрить названия функций.

Смысл вообще не в этом. Это дошло до меня как-то внезапно и совсем недавно. Вообще не надо пытаться насильно их запомнить. Я пытаюсь понять смысл, построить какую-то абстракцию, грубо говоря, сформулировать для себя общую концепцию того, что изучил.

К примеру, если я знаю, что обычно в языках программирования есть возможность привести строку к нижнему регистру. C этим знанием общей концепции, если я захочу например, писать на COBOL, просто загуглю — tolowercase in Cobol. И вуаля Lower-case(Item-1) . Если я буду много писать на каком-то определенном языке, я загуглю основные функции по 100 раз, и на каком-то этапе уже их запомню.

Кстати, это очень полезная штука и для изучения иностранных языков, я лично просто ненавижу делать какие-то списки, карточки и зубрить слова. Особенно у меня вызывают желание ругаться матом наборы слов, вырванные из контекста, типа “100 прилагательных на тему Погода”. Это просто нереально запомнить, а даже если и зазубрил сегодня, через месяц 80 процентов забудешь. Гораздо эффективнее просто читать/смотреть интересный тебе контент на языке и искать незнакомые слова в словаре каждый раз, таким образом через какое-то время самые употребительные слова запоминаются естественным образом.

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

Тупить — это нормально. (с) Елена Малышева.

Особенно это важно понимать тем, кто изначально далек от IT, но пытается сменить профессию и освоить программирование. Я увидел много примеров, когда очень опытные разработчики спрашивают совета касательно какой-то новой технологии, хотя, казалось бы, им с одного взгляда на документацию все должно быть понятно и все проблемы у них решаются одной левой. Опытные программисты порой говорят что-то вроде — ну его нафиг эту штуку, вообще не понимаю, как тут все работает, не мое это. Или долго занимась одной технологией, просто не могут заставить себя разобраться в новой, построенной на других принципах.

То есть люди, которые занимались программированием много лет, иногда тоже не могут самостоятельно разобраться в какой-то новой фиче, и совершенно не стесняются просить совета и помощи. Однако, с вероятностью 99% предварительно они пытались сами решить эту проблему, обратились к Google и Stackoverflow, но безуспешно.

Поэтому если вы пытаетесь стать программистом с нуля, вообще не парьтесь о том, что что-то непонятно и не ставьте на себе крест, вам должно быть очень многое непонятно! Не стесняйтесь задавать много вопросов, ну и гугл ваш лучший друг. Сперва всегда пытайтесь решить свои вопросы самостоятельно, а потом просите помощи, при этом желательно расписать, что вы уже пробовали для решения проблемы.

10 способов научиться программировать самостоятельно

Программирование — один из ценнейших навыков для карьерного роста, саморазвития и создания чего-нибудь удивительного. Десять советов для тех, кто только начинает своё путешествие в мир программирования, от Lifehacker.

10. Выясните, почему вы хотите программировать

Выбранное направление в учёбе будет зависеть в большей степени от того, почему именно вы хотите научиться программировать и сколько времени вы готовы уделять этому процессу. Если вы хотите стать программистом, первое что следует сделать — это записаться на профессиональные курсы (Google скомпилировал список навыков и курсов для тех, кто хочет стать инженерами-программистами). Если вы хотите создавать игры и веб-сайты для развлечения в свободное время, лучшим выбором являются интерактивные курсы. Bloc создал сравнительную таблицу курсов в зависимости от загрузки, стоимости и причины изучения программирования.

9. Выберите правильный язык

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

Язык, с которого стоит начать, зависит от причины изучения. (К примеру, если вы хотите создать приложение под iOS, вам лучше начать с изучения Swift). Если вы со всей серьёзностью отнеслись к намерению программировать, можно начать с языка C. Хотя выбрав Python, вам будет проще влиться в струю программирования. Приводим инфографику для сравнения нескольких популярных языков программирования.

8. Начните с малого… и будьте терпеливы

Независимо от выбора языка или метода обучения, вам следует начать с самого начала. Когда Дэвид Сински (David Sinsky) научился программировать за восемь недель, он, к примеру, потратил одни выходные на изучение основ Python, а другие — на Django. Взяв учебник, он удалял написанный код и снова проходил обучающий материал с нуля. Начните с основ и будьте терпеливы к себе. Взяв первый проект в программировании, разделите его на несколько этапов. И если один из способов обучения вам не подходит, не опускайте руки — попробуйте другой.

7. Попробуйте приложения для детей

Сейчас даже малыши учатся программированию. Несмотря на то, что многие программы для детского обучения весьма просты, некоторые из них (например, Scratch) подходят для любого возраста. Не имеет значения, сколько вам лет, даже детские анимационные приложения могут научить основам программирования (у edX есть новый курс обучения по Scratch).

6. Воспользуйтесь бесплатными онлайн-тренингами

Бесплатные онлайн тренинги и проекты (Codecademy, Hour of Code и др.) могут помочь вам в написании первой программы. Учебные пособия от Khan Academy, Codecademy, Code.org и других познакомят с основами программирования и всем необходимым для создания игры, сайта или другого проекта. Найдите нужный источник в зависимости от языка программирования, воспользовавшись Bento. Это хорошая отправная точка, однако дальнейшее обучение вам нужно взять на себя.

5. Пройдите онлайн-курс

Онлайн-курсы по программированию предполагают более обширную образовательную подготовку по сравнению с сайтами, предлагающами онлайн-тренинги по одному языку. Такие курсы предназначены для обучения основным навыкам в течение нескольких месяцев на занятиях университетского уровня. Я большой поклонник гарвардского онлайн-курса CS50 (его можно пройти бесплатно). Существуют также другие возможности. Вы даже можете получить образование университетского уровня, выбрав один из 15 онлайн-курсов.

4. Бесплатные книги по программированию

Если вы застряли на какой-то проблеме или вам нужно найти ответ на свой вопрос, не стоит забывать о справочниках. На GitHub можно найти огромную коллекцию из более чем 500 бесплатных книг по программированию. Также доступна коллекция электронных книг, охватывающая 24 языка программирования.

3. Изучайте, играя

Иногда лучшим способом обучения являются игры. В то время, как многие учебники по программированию обучают вас программировать простые либо сложные игры, некоторые обучающие сайты сами являются играми: Code Combat и CodinGame — инструменты, используя которые вы можете весело провести время.

2. Найдите наставника или станьте им

Сообщество программистов полно людей, готовых помочь следующему поколению программистов. Hack.pledge() — сайт, который поможет вам найти наставника. Либо вы сами можете стать наставником для кого-то другого. Преподавание изученного поможет вам лучше запомнить информацию.

1. Разберите чужой код

Переписывая чужой код, исследуя каждую строчку на предмет ошибок, вы сможете лучше понять общую картину. Благодаря открытым исходникам кода, вы имеете возможность узнать всё, что угодно — продолжайте учиться, используя инкрементально-хакерский подход. Только не забудьте поделиться своим кодом, если вам удастся улучшить часть ПО.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих