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

Java

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

В последнее время многие вокруг меня спрашивают: Как выучить Java? Есть ли пути обучения?

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

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

Теплое напоминание: в этой статье всего 10 000 слов. Пожалуйста, поднимите палец вверх за вашу помощь. Не занимайтесь проституцией.

Основное содержание этой статьи включает (полный галантерейных товаров):

  • Каковы карьерные направления для изучения Java?
  • Структуры данных и алгоритмы
  • Шаблоны проектирования
  • Основы компьютера
  • Начало работы с Java
  • Мастер Java продвинутый
  • Базовая структура (SSM)
  • Микросервисная структура
  • Общее промежуточное ПО
  • база данных
  • Распределенная архитектура
  • Обязательное программное обеспечение
  • Сводка списков сайтов учебных ресурсов
  • Изучение часто задаваемых вопросов (FAQ)

Купите бутылку кока-колы, приготовьте чашку кофе и пойдем учиться~

Каковы карьерные направления для изучения Java?

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

Многие новички в Java имеют очень расплывчатые представления о должностях или направлениях.Изучение Android сегодня и изучение больших данных послезавтра неизбежно приведет к отсутствию технических навыков.Вот что обычно говорят интервьюеры: У этого интервьюера относительно слабая база.

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

Язык Java вывел многие должности или технические направления в компании в соответствии с разделением труда.

Я искал работу в крупных компаниях, таких как BAT, на сайте boss.com. В настоящее время очень популярны следующие три типа вакансий:

(1) Android-разработка

Требования к навыкам:

  • Знакомы с разработкой пользовательского интерфейса Android, хорошо знакомы, имеют представление об архитектуре пользовательского интерфейса и понимают базовые знания взаимодействия с пользовательским интерфейсом;
  • Знаком с инструментами и методами отладки Android, может решать различные сложные проблемы Android;
  • Знакомы со слоем Android Framework и имеете опыт чтения и поиска проблем в исходном коде Android;

(2) Бэкенд-разработка на Java

Требования к навыкам:

  • Иметь прочную основу Java и четкое понимание принципов JVM, быть знакомым со Spring, MyBatis, Dubbo и другими средами с открытым исходным кодом, понимать их принципы и механизмы, а также иметь опыт проектирования и разработки крупномасштабных распределенных систем;
  • Знаком с проектированием и разработкой реляционных баз данных на основе MySQL, а также имеет богатый опыт оптимизации производительности баз данных;
  • Знаком с базовым промежуточным программным обеспечением и распределенными технологиями (такими как инфраструктура RPC, кэш, система сообщений и т. д.);

(3) Большие данные/хранилище данных

Требования к навыкам:

  • Знаком с компонентами, связанными с большими данными, такими как Hadoop/Spark/sqoop/hive/impala/azkaban/kylin;
  • Владею sql и настройкой производительности, владею одним из языков программирования java, python и scala;
  • Хранилище основных данных (DW) / OLAP / бизнес-аналитика (BI) / теория статистики данных и гибкое приложение, с большим опытом проектирования хранилищ данных;

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

敲黑板:认清自己,找准方向,越早确定方向越容易成功!

Структуры данных и алгоритмы

изучать что?

Некоторые студенты могут спросить: нужно ли мне изучать алгоритмы для изучения Java? ответ:别无选择!

Процесс внутренних интернет-интервью постепенно приближается к зарубежным странам, таким как ByteDance, BAT и другим крупным компаниям,手撕算法题стало обязательным действием.

Действительно, по сравнению с C и C++, Java имеет богатые библиотеки классов и трехсторонние структуры.После поступления на работу большинство людей пишут бизнес-код, широко известный как API-мальчик или грубый мальчик.Алгоритм кажется не таким уж важным, но алгоритм тест на самом деле Это недорогой способ для компаний опросить и отобрать людей.Если вы пишете алгоритм и проходите его, вы либо умны, либо усердны.

