Хочу научиться программировать, с чего мне начать?

Хочу научиться программировать, с чего мне начать?

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

Хочу научиться программировать, с чего мне начать?

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

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

А теперь, обо все по порядку:

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

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

Примечание: На заметку, со временем фраза "я знаю 10 языков программирования" уже не будет вызывать у вас никаких эмоций, так как сами будете знать уже 15.

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

По поводу текущего уровня. Перед тем, как начинать изучать язык, у вас в любом случае должно быть понимание, что представляет собой компьютер или интернет, хотя бы на базовом уровне. В противном случае, вы будете постоянно натыкаться на пробелы в знаниях и тратить на ошибки кучу времени. Но и не стоит зацикливаться на этом. Существует куча людей, которые могут написать отличные программы и сайты, но при этом понятия не имеют, чем отличается DDR5 от DDR3, кроме того, что "DDR5" вроде как быстрее.

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

Причина проста. В первом случае, даже если у вас будут "корявые" и "костыльные" программы, то в этом ничего страшного нет. К примеру, вы потратили день (два, три, пятнадцать) и у вас получилось создать табличку с данными. Код ужасный, комментариев нет, некорректные данные приведут к краху программы (например, в поле для чисел ввели текст и программы вылетела с ошибкой), но вы точно знаете, что дальше этой таблички ваше творение не пойдет, равно как в случае всех других творений. В таком случае, какая разница? Пусть и криво, но все что нужно вы можете быстро создать сами, а все недостающие вам знания быстро находятся в интернете.

Во втором случае, все намного сложнее. Без изучения основ, таких как ООП (объектно-ориентированное программирование), каждый раз при создании программы после определенного уровня ее развития вы будете утыкаться в серьезные ошибки и недочеты, часто приводящие либо к необходимости полной переделки кода, либо к потерянным часам на внедрение небольших мелочей. А в ряде случаев, даже не сможете создать требуемую программу или сайт.

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

3. Если вы не знаете, как построить будку, то строительством небоскреба не стоит заниматься. Это же относится и к программированию. Вы должны не сразу сесть и писать что-то мега выдающееся, а постепенно увеличивать уровень сложности, при этом каждая задача должна быть не просто "абстрактное решение проблемы", а попытка сделать что-то полезное для вас. Этот пункт подразумевает гораздо больше, чем банальные слова.

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

Подумайте хотя бы над первыми несколькими небольшими программами или скриптами. Основными критериями отбора должны быть "полезность", то есть после написания вы этим будете пользоваться или будете это дальше развивать, и соответствие уровню ваших знаний, то есть вы либо уже это знаете, либо понимаете, что это относительно не сложно изучить. Например, если вы хотите создать тот же сайт, то начните с макета html главной страницы. Достаточно даже блоков вида "это меню", "это текст", "это шапка" и так далее. Дальше попробуйте облагородить ваше творение красивыми стилями, для этого посмотрите, что представляет собой CSS. Следующей задачей добавьте к макету возможность входить на сайт, например, если вы решили использовать php, то переделайте макет под php. Затем добавьте хранение пользователей в базу данных (создайте ее и в ней одну табличку с пользователями). Затем попробуйте добавить слайдер на главную страницу. Таким образом, вы сможете двигаться в сторону создания сайта, при этом осваивая языки постепенно. Это позволит вам поддерживать желание дальше изучать и писать, видеть каких результатов и за сколько вы можете достичь, минимизировать процент того, что вы будете переписывать.

4. Подумайте над тем, сколько вы реально готовы выделять времени, а затем соотнесите с тем, чего хотите добиться. Если вы еще только хотите начать изучать программирование, то значит вы чем-то другим занимались до этого. А из этого следует, что необходимо как-то подвинуть все остальные дела так, чтобы на программирование оставалось время. Важный момент тут заключается в том, что на первых порах перерывы между написанием программ будут серьезно сказываться на эффективности. Если опытный человек может месяц-три-год балбесничать, а потом сесть и написать на незнакомом ему языке модуль управления спутниками, то для новичка этого времени может быть достаточно для того, что придется начать изучать все с нуля.

Еще одним важным моментом является то, что времени должно быть достаточно для того, чтобы вы могли замечать прогресс в навыках по отношению к той программе (сайту, скрипту), которую хотите написать. Тратя в неделю по одному часу на написание поисковой системы, выступающей альтернативой существующим, вы ее не напишите. Однако, если речь идет о небольших макросах для Excel или OpenCalc, позволяющих провести небольшие расчеты, то этого времени может быть даже больше, чем нужно.

Существуют и другие моменты, но даже этих обычно хватает, что сэкономить себе невероятно много времени, сил и нервов. И самое главное помните, что сегодня поиск в интернете занимает от 30% до 70% времени в программировании.

Примечание: Если у вас закончились аргументы, то сошлитесь на статистику. 93% вам поверят. Тем не менее, суть про поиск верна.

Социальные сети

☕ Понравился обзор? Поделитесь с друзьями!

Добавить комментарий / отзыв
Комментарий - это вежливое и наполненное смыслом сообщение (правила).



* Нажимая на кнопку "Отправить", Вы соглашаетесь с политикой конфиденциальности.
Социальные сети
Программы (Freeware, OpenSource...)