Сложно ли изучить java. Как учить язык программирования Java

  • 2 месяца обучения Java EE (2 раза в неделю по 4 часа)
  • если результаты показываешь хорошие (защищаешь свой проект успешно, который пишешь эти два месяца), то тебе предлагают трудоустройство.
Компания очень хорошая, иностранная, известная, да и условия работы отличные - словом, хотел я туда куда больше, чем туда, где мне уже сделали предложение. Отбор на обучение у нее предполагал 3 этапа:
  1. Выполнение практических заданий дома.
  2. В случае успеха тебя приглашают на компьютерное тестирование в офисе.
  3. В случае успешного тестирования в этот же день с тобой проводят собеседование.
С практическими заданиями я справился без особых проблем - здесь огромное спасибо JavaRush и их задачкам, после которых эти задания показались достаточно простыми. Заданий было 3: на RegExp(гугл помог, ибо сам я их терпеть не мог и не помнил), на алгоритмы (довольно простая, на соображалку скорее) и на запись\чтение из файла (таких в курсе JavaRush очень много). Меня пригласили на компьютерное тестирование. К тестированию я готовился по сайту quizful . Эти тесты очень помогли, некоторые вопросы в итоге даже пересекались. Сделал тест успешно, меня начали собеседовать. Это собеседование я, наверное, не забуду никогда в жизни. Все, что хотел услышать от меня собеседующий меня человек - основы теории Java, как то:
  • чем отличаются checked exceptions от unchecked;
  • какие методы есть у класса Object и зачем они нужны;
  • какие бывают коллекции и зачем они;
  • и немного про многопоточность.
JavaRush - отличный курс, он научит вас решать задачки и программировать, но теорию (для собеседований) нужно подучивать отдельно, в чем я и убедился, плавая в этих вопросах, как рыба в аквариуме. Меня хотели завернуть. Я его понимаю - я не мог внятно почти ни на что ответить, все пытался рассказывать с точки зрения написания кода, а его интересовала теория. Но я твердо знал, что я очень хочу попасть на эту стажировку, и я знал, что если мне дадут время, я все это наверстаю и выучу несчастную теорию. Все это я ему так и сказал, и он пошел мне навстречу - предложил через неделю встретиться еще раз, а пока что дал список тем (примерно, как я описал сверху) и сказал, где их - просто туториал оракла, в нем есть все: http://docs.oracle.com/javase/tutorial/ За неделю я основательно изучил этот туториал и пошел на повторное собеседование накануне дня, когда меня ждали на новой работе. Судя по всему, собеседовавшего меня человека больше всего зацепила именно моя целеустремленность (я знал, что если я поступлю на эту стажировку, дальнейшее зависит только от меня - за два месяца я бы разобрался со всем, чем надо). Как бы то ни было, я поступил на эту стажировку и отказался от выхода на работу на том месте, куда мне предлагали ранее. За 2 месяца нас познакомили с многими темами из Java EE, как то: Servlets, JSP, Hibernate JSF, Spring и многое-многое другое - по итогам стажировки мы были знакомы (примерное представление имели точно) об основном стеке технологий Java EE. Также на протяжении стажировки мы писали свой проект, который на выходе надо было успешно представить для трудоустройства. Я просто помню свои первые ощущения, когда был на первой лекции. Я смотрел на задание этого проекта (его выдали сразу на первой же лекции) и не понимал даже близко, с чего здесь начинать и как это делать. Также я помню, чего мне стоило успешно его сделать. Эти два месяца почти все мысли в моей голове были о том, что успешное трудоустройство и исполнение мечты - в моих руках и только. Больше ни от кого не зависело, смогу ли я его сделать. Только от меня. Я уже уволился с работы, сидел почти без денег, и это было действительно тяжело. Сидел с утра, сидел днем, сидел вечером, однако не уставал радоваться - я не помню, когда еще я с такой одержимостью посвящал себя чему-то. Это время лишний раз помогло мне осознать, насколько мне нравится программировать и насколько я бы хотел работать в этой области. На выпуске я представил свой проект. Защитил его действительно хорошо, судя по всему, значительно лучше, чем ожидалось, и в качестве исключения меня взяли не на начальную должность, а сразу на позицию Middle Java Developer. Это было 9 декабря 2014. Я не мог поверить этому, но предложение о работе было передо мной на моем мониторе. Инженер-программист. Это случилось. С 15 декабря я вышел на работу. Еще ни разу не возникала у меня мысль "блин, не хочу идти на работу". Каждый день, выходя с утра из дома, я знаю, зачем я иду работать, что я буду делать, и насколько я этого хочу. Это безумно радует. Это стоит и стоило той цены, которую пришлось заплатить за достижение своей мечты. Я желаю всем из вас, кто действительно хочет быть программистом, идти вперед в достижении своей цели. Она более чем реальна, она совсем рядом, но за нее нужно заплатить. Заплатить своим потраченным временем, нервами, ведь изучать что-то с нуля - действительно не самый легкий шаг. JavaRush помог мне сделать эти первые шаги с легкостью, и не я отвернулся от программирования в самом начале из-за кажущейся сложности и обилия теории. Таким образом я смог довести свою довольно безумную идею по кардинальной смене области профессиональной деятельности (еще и при отсутствии технического образования) до конца. И вы обязательно сможете.

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

  1. В чем залог успеха изучения языка программирования?

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

  1. Что лучше: учить самостоятельно, записаться на курсы или найти ментора?