Поэтому независимо от того, какой язык вы изучаете: C, C++, Python, Java, GO, вы должны пройти уровень алгоритма. Я перечислил основные моменты интервью по структурам данных и алгоритмам, вы можете обратиться к ним, изучить и разбить их один за другим.

  • Стеки и очереди: FIFO, LIFO
  • Линейный связанный список
  • Поиск: последовательный поиск, бинарный поиск
  • Сортировка: поменять класс, вставить класс, выбрать класс
  • Деревья, Двоичные деревья, Графики: сначала в глубину (DFS), сначала в ширину (BFS)
  • рекурсия
  • разделяй и властвуй
  • раздвижное окно
  • Три великих алгоритма: поиск с возвратом, жадный алгоритм, динамическое программирование (DP)

Как научиться?

Лучший или самый глупый способ - это причесать вопросы, настоятельно рекомендуемые:leetcode-cn.comРекомендуется почистить более 300 вопросов, охватывающих простые, средние и сложные вопросы. Перед собеседованием нужно натренировать руку.Не быть незнакомым.Вы можете оставить вопрос каждый день или несколько дней.

Прежде чем писать вопросы, предлагаю вам прочитать несколько книг: «Комический алгоритм - Алгоритмическое путешествие Маленького Грея»

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

"Предложение фехтовальщика"

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

"шпаргалка по алгоритму Лабуладонга"

Очень рекомендуется! Это очень новая книга. Перед написанием книги автор открыл проект на Github, в основном объясняющий процедуру решения проблем LeetCode. Общее количество запусков входит в топ-40. В начале книги я объяснил основы мышления и процедуры обучения алгоритмов.Рекомендуется прочитать эту книгу, а затем сотрудничать с leetcode, чтобы почистить вопросы.Эффект очень хороший!

«Введение в алгоритмы»

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

Если вы чувствуете, что читать книги скучно, могу порекомендовать почитать какие-нибудь гиковские колонки, но они платные, а качество очень высокое. «Красота структур данных и алгоритмов»

Эта колонка текст + голос, автор Ван Чжэн, бывший инженер Google. Он выбирает наиболее подходящий метод обучения для инженеров.Он не привязан к конкретному языку программирования.Начиная с фактического сценария разработки, он обучает вас методам изучения структур данных и алгоритмов от простого до глубокого, помогая вам понять основные концепции и основные теории, а также глубокое понимание алгоритмов.Сущность помогает вам улучшить свои способности решать проблемы, используя структуры данных и алгоритмическое мышление.

"Алгоритм прохождения интервью 40 лекций"

Эта колонка представляет собой видео, автором которого является Цинь Чао, бывший инженер Facebook. Автор будет использовать доску, чтобы шаг за шагом решать проблему, слой за слоем, и для каждой проблемы будут использоваться различные методы решения проблемы. В общем, я закончил его смотреть и многому научился.

leetcode, книги и колонки компьютерщиков можно использовать параллельно, в сочетании с обучением и практикой, а не просто читать и практиковать.

Шаблоны проектирования

изучать что?

В романах Цзинь Юна слишком много боевых искусств Ню Ча, и наиболее всеобъемлющим из них является九阳真经, Jiuyin Zhenjing разделен на верхний и нижний тома,上卷为内功基础,下卷为武功招式, это очень престижно武学秘籍.

Итак, давайте подумаем, какие есть секреты боевых искусств? На самом деле открытие и открытие — это фиксированные движения, помнить об этих движениях и правильно их использовать — лучший мастер.

Возвращаясь к программированию, помимо написания чистого кода нам также необходимо использовать различные设计模式Сделайте код легко читаемым, расширяемым и слабо связанным — это то, что все часто называют мастером кодирования.

Так что, будь то изучение боевых искусств или изучение программирования, есть некоторые фиксированные ходы, то есть шаблоны проектирования.

Говоря о设计模式Многие студенты могут вскочить: я знаю, что это шаблон singleton, шаблон factory...

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

