Вчера читатель прислал мне личное сообщение и сказал: «Учитель преподает Swing, мне все еще нужно изучить этот пункт знаний?»
Честно говоря, когда я впервые увидела этот вопрос, мне захотелось поругать маму! Я не ругаю читателей, знаете ли, ругаю школу, ругаю учителя. Но я сдержался, ущипнув себя за бедра, и вежливо ответил: «Да, тебе даже не нужно учиться».
Немного вкуса до сих пор.
Причина, по которой я так эвфемистичен, заключается в том, что я надеюсь, что читатели не будут предвзято относиться к учителям школы, что повлияет на дальнейший прогресс в обучении. Но мое сердце на самом деле очень злится, когда это, Swing в Java давно исключен, какой проект будет использовать эту вещь для написания клиентского интерфейса!
Изучение графических компонентов, таких как Swing и AWT, — пустая трата времени!
Может быть, некоторые учителя на самом деле не воевали в компании, а преподают по учебнику, из-за чего студенты тратят много времени на знания, которые не нужно учить, чтобы, когда они закончат учебу и будут искать работу, их Способность не соответствует требованиям набора.
Некоторые школы очень претенциозны.Учителя используют свои собственные книги для обучения.В любом случае, когда я учился в колледже, я думал, что учителя были очень хорошими, и все они издавали свои собственные книги! Позже, когда я сам издал книгу, я узнал, что издать книгу совсем несложно (ну, я делаю вид, что меня заставляют)!
Некоторые школы неплохие, и они выберут в качестве учебных материалов какие-нибудь классические произведения компьютерных специальностей, такие как различные черные книги. Все, что я могу сказать, это то, что ученикам, которые могут остаться в такой школе, повезло.
Боюсь, некоторые преподаватели берут учебные материалы напрямую, не фильтруя. Будь то "Java Programming Ideas" или "Java Core Technology Volume 1", там много места для знакомства с Swing и AWT, но люди с опытом работы знают, что это совершенно бесполезные вещи в работе.
Когда я рекомендую эти две книги, я четко указываю, что не учите эти вещи, просто пропустите их или даже просто разорвите.
Я надеюсь, что редакция издательства сможет удалить эти ненужные вещи при переиздании этих книг, чтобы не затрагивать читателей, которые плохо знакомы с Java. Я конечно знаю,что это очень сложно сделать.Если удалить книгу,она станет тоньше.Каждая книга в области информатики толще и дороже! Если вы удалите его, вы не сможете продать его по этой цене, потеря крови.
Итак, новичкам, что делать?
Конечно, обратите больше внимания на настоящих могучих гигантов программирования, таких как мой хороший друг JavaGuide, Jiangnan Yiyiyu и т.д., ибрат меня(жирный шрифт, поставить восклицательный знак)! ! ! ! ! ! ! ! ! !
Если у вас есть вопросы, приходите и спрашивайте напрямую, и тогда вы будете знать ключевые моменты обучения! Это намного лучше, чем учиться вслепую с некоторыми учителями.
Нет, просто был новичок в программировании, который пришел задавать вопросы, второй брат был в восторге, а также делал психологический массаж, чтобы помочь читателям снять напряжение и прояснить контекст.
Далее, позвольте мне сосредоточиться на том, как найти стажировку.
Большая часть читателей второго брата — студенты колледжей, поэтому, если вы читаете эту статью сегодня и видите это, хорошо, поздравляю, прямо, нет-нет, оно того стоит!
При поиске стажировки Java back-end вы должны сначала понимать, что школьный рекрутинг отличается от социального рекрутинга, и он не требует слишком большого проектного опыта.Это кажется очень простым, но часто многие студенты легко запутываются в этом вопросе. , мне не хватает проектного опыта, приходится тяжело наверстывать, и в итоге я забыл основы компьютерного обучения, что привело к потере арбузных и кунжутных семечек.
Когда приближается выпускной сезон, многие компании отправляются в школу для найма. Стандарт на самом деле очень прост. Достаточно сделать несколько простых дополнений, удалений, модификаций и исследований на Java, но способность к обучению должна быть сильной, фундамент должен быть прочным, и это удобно для последующего обучения. Потому что для новичков, которые только что присоединились к компании, надежные компании организуют, чтобы их возглавил мастер, а также организуют определенный объем обучения.Компания не боится, что вы неопытны в проекте, но они боятся что вы не сможете идти в ногу со своим прогрессом в обучении.
Когда я был зарубежной стажировкой, то есть, давай, прямо на два месяца, чтобы быть небольшим проектом, я устроил поддельный калькулятор Win7 (исходный код, а также законченный на CSDN ресурсной библиотеке Лейн), ах, использовал Качать интерфейс надо делать, а это уже 12 лет назад! Итак, после увольнения компания организовала много тренингов, обучение стандартам кодирования, процессу разработки и так далее.
Почти полтора года работал, когда делал группу Лидер, тоже много раз обучал новых людей, как пользоваться флексом. Ну и эта штука тоже устранена!
(Время от времени выясняется, что я фермер старого кода)
Ладно, без глупостей. Давайте поговорим о самых основных требованиях к Java-стажеру.
Во-первых, инструменты, которые часто используются, должны быть профессиональными..
Например, необходимо уметь пользоваться Intellij IDEA.Если вы хотите писать высококачественный код Java и добиваться эффективности разработки, вы можете использовать Intellij IDEA.! можешь идтиGitHubВзгляните на китайскую версию руководства Intellij IDEA, настройки сочетаний клавиш, шаблоны кода, часто используемые плагины — все это подробно объясняется.
Позвольте мне привести простой пример: должны быть установлены три плагина, такие как **CheckStyle, Alibaba Java Code Specification и SonarLint, которые могут в значительной степени гарантировать качество кода. **В дополнение к этим 3, есть также:
Это может значительно повысить эффективность написания кода.
Например, нужно уметь пользоваться Git. Всем известно, что системы контроля версий очень важны! ! ! ! ! !
Даже если вы просто программируете в одиночку, это может помочь вам создавать моментальные снимки вашего проекта, документировать каждое изменение, создавать разные ветки и многое другое. Если вы участвуете в совместной работе нескольких человек, это еще более бесценно: вы можете не только видеть чужие изменения в коде, но и одновременно разрешать конфликты, вызванные параллельной разработкой. Существует множество систем контроля версий, наиболее ярким представителем которых является Git.
Если вы хотите хорошо изучить Git, вы можете взглянутьPro Git Китайский PDF, возможно, лучший учебник для изучения Git, потому что автор является соавтором одной из основных реализаций Git.
Во-вторых, основа Java должна быть прочной..
Такие как типы данных Java, операторы Java, управление процессами Java, ориентация объектов Java, обработка исключений Java — это самые основные вещи, которые необходимо освоить при изучении Java.
Кроме того, есть среда сбора данных Java, Java IO, сетевое программирование Java, многопоточный параллелизм Java и виртуальная машина Java.Это основные точки знаний в Java, которые необходимо освоить.
Вы можете взглянуть на этот GitHub-учебник по Java, который я скомпилировал более чем из 115 000 звезд, который охватывает все точки знаний Java, включая синтаксис Java, структуру сбора Java, ввод-вывод Java, параллельное программирование Java и виртуальную машину Java, не так много контента, просто сосредоточьтесь.
На GitHub собрано более 115 000 руководств по Java, очень хардкорно!
В структуре сбора Java, например, разница между ArrayList и LinkedList, структура данных HashMap, принцип работы, коллизия хэшей, процесс расширения, метод застежки-молнии, почему бы не использовать двоичное дерево поиска и выбрать красно-черное дерево, когда связанный список слишком глубокий, Java 8 Что случилось с HashMap, разница между HashMap и ConcurrentHashMap и т. д. — вот основные темы интервью.
Многопоточный параллелизм — одна из трудностей в основе Java.Я буду использовать интеллект-карту, чтобы перечислить точки знаний, которые необходимо освоить.
Существует также виртуальная машина Java.Значения, которые необходимо изучить, включают: структуру памяти виртуальной машины Java, стратегию и алгоритм сборки мусора, стратегию распределения и восстановления памяти, настройку производительности виртуальной машины Java, структуру файлов классов, механизм загрузки классов и т. д.
Как этому научиться? Я рекомендую всем книгу, только одну книгу г-на Чжоу Чжимина "Углубленное понимание виртуальной машины Java", сначала ее может быть больно читать, но я должен сказать вам ответственно. Интервьюера легко удивить.
В-третьих, освойте базу данных MySQL.
Давайте сначала взглянем на систему знаний MySQL или в виде интеллект-карты.
Для базовых операторов SQL я рекомендую книгу «SQL Must Know and Know», которая очень тонкая и ее можно быстро изучить. Затем есть «MySQL Must Know and Know», который очень всеобъемлющий, но очень краткий и очень подходит для нулевых юниоров и юниоров. Если вы хотите более глубоко изучить MySQL, я рекомендую две книги: "High Performance MySQL" и "MySQL Technology Insider: InnoDB Storage Engine".
Если у вас есть прочная база английского языка, рекомендуется прочитать MySQL Tutorial, учебник по веб-сайту на английском языке.Если вы столкнетесь с трудностями, вы можете использовать Google Translate.
Если у вас есть свой сервер (студентам дешевле его купить), вы можете учиться в Alibaba Cloud University, в нем 18 бесплатных курсов, от SQL до NoSQL, от самостоятельной сборки до облачной базы данных, обучение в одном месте + Самопроверка.
В-четвертых, освойте фреймворк серии Spring..
Если вы хотите стать квалифицированным разработчиком серверной части Java, вы должны освоить серию фреймворков Spring, yyd. От SSM (Spring+Spring MVC+MyBatis) до Spring Boot, до Spring Cloud его необходимо использовать.
Фактически, Spring уже давно стал отраслевым стандартом для серверной разработки Java.Как правильно использовать Spring — один из обязательных курсов для Java-программистов. Из-за быстрого развития Spring он постепенно превратился из легкой среды разработки в «монстра», становясь все более и более громоздким, что приводит к все более и более высоким затратам на создание приложения, поэтому появился Spring Boot. Он помогает разработчикам быстро создать автономное приложение с минимальной конфигурацией. Не будет преувеличением сказать, что Spring Boot великолепен!
Spring Cloud использует удобство разработки Spring Boot для тонкого упрощения разработки распределенной системной инфраструктуры, такой как регистрация обнаружения служб, центр конфигурации, шина сообщений, балансировка нагрузки, автоматический выключатель, мониторинг данных и т. д. Можно сказать, что рождение Spring Cloud, в очередной раз высвобождающий продуктивность Java-программистов.
Что касается изучения SSM, вы можете посмотреть видео Jiangnan Little Rain на станции B, которое может заложить прочную основу для последующего изучения Spring Boot.
Позвольте мне кратко представить, что такое SSM.
1) Spring — это облегченная структура контейнеров Inversion of Control (IoC) и Aspect Oriented (AOP). Он может загружать Beans, то есть классы в Java, в том числе в Service и Dao, используя механизм инверсии управления, нам не нужно объявлять и инициализировать ключевым словом new каждый раз, когда мы используем класс. Кроме того, управление транзакциями Spring также широко используется в разработке.
2) Давайте посмотрим, как работает SpringMVC:
- Клиент отправляет запрос DispacherServlet (диспетчеру)
- Запросите HanderMapping контроллером DispacherServlet, чтобы найти контроллер, который обрабатывает запрос.
- После того, как контроллер вызывает обработку бизнес-логики, он возвращается в ModelAndView.
- DispacherSerclet запрашивает распознаватель представления, чтобы найти представление, указанное ModelAndView.
- Представление отвечает за отображение результатов клиенту.
3) MyBatis — это структура уровня сохраняемости, которая поддерживает обычные SQL-запросы, хранимые процедуры и расширенное сопоставление. Он инкапсулирует JDBC, делая базовые операции базы данных более прозрачными. Операции MyBatis вращаются вокруг экземпляра с именем sqlSessionFactory, который связан с файлом Mapper каждого класса сущностей через файл конфигурации, а затем файл Mapper отображает операторы SQL, которые каждый класс должен выполнять в базе данных.
Что касается изучения Spring Boot и Spring Cloud, вы можете прочитать блог Pure Smile. Количество посещений составляет более 10 миллионов, что повлияло на бесчисленное количество новичков. Я также являюсь одним из влиятельных лиц.
Что касается Redis, Dubbo и т.д. и т.п., то больше не буду подчеркивать.Четырех самых основных требований выше хватит, чтобы выпить горшок. Есть также общие аспекты, такие как алгоритмы и структуры данных, операционные системы, принципы компиляции, компьютерные сети, принципы компоновки компьютеров и т. д., и я не буду выделять их по отдельности. На уровне университета вы можете делать это, когда у вас есть время.Если школа уже организовала эти курсы, будет еще лучше.Учитесь, вы должны учиться!
Время в колледже не короткое и не длинное, и это не долго.Как кто-то, кто приехал сюда, это действительно похоже на мгновение ока., Занят общением, занят расширением, занят упражнениями, занят учебой, занят любовью , слишком занят, чтобы заводить друзей. Как можно усердно учиться среди стольких вещей?
То есть вы должны научиться делать вычитание, а не тратить время на изучение того, чему не следует учиться. Такие вещи, как Swing и AWT, упомянутые выше, давно исключены, как и Applet и JSP, и если в университете их все еще преподают, то это настоящая беда для студентов.
Вместо того, чтобы тратить время на эти бесполезные знания, лучше:
1) Одержим структурами данных и алгоритмами
Алгоритмические вопросы подобны восьминогим эссе, которые декламировались в эпоху имперских экзаменов, и они являются репрезентативными произведениями знания, изменяющими судьбу. Если вы не будете чистить, вы очень хорошо пройдете задачу по алгоритму, потому что вам нужно не только пройти тест, но и улучшить свои навыки программирования. Java-версия LeetCode, которую я всем рекомендую, обязательно загрузите ее и почистите.(Нажмите на ссылку ниже, чтобы скачать).
После 300 вопросов LeetCode я такой толстый!
2) Увлеченность ACM
3) Попробуйте программировать в средах Unix и Linux.
4) Одержим сетевым программированием и многопоточным программированием, а также глубоко разбираюсь в сетевых протоколах, таких как TCP/IP и HTTP.
Что ж, на сегодняшнем обмене все.
Я второй брат, я надеюсь помочь и вдохновить младших братьев и сестер, не забудьте поставить лайк~