Мое мнение — надо задействовать максимум возможных способов обучения исходя из вашего свободного времени. Можно конечно возразить, дескать, зачем проходить на курсах то, что написано в учебнике или в официальной документации, да еще и денег в десятки раз больше отдать. НО, не забывайте, что повторение — мать учения, кроме того, на курсах вам сто процентов сделают акцент на какой-нибудь важный нюанс, который вы пропустили при самостоятельном обучении. Еще на курсах вы сможете найти себе будущего партнера на реализацию собственного проекта, пусть и в учебных целях, но все же согласитесь — хороший бонус. Ментор (персональный наставник) это вообще самый отличный путь из всех возможных. Еще хотелось бы сказать, что если вы учитесь самостоятельно по книгам, то, в принципе, вы сможете выучить язык на требуемом уровне, а вот ходить на курсы и не читать книги — не получится. Итак, еще раз, учим ВСЕМИ возможными способами:

  • Читаем книги и документацию (обязательно!!!).
  • Ходим на курсы/вебинары (если нет денег — качаем в записи).
  • Консультируемся у ментора (дорого, зато эффективно).
  • Пишем свои мини программы (обязательно!!!).
  • Участвуем в open source проектах на java.
  • Устанавливаем обучающие программы на свой смартфон.
  • Помогаем отвечать на вопросы других неофитов java.
  • Заводим блокнот, в который записываем все то, что дается вам сложно.
  • Участвуем в онлайн соревнованиях по решению задачек на языке.
  • Смотрим обучающие видео в интернете и подписываемся на тематические группы в социальных сетях.
  • После первых же пройденных занятий начинаем отвечать на вопросы, которые задают на собеседованиях на junior java программиста (в интернете куча вариантов).
  • Окружаем себя всем тем, что поможет вам изучить язык, хоть магнитики на холодильник вешайте, главное, чтобы помогало.
  1. Столько много литературы по теме, с чего начать, что читать?

Книги это ваш основной источник знаний. О том, что без книг не обойтись я уже сказал. Книги по Java, условно, можно поделить на две группы — для профессионалов и для новичков. Книги для профессионалов обычно содержат в себе информацию по узкоспециализированному вопросу языка, например «Лямбда-выражения в Java 8», или описывают принцип работы (архитектуру) виртуальной машины, где рассказывается почему разработчики языка стали использовать такой подход в решении вопроса, а не иной. Понятно, что они нам не подходят. Наша цель — книги для новичков. Тут лидерами являются 3 книжки:

  • Java 8. Полное руководство. (Java: The Complete Reference, Ninth Edition) / Герберт Шилдт. — 9 издание. — 2016 — 1376 с.

  • Java. Библиотека профессионала. Том 1. Основы. (Core Java Volume I — Fundamentals) / Кей С. Хорстманн. — 2016 — 864 с.

  • Изучаем Java. (Head First Java) / Кэти Сиерра, Берт Бейтс. — 2016 — 720 с.

