Пост про полезные ресурсы для изучения Java с прошлого блога.
Судя по количеству плюсов там, было очень полезно читателям. Теперь и здесь с парочкой дополнительных ссылок.
Список полезных сайтов Сразу приходят в голову -
stackoverflow, о котором я уже писал - ответы на 95% вопросов можно найти тут. Чаще все выскакивает первой же ссылкой в гугле по любому запросу на тему джавы. Есть и на русском, но рекомендую именно английский вариант.
habrahabr - здесь можно почитать статьи по более узкоспециализированным вещам (как, к примеру, устройство HashMap, LinkedList и других коллекций)
Cамый полный источник любой информации о языке - это
сайт оракла, а также
туториал по языку. Здесь можно из первоисточника узнать обо все базовых вещах - про компиляцию, что такое JVM, JDK и JRE, примитивные типы, объекты, аргументы для JVM и прочее.
Youtube - вы удивитесь, но на этом ресурсе помимо котиков и ДТП можно найти множество полезных видео. В одном из предыдущих постов я уже писал свое мнение про видеокурсы и книги. Рекомендуются
эти курсыРазличные образовательные видеосервисы.
Udemy,
Coursera, российский
Computer Science Center и еще миллион подобных сервисов. Полные курсы видео так же можно найти на торрентах.
Очень полезный сайт, который стоит открывать первым при начале изучения какой-либо новой фичи/фреймворка -
TutorialsPoint, в частности, раздел про
основы языка Все разбито по темам, приводятся примеры кода и объяснения. Для знакомства с чем-то новым очень хороший вариант.
WikiBooks - тоже можно найти инфу по java (да и не только). Не очень много изучал этот ресурс, но пару раз обращался.
Сайт где выложена различная информация о языках в виде шпаргалок, куда можно быстро подглядеть. Для изучения не очень полезны, но для подготовки к собеседованию будет кстати освежить знания или просто проверить себя.
Очень годная
статья, чтобы понимать потенциальный карьерный путь. Это один из моментов, которые привлекают меня в программировании - если ты опытен, имеешь достаточно знаний и умеешь продавать свои услуги, то найти работу с соответствующей зарплатой не составит проблем. Карьерная лестница достаточно прозрачна и получать должность, к примеру, главного разработчика в проекте "через постель" не нужно. Не получается здесь, но есть уверенность и знания - с руками оторвут в другом месте.
Сайт российского программиста, много статей для углубленного изучения какой-либо темы.
Еще один
сайт, здесь можно найти миллиард туториалов по написанию хелловорлда с использованием любых совместимых технологий. Все с картинками и разжевано до мелочей. Зачастую помогает сделать минимальную работающую программу. Почти любой запрос наподобие "hello world hibernate example" выдаст вам в топе этот сайт.
Еще стоит помнить, что почти всегда самая подробная информация о чем-либо находится в документации на сайте производителя. Для Java это приведенный выше сайт оракла, для Spring framework -
spring docs и т.д.
Один из интересных источников информации - это исходный код различных библиотек. Почерпнуть оттуда можно какие-то трюки, стиль кода и какие-то новые классы/методы из JDK. В джаве огромное количество опенсорса - изучай сколько угодно. Хотя это требует определенного понимания кода.
Сайт с задачками и автоматическими тестами для проверки. Очень хорош для тренировки работы с основами - массивы, строки, циклы, булевы выражения и т.п.
Также помогает в изучении API упомянутых ранее вещей. Сам на нем зависал в свое время, 2 и 3 уровни для всех категорий решил (первый уровень слишком легким был).
upd из комментариев -
По поводу изучения джавы могу посоветовать еще один ресурс: udacity.com У них есть курс, называется "Intro to java programming". Состоит из девяти модулей (охватывает такие темы как классы, обьекты, методы, циклы, списки, массивы, интерфейсы, наследование и пр.), каждый из которых делится на несколько десятков небольших тем и упражнений. После каждого модуля идет practice set в котором нужно ответить на вопросы по пройденному материалу и решить практические задачи разной степени сложности. В конце финальный проект по реализации бота для игры в color 4. Сам курс разработан небезизвестным Кеем Хорстманом, соавтором книги "Java. Библиотека профессионала". Заявленная продолжительность у него 4 месяца, но скажу сразу, что это с ОГРОМНЕЙШИМ запасом. Я играл в покер, занимался делами, тратил кучу времени на разную ерудну и все равно управился за три. Начинать можно в любое время, курс бесплатный (есть платная версия отличия которой в том, что вы получите возможность советоваться с преподавателем и получить сертификат по окончании). Минус - необходимо знание английского, умение либо понимать речь на слух, либо читать субтитры. В общем, рекомендую всем, кто хочет изучать джаву, но не знает с чего начать
Годные статьи по теме: http://amort141.appspot.com/dou.ua/users/staslozenko/articles/
Теперь о том, что читать не стоит. Один конкретный туториал, которого стоит избегать. Он выдается в топе по запросу "создание веб приложения Java" -
ссылка. Такой пример научит только плохому, поскольку в реальной жизни это не сработает, увидев подобные вещи (прямой запрос в базу данных с веб-страницы) ваше тестовое задание дальше даже смотреть не будут.
Еще достаточно популярный ресурс
JavaRush. Идея - обучение языку в игровой форме с героями футурамы. Постепенно поднимаешь свой уровень и решаешь все более трудные задачи.
На мой взгляд - полнейшее говно. С какого-то уровня чтобы подняться дальше, нужно платить или пригласить сколько-то там друзей, что лично у меня уже вызывает рвотные позывы. В комментах на стенах джава-групп в контакте периодически проскакивают кретины, которые постят свои реферральные ссылки.
Не стоит долго заморачиваться, если вы что-то не понимаете, читая туториал/книгу/документацию и т.п. Гугл большой, всегд можно найти альтернативу - или другой источник информации, или другую технологию.
С чего начать1. Качаем с оф. сайта java development kit, устанавливаем все по туториалу. Устанавливаем себе интегрированную среду разработки, она же IDE. Считается, что основными являются бесплатный NetBeans от самого оракла (считается не очень хорошим), бесплатный Eclipse от IBM, и платная IDEA от JetBrains. Выбор между ними - предмет давнего срача. Я рекомендую поставить себе Eclipse, поскольку авторы многих туториалов в интернете используют именно его, что на начальном этапе немаловажно. Затем можно попробовать другие варианты и выбрать наиболее удобный для себя. Любители особого хардкора могут все писать в блокноте и компилировать через командную строку винды. Для нормальных людей придумали удобный софт :)
2. Изучаем основы языка. Сайты для самостоятельного обучения описаны выше. Если вы решите пойти на платные курсы - то не стоит повторять моих ошибок.
Сделайте следующее - обязательно почитайте отзывы о курсах. Тут еще стоит помнить, что позитивные отзывы публикуются чаще негативных (и как правило, однотипны), поэтому к последним стоит отнестись внимательнее.
Просмотрите план обучения. Если там освещается много тем, если обещают за полтора месяца с нуля довести до уровня Junior или гарантированное трудоустройство после курсов - от таких мест лучше держаться подальше.
Наличие лабораторных работ (или какой-то выпускной работы) - хороший знак.
Узкоспециализированный преподаватель - тоже хороший знак, а если еще и практикующий - то вообще супер :)
3. Choose your path... Выбираем направление, которое будем делать основным для изучения. Дело в том, что несмотря на общий язык, разработка под Андроид, Java EE (веб-приложения и серверное ПО), чистая джава для всяких highload-приложений и десктопные приложения с использованием Swing отличаются очень сильно. Я выбрал второй вариант (серверное ПО и веб), хотя изначально хотел делать что-то под андроид :) Если вам все равно, то просто ходим по сайтам поиска работы и смотрим на количество вакансий с использованием ключевых слов и отсутствием опыта.
Ремарка - к примеру, в написании серверного ПО не так важны современные технологии, т.к. большая часть уже работающих приложений написаны достаточно давно(с совр. технологиями того времени) и переводить их на что-то более современное сейчас просто бессмысленно.
К примеру, необязательно понимать смысл нововведений восьмой версии джавы. Большинство компаний используют седьмую, шестую или даже пятую версию.
А для Андроида - наоборот, надо знать последние тенденции.
4. После этого ищем вакансии, смотрим какие технологии требуются и начинаем их постепенно изучать. Можно попытаться порешать тестовые задания. Найти их можно на сайтах компаний или на форумах. На мой взгляд, это достаточно эффективная форма обучения - есть какая-никакая реальная задача, бери и делай. Нужна база данных - пошел учить SQL и ставить себе MySQL. Нужны конфигурационные файлы - пошел читать про XML, и т.д.
Из личного опыта - я наткнулся на
список тестовых заданий минской компании и попробовал сделать одно из заданий (№5, Java и JSP). Узнал много нового, особенно когда целый день провозился с новыми для себя вещами - AJAX-запросами и JavaScript.
Или пытаться с помощью интернета реализовывать какие-то свои идеи (к примеру, сделать свой рандомайзер).
5. Пытаемся попасть на работу :) Лучше всего это делать через стажировки или джава-школы. В таком случае вас обучат вещам, которые приняты в компании, будет кому задать непонятные вопросы и познакомиться с конторой. Про собеседования напишу позже.
P.S. Для тех, кто хочет просто "потрогать" программирование, без заморочек с установкой сред разработки, JDK и еще кучи вещей для того чтобы написать банальный hello world, могу порекомендовать попробовать JavaScript.
Нет ничего проще - в хроме нажимаем Ctrl + Shift + J.
Пишем: function sayHelloWorld(){
console.log("hello world!");
}
sayHelloWorld();
И сразу видим результат.
Буду рад плюсикам к посту :)
Меня зовут Андрей, живу в Санкт-Петербурге.
Ранее вел блог на стратеджи - ссылка
В оглавлении того блога есть ссылки на самые интересные посты, отчеты с путешествий, обучение программированию и т.п. Постепенно буду переносить их сюда.
Кратко о себе - покерный пенсионер, начал играть еще в бородатом 2008 году.
В лучшие времена начал покорение нл400сх-фр на FTP. Впрочем, начал я это делать в июне 2011 года и вскоре остался без 90% банкролла.
После этого предпочел попыткам подняться карьеру на обычной работе. 2,5 года поднимал с колен российские нанотехнологии, после чего сменил сферу деятельности и уже чуть больше года работаю Java-программистом, чему очень рад.
Программирование это очень круто, очень жалею что не начал заниматься этим гораздо раньше.
Как раз после завершения покерной карьеры, начал достаточно активно путешествовать. В данный момент посетил 40 стран.
- 3 раза оставался без банкролла, причем ниразу его не заливал.
- Написал свой рандомайзер до того, как это стало мейнстримом.
Велкам.
Ссылки на интересные посты [последний апдейт 23.12.2019]
Программирование:
Полезные ресурсы для изучения Java - часть 1, часть 2
Также немного писал про такие штуки как
кодировки обфускация
таймлайн моего изучения Java
IDE
важность использования хоткеев (+ список моих)
собеседования
Путешествия:
Грузия: Боржоми,
Армения: Ереван, Хор Вирап, Гарни и Гегард
Россия: Выборг, Калининград
Жизнь:
Из покера в нанотехнологии -
Начало.
Приезд в Португалию и первые впечатления.
Техническая часть
Трехдевная работа
(след части в процессе...)
Завязываем с покером, попытка #1
Мой рабочий день
Планы на 2017-2018
Немного про Java School
Конференция JPoint 2017
Про обучающие курсы
Про сертификацию
Про сайт braingames.ru
Мои собеседования, часть 1
Мои собеседования, часть 2
Победа на ITChess
Офис епам
Мексика 1
Мексика 2
Таймлайн 2
Рио-де-Жанейро
Игуасу
Парагвай, ГЭС Итайпу
Новогодний итоговый пост 2018
Страусиная ферма в Мурманске
Начало карьерного пути в письмах
Уходим из big data обратно в джаву
Приключения с визой США 1
Приключения с визой США 2
Третье место на ITMatchPoint
Чем занимается Хасиб Куреши и его португальский вундеркинд
Пластмассовый мир победил, фейсбук-бот оказался сильней
Халява в ИТ закончилась?
План тем для изучения Java Core
Рекомендации по выбору работодателя
Нью-Йорк
Рекомендации по оформлению резюме джуниору 1 и 2
Помогаем в создании платья со светодиодами
Мои выступления
Java puzzlers 1
Java puzzlers 2
Checkstyle: теория и практика
Также занимаюсь обучением Java индивидуально. Если вам интересно - пишите в лс.