Подумайте, как появились шаблоны проектирования? В прошлом веке четыре больших человека сформировали группу под названием GoF и опубликовали книгу, в которую вошли 23 шаблона проектирования, которые постепенно стали известны позже. Эти четыре человека обобщили набор методологий (рутину написания кода) из большого количества практик кодирования, и будучи студентом в школе или новичком, который только что работал, мы можем даже не писать много кода, как Можем ли мы легко и быстро освоить такие множественные шаблоны проектирования.

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

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

  • Шесть принципов шаблонов проектирования: единая ответственность, замена Лискова, инверсия зависимостей, разделение интерфейса, закон Деметры, принцип открытого-закрытого
  • основы UML
  • Три основные категории шаблонов проектирования: творческие, структурные и поведенческие.
  • Основные принципы общих шаблонов проектирования

Всего классических паттернов проектирования 23 (сейчас их гораздо больше 23, и есть несколько вариантов), все они слишком сложны для освоения, нужно освоить только некоторые часто используемые, я отметил те, которые надо освоить с маленьким красным флажком. .设计模式

Как научиться?

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

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

Учебный веб-сайт UML:

Woohoo Моя школа 3C Talent/UML_tutor IA…

Не тратьте слишком много времени на изучение UML, просто начните.

Предполагая, что вы уже знакомы с UML, вот несколько книг, которые вы можете изучить:

«Шаблоны проектирования Head First»

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

«Шаблоны дизайна большого разговора»

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

«Шаблоны графического дизайна».

Графическая серия написана автором из Японии, есть графический HTTP, очень классический, и этот шаблон графического дизайна выполнен в похожем стиле. Поскольку книга переведена, некоторые примеры в книге могут показаться странными, и кажется, что у переведенных технических книг есть эта проблема.

«Шаблоны проектирования — основы многоразового объектно-ориентированного программного обеспечения»

Очередной черный фолиант.Автор книги GoF.Все говорят классика. Тем не менее, классика есть классика, ее действительно сложно читать, и она не оптимизирована для новичков. Если вы хотите изучить шаблоны проектирования, эта книга не рекомендуется. Почему бы не сказать это? Если вы не упоминаете классические книги, вы должны говорить о моих блюдах. (Вредный)

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

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

Основы компьютера

Студенты-мажоры не должны быть незнакомы с двумя курсами "Компьютерная сеть" и "Операционная система", а насчет того, насколько они освоили, вы знаете, они все учились с удивлением за неделю-две до экзамена, ха-ха.

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

(1) Компьютерная сеть

изучать что?

Существует множество протоколов для вычислительных сетей, многие студенты теряются после изучения или знают немного HTTP, но есть много вещей, которые нужно освоить:

  • Семиуровневая модель OSI, пятиуровневая модель TCP/IP
  • Распространенные сетевые протоколы: HTTP, TCP/IP, UDP
  • Безопасность сети: асимметричное шифрование, цифровая подпись, цифровой сертификат
  • Сетевая атака: DDOS, XSS, междоменная атака CSRF

Как научиться?

Есть очень классический вопрос интервью в компьютерных сетях: расскажите о процессе от ввода URL до отображения конечной страницы. Этот вопрос может охватывать большинство точек знаний о сети, от разрешения DNS до HTTP, протокола TCP/IP, протокола физического уровня и рендеринга страниц в браузере. Вы можете говорить так же глубоко, как и ваши технические навыки. Я надеюсь, что вы сможете попытаться ответить на этот вопрос после того, как закончите учебу.

Порекомендуйте несколько хорошо принятых книг: «Как подключен Интернет»

Эта книга написана японским автором. Статья начинается с ввода URL-адреса в браузере и отслеживает весь процесс до отображения содержимого веб-страницы.Картинки и тексты яркие и интересные, настоятельно рекомендуется!

«Иллюстрированный HTTP»

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

«Подробное объяснение TCP / IP, том 1: протокол»

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

Наконец, Amway - это инструмент для изучения магии захвата пакетов, необходимой для сети: wireshark, Если вы не захватили пакеты после изучения сети, это в основном эквивалентно обучению напрасно (немного серьезно).

(2) Операционная система

