Pull to refresh

Как гуманитарию стать программистом?

Reading time6 min
Views227K
Я начал писать этот пост два месяца назад еще до появления цикла постов «Хочешь быть программистом, стань им». Я читал комментарии к статьям, переписывал статью. В конечном счете, учтя все замечания от людей, которые убеждены, что для программирования нужны какие-то специальные мозги, мой им ответ: «Для нежелания чего-либо делать, сгодится любое оправдание».

Итак, как гуманитарию научиться программировать?
Ответ. Надо следовать принципу: «Глаза боятся, руки делают».

Картинка для привлечения внимания. Заменил на котика, предыдущая напоминала воспаленный мозг.

Далее вы найдете сборник полезных советов, которые мне помогли. Пару слов об авторе: я гуманитарий, окончивший исторический факультет.

Вводное слово


Представим историка, который решил написать книгу о знаменитой битве. Первое, что он делает — собирает все известные факты. Второе, он анализирует полученный материал и делает выводы. Что сделал человек, который стал программистом? Фактически тоже самое, что сделал историк написавший книгу о знаменитой битве. Одинаковый и похожий процесс.
В основе любого интеллекта лежат операции сравнения и сортировки. Любые знания, которые мы получаем, первым делом стараемся их упорядочить в какую-то иерархическую схему, на уровне подсознания. И когда знания уже упорядочены, мы стараемся их начать использовать.
Это означает, что человек может познать любую область знаний от археологии до астрономии. Все зависит от двух факторов:
1) Личное желание
2) И то, сколько времени вы готовы на это потратить.

Какой язык изучать?


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

Вы выбрали язык, как же быть с остальными?


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

Найдите толстый учебник


Какой учебник читать? Найдите все учебники, которые сможете найти. Начните читать все сразу, обязательно найдется тот, где все очень подробно рассказано. Не стоит стеснятся книг: «Изучаем за 24 часа», вы предоставлены сами себе, кого стеснятся? Не пытаетесь читать правильные книги, потому что они правильные по мнению вашего знакомого. Может быть эта правильная книга понятна только вашему знакомому.

Как все это запомнить?


А запоминать не надо. Просто вбивайте примеры из книжек и смотрите как это работает. Если вы будете усиленно зубрить, то ваш мозг начнет ненавидеть это. Изучать предмет надо в спокойных условиях. Говорите себе: «Дай-ка я это попробую, ничего страшного не случится».
Ниже вы прочитаете как все запомнить.

Записывайте рабочие фрагменты


Вбили код, запустили, работает? Запишите его. Я для этого использую docs.google.com Чтобы иметь доступ из любого места. Там я все распределяю по папкам, каждый документ — это пример небольшого кода. Каждый раз обращаюсь, как к шпаргалке. В конечно счете, вы достигните такого уровня, когда будете все помнить.

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

Записывайте правильное решение


Допустим вы бились над решением какой-то проблемы. Решили ее, запишите код рабочей программы с подробным описанием в чем была проблема и как вы ее решили. Согласно закону подлости, на следующий день, когда решите улучшить код, вы сломаете свое рабочее решение и потом долго будете недоумевать, а как же оно вчера работало?

Сделайте ошибку


Если вы нашли небольшой рабочий пример, выполняется без ошибок, то сделайте ошибку специально. Запишите какую ошибку вам покажет отладчик, как будет она именоваться. Это в будущем пригодится, когда напишите более серьезную программу и столкнетесь с ошибкой, имея опыт, сразу поймете, где надо искать. Не бойтесь экспериментировать. Улучшайте код, вносите изменения. Это ведет к пониманию изучаемого предмета.

Набивайте код


При чтении учебника, часто возникает такая ситуация. Вам показывают код, видите вы его впервые, но вы понимаете, как он работает и читаете дальше. В этом таится большая опасность. Набейте код из книжки и сделайте его выполнение. Пока вы будете его вбивать, ваш мозг задействует разные отделы, от получения информации до ее передачи для использования в опорно-двигательной системой (руки, в данном случае). Что означает — информация пройдет через разные отделы мозга. И следовательно она будет восприниматься по-другому. Реальный случай, пока читаешь, говоришь себе: «Да, понятно, это работает вот так», а после того как вбил и запустил исполнение, увидев результат, восклицаешь: «Эврика!». Вот поэтому написанная информация запоминается лучше, чем та, которую вы просто прочитали.

Предупреждения



Отчаяние


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

Плохая документация


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

Ваши знакомые и друзья


Среди ваших знакомых найдутся люди, которые зададут вам такой вопрос: «А зачем ты изучаешь программирование?».
Я был немало удивлен таким вопросом. Придумайте для них какие-нибудь дебильные отмазки, чтобы отстали. Например: «Я хочу найти работу программиста. Средняя зарплата программиста… бла бла бла».
Что самое интересное, спустя какое-то время, когда вы добьетесь серьезного результата, их почему-то это совсем не впечатлит. Не знаю, что это такое, зависть?

Гуру из интернета


«Гуру» на всяких форумах порой говорят что-то про кодеров, новички пугаются, задают вопросы: «А как не стать кодером?». Вы должны знать, что когда научитесь серьезно программировать, у вас появится столько оптимизма, вы себя почувствуйте таким супергероем, что будете рассуждать, как пилот боевого истребителя. Вскоре, вы тоже начнете на форумах что-то писать про индусов и быдло-кодеров.

Ну и последнее

Сколько времени у вас займет обучение? Если каждый день тратить по 10 минут, то через полгода заметите за собой, что кое-что уже можете. А через два года сможете уже искать работу. А может быть даже раньше, зависит от вас.

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

Update 1: Судя по комментариям, некоторые бегло пробежались по статье. И некоторые вопросы вызваны невнимательностью. Про 10 минут также говорится под заголовком «Отчаяние». Суть 10 минут, чтобы человек не бросил изучение, когда у него нет уже сил. Иначе, если вы дадите себе неделю отдыха не прикасаясь к материалу, то за неделей последует вторая, и третья…

Личный опыт


Попросили добавить личный опыт. Обучение началось с языка TurboPascal в школе, язык понравился. Но дома не было компьютера. После школы я поступил в университет, на истфак, где у меня тоже были успехи. На факультет по прикладному программированию, я бы не смог поступить, так как не смог бы сдать экзамены по математике.
После университета, найдя работу, я купил компьютер и попытался изучать Делфи. Поставил перед собой задачу, как написали некоторые в комментариях, но как оказалось, Дельфи не смог справится с ней. На этом мое обучение прекратилось. Следующая попытка была предпринята через несколько лет. Решил наброситься сразу на несколько: Delphi.NET, Php, С, С++, С Sharp, ObjC, Assembler, Python, Ruby, Perl, Javascript, Java.
Результат: Python очень хорошо пошел. Остальные языки знаю понемногу. Но сейчас их изучать стало намного легче, так как нет прежнего страха и неуверенности.
Tags:
Hubs:
+41
Comments203

Articles

Change theme settings