Java учить язык – Что посоветуете для изучения Java с нуля, не имея никаких знаний в области программирования? Бесплатные курсы, учебники? Реально ли, и стоит ли?

Содержание

Советы по изучению Java

Каждый неофит 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. Какие курсы посоветуешь?

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

  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, а оно, как известно, без игровой формы вообще мало что переваривает 🙂 Искали? Держите!

https://javarush.ru
https://www.codewars.com
https://www.codingame.com

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

www.codeabbey.com
www.codingbat.com

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

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

https://www.git-game.com/

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

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

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

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

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

Да пожалуйста:
http://javastudy.ru/category/interview/
https://javatalks.ru/topics/9373?page=1
http://wizardjava.com/java/java-voprosy-na-sobesedovanii-i-otvety-chast-1
http://wizardjava.com/java/java-voprosy-na-sobesedovanii-i-otvety-chast-2

Тут вроде нет ответов:
http://becomejavasenior.com/blog/2015/07/01/327-interview-questions-java-developer/

  1. Какие материалы и ресурсы в интернете еще можно посмотреть, почитать, изучить?

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

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

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

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

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

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

buran9.ru

Как стать программистом или Выучить Java за 1 год / Хабрахабр

Здравствуй, дорогой читатель. Давно хотел написать подобную статью, но либо не хватало времени, либо мешала предательская лень. Но, как бы там ни было, все-таки у меня получилось собраться с мыслями, чтобы написать то, что принесет вам, я надеюсь, какую нибудь пользу. С радостью поделюсь своими знаниями и опытом, в ответ с вас причитается время и внимание. По моему мнению, данная публикация хорошо подойдет для тех, кто готов определиться в своих интересах и хочет связать свою жизнь с 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, так как он мне все таки ближе. Благо в интернете полно людей, которые безвозмездно помогают другим в обучение, поэтому найти подходящий для вас материал не составит труда. Здесь выложены более 1000 часов лекций по Java, которые можно с пером и бумагой просматривать в стенах свою уютной квартиры (пока только на русском языке). Для тех, кто привык вчитываться в проходимый материал, опять же интернет предоставляет большие возможности и это только один из всевозможных сайтов с уроками по Java. Теории хоть отбавляй, но не могу сказать про такой обучающий сайт, как Coursera.org, где вы сможете найти обучающие курсы на различных языках и по различным областям, в том числе и программированию — опять же все абсолютно бесплатно. Таких сайтов не один и не два, стоит всего лишь поискать.

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

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

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

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

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

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

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

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

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

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

Видео-бонус

habr.com

5 способов выучить Java – JuJa

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

   

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

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

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

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

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

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

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

Похожие записи:

juja.com.ua

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

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

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

Какова цель изучать язык программирования Java?

Зачем нужна цель? Цель – это главный мотиватор, вы должны видеть, к чему нужно стремиться. А если цель определена неверно, то и двигаетесь вы в неправильном направлении и не достигнете того результата, на который рассчитывали.

Конечная цель изучать язык Java – это получить работу.

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

Цель есть, теперь переходим к средствам её осуществления. Крайне не желательно кидаться от одного источника обучения к другому, будь то Youtube каналы или авторские блоги, практикующие Java обучение.

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

А в худшем случае, вы найдете уроки написанные “незнайками” или монотонно зачитанные тексты, зарабатывающими на рекламе “горе видео-блогерами”. Вы ходите по кругу, теряете время, а после потерянного времени, пропадает и интерес. Уверяю вас, что именно по этой причине из всех начинающих обучаться программированию по материалам, найденными в интернете, до финиша доходит лишь 5%.

Почему не доходят до финиша 95% начинающих?

Используют не структурированный материал

Обучающие статьи, уроки или видео, кусочками надёрганные от разных авторов, не имеют и не могут иметь логически связанной структуры – это просто “намешанная каша”, вот в таком виде она и останется у вас в голове. Записать обучающий курс по Java на несколько десятков часов с хорошо продуманной структурой подачи материала, это огромный труд. Зачем кому-то это делать бесплатно?

Нерегулярный процесс обучения

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

Ошибки начинающих

Зацикленность на теории

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

Перфекционизм

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