изучать что?

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

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

  • разница между процессом и потоком
  • Связь между процессами: общая память, каналы, сообщения
  • управление памятью, виртуальная память
  • Обнаружение и предотвращение взаимоблокировок

Как научиться?

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

Некоторые рекомендуемые обучающие видеоматериалы:

Станция Б:

MIT MIT 6.828 (без субтитров):воооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо

Операционная система (г-н Ли Чжицзюнь, Харбинский технологический институт) 32 лекции (полные) сверхчистые:4 из Scale Proportions.com/video/BV1…

Рекомендуемая информация о книге: «Углубленное понимание компьютерной системы CSAPP»

Знаменитый CSAPP, полное название: Computer Systems: A Programmer's Perspective. Библия одноклассников, ха-ха, черный фолиант тяжело жевать.

Современные операционные системы (3-е издание)

Классика в области операционных систем, потому что она переведена, сначала пропускает непонятные, и читает их несколько раз, прежде чем их можно будет переварить.

Начало работы с Java

изучать что?

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

Если у вас есть базовые знания других языков, таких как C, C++ и т. д., то изучение Java должно быть очень простым и простым в использовании. Если у вас нет языковой базы и вы не хотите разбираться в слишком низкоуровневых вещах, изучение Java по-прежнему полезно. Что касается python, то только с точки зрения языка, python действительно очень прост. Считается, что вы можете изучить его в течение недели и написать хороший код, но Java отличается. Вы можете только кратко понять синтаксис за неделю, и это написать хороший код практически невозможно. Кроме того, импульс языка Go очень силен, вы также можете обратить на это внимание.

Вообще говоря, вам необходимо освоить следующие знания, чтобы начать работу с Java:

  • Ориентация на процесс и ориентация на объект
  • Основные возможности объектно-ориентированного подхода: инкапсуляция, наследование, полиморфизм.
  • Символы управления доступом: частные, по умолчанию, защищенные, общедоступные
  • Типы данных: примитивные типы, ссылочные типы
  • Поток управления: for, while, switch и т. д.
  • Сериализация
  • Обработка исключений (несколько сложно)
  • Дженерики (несколько сложно)

Как научиться?

Если вы работаете с нуля, я предлагаю вам посмотреть некоторые вводные видеоролики по Java.Онлайн-видеоролики смешаны, поэтому, пожалуйста, обратите внимание на просмотр. Порекомендуйте лучшую платформу: Станция B (woohoo.proportion.com/)Не вам видеть второе измерение, в нем много обучающих ресурсов. (хе-хе)

敲黑板啦:视频不要贪多,因为没有一个大牛是看视频看出来的。Просмотр видео — это кто-то другой вливает вам в голову знания. Самое большое преимущество в том, что это позволяет вам быстро приступить к работе. Если вы хотите узнать больше, вам нужно自我学习, самообучение с отражением.

Чтение — эффективный способ самообучения.Мы рекомендуем в основном хорошие книги:

"Основная технология Java, том I"

Эта книга рекомендуется в качестве первой книги в вашем путешествии по Java, поскольку она охватывает очень обширный контент и более прагматична, чем такие книги, как «Изучение Java за 30 дней». В книге есть несколько глав, которые не нужно читать, например, Swing GUI, потому что написание настольных приложений на Java устарело.

«Руководство по разработке Java для Alibaba»

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

«Мышление на Java»

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

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

Мастер Java продвинутый

изучать что?

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

Мастерам Java необходимо овладеть многими вещами, вот некоторые основные моменты, которые необходимо освоить. Это высокочастотный тестовый сайт для Java-интервью, а также он является частью легендарного восьминогого Java-эссе.

  • Исходный код класса коллекции Java
  • Пул потоков
  • Java-агент
  • Модель ввода-вывода
  • JVM
  • Параллельное программирование на Java (JUC)

Как научиться?

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

«Эффективная Java»

В книге много советов по программированию, по сути, рассказывается, как писать хороший код, нужно начинать с能写代码(Начало работы) Переход к会写代码, эту книгу стоит прочитать. Если у вас меньше опыта программирования, вы можете немного отложить эту книгу, потому что вы можете не почувствовать то же самое после ее прочтения.

