Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком
Шрифт:
В учебнике, посвященном вашему языку программирования, наверняка есть текст этой программы. Если это не так, сделайте в Google запрос «Hello World + твой язык программирования». В Google есть все. В процессе создания программы Hello World вы поймете, как выглядит базовая структура программ на этом языке программирования.
Изучите базовые конструкции и попрактикуйтесь на реальных задачах
Ура! Вы добрались до этапа, когда можете открыть книжку или приступить к прохождению учебного курса! Сейчас вам будет определенно легче воспринимать материал,
Ознакомьтесь с основными конструкциями языка, а затем попробуйте создать с их помощью несколько программ. Подумайте, какие реальные задачи мог бы решать ваш код, чтобы вы могли как можно лучше закрепить навык. Далее приведен список основных базовых конструкций любого языка программирования.
• Возможность вывода на экран.
• Базовые математические действия.
• Хранение информации в виде переменной.
• Организация кода с помощью функций, методов или модулей.
• Вызов функции или метода.
• Булева алгебра.
• Операторы if/else.
• Циклы.
Хорошая новость: если все перечисленное вам уже знакомо, считайте, что вы уже умеете базово программировать на любом языке. Да, в каждом случае синтаксис будет отличаться, но суть останется прежней. Данный этап займет больше времени, чем предыдущий. Изучите каждую из упомянутых конструкций, а затем поработайте с ней на практике.
В случае, если вы учите язык самостоятельно, постарайтесь понять, какие конструкции имеются в языке и в каком порядке их следует изучать. Если вы работаете по книге (а лучше нескольким), в ней должен быть прочерчен путь обучения, а также должны приводиться примеры и задачки различной сложности. Старайтесь всегда понимать, для чего вы учите ту или иную тему и где можно использовать полученные знания.
Завершив этот этап, вернитесь к программе, исходный код которой вы изучали в самом начале, и оцените, насколько понятнее она теперь для вас выглядит.
Усвойте разницу между функциями языка и библиотеками
Есть одна вещь, которая часто сбивает с толку начинающих программистов (особенно учитывая уровень развития нынешних языков программирования) – знание того, что является частью языка, а что – частью стандартных библиотек, которые поставляются вместе с языком. Во многих случаях эта разница будет практически незаметна, поскольку вы очень часто станете использовать библиотечные функции.
Однако, как я уже сказал, знать, где находится грань между библиотекой и самим языком, необходимо.
Вы можете считать меня формалистом, однако именно эта придирка поможет вам расставить по полочкам всю ту мешанину, которая наверняка осталась у вас в голове после всех предыдущих этапов. Разобравшись в этой теме, вы будете знать, что на самом деле большинство языков программирования куда проще и меньше, чем библиотеки. Подчеркну, что изучение библиотек более сложное дело, чем изучение языка программирования.
Дело в том, что программирование сегодня – это скорее умение использовать библиотеки и фреймворки, нежели доскональное знание языка. Именно поэтому я так много внимания уделяю важности понимания границы между языком и его библиотеками.
Это понимание позволит вам стать более продвинутым разработчиком. Зная, как найти библиотеку, которая поможет в решении той или иной задачи, вы будете создавать более качественный код, нежели любой «эксперт в языке».
Изучите имеющийся код и разберитесь в каждой строке
Если вы добрались до этого этапа, то вы уже должны быть знакомы со всеми основными концепциями изучаемого языка программирования, и должны иметь опыт применения большинства из них при решении реальных задач. Также вы должны понимать разницу между языком и его библиотеками.
На этом шаге вы все еще можете ощущать неуверенность в своих силах и не чувствовать, что разбираетесь в языке. Вероятно, вы уже понимаете, как работает каждая конструкция, но не имеете ни малейшего представления, как из этого всего слепить рабочую программу. Этот процесс можно сравнить с изучением иностранного языка с нуля.
На этом шаге многих начинающих программистов одолевает отчаяние, и они начинают думать, что им никогда не стать настоящими разработчиками. Одним из лучших способов продвинуться вперед и понять, где в ваших знаниях есть пробелы, это заняться изучением уже существующих программ, строка за строкой, добиваясь полного понимания их работы. (Да, вам не всегда будет очевидно, почему это работает именно так, но понимать, как это работает, важнее.)
Вопрос Джону!
Ты точно уверен, что мне не обязательно знать, почему код работает именно так? В чем прикол понимать «как», не понимая «почему»?
Посмотрите на это так: если вы не понимаете, как что-то работает, то вряд ли поймете, почему оно работает. Нельзя понять смысл предложения, не понимая смысла отдельных его слов. А если вы не понимаете смысл предложений, то не поймете и смысл текста. Именно поэтому мы начинаем с нижнего уровня.
Я хочу быть уверен, что вы понимаете каждую строку, каждое выражение в любом коде. В противном случае вы не сможете понять, как все это складывается в одну большую, правильно функционирующую программу.
А теперь давайте сфокусируемся на изучении языка, и все остальное приложится, обещаю.
В качестве следующего шага вы можете обратиться к коду программы из предыдущих пунктов и просто начать перебирать файлы проекта. Откройте любой из них и начните изучать построчно. Если вы можете с уверенностью сказать, что делает каждая строчка, идем дальше! Если же вы понимаете не все – а такого, скорее всего, будет очень много, – берите в руки учебник и попытайтесь уменьшить количество белых пятен.
Согласен, это довольно утомительно. И да, весьма скучно. Но, поверьте мне, это окупит себя с лихвой.
Как только вы сможете уверенно сказать, как работает каждая строчка кода, – пусть и без понимания, почему именно так, а не иначе, – вы готовы двигаться дальше.
Создайте ЧТО-ТО. А потом еще раз, и еще
Настало время начать по-настоящему использовать язык программирования! К этому моменту вы уже должны были написать несколько небольших программ и опробовать большинство функций языка. Но только создание реальных приложений позволит вам овладеть технологией более качественно.