Шилд показался более структурированный в части последовательности подачи материала. У Хорстманна часто дается код с комментарием «это вы узнаете в следующей главе», зато примеры более сложные и близкие к реальности. Выбирая между этими двумя книгами я бы сказал так — если вы никогда ничего не слышали про программирование — то ваш выбор Шилд (хотя я советую Head First Java). Если вам не надо читать в википедии что такое «цикл», «переменная», «оперативная память» и вообще у вас математический склад ума и вы всегда интересовались техникой и IT отраслью — то я бы посоветовал Хорстманна (более сжатая и информация, меньше времени потратите на учебу). «Изучаем Java» — книга в первую очередь для визуалов и гуманитариев, хотя я лично планирую обучаться далее по ней. Книга похожа на конспект лекций по программированию от дизайнера. На каждой странице будут смешные запоминающиеся картинки с принципами написания кода. По ходу текста присутствуют вставки с наиболее часто встречающимися вопросами и заблуждениями учащихся по описываемой теме. Кроме того, в конце каждой главы есть тестовое задание и / или кроссворд из терминов пройденного материала.

  1. Где найти книги, на каком языке читать?

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

  1. Какие курсы посоветуешь?
  1. В интернете встречал(а) много лекций и пошаговых обучалок, их достаточно для изучения Java?

Нет. Еще раз, полное описание языка есть только в книгах и официальном мануале. На многих ресурсах такие обучалки содержат тонну ошибок, вдобавок они плохо структурированы. Из всего многообразия посоветую https://www.tutorialspoint.com/java/ Хотя, материала по данному языку ежегодно выходит море и все на отследишь. Не могу утверждать, что не появилось что-то более адекватное и стоящее. Если вбить в гугл learn java или java tutorial, то просто глаза разбегаются, все пересмотреть просто невозможно! Вот еще два блога, которые мне понравилсь, правда их уже почти не ведут http://pr0java.blogspot.ru/p/blog-page.html и http://kostin.ws/java/

  1. В смартфонах тоже есть приложения обучающие программированию?

Куда же без смартфонов. У меня Android и я установил для себя с десяток программ, большая часть из них представляет собой какие-то нарезки из официальной документации с ужасным интерфейсом и шрифтом. В целом могу посоветовать вам следующие: SoloLearn, Learn Java, JavaSamples, Enki, Algorithms. Уверен что и на iOS можно будет найти похожий арсенал ПО.

  1. Стоит ли смотреть видеоуроки? И если да — то какие?

Как говорится «лучше один раз увидеть, чем сто раз услышать». Визуальная картинка всегда воспринимается лучше. Кроме того, на видео вы можете подсмотреть различные фишки работы с IDE или с каким-либо уникальным инструментом разработчика. На том же youtube куча каналов и видео посвященных java. Единственное, чего я советую избегать — каналов для профессионалов (в основном видео с конференций для программистов) и каналов, где, обычно, стоит мужик на фоне маркерной или меловой доски и что-то там рассказывает на протяжении нескольких видеороликов подряд, периодически что-то чертя на доске. Обычно в таком виде встречаются видеолекции для студентов (ну и презентации с конференций), они нудные и мало информативны, точнее они обычно про теорию, а нам нужна ПРАКТИКА, на видео должен быть представлен КОД.

  1. Как-то нудно все, есть ли интересные формы обучения java?

Тадам, вам повезло, за окном 21 век и все смотрят в сторону поколения Z, а оно, как известно, без игровой формы вообще мало что переваривает:) Искали? Держите!

Вот вам ещё парочка достаточно известных сайтов с задачками, но уже не в игровой форме:

  1. А почему все ресурсы в интернете ссылаются на какой-то github?

Хотите вы того или нет, а современное программирование не представляет свою жизнь без системы контроля версии. Она позволяет делать ответвления в программном коде (вилки в разработке), облегчает работу в команде, а так же позволяет вернуться к сохранной точке в программном коде (если вы вдруг поняли, что направление которое вы выбрали — тупиковое, и надо вернутся к коду, который был 3 часа назад). Гитхаб — это как раз такой оналйновый сервис. Опять же для смурфпрограммистов как я есть игровой сайт-обучалка:

  1. Вы советовали отвечать на вопросы новичков в программировании на Java, но я же сам только начал учить язык!

Нет лучшего способа что-то запомнить, чем научить этому кого-то другого. Смело топаем на такие форумы и площадки как:

cyberforum.ru
programmersforum.ru
codeby.net
sources.ru
ru.stackoverflow.com

