Вам постоянно кажется, что вы плохой программист? Тогда мы написали эту статью для вас.
Я программист и могу разобраться в таких вещах, как Google File System, MapReduce, цикл событий, распределённая память, NoSQL и других. Меня восхищает, как это всё работает! Но когда дело доходит написания кода, ничего не выходит! Например, я пытался работать с GoogleFS, но когда дело дошло до сокетов, а именно до управления множеством потоков и сокетов, я входил в ступор. И так почти во всём.
Узнали себя? Тогда эта статья для вас.
Программирование — это не просто. Это как прийти в совершенно новый мир. Родившись, вы не могли удержать даже слюну во рту, но вы преодолели это и многие другие препятствия, чтобы стать человеком в мире физическом, а теперь виртуальный мир требует от вас такого же упорства. Вы будете постоянно ошибаться, но если вы готовы учиться на собственных ошибках и получаете достаточно драйва от успеха, то вы, несомненно, добьетесь успеха в программировании. Если от обучения у вас остаётся лишь неприятный осадок, вы рискуете сами превратиться в ограниченный инструмент для решения задач.
1. Вы не умеете делать debug
Если у вас не получается делать отладку программы, вам необходимо научиться отделять проблемные места в коде. Хорошо ознакомьтесь с выбранным языком программирования и его системой ошибок. Используйте в коде утверждения (assertions), чтобы находить ошибки до их возникновения. Научитесь пользоваться инструментами отладки, чтобы пошагово отслеживать работу программы. В первую очередь, вы должны понимать, как работает каждая строка вашего кода, а не копировать его просто так.
2. Вы не умеете хорошо проектировать программу
Чтобы понять, как писать продуктивный и отлаживаемый код, может потребоваться некоторое время. Эта задача совсем нетривиальная и заслуживает внимания. Советую присмотреться к существующим шаблонам проектирования программ и к тому, как пишут другие программисты.
3. Вы не понимаете, как ваш код будет исполняться на компьютере
Для начала напишите программу на высокоуровневом языке. Затем напишите комментарии к каждому шагу программы. Затем разбейте шаги на промежуточные действия и прокомментируйте. Когда вы зайдёте таким образом достаточно далеко, перевод вашего кода в машинный будет уже вопросом реализации.
4. Вы не умеете работать с чужим кодом
Тут можно дать лишь несколько простых советов: хороший программист читает документацию, заголовочные файлы, тестирует программу небольшими частями, чтобы удостовериться, что программа работает ожидаемым образом.
5. Вы недостаточно усердны
Несмотря на все проблемы, вы готовы проводить часы в поисках решения задачи? Если да, то поверьте — это дар! Без такой страсти обучаться программированию трудно. Если ваш ответ - нет, то, может быть, вы просто не любите программировать? Может, избегаете сложностей или часто бросаете проекты, встретив препятствие?
6. Вы себя недооцениваете
Если вы берётесь за сложные проекты, хорошо вникаете в алгоритмы, значит, вы не так плохи в программировании, как думаете. Реализация программы обычно занимает больше времени, нежели изучение алгоритмов. И абсолютно нормально проводить много времени за отладкой программы.
7. Вы повторяете одни и те же ошибки
Если это действительно так, то, возможно, вы из тех, кому программирование не дано природой. Если вам кажется, что это не так, то не переживайте из-за ошибок, - рано или поздно они закончатся, а вы овладеете предметом.
8. Вы не получаете удовольствие
Вы нашли решение сложной проблемы. Какая из радостей жизни для вас сопоставима с этим? Хотелось ли вам, например, после прочтения о GoogleFS поделиться с первым встречным о её прелестях? Если да, то, несомненно, вам стоит посвятить себя программированию. В противном же случае, вам придётся постоянно преступать через себя, чтобы хоть однажды стать пристойным программистом.
Предупреждаю! Современное поколение имеет тенденцию к постоянному использованию чужих сниппетов, чужого кода. Интернет помогает не тратить время на проблемы, с которыми и без вас многие люди сталкиваются — можно просто скопировать чужое решение, однако я советую вам потратить хотя бы час на самостоятельное решение любого вопроса. Попробуйте ограничиться лишь несколькими документациями по языку или API. Это научит вас запоминать не саму проблему, а путь к её решению. Таким образом, в будущем вы не станете заложником собственной поверхностности.
Другие статьи по теме
Что делать, если в вузе не научили программировать?
Эффективное самообучение в IT-сфере. Что мы делаем не так?
Как научиться решать алгоритмические задачи?
Как научиться программировать?
Удачи в вашем упорстве!
Источник: Quora.com
Комментарии