"Java8 бой"

Java15 отсутствует, зачем вам изучать Java8? Поскольку многие компании все еще застряли на Java8, Java8 — это версия, которая сильно изменилась после Java5, так что вам придется усердно учиться. Версия после Java 8 очень слабая, переходить на версию JDK долго и кропотливо, а выгоды не очевидны, компания точно не хочет переходить. Эта книга подробно объясняет все новые возможности Java8 и настоятельно рекомендуется.

«Понимание виртуальной машины Java, 3-е издание»

Она была написана Чжоу Чжимином, очень, очень классическая, и обновлена ​​до третьего издания. Виртуальная машина Java — это тоже JVM, JVM — обязательное знание для собеседований по Java, если вы этого не понимаете, идите домой и ждите новостей. Я читала эту книгу много раз, и каждый раз, когда я ее читала, у меня был новый урожай, всем рекомендую к прочтению.

Искусство параллельного программирования на Java

Эта книга посвящена объяснению параллелизма в Java, включая различные блокировки и общие безопасные классы коллекций. По сути, она охватывает все содержимое JUC (сокращение от пакета java.util.concurrent). После прочтения вы должны получить вознаграждение. настоятельно рекомендуется!

Книги, рекомендованные выше, могут быть непростыми для чтения, поэтому рекомендуется прочитать их несколько раз. Если вы не понимаете части книги, вы можете поискать в Интернете, найти несколько высококачественных блогов или публичных аккаунтов, таких как поиск WeChat: Архитектор, который любит посмеяться, графически объясняющий различные основные технологии Java.

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

Базовая структура (SSM)

изучать что?

Изучение возможностей языка Java может быть скучным.Затем вы можете изучить базовые фреймворки для выполнения некоторых проектов.Например, фреймворк Spring, который очень популярен в области Java, адаптирован для серверной части Java и очень прост в использовании.

До того, как Spring стал популярным, были также популярные фреймворки, такие как Struts, которые позже были побеждены Spring по разным причинам.

Вы должны часто видеть в Интернете аббревиатуру SSM, которая на самом деле является аббревиатурой Spring+SpringMVC+MyBatis.

Вам необходимо освоить следующее:

  • Использование ведра семейства Spring (Spring, Spring MVC, Spring Boot)
  • Использование фреймворка ORM (MyBatis, Hibernate)
  • Принцип пружины
  • принцип ORM

Как научиться?

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

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

Есть много новичков, которые сильно запутываются в интерфейсе, когда работают над проектом.Как бэкенд-программист на Java, вы не являетесь full-stack разработчиком, так зачем вы в этом запутались?Мое предложение: либо не надо написать только интерфейс для интерфейса, или написать какой-нибудь html самому, чтобы было красиво и функционально.

Что мне нужно сделать после просмотра видео, чтобы завершить проект? ответ:深入理解框架原理. Умение пользоваться фреймворком не означает, что вы понимаете фреймворк.Как программист с амбициями понимание принципа - вечный обязательный курс.Кто делает эту строчку слишком сложной?Люди лучше без вас.

Рекомендуемые книги: «Инсайдерские основы весны»

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

"Инсайдерская информация о технологиях MyBatis"

MyBatis — это своего рода ORM-фреймворк, который больше используется в Китае, говорят, что Hibernate используется за границей. Эта книга содержит четкое введение в использование и основные принципы MyBatis.

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

Что касается базовой структуры, метод обучения великих богов таков: использовать структуру -> понять структуру -> строить колеса.

Микросервисная структура

изучать что?

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

Реально сервис-ориентированная архитектура была предложена лет пять-шесть назад, после периода застоя постепенно появились полезные фреймворки после того, как пузырь рассеялся: зарубежные страны представлены SpringCloud, а отечественные — Dubbo.

Между SpringCloud и Dubbo есть различия, но многие базовые принципы схожи, когда вы учитесь, вам нужно освоить суть технологии. Вот некоторые основные моменты знаний:

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