И пытаемся отвечать на вопросы пользователей

  1. Где на просторах интернета можно взглянуть на вопросы на вакансию junior java программиста? С ответами кАнеШнА:)
  1. Какие материалы и ресурсы в интернете еще можно посмотреть, почитать, изучить?

Их много, все и не перечислишь. Можно порыться на coursera.org плюс udemy.com или посмотреть лекции от MIT.

  1. Что учить после того, как я выучу Java Core?

Java core это приблизительно 30% от того, что надо знать уважающему себя java программисту:))) К тому моменту как вы закончите обучения Java Core, вы уже сами будете знать что учить дальше. А дальше идет развилка технологий — все зависит от того чем вы хотите заниматься. Тут есть несколько основных направлений:

    • работа на корпоративный сектор — изучать стек технологий относящихся к спецификациям JavaEE (). Основным инструментом тут является Spring Framework. Понятно, что данное направление ориентировано на написания серверной части проектов — backend.
    • разработка под мобильную платформу android — не секрет, что приложение для данной платформы пишутся именно на java (в данный момент популярность набирает язык Kotlin). При выборе данного направления изучается свой отдельный набор технологий. Самым популярным фреймворком для андройда являеся Dagger.
    • создание игр — а вот тут я вас хочу огорчить, для этого редко используется Java. Практически все игры в наше время пишутся на игровых движках. Самые популярные из бесплатных (платить придется за дополнительные модули) Unity и Unreal Engine , самое смешное, что первый использует для написания кода C# а второй С++ и визуальный скриптовый язык блупринтов . То есть java в игровой индустрии в пролете!!!

Как вы заметили java не очень популярна в части frontend языка. Кроме вышеперечисленного вам в любом случае придется изучать SQL запросы (какое направления вы бы не выбрали), а так же html/xml/css т.к. без веба в наши дни никуда. Программировать в наши дни без знаний паттернов проектирования тоже сложно. Хорошим подспорьем будет изучение основ javascript, т.к. этот язык находится на буме своей популярности и его пихают во все щели (и сайты на нем пишут, и игры, и приложения для мобилок, и уже на сервер портировали благодаря Node.js), короче быть НЕ КОРПОРАТИВНЫМ программистом и не сталкиваться с javascript в наши дни невозможно.

На этом все. Обещаю постепенно дописывать статью, а вы не стесняйтесь — задавайте вопросы, по возможности отвечу:)

Мне бы хотелось начать писать приложения для Android. Это, очевидно, все в Java. Программирование заданий на Craigslist составляет не менее 100 Java до 1 С++. Я хочу изучить Java.

К сожалению, программа CS, которую я рассматриваю, учит С++, а не Java, поэтому С++ - это то, что я изучаю. (Я уверен, что обучение на С++ научит меня хорошо программировать, но так же будет Java, а затем я смогу получить работу. Это разочаровывает, что программы CS придерживаются языков, которые они использовали в течение 20 лет, вместо того, чтобы преподавать языки, которые помогут им студенты преуспевают.)

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

Изменить: Спасибо за все быстрые ответы! Я проделал некоторое программирование, и, я думаю, я легко забираю языки. Сравнивая бок о бок, я обращаюсь ко мне. Но я также склонен откусывать больше, чем я могу пережевывать, и изучение С++ и Java кажется похожим на большую еду, которая может вызвать у меня проблемы.

15 ответов

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

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

Не расстраивайтесь, ваша школа учит С++, будьте благодарны. Читайте, Опасности Java-школ . Вы не в технической школе, которая хочет узнать самый горячий язык на данный момент. Вы можете научиться информатике. Моя школа учит Java как вводный язык, и я думаю, что это огромная ошибка. Мы должны учиться C, поэтому к тому времени, когда мы познакомимся с Java (скажем, объектно-ориентированным классом), мы узнаем, что на самом деле происходит, и ничего "магического" для нас не происходит.

Знания, которые вы получаете в своей степени и даже от использования C или С++, превзойдет новейший "популярный" язык.

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

Не путайте показатели количества заданий. Соотношение скучных и интересных заданий, вероятно, также составляет от 100 до 1, как вы сказали. Также в эти дни высокоуровневые вещи, зная, что низкий уровень платит.

