Как научиться программировать? Статья больше ориентирована на тех, кто ещё не изучал технологии создания программных продуктов, но также полезна тем, кто собирается изучить другой язык программирования.
7 советов «Как научиться программировать»
Кратко: нужен план изучения, нужно вести словари для запоминания команд, нужно знать разные способы решения, нужен английский, нужна личная подборка решений, нужно вести список материалов для чтения в виде todo, нужен блог.
1 Составь свой личный план по освоению учебных курсов, которые тебе интересны. Сейчас много курсов онлайн. Начни с курсов программирования, в которых процесс обучения напоминает игру. Игры там зачастую глупые, но играть всегда веселее, чем просто заучивать учебники. Игрушки для Андроида и Айфона бывают не менее тупые, а народ с них тащится.
Постановка и контроль достижения целей
Рекомендую
SmartProgress — один из самых навороченных сервисов постановки и достижения цели.
2 Изучать программирование, а точнее — языки программирования — это то же самое, что изучать иностранные языки.
Заведи себе словари — тетрадки или файлики на компьютере: в них будешь записывать команды и их значение.
Я не являюсь сторонником чтения толстых книг. Поэтому опишу немного другой подход. Вы ставите себе несколько средних по масштабности задач. Это может быть приложение «Записная книга», «Калькулятор», «Бот для игры» и т.п. Желательно что бы по сложности они все таки шли по нарастающей. Таких задач вы ставите штуки 3-4. Со скрипом в зубах, постоянным тырканием Интернета решаете первую, вторую с третей Вы справляетесь уже легче, с четвертой еще легче. После этого у Вас появляется опыт в написании законченных программ, однако он очень мал. Поэтому после решения всех задач, садитесь и решите их повторно с нуля. Почти всегда второе решение данных задач будет куда более компактно и красивее. Вы сами учитесь на своих ошибках.
После этого ставьте себе более сложные задачи, и так же решайте их по два подхода. Чем сложней задача, тем больше Вы будете сталкиваться с чтением документаций и статей, однако постепенно все это начнет откладываться у Вас в памяти. Стоит заметить, что пытаться специально запомнить все функции и их параметры не нужно. Для этого и есть документации, чтобы в них всегда можно было посмотреть. Вы запоминаете именно то, с чем сталкивались на практике. Этого не стоит бояться — знать все невозможно, а вот сориентироваться и найти решение в незнакомой ситуации нужно уметь.
Так же все таки не плохо будет почитать про алгоритмы. Самообучение это хорошо, но по крайней мере знать о том, что Вашу задачу можно решить более быстрым способом, нужно.«Как научиться программировать?» или «Стать программистом может не каждый»
3 Хотя в Интернет можно найти справочную информацию о том, как решить ту или иную задачу, но нужно иметь общие представления о том, какие классы задач могут решать те или иные языки программирования.
Игроки в гольф знают, какую клюшку брать, потому что уже пользовались каждой из них. Решай одну и ту же задачу несколькими способами и выбери для себя более простой. Да, это требует времени. Суворов говорил:
тяжело в учении — легко в бою. Я подтверждаю — это не просто умная фраза и не рекомендация — это строгое правило. Я знаю опытных программистов, отлично знающих только один язык. Они для любой задачи выбирают свой язык, даже если это дорого, долго и выглядит некрасиво, потому что не знают альтернатив. Поэтому на свет иногда рождаются калькуляторы на базе Microsoft Access.
Расскажу об этом чуть-чуть по-другому, из личного опыта. Однажды я покупал жене шкатулку под бижутерию. Крутя шкатулку в руках, я мысленно раскладывал её на дощечки, ткань, замочки, петли, клей, гвозди — то, из чего она состоит — и довольно чётко представлял процесс изготовления. Делал я это автоматически, прикидывая — смогу ли я сделать сам такое своими руками. Выходило, что смогу, если будет время и материалы.
В другой раз я смотрел на две фотографии: до и после компьютерной обработки. И не было у меня в голове ничего между двумя этими фотографиями. Просто тёмная пустота по имени «Магия Photoshop». Потому что я подобных работ ни разу до этого не делал.
4 Русскоязычных источников информации исчезающе мало и они устаревают ещё до того, как заканчивается их перевод.
Начни изучать английский язык. Для начала достаточно будет очень узкого направления — чтение технической литературы. Несмотря на то, что авторы иногда вставляют шутки, метафоры, идиомы — большая часть документации, обучающих материалов и тем на форумах — это сухой технический язык. Главное понимать языковые конструкции, типовые обороты речи. Ни произношения, ни аудирования, даже словарь весьма скупой. Как максимум надо научиться внятно излагать свои проблемы в форумах, если нужна помощь, а найти не получается. Не теряй времени, английский понадобится практически с первых шагов.
5 Составляй подборки источников информации в Интернет. Веди свой каталог полезных ресурсов. Используй возможности сохранять ссылки, указывая ключевые слова и категории. Регулярно читай обзоры по веб-технологиям на профильных форумах, блогах, в социальных сетях.
6 Выписывай себе в отдельный список то, что надо будет прочитать: ссылки, книги, статьи. Поверь, если не составишь такой список, то не прочитаешь. Просто взглядом пробежаться и сказать себе — “О, что-то интересное” — это не поможет. Ты завтра забудешь не только о том, что писалось в каком-нибудь обзоре, но и даже о факте чтения этого обзора. Так что, бери и выписывай. Заведи закладку в браузере, напиши на стикере, а лучше занести в какую-нибудь программу с возможностью указания ключевых слов, заметок и поиска. После прочтения ненужное вычеркнешь, а нужное перенесёшь в свой список полезных ресурсов.
7 Заведи себе блог. Для себя. Записывай туда краткие выводы по прочитанному и отдельно описывай процесс и результаты решения задач. Кстати, ссылки можно хранить там же. Если заведёшь себе блог на своём домене, на базе какой-нибудь платформы для блогов — получишь значительный опыт в тех же самых веб-технологиях. Если блог будет аккуратно наполнен ценной информацией, то это покажет тебя как активно развивающегося профессионала и будет значимой добавкой к твоему резюме.
Ссылки по теме:
- Smartprogress — один из самых навороченных сервисов постановки и достижения цели. Его задача — помогать правильно структурировать и организовать информацию по целям, обеспечить коммуникацию с единомышленниками и наставниками. На русском языке.
- WordPress — одна из самых популярных платформ для блогов. Огромное количество возможностей за счёт модулей, расширений, плагинов, большое сообщество пользователей и разработчиков. На русском языке.
- Блог Wodpress — бесплатный блог на WordPress на русском языке без необходимости покупки хостинга.
- Todoist — простая и мощная бесплатная кросплатформенная система для хранения ссылок, цитат, файлов. На русском языке. Сервис описан в моём блоге на странице Time management в корпорации «Я»
Pingback: Хочу учиться. Цель: Python Senior Developer » Пишу что вижу()
Pingback: Нет прогресса в изучении веб-технологий. ЧЯДНТ? | Блог о веб-разработке и веб-технологиях()