Как научиться?

И springCloud, и Dubbo имеют подробные вводные документы на официальном сайте:

Глядя на технические документы на официальном сайте, можно растеряться, но это действительно самые авторитетные материалы и из первых рук.

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

«Глубокое понимание Apache Dubbo и реальных боевых действий»

Первоначально исходный код Dubbo был открыт Alibaba, а позже передан в дар Apache. Рекомендуется читать эту книгу вместе с исходным кодом.

«Микросервисы Spring Cloud на практике»

Прежде чем читать эту книгу, вам лучше изучить Spring и Spring Boot, иначе вы запутаетесь. Кроме того, эта книга была опубликована в 2017 году и немного устарела.Пожалуйста, обратите внимание, чтобы различать старые и новые функции.

Если технические сайты и книги вас не удовлетворяют, предлагаю поискать видеообучение, здесь рекомендовать не буду, чтобы не подумали, что это реклама. Рекомендуемые поисковые платформы: Bilibili, MOOC, NetEase Cloud Classroom.

敲黑板:微服务框架涵盖的内容非常多,也是有难点的技术,大家戒躁保持耐心。

Общее промежуточное ПО

изучать что?

Конечные пользователи не используют напрямую中间件, другими словами中间件Не массовый потребительский программный продукт. Однако в крупных компаниях промежуточное ПО незаменимо, это какие-то базовые компоненты и сервисы, поддерживающие масштабную архитектуру сайта, поэтому учиться этому очень и очень необходимо.

Малая энциклопедия Промежуточное ПО обычно относится к управлению и взаимодействию данных между различными компонентами/сервисами в крупномасштабной распределенной системе.

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

  • Кэш: Redis, Memcached (рекомендуется Redis)
  • Очередь сообщений: Kafka, RocketMQ, RabbitMQ, ActiveMQ, ZeroMQ (рекомендуется Kafka)
  • Промежуточное ПО базы данных: ShardingSpere, Mycat

Как научиться?

Каждое промежуточное ПО охватывает большой объем контента, и его изучение требует много времени.

Официальный сайт Redis на китайском языке:

www.redis.cn/

Изучите общие команды redis в виде словаря

Официальный сайт Кафки:

kafka.apache.org/

Официальный сайт ShardingSpere:

убить верхнюю сферу.apache.org/index_this.Contract…

Онлайн-версия Полного руководства по Mycat в формате PDF:

woohoo.my cat.org.can/document/no…

Некоторые рекомендуемые книги: «Проектирование и реализация Redis»

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

«Глубокое понимание Кафки: основной дизайн и практические принципы»

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

«Архитектура распределенных баз данных и корпоративная практика — на основе промежуточного программного обеспечения Mycat»

Книг, связанных с Mycat, очень мало.Эта книга написана в 16 лет и немного устарела.Если вы очень интересуетесь Mycat, то можете просто прочитать ее, но особо не рекомендуется.

После прочтения книги все же хочется углубленно изучить.Рекомендуется обратить внимание на два курса Geek Time: Ху Си: «Основная технология Kafka и реальный бой», учитель Apache Kafka Committer, очень профессиональный. Цзян Дэцзюнь: «Основные технологии и практика Redis»

Тем не менее, курс платный, и рекомендуется быть осторожным, если вы затянуты. В Интернете также есть бесплатные ресурсы, полагайтесь на поиск каждого ~

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

Например, когда вы изучаете Redis, вам нужно подумать о соответствующих сценариях использования пяти основных типов данных, каков принцип фильтра Блума и как использовать Redis для реализации распределенных блокировок.Очень эффективно учиться с проблемы.

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

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

база данных

изучать что?

База данных очень важна, и собеседование тоже обязательно.Есть много моментов, которые можно протестировать, и тест может быть очень поверхностным: спросите об использовании SQL, а можно очень глубоко протестировать: спросите о принципах реализации индексы и замки. Некоторые общеизвестные моменты перечислены ниже.

  • Базовая теория баз данных: парадигма, принцип индексирования, механизм базы данных.
  • Базовый синтаксис SQL
  • Настройка SQL, объяснение плана выполнения
  • Транзакции базы данных (ACID)
  • Блокировки базы данных: оптимистичные блокировки, пессимистические блокировки, блокировки таблиц, блокировки строк и т. д.

