От чайника до программиста-самоучки (часть 2)

От чайника до программиста-самоучки (часть 2)

Часть II: думай, планируй и выполняй как программист

Теперь, когда вы знаете, как решать проблемы, рассуждать о решении и свободно обмениваться своими идеями, пришло время применить эти навыки на практике, как это делает программист.

В этой части нужно изучить три вещи. Во-первых, вы изучите C++ как второй язык, который ближе к описаниям машинного уровня по сравнению с Python. Python ближе к спектру простого английского, тогда как C++ ближе к концу спектра 0 и 1. Изучение C++ познакомит вас с другими конструкциями программирования, такими как указатели. Во-вторых, вы улучшите скорость написания кода, интенсивно тренируясь, читая документацию и улучшая свои навыки отладки. Наконец, вы изучите рекурсию, которую магические программисты и компьютерные ученые используют, чтобы использовать возможности вычислений.

1. Изучите C++ и начните писать простые программы

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

На чем сосредоточиться: Написание кода на C++ заставит вас чувствовать себя более программистским, потому что вы больше обращаетесь к описаниям машинного уровня. Узнайте разницу между синтаксисом и семантикой. Потратьте время на изучение статической и динамической типизации, управления памятью и указателей. Научитесь реализовывать условные выражения, циклы, функции, типы данных и все, что вы изучали в Python снова и снова в C++. Если все это похоже на греческий и латынь, не волнуйтесь. В разделе ресурсов все прояснится.

Обработка ошибок: всякий раз, когда вы получаете ошибку, не отчаивайтесь. Даже самые опытные программисты имеют ошибки в своих программах. Все, что вам нужно сделать – это прочитать ошибку, выполнить быстрый поиск в Google и устранить проблему в своем коде. Пока вы это делаете, поймите, где вы допустили ошибку, исправьте свое понимание и продолжайте. Иногда вам может понадобиться прочитать немного документации. Проверьте следующий раздел.

2. Чтение документации должно быть для вас второй натурой

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

Зачем это учить? Многие люди мучаются с изучением новых технологий и ищут готовые курсы для обучения. Хотя на начальных этапах это к лучшему, поскольку ваши знания углубляются. Вам придется прочитать документацию и подобрать то, что вам нужно. Опять же, научитесь отфильтровывать информацию и принимать именно то, что вам нужно для выполнения работы.

3. Практика. Повторение. Практика.

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

Если вы прочитали предыдущую часть, у вас не должно возникнуть проблем на этой части. Если вы боретесь, я бы посоветовал вам вернуться и вернуться к предыдущим разделам. Вы должны научиться писать код, поэтому не пропустите эту часть. Идея состоит в том, чтобы свободно выражать свои простые английские решения в их программных эквивалентах. Если вы не увязли в особенностях языка, вы можете продолжить. Возьмите все программы, которые вы написали на Python, и напишите их на C++.

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

4. Понять рекурсию хорошо

От чайника до программиста-самоучки (часть 2)

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

Итог

До сих пор вы знаете язык низкого и высокого уровня и достаточно хорошо понимаете различия в «контроле», который вы имеете над своими программами. К настоящему времени вы должны уметь писать простые программы на Python и C++ и понимать разницу между этими двумя языками.

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

РЕСУРСЫ:

1. Изучение C++
2. Чтение документации
3. Практические упражнения
4. Рекурсия


.

  • February 18, 2020