Привет, друзья, Наггетс, я Тихий Король Эр. В последнее время я занимаюсь компьютерными основами, и я чувствую себя немного зависимым! Знания, которые раньше были скучными, теперь немного благоухают! не знаю почему.
Я аспирант, и моя специальность в университете - компьютерные сети, но, честно говоря, в реальной разработке многие курсы в университете либо не "полезны", либо могут быть изучены по-другому.
Причина этого в том, что, с одной стороны, фактическое развитие больше связано с «практичностью» знаний, а с другой стороны, университетское обучение действительно несколько оторвано от производства. Итак, я начинаю сОтправление из фактического приложения, реорганизовать знания основ компьютера.
01. Структура данных
Нет сомнений в том, что структуры данных очень важны для программиста, или это предложение程序=数据结构+算法
, это утверждение верно независимо от того, когда оно помещено.
Большинство курсов по структурам данных сосредоточены на том, как реализовать структуру данных математически, но в реальной разработке большинство основных языков имеют встроенные общие структуры данных, такие как Java. То есть большинству программистов в реальной разработке сложно реализовать структуру данных с нуля. Итак, нам просто нужно сделать следующее.
1. Знакомы с понятиями общих структур данных, таких как массивы, стеки, связанные списки, хеш-таблицы и т. д.
2. Понимать разницу между распространенными структурами данных, такими какArrayList и LinkedList, я подробно объяснил это в предыдущей статье, вы можете щелкнуть ссылку, чтобы просмотреть ее.
3. Обратите внимание на периферийные алгоритмы общих структур данных, например, на поиск по списку и карте.
4. Обратите внимание на подверженные ошибкам места в использовании структур данных, например, безопасны ли потоки или нет.
...
Класс по структуре данных в Чжэцзянском университете на станции B неплох, очень систематичен и классичен, подходит для начинающих.
Адрес видео следующий.
02. Алгоритмы
В той области, с которой я работаю, самые распространенные бизнес-системы не содержат слишком сложных алгоритмов, поэтому я не трачу слишком много времени на алгоритмы.
Но если вы находитесь в некоторых специальных областях, если алгоритм не может идти в ногу, можно сказать, что его «трудно перемещать».Например, в области обработки графики, будь то изменение или улучшение изображения, матричное преобразование должен использоваться без исключения, поэтому он должен включать в себя содержание линейной алгебры, если вы пойдете глубже, вы неизбежно вовлечете больше знаний.
Поэтому изучение алгоритмов зависит от ситуации.Если вы хотите занять пост по алгоритмам, то вы должны быть терпеливы с такими книгами, как "Алгоритмы 4-е издание", "Введение в алгоритмы", "Красота математики", "Жемчужина программирования" , и "Предложение фехтовальщика". Электронную книгу можно найти в репозитории GitHub ниже.
Кстати, хочу порекомендовать еще один алгоритм чистки босса Али, на GitHub уже 13,3к звезд. Каждый вопрос в нем написан с идеей решения проблемы, которая реализована через язык GO, и каждый вопрос имеет время выполнения 100%.
Адрес онлайн-чтения следующий:
03. Шаблоны проектирования
Я думаю, что шаблоны проектирования — это единственный способ для младших и средних программистов стать продвинутыми программистами. Есть много программистов, которые полны энергии на ранней стадии, но слабы на последующих этапах, и все они пострадали от потери шаблонов проектирования.
В первые несколько лет работы большинство программистов находятся в стадии знакомства с языками программирования, то есть в «технической» стадии, а затем переходят в «техническую» стадию. В области программирования типичным представителем «техники» является «шаблон проектирования».
Сам я рекомендую книгу "Дзен паттернов проектирования", код написан на Java, который легче читать и больше соответствует читательским привычкам отечественных программистов.
Другой — веб-сайт Refactoring Guru, который я рекомендовал в прошлый раз.
Адрес онлайн-чтения следующий:
Офлайн-версию можно загрузить по следующей ссылке (без подпрограмм и пароля для распаковки):
04. Программная инженерия
Процесс внедрения программной системы включает не только кодирование, но и ряд нетехнических факторов, таких как организация проекта и координация команды.Если вы хотите перейти от программиста к руководящей должности, стать руководителем группы или разработчиком менеджер, знание программной инженерии Должен идти в ногу.
Здесь я рекомендую несколько хороших классических книг, в том числе книгу г-на Цзоу Синя, который только что стал вице-президентом CSDN и надеется, что CSDN станет лучше после его прихода. Название его книги — «Закон строительства», и я читал ее, и она довольно хороша.
Есть также две обязательные к прочтению книги: «Миф о человеке и луне» и «Человек-кусок».Хотя на них есть следы времени, их все же стоит прочитать. Конечно, когда дело доходит до разработки программного обеспечения, лучший способ учиться — это смотреть, наблюдать, как ваша команда решает инженерные проблемы, затем думать и, в конечном счете, разрабатывать свой собственный подход.
Электронную книгу можно найти в репозитории GitHub ниже.
05. Архитектура и дизайн
Чтобы написать хорошую и красивую программу, нужно пройти три этапа.
Первый этап,Иметь прочные базовые навыкиПроще говоря, нужно владеть грамматикой и фреймворком и стать «фермером кода», который может выполнять задачи разработки.
На втором этапе, от «фермеров кода» до «инженеров» на местном уровне, необходимо не только уметь реализовывать функции, но и сосредоточиться на измерениях, отличных от функций, таких как такие показатели, как надежность, низкая связанность и масштабируемость.
Третий этап, от «инженера» до «архитектора», не только следит за качеством модуля локально, но и контролирует весь системный уровень, рационально распределяет приоритет ресурсов, гарантирует, что вся система не будет повреждена и т. д. Подождите.
Для того, чтобы стать отличным архитектором, помимо собственных усилий, вам также нужно немного удачи, но чтения может быть недостаточно, но вам все же нужно прочитать эти классические книги, которые могут принести большую помощь в вашей повседневной работе.
- «Энциклопедия кода»
- Рефакторинг: улучшение дизайна существующего кода
- "Оригинальный дизайн"
- «Основные принципы и анализ примеров технической архитектуры больших веб-сайтов»
Электронную книгу можно найти в репозитории GitHub ниже.
Наконец
Путь технологий непрост: нам нужно не только освоить множество новых технологий и новых фреймворков, но и своевременно пополнять необходимые базовые компьютерные знания, а также научиться принимать изменения, пока фундамент трудно.
Процесс обучения подобен восхождению на гору: около 80% людей отстают в этом процессе. Тогда поверьте мне, если у вас есть четкая цель, упорный труд, настойчивость и немного удачи, вы можете достичь вершины!
Что ж, я Silent King Er, надеюсь, эта статья поможет вам! Увидимся в следующий раз.