Как научиться?

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

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

После того, как у вас есть некоторые теории, вы можете начать изучать синтаксис SQL.Вот рекомендуемая книга «MySQL должен знать и знать» и печатать на компьютере во время чтения.

Конечно, при собеседовании в крупных компаниях вы обязательно спросите о более сложных вещах: нужно понимать принцип индексации, ACID транзакций, блокировки и базу данных — это нужно тестировать!

Список учебных книг по MySQL: «Концепции системы баз данных»

Классические учебники по базам данных, чтобы понять некоторые основные принципы, можно просмотреть вкратце.

«MySQL должен знать, должен знать»

Хорошая книга для знакомства с грамматикой SQL, рекомендую!

«Инсайдер технологии MySQL: механизм хранения InnoDB»

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

Распределенная архитектура

изучать что?

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

Существует много распространяемого связанного контента. Вот несколько моментов, которые часто встречаются в проектах или интервью:

  • Распределенные транзакции: двухфазная фиксация (2PC), компенсирующая транзакция (TCC)
  • Распределенная блокировка: на основе реляционной базы данных (MySQL), на основе Redis, на основе Zookeeper
  • Распространяемый идентификатор: Снежинка, Лист Мейтуань

Как научиться?

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

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

Обязательное программное обеспечение

Если рабочий хочет хорошо работать, он должен сначала заточить свои инструменты. Как Java-разработчик, вам необходимо изучить программное обеспечение, обычно используемое в отрасли.Чем лучше вы знакомы с программными инструментами, тем выше будет эффективность вашего кодирования и тем раньше вы сможете уйти с работы (слишком как рабочий).

  • Самая умная IDE для Java: IntelliJ IDEA (пожалуйста, откажитесь от Eclipse, у меня есть куча причин, чтобы переспать с вами)
  • Лучший инструмент управления версиями на планете: Git
  • Надежный инструмент управления зависимостями: Maven
  • Docker

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

Сводка списков сайтов учебных ресурсов

(1) Видео сайт

(2) Колонка

(3) Гитхаб

(4) Технический блог:

(5) Поисковая система:

(6) Вопросы и ответы по знаниям:

(7) Вопросы кисти:

(8) Облачные заметки:

Выбор зависит от личных привычек, не рекомендуется.

(9) онлайн-чертеж:

Каждый из них имеет свои особенности и рекомендуется.

Изучение часто задаваемых вопросов (FAQ)

(1) Что делать, если после изучения легко забыть?

Это проблема номер один, с которой сталкивается каждый при учебе, как ее решить? Повторить обучение.

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

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

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

(2) Вы рекомендуете читать так много книг?

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

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

(3) Сколько времени нужно, чтобы стать техническим мастером?

学习无止境!

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

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

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

敲黑板:技术学习千万不要浮躁,谦卑一点多学一点,天外有天。

(4) Сейчас очень популярны языки Python и Go, вы хотите изучать их напрямую?

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

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

-- END --

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

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

кто я:
☕Я читаю книги уже несколько лет: окончил Хуачжунский университет науки и технологий со степенью магистра;
😂 Проехал мимо нескольких крупных заводов: Huawei, NetEase, Baidu...
😘 Я всегда верил, что технологии могут изменить жизнь, я готов сохранить первоначальный замысел и давай техников!

Wechat выполняет поиск в общедоступной учетной записи [Архитектор, который любит смеяться] и рассказывает вам о различных основных технологиях в графической форме.

Наконец, я рекомендую проект с открытым исходным кодом,GitHub.com/smile Arch IT… 
Вот наиболее полная карта знаний о стеке технологий Java.Если вы запутались в обучении, вы можете взглянуть на то, как учиться дальше.
Рекомендую всем, кто видел!!!