1. Новые складчины

    23.01.2017: Сергей Домогацкий - Путь

    21.01.2017: Как научиться писать так, чтобы тебя читали. Ермилова

    21.01.2017: Элитный курс «фитнес-нутрициолог»

    21.01.2017: Семинар - практикум "Процветающий Гонконг - фен-шуй в действии"

    21.01.2017: swSpyBrowser - интернет мультибраузер в каждой вкладке свои cookies, useragent и IP-адрес

    21.01.2017: Antidetect 6.50.2.2016

    21.01.2017: [готовый бизнес] Чистая прибыль в день от 3000р до 6000р [повтор-3]

    17.01.2017: БроБот 2016.07.13

    16.01.2017: А. Иванов. Веб-аналитика для бизнеса (для чайников)

    14.01.2017: АВТОМАТИЧЕСКАЯ ПРОГРАММА для ставок на ФУТБОЛ, ХОККЕЙ И БАСКЕТБОЛ!!!

    12.01.2017: [Дуйко Андрей] Очарование Партнера 2

    12.01.2017: Волшебный Курс на Удачу в 2017 году

    08.01.2017: Восстановление зрения. Золотая коллекция программ

    08.01.2017: Еленин - Бредогенератор в соблазнении (Повтор)

    07.01.2017: Выходить замуж за богатого или перспективного

    07.01.2017: С. Ковалев. книга "Нейропрограммирование успешной судьбы" 2015

    06.01.2017: INSTASOFT 3.4.3.5

    04.01.2017: Кен Уилбер. Интегральная духовность

    25.12.2016: И. Ледоховский, Р. Мануэль. Мастер гипнотических историй. часть 2 из 3

    23.12.2016: Книга - А. Погорелый. 23 способа как заработать в интернете. 2016

    23.12.2016: Немецкий язык с нуля - Курс A1.1

    21.12.2016: Все для дома и сада. Летний интенсив(2016)

    21.12.2016: На двух приличных женщин один приличный мужчина

    21.12.2016: Ваша "цена" на брачном рынке

    21.12.2016: Ваш великий мужчина. Как его выбрать и не ошибиться?

    21.12.2016: Кинотренинг Феномен-Фильм "Хлоя"

    21.12.2016: Кинотренинг Феномен-Фильм "Суета сует"

    21.12.2016: Кинотренинг Феномен-Фильм "Клан Кеннеди" (Часть 2)

    21.12.2016: Кинотренинг Феномен-Фильм "Клан Кеннеди" (Часть 1)

    21.12.2016: Кинотренинг Феномен-Фильм "Невидимая сторона"

    21.12.2016: Кинотренинг Феномен-Фильм "Честная куртизанка"

    21.12.2016: Кинотренинг Феномен-Фильм "Москва слезам не верит"

    20.12.2016: Он, она и...деньги. Любовный треугольник

    20.12.2016: Великолепная семёрка для тюнинга мозга. Полонейчик

    19.12.2016: Онлайн-курс для писателей "Рассказ за 10 дней"

    16.12.2016: И. Ледоховский, Р. Мануэль. Мастер гипнотических историй. часть 1 из 3

    14.12.2016: Вебинары К. Довлатова по "сказкам" с реинтеграциями

    12.12.2016: В. Сибирцев. Избавление от страхов

    11.12.2016: [Франшиза 2017] Новогодний бизнес под ключ

    08.12.2016: Книга - Маркетинг Дракулы

    08.12.2016: Сегментация как способ найти клиента - [profileschool]

    07.12.2016: Менеджмент кинопроизводства (Киношкола 2morrow)

    07.12.2016: Создание сценария на основе рассказа (Киношкола 2morrow)

    03.12.2016: Книга - Высокие технологии для сада и огорода

    03.12.2016: Книга - Ботаническая иллюстрация. Венди Холендер

    02.12.2016: Кен Уилбер. Интегральный буддизм

    02.12.2016: Е. Шморгун. Утренние медитации

    02.12.2016: Е. Шморгун. Первый базовый модуль. Осознанность

    02.12.2016: Е. Шморгун. Второй базовый модуль. Мои отношения с собой

    02.12.2016: Удовольствие рисования

    28.11.2016: Самураи. Первая полная энциклопедия (2016)

    28.11.2016: К. Бордунос. Огонь вселенской Любви

    28.11.2016: Большая книга общения с ребенком (2016)

    28.11.2016: Гражданский кодекс для чайников (2016)

    28.11.2016: Уголовный кодекс для чайников (2016)

    28.11.2016: Иудаизм и масонство. Платонов (2016)

    28.11.2016: Православие против масонства. Платонов (2016)

    28.11.2016: Русское сопротивление. Война с антихристом. Платонов

    28.11.2016: Война с внутренним врагом. Платонов

    28.11.2016: Государственная измена. Платонов

  2. Нужен организатор

    23.01.2017: Сергей Домогацкий - Путь

    21.01.2017: Семинар - практикум "Процветающий Гонконг - фен-шуй в действии"

    21.01.2017: [готовый бизнес] Чистая прибыль в день от 3000р до 6000р [повтор-3]

    14.01.2017: АВТОМАТИЧЕСКАЯ ПРОГРАММА для ставок на ФУТБОЛ, ХОККЕЙ И БАСКЕТБОЛ!!!

    12.01.2017: Волшебный Курс на Удачу в 2017 году

    21.12.2016: Все для дома и сада. Летний интенсив(2016)

    14.12.2016: Вебинары К. Довлатова по "сказкам" с реинтеграциями

    11.12.2016: [Франшиза 2017] Новогодний бизнес под ключ

    08.12.2016: Сегментация как способ найти клиента - [profileschool]

    02.12.2016: Удовольствие рисования

    16.11.2016: Завершение отношений. Мастер-класс

    16.11.2016: Психогенеалогия для всех. Дистанционный курс для самостоятельной работы с семейной историей.

    15.10.2016: Эзотерический марафон "Новая Я"

    19.08.2016: Бухгалтерский бизнес (4 курса)

    15.08.2016: В каждом ребенке солнце

    15.08.2016: Испания. Гастрономия

    15.08.2016: Книги по китайской медицине. Часть 2.

    15.08.2016: Логотип и фирменный стиль. Руководство дизайнера

    15.08.2016: Налоги за 14 дней. Экспресс-курс. Новое, 14-е изд.

    15.08.2016: Голубая точка. Космическое будущее человечества

    15.08.2016: Бесплодие — диагноз или приговор

    15.08.2016: Руководство по самоисцелению

    15.08.2016: Хорошие девочки отправляются на небеса, а плохие – куда захотят

    15.08.2016: Гипноз и другие фишки на сайте или секреты продающих сайтов

    03.08.2016: Любовная Совместимость. Методика Разведчиков

    13.06.2016: Оптимизация налогов и страховых взносов. Защита активов в 2016 г.

    19.01.2016: Ментальный курс от Александра Росса

    25.08.2014: IonCube v8.3 Decoder + PHP Script Auto-Fixer

  3. Сбор взносов

    08.01.2017: Еленин - Бредогенератор в соблазнении (Повтор)

    23.12.2016: Немецкий язык с нуля - Курс A1.1

    21.12.2016: На двух приличных женщин один приличный мужчина

    19.12.2016: Онлайн-курс для писателей "Рассказ за 10 дней"

    03.12.2016: Книга - Высокие технологии для сада и огорода

    03.12.2016: Книга - Ботаническая иллюстрация. Венди Холендер

    28.11.2016: Самураи. Первая полная энциклопедия (2016)

    28.11.2016: Большая книга общения с ребенком (2016)

    28.11.2016: Гражданский кодекс для чайников (2016)

    28.11.2016: Уголовный кодекс для чайников (2016)

    28.11.2016: Иудаизм и масонство. Платонов (2016)

    28.11.2016: Православие против масонства. Платонов (2016)

    28.11.2016: Русское сопротивление. Война с антихристом. Платонов

    28.11.2016: Война с внутренним врагом. Платонов

    28.11.2016: Государственная измена. Платонов

    28.11.2016: Злые мифы о России. Что о нас говорят на Западе? (2016)

    27.11.2016: Другая Америка. Записки волонтера

    27.11.2016: Грязные войны буржуинов

    27.11.2016: Автоматизация произношения и дифференциация звуков [ц], [ч], [щ] (2016)

    27.11.2016: Автоматизация произношения и дифференциация звуков раннего онтогенеза (2016)

    27.11.2016: Автоматизация произношения и дифференциация звуков [с]-[ш]-[з]-[ж] (2016)

    27.11.2016: Автоматизация произношения и дифференциация звуков [с]-[з]-[с']-[з'] (2016)

    27.11.2016: Автоматизация произношения и дифференциация звуков [р] и [р'] (2016)

    27.11.2016: Автоматизация произношения и дифференциация звуков [л], [л'], [j] (2016)

    27.11.2016: Моделирование женской одежды для начинающих (2016)

    27.11.2016: Учить иностранные слова легко

    26.11.2016: Читаем и поем по-английски! Песенки и стихи для малышей

    26.11.2016: Работы по огороду и теплицам в августе, осенью и подготовка участка к зиме

    25.11.2016: Карта рая. Путешествие по загробному миру (2016)

    25.11.2016: Набор «Клуб весёлых дошколят (серия)»

    25.11.2016: Самые интересные путешествия по России

    25.11.2016: Мата Хари. Шпионка

    25.11.2016: Все факторы огородного успеха

    25.11.2016: Особенно Ломбардия. Образы Италии XXI

    24.11.2016: Византийцы. Наследники Рима

    24.11.2016: Краткая история Англии

    24.11.2016: Антироссийские исторические мифы (2016)

    24.11.2016: Монтессори у вас дома. Узнаём окружающий мир (2016)

    24.11.2016: Монтессори у вас дома. Развитие речи (2016)

    24.11.2016: Эволюция жизни и формы

    24.11.2016: Великие тайны Вселенной. От древних цивилизаций до наших дней

    24.11.2016: Космос. Эволюция Вселенной, жизни и цивилизации

    24.11.2016: Физика невозможного

    24.11.2016: Красота физики. Постигая устройство природы

    24.11.2016: История Земли. От звездной пыли – к живой планете

    24.11.2016: Будущее разума

    24.11.2016: Как открытия Эйнштейна изменили наши представления о пространстве и времени

    24.11.2016: Мир, полный демонов. Наука – как свеча во тьме

    24.11.2016: Голубая точка. Космическое будущее человечества (2016)

    23.11.2016: Развиваем мозг малыша, просто беседуя с ним

    23.11.2016: Электропроводка в квартире. Своими руками (2016)

    23.11.2016: Разговоры с детьми на сложные темы (2016)

    23.11.2016: Развитие речи. Учимся говорить правильно звуки «С», «3», «Ц»

    23.11.2016: Говорим правильно звуки «Ш», «Ж», «К», «Г», «Х» (2016)

    23.11.2016: Мои первые рассказы. Альбом для развития речи (2016)

    23.11.2016: Большой альбом по развитию малыша от 2 до 4 лет (2016)

    23.11.2016: Большой альбом по развитию малыша от 4 до 7 лет (2016)

    23.11.2016: Растяжка, энергия, сознание для бойца (Варченко)

    22.11.2016: Что нужно знать, чтобы ваш сын вырос настоящим мужчиной (2016)

    22.11.2016: Развивающие занятия «ленивой мамы» (2016)

Java программирование

Все о языке программирования Java


Пособие для будущего Java разработчика. Основы Java



  1. TopicStarter Overlay
     
    lantis
    offline

    lantis Организатор Премиум VIP

    Сообщения:
    2.264
    Симпатии:
    1.375
    Монеты:
    Репутация:
    59
    Автор статьи: Станислав Лозенко
    Впервые пишу статью, поэтому попытаюсь объяснить все максимально доходчиво. У каждого программиста — не важно, Java или любого другого языка — есть шанс оказаться в конце паровоза. Если перестаешь учиться, читать книжки, туториалы и смотреть курсы — рано или поздно придет момент, когда ты поймешь, что уже ничего не соображаешь ни в новых фреймворках, ни, тем более, в нововведениях последних версий Java (бей тревогу, если тебя уже пугают лямбда-выражения и stream API в Java 8).

    Как-то тихим субботним вечером ко мне в skype постучался старый приятель, который 2 года назад устроился джуном, и сообщил мне «приятную» новость о том, что он уже метится на сеньора. В нашей славной СНГ уже и 19-летние тех. лиды — не редкость, поэтому меня эта новость особо не удивила. Я поздравил с его намерениями и попросил прислать код любого домашнего проекта. Ну, а дальше вы, наверное, сами догадываетесь...


    Поэтому эта статья для тебя, мой дорогой друг, и для всех тех, кто хочет как минимум стать уверенным junior/middle разработчиком. У меня не было ментора, но были хорошие люди в проектах, которые помогали советами и best practice. Этот путь, мой юный падаван, каждый должен пройти сам.

    Сегодня я расскажу про саму Java. Когда человек пишет в резюме, что он знает Spring, Hibernate и еще тучу других фреймворков, меня инересует скорее то, насколько уверенно он плавает в самой Java. Эта информация всегда в приоритете.

    Beginner

    Я не пытаюсь с пеной во рту доказывать, что нужно помнить каждый метод I/O API, как «Отче наш». Куда более важно понимать, как организована ООП-составляющая Java.

    Брюс Эккель — настоящий эстет этого дела, он достаточно увлеченно, со всеми нюансами и тонкостями описал это в своем труде «Философия Java» (и не только ООП!)

    image08.jpg
    Когда я был еще сопляком интерном и ревностно смотрел на то, как многие коллеги пишут прекрасный код, мне все советовали «Философию Java» Брюса Эккеля. Для человека, который вообще пытался понять, какая же Java красавица, мне было сложно оценить ее величие в кругу философов. Я чувствовал, что нахожусь в кругу взрослых. Вроде бы и понимал верхушку айсберга, но чего-то постоянно не хватало. Мне на помощь пришел старый добрый Хортсманн, который хорошо был переведен на русский язык. Поэтому для любого начинающего Java разработчика, на мой взгляд, двухтомник Хортсманна — самое идеальное пошаговое руководство. Есть еще Шилдт. Выберите любой для вас удобный вариант.
    (кстати, серия книг Хорстманна «для нетерпеливых» — очень интересная, рекомендую)
    b2.png
    image11.jpg
    image12.jpg
    Как правило, эти книги советуют любому начинающему. Еще есть Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок! от самой Sun/Oracle.

    Это всё понятно, но у меня есть кое-что на десерт. Сама жемчужина познания Java, как это ни удивительно, совсем рядом. Более того, я, с чувством гордости и небольшой ухмылкой, скажу вам, что это знание находится прямо перед вашим носом, сразу после того, как вы установите ваш первый JDK. Угадали? Имя этой жемчужины — src.zip. Грубо говоря, сорсы ☺. Исходный код Java SE. Да-да, именно, лучший способ изучения Java — исследовать элегантные sources самого языка.

    Это всё понятно, но у меня есть кое-что на десерт. Сама жемчужина познания Java, как это ни удивительно, совсем рядом. Более того, я, с чувством гордости и небольшой ухмылкой, скажу вам, что это знание находится прямо перед вашим носом, сразу после того, как вы установите ваш первый JDK. Угадали? Имя этой жемчужины — src.zip. Грубо говоря, сорсы ☺. Исходный код Java SE. Да-да, именно, лучший способ изучения Java — исследовать элегантные sources самого языка.

    Более того, я открыто заявляю, что именно sources в Java помогут научить:
    — писать красивую и понятную документацию
    — писать приятный и чистый код
    — понимать best practices и паттерны, которые используются повсеместно в JDK. Стоит только вспомнить Декоратор, который применяется в Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!
    — ну и, само собой, прикоснуться к таким легендам Java-вселенной как Brian Goetz, Joshua Bloch, Doug Lea, непосредственно изучая их код в JDK, и т.д

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

    Вы также можете углубиться в изучение Java, если попросту будете использовать ваши примеры в Debug режиме. Наблюдая в дебаггере вашей любимой IDE за структурой объектов и потоков, которые будут выполняться в ваших примерах из книжек, вы можете существенно улучшить свое понимание внутренних процессов.
    Super Low Level

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

    Стыдно признать, но так было и со мной — читая «Философию Java» 7 лет назад как первую книгу по Java, я думал, что нахожусь в дремучем лесу, не зная его. Я был тревожен и переживал, что, программирование — это не мое. К счастью, мне посоветовали youtube канал одного парня, который рассказывал о программировании на java с самого нуля. Это канал — theNewBoston, и вот Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!. Можно еще попробовать Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!.

    Ну, и самое элементарное, что мне приходит сейчас в голову (кроме детских книжек по программированию) — это серия подробно иллюстрированных книг по разработке Head First от O’Reilly и сама книга «Изучаем Java» (Head First Java).
    image13.jpg
    Если это вам тоже покажется непонятным, тут два варианта: либо вы плохо стараетесь/не хотите стараться понять/изучить, либо я разговариваю с котом (:
    Intermediate

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

    Есть ли смысл учить что то новое, если это не используется в проекте?

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

    Намного легче людям, которые глубоко копают, и тем, кто постоянно учится по вечерам и в перерывах на работе, и еще куда легче тем, кто ловит от этого чистый кайф (true programmer). Да, жена/девушка будет страдать и ставить ультиматумы: я или ноутбук, тут вы уже сами должны решить и подходить к этому ответственному вопросу сбалансировано (хорошо, когда девушки это понимают — этот бокал вина за вас!). Именно такие черты как любознательность и трудолюбие помогут вам не отставать от стремительно летящего по рельсам паровоза технологий, о котором я говорил в начале статьи.

    English

    Немного про английский. Все книги в пункте «Beginner» были переведены на русский. Я хотел поднять эту тему в отдельной колонке, но все-таки решил оставить именно здесь. Ведь после прочтения основных книг, которые, прошу заметить, не всегда изобилуют прекрасным переводом, у многих начинается легкая паника: английский они знают недостаточно хорошо, чтобы читать и понимать техническую документацию/книги по Java и не только, а они есть повсеместно в интернете.

    Но что, если я скажу вам, что ваша проблема — это не английский, а самая обычная...лень? Именно, вы просто невероятно ленивы и не верите в свои силы, чтобы оставить в сторонке прекрасные труды, которые вряд ли вообще когда-либо переведут. Так что встаем с кровати, берем самый обычный словарь, заводим тетрадку (для портативного варианта: Google Translate и notepad для записывания слов). Открываем книгу любой сложности и переводим со словарем (если ваш английский невероятно слаб, переводим каждое слово).

    В начале процесса вы подумаете: «Господи, да я годами буду читать эту главу, пойду лучше поиграю в доту!». Осмелюсь сказать вам, что черепаший темп не будет длиться вечно, когда-то память и опыт возьмут своё, и вы осознаете, что без труда прочитали тот или ной абзац. Другая сторона медали заключается в том, что переводят у нас с опозданием. Без английского вы лишены возможности черпать актуальную и свежую информацию.

    Прошу вас вбить следующее в голову тремя восклицательными знаками: английский — это MUST для айтишника любого профиля и просто для человека, который живет в 21 веке. Это — ваш путь роста в сфере Software Engineering и даже больше. Другого варианта попросту нет. Не тешьте себя самолюбием, что вам Хортсманна достаточно. Придет момент, и вы столкнетесь с задачей, о которой не знаете ровным счетом ничего (это у всех бывает) и в переведенных книжках об этом не написано. Могу еще добавить, что Философия Java Эккеля куда приятней читается именно на английском. Это относится абсолютно ко всем книгам. Английский должен стать вашим вторым языком после родного. Ну, а третьим, само собой, — Java :)

    Concurrency

    Раз уж мы вспомнили про CountDownLatch. Тема многопоточности поверхностно освещенна практически в каждом источнике, который я привел выше. Но достаточно ли хорошо? Конечно, нет. Сталкивались ли вы с моментом, когда не понимали, как ваши старшие коллеги так искусно работают с потоками, разрабатывая непонятные вам конструкции с применением java.util.concurrent.* библиотек? «Опыт», — скажете вы, и будете правы. Вот только подобный опыт строится на хороших знаниях фундаментальных основ этой области.

    Вы можете прошерстить package java.util.concurrent.* и попробовать применить на практике большую часть API, которую вам предлагают — и, наверное, это будет самый оптимальный и быстрый способ познать concurrency. Лично я больше искал опыт и подачу, которые с лихвой покрывались в книжках, которые я опишу чуть ниже.

    Да-да, «Concurrency In Practice!» — крикнет кто-то из-за угла. — «Что еще надо?» Боюсь, что она была слишком сложна для меня в качестве первой книги по многопоточности. Именно эта проблема терзала меня первое время, было невероятно сложно найти оптимальную книгу для начинающих по Java Concurrency, чтобы объяснили практически с нуля. Я удивлю вас, но я нашел ее. Это Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!. Не смотрите на то, что книга 1998 года. Наверное? это самый лучший вводный курс по работе с потоками, автор достаточно серьезно разжевывает и раскладывает по полочкам сложные вещи и уходит немножко дальше, за горизонт.
    image01.jpg
    Давайте идти от простого к сложному. Дальше идет Concurrent Programming In Java by Doug Lea. Я настоятельно рекомендую вам познакомиться с ней сразу после первой книги. Дуглас Ли, Профессор Computer Science, популярный в Java Community, стремительно погружает вас Concurrency API и буквально на примерах легко показывает все нюансы. (Ах, как элегантно написан Семафор под его руководством — java.util.concurrent.Semaphore!)
    image00_0lrHbRQ.jpg
    Ну, а затем уже идет многим знакомая книга «Concurrency In Practice», написанная Brian Goetz. Пожалуй, самая популярная по рекомендациям книга после Effective Java. Много про нее говорить не буду, скажу лишь, что это сборник лучших best practice и рекомендаций. Как говорится, must have.
    image03_sPuVZYf.jpg
    Замыкая круг книжек по многопоточности, я порекомендовал бы Art Of Multiprocessor Programming by Maurice Herlihy, которая, на мой взгляд, должна быть в самом конце списка ввиду ее глубины. Все примеры написаны на Java с кучей задач после каждой главы и иллюстраций, отличный самоучитель и задачник. Рекомендую вам купить ее в печатном виде, блестящая книга!
    image02_sSfJATj.jpg
    Collections

    Про коллекции много не напишешь, тем более, изучив внимательно основные интерфейсы List/Set/Map, можно иметь уже основное представление о том, как работать с ними. Оставлю для вас, дорогой читатель, несколько рекомендаций. Желательно идти ровно в том хронологическом порядке, который указан здесь:

    Сначала пройдите Sun/Oracle Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок! по Collections API

    Затем, на хабре есть прекрасная серия статей про коллекции в картинках: Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!, Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!, Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!, Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!.

    Из книжек я могу выделить две. Первая поможет вам заодно и разобраться с Generics.

    Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!:
    image04.jpg
    Вторая — Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!by John Zhukovski:
    image05_snYb8up.jpg
    Хорошим советом является использование временного счетчика в процессе изучения коллекций. Используйте System.currentTimeMillis(); для того чтобы понять, к примеру, насколько быстрее работа с массивом по сравнению с обычным ArrayList и почему? Используйте этот инструмент в каждом примере, заодно и исследуете нюансы производительности в области коллекций.

    Вот и всё для обучения Colllection API. Единственное, есть небольшая рекомендация: когда вы будете переписывать каждый пример, (а это очень важно для обучения каждой книги, где есть код) опять повторюсь, используйте это в Debug режиме. Отладчик вашей IDE очень наглядно показывает изменения в структурах данных. Perfecto!

    I/O

    В принципе, Брюс Эккель в «Философия Java» глубоко освещает I/O API. Добавлю, что каждому начинающему разработчику нужно обязательно попрактиковаться в следующем:
    — создайте консольный квест с помощью использования Scanner
    — попробуйте в своих мини-проектах манипулировать файлами и папками
    — изучите паттерн Декоратор на примере Java I/O
    — напишите простенькую базу данных (какие-то незамысловатые CRUD-операции через консоль)

    Если по долгу службы вам необходимо детально использовать в проектах I/O, обратите внимание на книгу Java I/O by Elliotte Rusty Harold:
    image06.jpg
    Это достаточно полноценный, информативный обзор I/O API.
    Others

    Я специально остановил свое внимание на Concurrency, Collections and I/O, потому что считаю их неотъемными компонентами Java платформы на любом проекте. Несомненно, в эту область также входит очень много нужных базовых библиотек. Я полагаю, что после прочтения вышеизложенных ресурсов у вас должно возникнуть свое виденье, как вам дальше изучать JDK — где-то глубже копнуть, где-то прикоснуться, а где-то высокомерно пройти мимо.

    Давайте попробуем вскользь пройтись еще по нескольким: обязательно нужно изучить механизм работы Reflection API — по большому счету, вполне достаточно просмотреть исходники и первые туториалы с Google поиска на эту тему. Куда более захватывающее занятие — узнать, Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок! в Spring AOP.

    Из книг я знаю только одну — Java Reflection In Action by Ira R. Forman. Приготовьтесь вспомнить/выучить UML для полного понимания.
    image07.jpg
    По Networking очень кратко Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!, и хорошая книга Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок! by Elliotte Rusty Harold. По фундаментальным основам networking мы пройдемся в специальной для этого будущей части по Computer Science.

    JDBC. Помимо Sun’овского туториала, есть еще и хорошая книга от них же. Это Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!by Maydene Fisher.
    image09.jpg
    Ну, и можно полистать под чашечку кофе Database Programming with JDBC and Java by George Reese. Помимо самого JDBC он касается таких JDK компонентов как Сериализация, JNDI, RMI, что тоже будет очень полезно.
    image14.jpg
    В принципе можно на этом остановиться, иначе статью не осилит прочитать даже я. Перестанем спойлерить и оставим темные уголки пытливым умам.
    Java 8

    Наконец-то мы дошли до одной из модных тем. Очень много материала, который был рекомендован вам, относился к старым версиям Java. Учитывая backward compatibility, 95% информации актуальна и по сей день. В СНГ находится очень много проектов, которые еще не поддерживают новую версию Java. Возможно, это вопрос времени, но я со всей ответственностью готов заявить, что вам полезно, а иногда и просто жизненно важно изучить большинство вышеизложенных ресурсов для того, чтобы понять общую картину, да и хотя бы для того, чтобы просто понимать происходящее вокруг вас в проекте.

    Для изучения нововведений я рекомендую прошерстить туториалы в интернете на тему Лямбда-выражений и нового Stream API. Кстати, тем, кому интересно Security — посмотрите, Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок! в восьмой версии.

    Есть маленькая интересная книжечка «Лямбда-выражения в Java 8» Ричарда Уорбэртона:
    image15.jpg
    Не переживайте, если у вас нет опыта в функциональных языках, этой книги хватит с лихвой, чтобы понять лямбда-выражения. Главное — это практика.

    Затем, можно плавно приступать к «Java SE8. Вводный курс» (она же Java 8 для нетерпеливых) Хортсманна.
    image16.jpg
    Обратите внимание, что Кей Хортсманн не так доходчиво все объясняет, как в своем прошлом двухтомнике по изучению Java. Он просто знакомит вас с основами фичами Java 8 на достаточно быстрой скорости (изучили пример — перебежали на другой). Относитесь к этому как краткому мини-курсу.

    Заканчивая обзор книг по Java 8, можно упомянуть Manning версию Java 8 in Action by Raoul-Gabriel Urma.
    image17.jpg
    По моему мнению, это достаточная информация, чтобы спокойно смотреть на нововведения Java 8 в ваших проектах, особенно когда новые версии IDE автоматически исправляют некоторые старые решения на новые. (как нож в спину, не правда ли?!)

    Видеокурсы

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

    1. Юрий Ткач — «Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!».

    2. Иван Головач — Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок! (к примеру, Junior Level)

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

    Заключение

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

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

    Для тех, кто только ступает на путь Java программиста.

    Внимание, минутка мотивации — читать под музыку из фильма Рокки.

    Мой юный zero, отбрось все домыслы о том, твое это или не твое, из-за денег ты туда идешь или изменить мир, самый тяжелый момент в карьере будущего junior java developer’a — это впервые устроиться на работу после успешного собеседования (об этом мы будем говорить в последней, седьмой части моей статьи). Верь в себя, не слушай людей, которые говорят, что ты не потянешь. При грамотном подходе и невероятном желании/упорстве человек любого возраста и любой профессии может стать программистом (да и вообще космонавтом). В нашей стране всегда может быть плохо, экономика, разруха и так далее. Двигаться нужно не завтра или как только ты уволишься с прошлой работы, а сейчас! Удачи тебе и попутного ветра!



    Kuiper нравится это.

Поделиться этой страницей

DDoS Protection Powered by  DDos-GuarD