Почему вредно, когда ученик хочет решить задачу сразу оптимально? Он смотрит на задачу и не знает, как ее решить идеально и в результате тратит много времени. В итоге он ничего не делает, а задача так и остается нерешенной.

Выводы

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

И это неудивительно, Java более сложный язык программирования и начинать учить его желательно сразу с премиум видео-курсов. Если вы совсем новичок, тогда смело выбирайте мой новый видео-курс “Программирование на Java с Нуля до Гуру”.

  • Создано 17.10.2018 10:20:00
  • Михаил Русаков

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

myrusakov.ru

С чего начать изучение Java программирования

Язык Java

Java — не просто язык программирования, а целая программная платформа с широкими возможностями. Основными составляющими блоками этой платформы являются:
  • базовые инструменты для написания и запуска программ на Java;
  • библиотеки и классы — ядро языка. Они обеспечивают основные функциональные возможности программирования на Java: обработка исключений, многопоточность, коллекции, логирование, рефлексия, безопасность, работа с сетью, работа с XML, сериализация, регулярные выражения.
  • инструменты для развертывания и автоматического запуска приложений;
  • инструменты для создания фронтенда (GUI, интерфейса пользователя). Это классы библиотек JavaFX, Swing и Java2D;
  • библиотеки, для работы с базами данных, удаленно по сети, такие как JDBC, JNDI, RMI и Java RMI-IIOP.
Если вы хотите узнать больше о классах и инструментах Java, переходите по ссылке — там есть всё. Первая версия Java JDK 1.0 включала «всего лишь» несколько сотен классов. Зато в настоящее время их число увеличилось уже до нескольких тысяч. За время жизни языка авторы внесли огромное количество изменений, которые повышают его безопасность, функциональность и переносимость. Благодаря постоянному совершенствованию и поддержке языка со стороны его разработчиков, Java всегда шла в ногу с развитием IT-технологий. Так что в настоящее время перед нами — современный язык, основными характеристиками которого являются:
  • Невысокий порог вхождения
    Изучать Java проще, чем большинство языков с Си-подобным синтаксисом

  • Объектно-ориентированность
    Программы в Java строятся на основании объектов и их взаимодействии, что позволяет задействовать все преимущества ООП

  • Переносимость
    Благодаря использованию интерпретатора — виртуальной машины Java, программы являются переносимыми не только на различные платформы, но и на различные устройства

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

  • Развитая многопоточность
    Средства Java позволяют управлять выполнением нескольких потоков, что позволяет создавать многопоточные приложения

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

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

  • Интерпретируемость
    Java-интерпретатор может выполнять байт-коды Java на любой машине, на которой имеется JVM и JRE.

  • Распределенность
    Java имеет инструменты для создания распределенных приложений.

  • Производительность
    Использование JIT (Just-in-time)-компилятора обеспечивает высокую скорость работу приложений, сопоставимую по скорости с языками С и С++.

Первые шаги в освоении новой профессии не всегда даются легко. Особенно если не знаешь с чего начать, а вопросов возникает множество. В случае с программированием вопрос «с чего начать изучение Java» возникнет самым первым. Помочь ответить на него вам поможет эта блок-схема: Чтобы начать изучение Java с нуля в первую очередь желательно разобраться с основными понятиями. То есть усвоить, что включает в себя язык Java, что представляет собой программа на Java и как происходит ее выполнение. Затем следует переходить к освоению синтаксиса языка, его основ, изучению основных библиотек. После элементарного прочтения парочки статей о самом языке Java изучение основ можно начинать. Но для начала нужно установить программное обеспечение для разработки и запуска программ — JDK (Java Development Kit).

Установка Java на компьютер

Итак, делаем первый шаг при изучении Java с нуля – устанавливаем JDK. Для этого вам потребуется проделать несколько простых операций:
  1. перейти на сайт Oracle;
  2. выбрать и скачать установочный файл в зависимости от вашей операционной системы;
  3. выполнить установку, следуя рекомендациям программы-установщика;
  4. настроить переменную окружения, если вы используете Windows
Вот, например, описание установки JDK и переменной окружения для операционной системы Windows.

Основные определения

