Перейти к основному содержимому

1.02. Введение

Всем

Данная книга должна выполнить сложнейшую задачу – выступить в роли антикризисного пакета для IT-новичка и глотком свежего воздуха для профессионала. Она является как обучающим материалом, так и настольным руководством-справочником. Возможно, даже энциклопедией. Теория, конечно, будет, но мы сократим её и структурируем, отметим всё в формате тезисов так, чтобы получить инструкцию по выживанию в IT для тех, кто устал от сложных объяснений. Конечно, я встречал такие учебники, которые громко заявляют о себе с приписками «с нуля», «для начинающих», «для чайников», но нет.


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


Вы новичок? Тогда давайте договоримся. Вы – не чайник, а потенциальный специалист. У вас получится. Не сдавайтесь. Не слушайте злые языки, не переживайте из-за ошибок, и не питайте иллюзий, что это не для вас. В айти есть много различных видов деятельности, и вы точно могли бы заняться чем-то из этого множества. И чтобы конкурировать, вам нужно разобраться в предмете, быть полезным для работодателя (даже если вы сами себе начальник!). Именно знания дают возможность получить опыт, а опыт открывает двери.


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


Важно: любая картина - паззл, состоящий из элементов. Я специально выстроил всё так, чтобы паззл сложился именно корректно. Поначалу будет очень легко, и порой покажется «а, я это уже знаю!» и захочется пропустить. Но потом, когда перейдём к сложной теме, именно пропушенный фундамент даст о себе знать. И будет очень больно. А порой будет наоборот, сначала непонятный термин - но понимание придёт позднее. Мы будем и повторяться, и углубляться. Поверьте, если в начальных главах будет казаться, что мы разбираем слишком простые вещи, то, когда вы дойдёте до работы с контейнеризацией, могут возникнуть очень большие проблемы с пониманием.


IT — это не легко. Я не хочу, чтобы вы просто научились писать на одном языке. Сейчас у нас нет выбора, придётся учиться всему, разбираться во всём. Представьте, насколько можно стать ценным сотрудником, если разбираться во всей сфере? А ведь это реально. К тому же, если в процессе изучения вам покажется, что программирование даётся тяжело - возможно, интересно будет в другом аспекте. Поэтому, не беспокойтесь - всё идёт по плану. Просто читайте. Так получилось, что я интересуюсь довольно большим спектром наук, в том числе историей, правом, экономикой, политологией, социологией, психологией, философией, поэтому постараюсь частично затрагивать важные аспекты технологий.

Хочу отметить, что многие книги в сфере являются настольными, и именно поэтому так сложны для освоения. Допустим, изучить C# и все особенности .NET Framework не получилось бы, просто пробежавшись – на практике всё равно придется вернуться к нужной главе и углубиться. Постарайтесь использовать подход чтения несколько раз.

  • В первый раз пробегитесь от начала до конца;

  • Во второй раз можете более бегло проходит по темам, в понимании которых вы уверены;

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

При переходе в новую сферу, любого человека пугает «духота» изложения, обилие «воды» и сложные термины. Для удобства, в приложении, я подготовлю глоссарий и словарь важных англоязычных слов, которые встретятся на практике. Рекомендую пару раз пробежаться по ним после прочтения. При этом, если вы встретите непонятное слово, вы найдёте его значение в этих приложениях. Возможно, эта книга даже и не должна считаться учебником, скорее научно-исследовательской работой, используемой в качестве учебного материала.

Частенько, когда происходит обучение навыкам работы с какой-то платформой, возникают вопросы общего характера. Поэтому это действительно важно – понимать теоретический минимум. Именно понимать, потому что чтение большого количества теории мешает понять суть, вода отнимает внимание, и теряется понимание важной части. Каждый продвинутый пользователь работает с инструментами так часто, что уже не осознает важность обучения новичка таким «азам» этого инструмента. Данная книга каждую главу преподносит не просто так – важен каждый элемент, каждая крупица и каждое понятие.


Если вы хотите программировать, вам придётся перестроить свой мозг (если уже не перестроили ранее). Если же вы не планируете углубляться – можете не заучивать методы, классы, и прочие технические особенности языков. Однако разбираться в чём-то новом всегда хорошо. Чтобы помочь новичку научиться правильно мыслить, понимать код и разработку, я бы посоветовал следующее:

  1. Фокус на абстрактном. Не пытайтесь сразу писать код, сначала разберите задачу, разбейте её на маленькие, легко решаемые подзадачи. Визуализируйте процесс – таблицей, списком, схемой, используйте диаграммы, блок-схемы или даже просто рисуйте набросок. Это поможет структурировать мысли и увидеть всю картину. Абстрактное мышление – это ключ.

  1. Декомпозиция задач – сложные задачи всегда нужно разделять на более простые, и декомпозировать задачу нужно до тех пор, пока не останутся только базовые операции. Это поможет понять логику и разработать алгоритм решения.

  1. Понимание типов данных и структур. Мы достаточно углубимся в эту часть, поэтому важно уделить особое внимание типам данных и структурам данных. Понимание того, как хранится и обрабатывается информация, критически важно для понимания кода. Изучите массивы, списки, словари, объекты – и как они работают.

  1. Рассматривайте мир как объекты, и определяйте им характеристики. Представьте, что умеет ваш кот. Кот – это объект, объект какого типа? Типа животное. Какие у него есть свойства? Пушистый, толстый. Что он умеет? Мяукать. Анализируйте мир, определяя ключевое – «какими свойствами обладает объект?» и «что умеет выполнять этот объект?».

  1. Отладка кода как навык. Позднее вы разберетесь, что это такое. Но смысл в другом – не бойтесь ошибок! Они – неотъемлемая часть процесса обучения. Никто не может работать без ошибок, поэтому смело учитесь использовать отладчики, прослеживать поток выполнения программы, находить ошибки и исправлять их. Это очень ценный навык. Всегда задавайте вопрос – «как это работает?» и «почему произошло именно так?».

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

  1. Практика, практика, практика. Пишите код каждый день – время бежит, а любой опыт – это опыт. Начните с простых проектов, постепенно увеличивая сложность. Это лучший способ закрепить знания и научиться решать реальные задачи. Не стесняйтесь экспериментировать и пробовать новые вещи. Увидели новый фреймворк? Скачайте, установите, попробуйте. Зато потом, вы смело ответите положительно на вопрос, «был ли опыт работы» с этим фреймворком.

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

Это, наверное, самое главное – понять, а не запомнить.

Важно
Прошу учесть, что информация представляется «как есть» и предназначена для образовательных целей, автор не несёт ответственности за любые последствия. Автор приложил все усилия для обеспечения актуальности информации, но не гарантирует точность на момент чтения. Информация представляется непредвзято, без какой-либо рекламы, пропаганды или эмоциональности – исключительно для того, чтобы поделиться знаниями. Постараемся охватить максимум, однако на практике будьте внимательны, не пытайтесь слепо следовать указанному – обдумайте, проанализируйте и поймите суть, убедитесь в актуальности и безопасности на практике.

Читайте, перечитывайте, делайте пометки. И помните - каждый эксперт когда-то не знал фундаментальных основ.


Самое сложное - начать, поэтому сейчас мы начнём с рассмотрения дорожной карты.

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