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

    03.12.2016: Развитие внимания. Часть 1. Шевцов (4 DVD)

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

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

    03.12.2016: Корейский язык. Вводный курс (+MP3)

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

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

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

    02.12.2016: Е. Шморгун. Прощение

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

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

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

    29.11.2016: Осанка - основа красоты и здоровья

    28.11.2016: Между нами девочками. 1 ступень школы настоящих женщин

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

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

    28.11.2016: Книга моих историй. Советы и идеи

    28.11.2016: Я писатель. Книга моих историй (2016)

    28.11.2016: Лечебник потомственного деревенского знахаря

    28.11.2016: Психотерапия для начинающих. Самоучитель (2016)

    28.11.2016: Ментальная сторона онлайн-успеха (2016)

    28.11.2016: Иностранный язык: как высосать из него все деньги (2016)

    28.11.2016: Общение на результат. Как убеждать, продавать и договариваться (2017)

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

    28.11.2016: Бенджамин Франклин. Биография

    28.11.2016: Правила здоровой и долгой жизни

    28.11.2016: Анатомия везения. Принцип пуповины

    28.11.2016: Аутентичный учебник ниндзя XVII века (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: Allsubmitter 7.6 Null

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

    27.11.2016: Как снять классный timelapse (школа «Как снимать кино»)

    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: Предсказание по «Книге Перемен». И-Цзин

    27.11.2016: Что, если ты можешь? 6 простых способов исцеления жизни (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: Как запомнить самое важное. 17 простых приемов

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

    27.11.2016: Материализация денег. 7 шагов к финансовой свободе

    27.11.2016: Аудиокнига - Английский за рулем. Выпуск 3 (Pre-Intermediate)

    27.11.2016: Аудиокнига - Английский за рулем. Выпуск 2 (Elementary)

    26.11.2016: Аудиокнига - Английский за рулем. Выпуск 1 (Beginner)

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

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

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

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

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

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

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

    10.10.2016: Разработка нового продукта методом lean startup

    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. Сбор взносов

    03.12.2016: Корейский язык. Вводный курс (+MP3)

    29.11.2016: Осанка - основа красоты и здоровья

    28.11.2016: Между нами девочками. 1 ступень школы настоящих женщин

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

    28.11.2016: Книга моих историй. Советы и идеи

    28.11.2016: Я писатель. Книга моих историй (2016)

    28.11.2016: Лечебник потомственного деревенского знахаря

    28.11.2016: Психотерапия для начинающих. Самоучитель (2016)

    28.11.2016: Ментальная сторона онлайн-успеха (2016)

    28.11.2016: Общение на результат. Как убеждать, продавать и договариваться (2017)

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

    28.11.2016: Бенджамин Франклин. Биография

    28.11.2016: Правила здоровой и долгой жизни

    28.11.2016: Аутентичный учебник ниндзя XVII века (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: Как снять классный timelapse (школа «Как снимать кино»)

    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: Предсказание по «Книге Перемен». И-Цзин

    27.11.2016: Что, если ты можешь? 6 простых способов исцеления жизни (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: Как запомнить самое важное. 17 простых приемов

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

    27.11.2016: Материализация денег. 7 шагов к финансовой свободе

    27.11.2016: Аудиокнига - Английский за рулем. Выпуск 3 (Pre-Intermediate)

    27.11.2016: Аудиокнига - Английский за рулем. Выпуск 2 (Elementary)

    26.11.2016: Аудиокнига - Английский за рулем. Выпуск 1 (Beginner)

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

    26.11.2016: Аудиокнига - Английский в дороге. Курс для начинающих

    26.11.2016: Аудиокнига - Английский за 30 минут (Beginner)

    26.11.2016: Семинар-воркшоп по страницам в инфомаркетинге

    26.11.2016: Вижу вас насквозь. Как «читать» людей» (Спирица)

    26.11.2016: Видеоразбор 3-х фильмов (Церетьян)

    26.11.2016: Записки бредпринимателя. Избранные рецепты осмысленной жизни (2016)

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

    26.11.2016: Приемы общения с неприятными людьми

    26.11.2016: Видеоразбор фильма Джонни Д. (Церетьян)

    26.11.2016: Видеомонтаж в Sony Vegas PRO 13 (+DVD)

    26.11.2016: Взгляд сквозь шторы. 100 пикантных историй, которые разбудят ваши фантазии (2016)

    26.11.2016: Кролик, который хочет уснуть (2016)

    25.11.2016: INSTASOFT 3.4.3.5

    25.11.2016: За час до рассвета. Время сорвать маски (2016)

    25.11.2016: Необходимый грех. У любви и успеха – своя цена (2016)

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

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


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



  1. TopicStarter Overlay
     
    lantis
    offline

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

    Сообщения:
    2.265
    Симпатии:
    1.367
    Монеты:
    Репутация:
    54
    xomyaki.com - Курсы, Тренинги, Складчины
    Автор статьи: Станислав Лозенко
    Впервые пишу статью, поэтому попытаюсь объяснить все максимально доходчиво. У каждого программиста — не важно, 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