Она выше таких мелких понятий, как хорошо и плохо, чёрное и белое, добро и зло». В мире full stack developer — это машина, которая понимает все процессы от а до я, человек с сильными фундаментальными знаниями. Как умиляет этот вечный холивар Java vs C#: «Вы украли у нас это! Зачем подымать тяжеловесный Java для обычного чатика, который можно за два дня написать на Node. JS? Зачем плодить громадный maven DAO модуль c Spring JPA, если хватит двух- трех SQL- запросов c использованием чистого JDBC? К примеру, Parser Combinators в Scala станет для вас находкой, после которой вы будете стараться использовать ее везде, где только можно.
Нет идеального языка, идеальной технологии, из- за которой вы с пеной у рта должны доказывать, что именно вы лучше, чем остальные. Расширяйте свой кругозор настолько, насколько можете. Прежде чем пройтись по языкам, давайте окунемся в фундаментальные знания. Без них — как без рук. Вопрос не в том, можете ли вы оставаться Java- разработчиком без знаний криптографии, работы тех или иных сетей и алгоритмов.
Вопрос в другом: насколько быстро вы упретесь в свой карьерный потолок? Эта статья косвенно уже не конкретно для junior/middle Java разработчика, а для тех, кто хочет шагнуть дальше, по ту сторону Силы : ). Поехали? Computer Science. Intro. Наверное, «Код. Тайный язык информатики» считается самой первой тропинкой, от которой вьется путь в мир Computer Science: Чарльз Петцольд окунет вас в историю создания телеграфа, объяснит, что такое биты и байты и какова роль царицы Информатики во всем этом. Очень увлекательная книга. Smart Pss Rus.
Работает на различных платформах, таких как Windows, Mac OS, а также. Данный онлайн-учебник даст полное представление о языке Java и поможет.
1)Руководство по началу работы с Java в среде IDE NetBeans. Давыдов С.В., Ефимов А.А. Если вы до этого хотя бы немного программировали, то можете. Java-самоучитель - программирование на Java для начинающих с.
После книги можно смело отправляться на курсы «Introduction to Computer Science». Первый — это курс от Udacity — «Intro to Computer Science. Build a Search Engine & A Social Network»: Хороший вводный курс, заодно познакомитесь немного с Python. Как вариант, можно выделить еще Coursera — «Computer Science 1. Stanford». Оба курса вы можете пройти в любое время. Есть, кстати, что то похожее от Edx платмормы Harward и от МIT. Algorithms. После того, как прошли азы, можно смело браться за изучение алгоритмов.
Да- да, самым популярным курсом на Coursera считается «Алгоритмы» от Седжвика и Уэйна, которые проходят каждый год: Вам невероятно повезло, потому что обе части стартуют уже вот- вот скоро: первая с 4 сентября по 2. Из книг можно выделить того же Седжвика «Алгоритмы на Java»: Седжвик уже в своих курсах отсылает к этой книге как к ресурсу с более глубоким подходом, но, в принципе, большая часть покрыта программой Coursera. Вторая по популярности книга в этом направлении — это Лафоре «Структуры данных и алгоритмы»: Как видите, в обоих книгах для джавистов шикарный бонус: все примеры книг написаны на Java. Тем, кто видит себя в будущем в Google, Amazon и т. Thomas Cormen. The Algorithm Design: Конечно, не достаточно тупо прочитать это — относитесь серьезно к задачам в учебниках, а также обратите внимание на такие ресурсы, как Top.
Coder и Code. Forces. Это замечательные площадки, чтобы попрактиковаться на реальных задачках.
Advanced. После алгоритмов можно углубиться в изучение операционных систем. Как- то сам Google рекомендовал этот курс: UC Berkeley Computer Science 1.
К сожалению, это только лекции на youtube, но даже так — уже хорошо. По криптографии можно послушать курс от Stanford — «Cryptography»: Практически то же самое есть и у Udacity: Самым популярным курсом по компиляторам уже долгое время является Стэнфордский курс на Coursera: А из книг самая авторитетная работа в этой области принадлежит Alfred Aho «Compilers. Principles, Techniques & Tools». По TCP/IP самой рекомендуемой книгой является трехтомник от Kevin Fall «TCP/IP Illustrated».
Вот, к примеру, первый том: Такие темы, как фундаментальные знания по компьютерным сетям, архитектуре компьютера, распределенным системам и т. Поэтому не проходите мимо серии книг «Классика Computer Science»: Билл Гейтс: «Если вы считаете себя действительно хорошим программистом, прочитайте . Если вы сможете прочесть весь этот труд, то вам определённо следует отправить мне резюме». Конечно, есть еще Дональд Кнут, но почему- то я не нашел ни одного нашего человека, который бы отправил резюме Билу Гейтсу : ). Скорее всего, участь Кнута лежит в плоскости справочника.
После алгоритма Евклида идет такая математика, которую нужно вспоминать/учить отдельно. Но это, как говорится, только мое сугубо личное мнение. Также можно обратить внимание на интересные лекции от Yandex в рамках Школы анализа данных и на Computer Science в рамках образовательного проекта «Лекториум».
Languages. Все языки не перечислишь, попробую осветить максимально близкие по духу и практике к Java. Буду описывать только самые вводные и популярные книги, чтобы вы сами уже решали, как вам двигаться дальше. Scala. Конечно, самым популярным языком после Java для джавистов является Scala. Вкусная, модная, совершенно нечитабельная, но безумно интересная!
Перед «Programming In Scala» я бы лучше попрактиковался на Хорстманне. Не поскупитесь и обязательно купите его: более 1. C/C++По С есть замечательная книга от Brian Kernigan «The C Programming Language»: По С++ для старта можно обратить внимание на «Программирование. Принципы и практика использования С++» от создателя языка Бьярне Страуструп: C#/. NETИсходя ответов моих знакомых эти две книги являются одними из самых значимых.«Pro C# and . NET 4. 5 Framework» by Andrew Troelsen: «CLR via C#» by Jeffrey Richter: Python. Здесь бесспорно, Марк Лутц «Изучаем Python» является одной из самых- самых: На Codecademy есть хороший курс по Python.
Javascript. По поводу Java. Script подборка оказалась очень похожа с подборкой DOU, так что я нарочно упускаю этот момент. Также обратите внимание на классные интерактивные курсы от codeschool.
В принципе, каждый из языков можно подтянуть на таких ресурсах, как Project Euler, где вы можете использовать прелести языка на конкретных задачах. Заключение. Мне пришлось опросить многих авторитетных и уважаемых мною людей, чтобы подготовить эту подборку, но я буду очень признателен, если вы поделитесь ресурсами, которые считаете значимыми. Помните, это всего лишь подборка. Вы, и только вы решаете, где вам развиваться, — это просто личный взгляд со стороны.
В следующий понедельник выйдет последняя статья, которая будет посвящена куда более приземленным вещам — мотивации, межличностным отношениям и профессиональному росту. Спасибо за внимание. Предыдущие части цикла: — Пособие для будущего Java разработчика. Основы Java; — Пособие для будущего Java разработчика. Элегантный код; — Пособие для будущего Java разработчика. Enterprise — часть 1; — Пособие для будущего Java разработчика.
Enterprise — часть 2; — Пособие для будущего Java разработчика. Enterprise — часть 3. Следующие части цикла: — Пособие для будущего Java разработчика. Собеседование и карьера.