ИМХО самых интересных (программирующих) заданий есть задания С++. Хотя в Java или С# могут быть интересные проекты, большинство из них связано с перемещением данных (от DB до html или gui, обратно к DB...). Это зависит от того, что вы хотите запрограммировать для жизни, -).

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

Не обязательно больше заданий Java, чем заданий на С++, оно сильно варьируется от региона к региону; где вы ищете?

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

Однако (и что большой, однако), если большая часть фактического программирования, которое вы делаете в школе, находится в С++ (домашние задания, проекты и т.д.), а Java - это то, что вы будете делать как хобби и реже, вы улучшится на С++.

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

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

Если вы делаете С++, вам следует усердно учиться на это, иначе вы довольно много затягиваете, изучая Java.

С++ имеет целую кучу вещей, которые у Java нет, и если вы изучаете - вы не получите меток, если начнете писать Java в своих тестах на С++!

Мой совет - найти проект, с помощью которого вы можете использовать С++ (возможно, некоторые opengl?) - возможно, есть несколько лучших предложений (я не кодирую в С++). Таким образом, вы будете наслаждаться собой, изучая то, что вы должны изучать:)

100 Java до 1 С++? Я просто искал на dice.com, и он вернул 9322 для Java и 4777 для С++. Конечно, Java более востребован, но соотношение близко к 2: 1. Кроме того, существует также "запасная" сторона уравнения - конкурентов на Java больше конкурентов на Java.

Почему я не вижу рекомендаций по изучению С#? В любом случае я бы изучил С++ и С# одновременно. Я думаю, вы не должны банки на одном или двух языках. Изучайте новый каждый год или около того. Как только вы овладеете ООП и шаблонами дизайна, языки становятся тривиальными (в основном). Тогда вы можете иметь более одного резюме. Вы также должны думать о том, что вы хотите сделать именно... веб-разработка? низкоуровневый материал? Создание драйверов устройств? Немного расширьте свои горизонты и разверните то, что делает ВАС, как программиста, тикающим.

Просто спросите себя, насколько легко научиться концепциям для вас в настоящее время. Насколько глубокое понимание вы получаете?

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

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

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

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

Итак, ты твердо решил стать Java-программистом. И сразу у тебя возникает куча вопросов: “С чего начать обучение Java? Как правильно выбрать программу обучения? Как выучить Java и получить опыт работы?”.

Сегодня есть множество способов научиться чему-либо, и программирование не исключение. Помимо классических методов — самостоятельного обучения и офлайн-курсов программирования — в настоящее время существует множество онлайн-курсов по Java, тренингов, как платных, так и бесплатных.

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

Итак, несколько способов выучить Java:

1. Самостоятельное обучение.

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

Недостатком же является то, что не у каждого хватит силы воли самостоятельно освоить огромное количество материала, прочитать кучу книг, получить достаточно практического опыта и не бросить все в начале пути. Кроме того, у каждого будут сомнения: “А верной ли дорогой я иду, все ли делаю как надо?”.

2. Бесплатный онлайн-курс.

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

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

3. Офлайн-тренинг.

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

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


4. Персональный коучинг/менторство.

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

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

5. Ну и наконец тренинг в компании.

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

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

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

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

Выбор языка программирования

Публикация начинает выглядеть как многие подобные материалы. По закону жанра я должен буду написать название пары тройки языков программирования, назвать парочку плюсов и минусов и, в итоге, так и не ответив на вопрос, перейти к следующей части. Отчасти в этом есть доля правды, ведь каждый выбирает для себя тот язык, который ему ближе, исходя из того, разработкой какого вида продуктов он хочет заниматься в будущем. Большинство из вас изучали в школе Turbo Pascal и вряд ли для вас будет новостью, что на этом языке сейчас уже практически ничего не пишут. Так и в данном случае, выбирать язык надо грамотно, хотя много знаний никогда не бывает, но если вы хотите за короткий промежуток времени эффективно влиться в ряды программистов, к выбору языка надо подходить с умом. В самом начале запомните: хороший программист никогда не останется голодным, а в большинстве случаев сможет купить себе много икры (это определение подойдет для любой специальности, но ни одна специальность не даст вам такой свободы выбора места работы, как в плане компаний, так и стран - программист он и в Индии программист).

