Здравствуйте!
Я знаю несколько способов начать изучать алгоритмы(которые несомненно важны в погружении в программирование).
Первый способ – читать книги, посвященные изучению алгоритмов, этот способ очень хорош, но в нем есть один недостаток – он может отпугнуть неподготовленного морально начинающего программиста нагромождением разных специальных терминов и не всегда хорошим стилем написания, что еще больше может усложнить обучение. Пока что отложим этот способ в сторону.
Второй способ – курсы по алгоритмам. Тут, если вам повезет с преподавателем, вы можете войти во вкус и продолжить после прохождение курсов, подкрепляя их книгами по алгоритмам. А если не повезет, вы забросите изучение алгоритмов на неопределенный срок(навсегда).
Третий способ, он может показаться на первый взгляд самым легким и подходящим, так как он в игровой форме, но это во многих случаях не так. Есть видеоигра Factorio, она на живом примере показывает как работают алгоритмы и делает она это первоклассно. НО. Если вы думаете, что сможете освоить ее, как многие другие игры, с наскока за несколько минут, то вы глубоко ошибаетесь. Интерфейс игры для современного избалованного геймера окажется супер неудобным, сложным и тяжелым для понимания, кажущееся легкое времяпрепровождение обернется часами продирания сквозь дебри кучи интерфейсов и непониманием происходящего вокруг. Этот способ также можно отложить на поздний период изучения алгоритмов и обязательно вернуться к нему в будущем, так как в роли интерактивного пособия он намного увлекательнее, чем интерактивные сайты, где показывается работа алгоритмов(их конечно же тоже смотреть полезно и обязательно, но всё же, скучновато, а тут вы можете ппринять участие сами).
И четвертый способ. Но прежде чем перейдем к нему, давайте прочтем определение, что же такое алгоритм.
Специальное определение:
Система последовательных операций (в соответствии с определёнными правилами) для решения какой-н. задачи.
"Теория алгоритмов"
Книжное определение:
Совокупность последовательных шагов, схема действий, приводящих к желаемому результату.
"А. поиска"
Ничего не напоминает? Да это же кулинарный рецепт. Готовить еду – вот, что вам нужно научиться делать, чтобы научиться успешно программировать. Если вам кажется это глупым, либо подумайте обо всем процессе приготовления еще раз, либо закрывайте статью и идите в те источники, где вам рассказывают о том, как легко можно изучить всё что угодно и зарабатывать миллион долларов в месяц. С теми, кто остался, мы продолжим.
В приготовлении любого блюда представьте, что вы компьютер, а рецепт это алгоритм, при выполнении которого вы получите программу, которая отлично выполняет свои функции – блюдо, которое накормит вас и ваших близких, а если вы неправильно выполните алгоритм, то вы получите кусок неработающего кода – невкусное нечто, которое или не дай Бог кого-то отравит, либо будет выкинуто в мусорку.
Более того, научившись готовить вкусную еду, мы убьем сразу двух зайцев: мало того, что вы потихоньку начнете проникаться работой алгоритмов, так еще и приобретете умение, которое будет радовать ваших близких людей, а это ведь круто.
Если вы все еще думаете, что я шучу, то вот вам занимательный факт: большинство программистов, которых я знаю, просто обожают готовить еду и получается у них это отменно.
При обучении готовке еды, первая же неудача может вас отпугнуть, а поэтому, я дам вам несколько советов, которые помогут вам войти в процесс безболезненно:
1. Начните с более простого блюда, если вы никогда и ничего вообще не готовили, пусть это будет какая-нибудь яичница(хотя и при ее приготовлении можно изрядно "накосячить", но тут вы хотя бы обойдетесь малыми жертвами и не испортите с первого раза кучу продуктов).
2. Если вы готовите в первый раз, готовьте только по рецепту, строго его соблюдая. Когда вы станете более маститым поваром, вы сможете улучшать процессы(рефакторить свой поварской код), но на первое время, повторюсь, строго соблюдайте рецепт.
3. Подготовьте все составляющие блюда заранее. То есть помойте и нарежьте всё, что должно быть помыто и нарезано до того, как включите устройство, с помощью которого будете готовить – плитка/духовка. Это поможет вам не метаться от плитки/духовки к доске с ножом/блендеру/миксеру и у вас в итоге ничего не пригорит, а вы в спокойном темпе сможете соблюдать алгоритм и помешивать блюдо.
4. Это уже специфический совет, к которому бы вы пришли с опытом, но я скажу вам его сразу: солите блюдо, если процесс его приготовления предполагает жарку, в конце приготовления. Это поможет сохранить сочность всех обжареных продуктов. В противном случае, все продукты отдадут сок в процессе жарки и будут сухими.
Ну и в заключении: не воспринимайте готовку, как каторгу, а воспринимайте ее, как процесс обучения, который приведет вас к крутым результатам в программировании.
Поддержать блог и автора можно здесь.
Вкусных вам блюд, успехов в обучении и всего вам доброго. ;)
Спонсоры блога
- Perseya
- Max Koposov
Спасибо, ребята!