Если вы только начали изучать Java, то непременно встретите следующие термины: JVM (Java Virtual Machine) — виртуальная машина Java. Это программный модуль, зависящий от платформы, который служит для интерпретации исходного байт-кода в машинный код и его исполнения. JRE (Java Runtime Environment) — исполняющая среда выполнения Java. Включает в себя реализацию JVM для конкретной платформы и набор библиотек, необходимых для выполнения программ на Java. JDK (Java Development Kit) — набор инструментов разработчика, необходимых для написания программ на Java. Включает в себя компилятор, JRE, набор стандартных библиотек Java, документацию, различные утилиты. Исходный код – текстовый файл на языке Java, имеющий расширение .java Байт-код — машинно-независимый низкоуровневый код, представляющий собой набор инструкций для JVM. Машинный код — набор машинных инструкций в двоичном формате, которые непосредственно выполняются процессором. Компиляция — преобразование исходного кода в байт-код. Интерпретация — преобразование байт-кода в машинный код. Платформа — программно-аппаратная среда, в которой происходит выполнение программ и приложений. Наиболее популярными платформами являются Microsoft Windows, Linux, ОС Solaris и Mac OS. Эта схема поможет лучше ориентироваться в понятиях JVM, JRE и JDK:

Жизненный цикл программы

Жизненный цикл программы на языке Java начинается с написания исходного кода в текстовом формате. Обычно для написания программ используются специальные среды для разработки – Integrated Development Environment (IDE), но простые программы можно набирать и в текстовом редакторе, даже в Notepad, который поставляется с любой редакцией ОС Windows. Исходный код необходимо сохранить в файл, имеющий расширение .java. Пример программы HelloWorld.java:
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("This is my first program");
    }
}
Прежде, чем выполнить этот исходный код, его необходимо скомпилировать в байт-код с помощью компилятора. Компилятор — это утилита, которая является частью JDK. В результате его работы мы получим файл с расширением .class, который содержит байт-код — инструкции для JVM, формат которых напоминает язык ассемблер. Наша программа HelloWorld.java будет скомпилирована в файл HelloWorld.class. Платформа Java не предусматривает инструментов для редактирования байт-кода, но возможность просмотреть его все же есть. Чтобы посмотреть, что представляет собой байт-код программы на Java, можно воспользоваться утилитой дизасcемблера javap, которая входит в состав JDK. HelloWorld. class будет содержать такой байт-код:
Compiled from "HelloWorld.java"
public class HelloWorld {
  public HelloWorld();
    Code:
0: aload_0
1: invokespecial #1 
4: return

  public static void main(java.lang.String[]);
    Code:
0: getstatic #2
3: ldc       #3
5:invokevirtual#4
8: return
}
Теперь наша программа хранится в скомпилированном виде в файле HelloWorld.class. Для ее выполнения на любой из платформ необходимо наличие установленной JRE. Возможность переносимости Java-программ на любую платформу обеспечивается за счет использования JVM. Исполнение программы — это выполнение байт-кода виртуальной машиной Java. Выполнение программ производит утилита java, которой необходимо указать имя скомпилированного файла. Выполнение происходит в следующей последовательности:
  1. в оперативной памяти компьютера запускается JVM. По сути это программа, которая служит для выполнения написанных нами Java-программ;
  2. с помощью начального загрузчика классов JVM загружает и инициализирует наш класс в памяти компьютера. В нашем примере это класс HelloWorld;
  3. далее в нашем классе JVM ищет метод public static void main(String[]);
  4. выполняется код метода main. При этом, если необходимо для выполнения программы, производиться загрузка и инициализация других классов;
  5. после выполнения кода производится уборка мусора — очистка памяти и закрытие программы JVM.
При выполнении всех этих действий JVM интерпретирует (преобразовывает) байт-код в машинную инструкцию для процессора с учетом операционной системы, на которой она выполняется. Схематично жизненный цикл Java-программы можно представить так:

Выбор и установка среды разработки

Для того, чтобы быстро и эффективно программировать на Java вам понадобиться среда разработки — приложение для написания программ на Java. Наиболее популярными IDE среди разработчиков на Java являются:
  • IntelliJ IDEA
  • Eclipse
  • NetBeans