Логично, что чем популярнее язык и востребованность, тем больше шансов будет найти работу в будущем, при этом язык должен быть несложным в освоении. Потому что хотя на C++ и пишут большое количество игр и получают за это хорошие деньги, новичку, тем более не знакомому с ООП (объектно-ориентированное программирование) лучше отложить на некоторое время этот язык куда подальше. Далее по ссылке предоставлен список самых популярный языков программирования 2014 года , и как видно, на первом месте стоит Java, далее идут C языки, затем Phyton, JavaScript, PHP, Ruby и т.д. Если самим поискать подобные статистики, то вы увидите, что в разных источниках места заняты по разному, но в целом первые 10 мест по содержанию везде будут совпадать.

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

Исходя из этих двух источников мы уже можем себе представить, какие языки программирования сейчас «в моде». Как видно по названию, автор статьи выбрал для себя Java. Хотя я считаю его лучшим для изучения ООП, найдется много людей, которые не согласятся со мной, и это логично - сколько людей, столько и мнений. Тут мы встаем на небольшое перепутье дорог: выбирать Java, С# (очень похож на Java), Phyton, если мы хотим работать с начинками программ и приложений (back-end) или же PHP, JavaScript, HTML, если хотим заниматься веб-разработкой (front-end). В первом случае я бы свой выбор остановил на Java, а во втором - на PHP, хотя опять же, тут больше по вкусу, надо уже самому искать информацию о различных языках и вообще понимать, чем ты хочешь заниматься. Для размышлений вот подборка языков, которые используются в крупнейших интернет компаниях мира .

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

Обучение

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

Вообще, у меня есть своя теория, не раз подтвержденная мною же на практике: абсолютно всему можно научиться за 1 год. . Поверьте мне, это сущая правда, кому-то даже понадобиться меньше времени, но если человек не перестает сдаваться и в течение года с умом подходит к обучение, то практически невозможно, чтобы он не научился. Это не только в программировании, абсолютно в любой сфере: хочешь играть на гитаре - без проблем (у меня это заняло не так уж много времени и сил), научиться аргентинскому танго, кататься на серфе - на все это хватит одного года. Главное - учитесь!

В данном случае я буду рассматривать язык Java, так как он мне все таки ближе. Благо в интернете полно людей, которые безвозмездно помогают другим в обучение, поэтому найти подходящий для вас материал не составит труда. , которые можно с пером и бумагой просматривать в стенах свою уютной квартиры (пока только на русском языке). Для тех, кто привык вчитываться в проходимый материал, опять же интернет предоставляет большие возможности и это только один из всевозможных сайтов с уроками по Java . Теории хоть отбавляй, но не могу сказать про такой обучающий сайт, как Coursera.org , где вы сможете найти обучающие курсы на различных языках и по различным областям, в том числе и программированию - опять же все абсолютно бесплатно. Таких сайтов не один и не два, стоит всего лишь поискать.

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

Ну и конечно, кто-то спросит, а как же книга? Разве не надо их читать, а если надо - то что? На это я отвечу, что от чтения книг еще никто глупее не становился. Книг тоже очень много, но я перечислю только небольшую часть из них:

Помощь в практике

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

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

  • Cyberforum - по моему мнению, самый популярный русскоязычный форум ITшников, тут можно найти ответы на вопросы, при чем и не только в области программирования;
  • Programmers forum - крупный русскоязычный форум;
  • Searchengines - небезызвестный форум, но специализируется больше в веб- программирование;
  • Stack overflow - а это уже, не побоюсь этих слов, самый популярный во всем мире IT-форум, ответы практически на все свои вопросы вы найдете именно здесь;
  • Dev shed - тоже крупный англоязычный форум;
  • Quora - форум прямо не специализирующийся на программировании, но зато большая вероятность, что вы получите ответ от настоящего профессионала.

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

Компилируем код

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

Наконец, для тех, кто хочет действительно стать программистом, желаю взять быка за рога, собрать всю волю в кулак и делать то, что вам нравится. До меня уже тысячи раз говорили, но я повторюсь, главное - желание и труд. Тогда все у вас получится. Запомните самое главное: воспринимайте изучение языков программирования и различных технологий не как цель, а как СРЕДСТВО. Только представьте, какие возможности перед вами открываются. Может быть, именно вы станете одним из тех, кто меняет мир в режиме реального времени. Так что удачи и спасибо за внимание!

Видео-бонус

Теги: Добавить метки



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: