Найти тему
Записки Дани об IT

Учись писать код правильно

Оглавление

Привет! В данной статье я бы хотел обсудить тему обучения программированию. Мне кажется, эта тема является очень недооценённой, так как курсы всё также продолжают расти, а блоггеры выпускают новые некачественные гайды в стиле "В этом языке есть переменные, функции, циклы" и начинают объяснять максимально-поверхностно.

Я бы не хотел рисовать очередные скучные арты с человечками на тему it, каких много. Поэтому, я решил делать их на отстранённые темы. Надеюсь, вам понравится. Оставляйте свои комментарии насчёт этого! :)

Налейте себе чай и приступаем! Приятного чаепития :)

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

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

В большинстве видеороликов и курсов вам стараются объяснить именно язык, а не то, как на нём программировать. Вам не расскажут, как работает данный язык, которому вас учат, что означает "интерпретируемый" или "компилируемый". Не расскажут, что такое язык "высокого" или "низкого" уровня. Хотя, несомненно, знания языка для программирования обязательно.

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

Так с чего-же начать?

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

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

Когда вы определите сферу, которая вас заинтересовала - вы сузите круг возможных инструментов и языков программирования до минимума. Скажем, хотите изучать искусственный интеллект и машинное обучение? - Там активно используется python и библиотеки, вроде numpy, matplotlib, tensorflow и другие. Хотите заниматься разработкой сайтов? - Начните с html & css & js, после этого изучите фреймворки - bootstrap / jquery, и потом развивайтесь дальше - можете начать зарабатывать или же продолжить учить серверный язык программирования, чтобы стать backend разработчиком.

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

В любом случае, вам нужно начинать обучаться с самых-самых основ. В вебе это будет понимание, что такое html и css, основы вёрстки на grid'ах, и в дальнейшем - алгоритмы, протоколы, понимание, что такое "интерпретируемый" и "высокоуровневый" язык, и, конечно-же, практика.

В большинстве остальных сфер я советую начать с Computer science, прочтите книгу "Теоретический минимум по Computer Science". Оттуда вы сможете узнать о структурах данных, алгоритмах, компьютерах и программировании. Короче говоря, там есть всё, что вам нужно на первых порах.

Линус Торвальдс:
хорошие программисты беспокоятся о структурах данных и их отношениях

Я бы советовал обучаться по книгам. Это стоит дорого, но вы получите более качественные знания. Можете скачивать книги в интернете, это не принципиально.

Ещё два хороших совета:

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

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