Согласно обзору популярности инструментов Java разработки от компании RebelLabs за 2017 лидером является IntelliJ IDEA, второе место занимает Eclipse, на третьем месте со значительным отставанием от пары лидеров расположился NetBeans. Доля остальных IDE невелика и не превышает в общем объеме 3%. Хороший сравнительный обзор этих IDE можно посмотреть здесь. Для новичков вполне достаточно установить IntelliJ IDEA Community Edition. Во-первых, вы получите все плюсы современной IDE, такие как: подсказки, проверка кода, возможность отладки кода, удобная интеграция с БД, серверами и поддержка многих инструментов и технологий разработки. Во-вторых, вы сделаете первый шаг в освоении профессионального инструмента разработки, используемого большинством разработчиков. Инструкция по установке IntelliJ IDEA приводится в начале обучающего курса JavaRush, также с ней можно ознакомиться на этом ресурсе.

Заключение

Начать изучение Java с нуля самостоятельно не составит труда для большинства начинающих. Для этого вполне достаточно знаний на уровне пользователя персонального компьютера. Чтобы эффективно начать изучать Java проделайте несколько простых шагов:
  1. установите Java на компьютер
  2. изучите основные понятия
  3. установите среду разработки
  4. напишите и запустите свою первую программу.

javarush.ru

Что такое Java? С чего начать изучение языка программирования Java – Goldy-Woman.com

Понравилось? Поделитесь! 😉
Что такое Java? С чего начать изучение языка программирования Java

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

 

Кто создал язык программирования Java?

Java была создана в начале 90-х командой программистов во главе с Джеймсом Гослингом для компании Sun Microsystems. Изначально Java создавалась для разработки на мобильных устройствах. Но когда в 1996 году вышла Java 1.0, основной фокус этого языка сместился на использование в интернете. Java дала больше интерактивности с пользователями, позволяя разработчикам создавать анимированные страницы. Со временем Java стала успешным языком программирования как для интернета, так и в других областях.

 

Спустя 20 лет, Java все еще остается невероятно популярным языком с более 6,5 миллионами разработчиков по всему миру.

 

Почему стоит выбрать Java?

Java создавалась на основе нескольких ключевых принципов:

 

1. Легкость в использовании.

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

 

2. Надежность.

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

 

3. Безопасность.

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

 

4. Платформонезависимость.

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

 

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

 

С чего начать изучение Java?

1. Установить JDK

Чтобы начать программировать на Java, нужно скачать и установить Java development Kit (пакет разработчика Java, JDK). Как только вы установите JDK на компьютер, вы сразу сможете начать писать свою первую программу.

 

2. Выбрать IDE

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

 

3. Первые шаги

Неизбежно первой программой любого новичка становится простая программа “Hello World”, которая просто выводит это название. Такая простая программа продемонстрирует вам компиляцию, запуск и работу приложения в среде разработки типа NetBeans.

 

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

 

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

 

4. Как выбрать свое первое приложение на Java

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

 

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

 

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

 

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

 

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

 

5. Другим путем

Если вы чувствуете, что в одиночку справиться с изучением языка программирования, особенного такого серьезного и масштабного, как Java, вам не удастся, попробуйте пойти на специализированные курсы, где изучаются основы программирования. Например, http://programming.xxi.kiev.ua/.

 

Автор: Paul Leahy
Источник: about.com

Понравилось? Поделитесь! 😉

goldy-woman.com

Что нужно знать, прежде чем изучать Java

Итак вы решили начать изучение Java. Кроме посещения курсов вам понадобиться терпение. Много терпения. И желание. Хотя и этого недостаточно. Для успешного старта вам нужно обзавестись/ознакомиться со следующими вещами:

1. JDK

Набор стандартных библиотек и классов, без которых вы далеко не уедете. То есть вообще никуда не уедете. Как установить это в свою систему я расписывать не буду, хотя бы потому что все уже давно расписано (а еще мне за это никто не заплатит). Гугл в помощь. Забиваем в поиск “как установить jdk на [название вашей ОС]”.

Скачать последнюю версию для нужной вам ОС (на момент написания заметки это Java SE 8u11) можно тут:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

2. Среда разработки и дополнительное ПО.

2.1 Eclipse.

Многофункционален, довольно прост (вы узрите его простоту после нескольких занятий), а также сообщит о явных ошибках в коде ещё до компиляции. Детальнее можете узнать в гугле или в одном из предыдущих постов.

Самую свежую версию (на момент написания заметки это Eclipse Standart v.4.4 “Luna”) можно скачать тут: https://www.eclipse.org/downloads/

Примечание: настоятельно рекомендую качать Luna и только ее. Нет кучи лишних (пока-что) плагинов и надстроек. А того что есть – хватит с головой. + не забываем погуглить как подключить базовые библиотеки JDK к среде разработки (простая операция в несколько кликов).

2.2 Notepad++

Многофункциональный блокнот. Зачем? For the Glory of Satan of course! Просто иногда быстрее и проще просмотреть код в блокноте, чем запускать Eclipse. Этот же имеет несколько очень полезных функций, таких как сравнивание двух текстовых файлов и подсветка синтаксиса в зависимости от выбраного вами языка программирования.

Самую свежую версию (на момент написания заметки это v.6.6.8) можно скачать тут:

http://notepad-plus-plus.org/download/v6.6.8.html

2.3 TeamViewer

“TeamViewer всего за несколько секунд устанавливает соединение с любым ПК или сервером в мире. Вы можете удалённо управлять компьютером вашего партнёра так, словно вы сидите за ним.” ©

Это нужно иметь. Позволит другому члену вашей команды или преподавателю просмотреть и исправить ваш код, без нужды импорта на другой компьютер. Скачать можно тут:

http://www.teamviewer.com/ru/download/windows.aspx

3. Литература.

Тут все кратко. Рекомендую то, что просто в чтении и одобрено преподавателями.

3.1 К. Сьерра, Б. Бейтс – Изучаем Java (Мировой компьтерный бестселлер)

А проще говоря HeadFirst Java. Скачать можно легко и везде. Но электронка только в формате .djvu (читалка этого формата тут: http://windjview.sourceforge.net/, для андроид-телефонов тут: https://play.google.com/store/apps/details?id=org.ebookdroid&hl=uk). Есть лишние 200-300 грн? Не поленитесь купить! Оно того стоит. Так же отмечу что начинать штудирование HeadFirst стоит только тем, кто знаком с базовым синтаксисом и приступил к изучению ООП. Сама книга написана в свободном, разговорном стиле. С кучей картинок, шуток, и задачек на логику. Ходят слухи о втором, дополненом издании. Но оно пока не переведено.

3.2 Java 7. The Complete Reference – 8th Edition

На форумах больше известна по фамилии автора – Шилдт. Этот дядька стругает по одной такой книжке для каждой новой версии Java. Так что может есть издание и поновее. Сама по себе книга – справочник и учебник в одном флаконе (больше учебник). Начиная из основ синтаксиса вы плавно переходите к ООП. Обязательно к изучению всем новичкам. Скачать тоже можно легко и везде.

3.3 Java 2. Библиотека профессионала. 7-е издание

Или “Хорстман”. Универсальная вещь. Всегда можно подглянуть позабытый метод или библиотеку. Пользуеться популярностью у опытных программистов. Очень хороший и обьемный справочник по Java. Скачать… Ну вы поняли.

Примечание: я просто указал две самых известных книги, по которым учусь сам. Так же их одобряют на многих форумах. Но читать их или что-то другое – дело ваше. И вообще желательно уважать издателей/писателей и купить эти книги. Лишними в вашей библиотеке они точно не будут.

4. …и другие источники “дзэна”.

4.1 JavaTalks

Толковый и обширный форум, посвященный Java. Хорошенько покопавшись, сможете найти ответ на множество ваших вопросов, или спросить самому (перед этим штудируем FAQ форума и правила оформления тем).

Ссылка: http://javatalks.ru/

4.2 CodingBat

Множество задачек и упражнений. Как на логику, так и на знание синтаксиса. Знание английского приветствуется.

Ссылка: http://codingbat.com/

4.3 Data Structure Visualizations

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

Ссылка: http://www.cs.usfca.edu/~galles/visualization/Algorithms.html

art-code.com.ua