Как быстро научиться программировать?

Можно ли быстро научиться программировать? Сколько времени потребуется для освоения простейших технологий? С чего начать обучение? Своими мнениями по этим вопросам делятся пользователи сайта Quora.

 

Энтони Фам, разработчик ПО в компании Isagenix

Я могу говорить только за себя. Так вот, я начал работать программистом только 3-4 месяца назад  и мне до сих пор кажется, что я совсем ничего не знаю. Поэтому я считаю, что быстро научиться программировать почти невозможно. (Все зависит от того, какой промежуток времени вы имеете в виду под словом «быстро»).

В конце февраля этого года мне предложили место в команде, занимающейся разработкой ПО с открытым кодом. У меня было где-то 2 месяца на то, чтобы стать Java-разработчиком и разобраться с Java, Spring, JavaScript, CSS, HTML, AngularJS, а также научиться использовать XML, Babel, Nodejs, PostgreSQL и многое, многое другое. Поскольку мне удалось справиться со всем этим, меня устроили младшим full stack-разработчиком на базе .NET.

С тех пор, как меня взяли на эту должность, я, в основном, изучал, как произвести рефакторинг кода (так как за годы работы они нарастили огромный технический долг), как работать в среде гибкой методологии разработки, а также как создавать блочные тесты – лучшее из всего придуманного.

И, честно говоря, я не могу сказать, что я знаю много, хотя, несомненно, сейчас я знаю больше, чем 3-4 месяца назад. И это одна из самых пугающих вещей в программировании – осознание того, что в этой области существует бесконечный объем информации, и, наверное, это одна из причин, почему так тяжело начать свой путь, ведь крайне сложно понять, с чего начинать обучение. С самого начала этого пути вы будете постоянно изучать что-то новое, особенно если вам будут приходить в голову необычные идеи и способы их реализации.

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

Умение правильно искать нужную информацию – это бесценный навык, который пригодится вам в любой сфере вашей жизни. Просто надо решиться и начать что-то делать. Чтобы в будущем быть способным решать возникающие перед вами проблемы (а программисты, по сути, это люди, которые решают ряд определенных задач при помощи кода), нужно пробовать и ошибаться.

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

Обучение программированию – это непрерывный и бесконечный процесс, но так или иначе понадобится некоторое время для того, чтобы обрести ряд необходимых умений.


Эдака Морторей, более 20 лет работает с самыми разными языками и компаниями

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

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

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

Необходимо знать об инфраструктуре данных, безопасности и конфиденциальности. Я никогда не слышал, чтобы кто-то смог выучить все это «быстро».


Ульрих Роман, ученая степень по физике, разработчик ПО уже более 20 лет

Я думаю, многие совмещают здесь два разных понятия:

  1. Овладение новым навыком
  2. Изучение способов применения и дальнейшее развитие этого навыка

Я искренне верю, что каждый человек с достаточным уровнем познавательных способностей может быстро что-либо выучить. И под «быстро» я имею в виду временной промежуток, исчисляемый днями, неделями или даже несколькими месяцами, в зависимости от сложности изучаемой темы.

Теперь перейдем к программированию.

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

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

 

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

Итак, возвращаясь к вашему вопросу: как же люди столь быстро овладевают навыками программирования?

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

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


Гастон Фонтенла Нюнез, программист в компании Circo Studio

Я тоже достаточно долгое время задавался этим вопросом. Ответ на него я обнаружил совсем недавно.

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

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

Любой может за несколько дней научиться решать простейшие задачи и даже изучить базовый синтаксис языка С (или любого другого языка):

  1. Обучение программированию – это сложный и многоступенчатый процесс. Это как изучение языка, когда для того, чтобы считать себя профессионалом, необходимо выучить как можно больше способов сказать какую-либо фразу. Все это требует времени и сил. Кроме того, есть уровни овладения. Нельзя сказать, что вы «научились программировать», если вы можете написать простейшую программку.
  2. Крайне важен изучаемый материал. Интернет предоставляет огромное количество источников; все, что вам необходимо научиться делать – это научиться различать конкретное и немногословное объяснение от просто краткого, а также отсеивать слишком завернутые, длинные и, в целом, бесполезные материалы. Кроме того, если у вас есть наставник, который может помочь вам с разъяснением, то тогда, возможно, ваше обучение будет проходить намного быстрее.

Я не считаю себя ни экспертом, ни «нубом». Я где-то посередине, при этом продолжаю учиться каждый день, уточняю непонятные мне вопросы и стараюсь помочь, если это в моих силах. Я знаю, как делать действительно крутые и сложные вещи на C++, обучение этому в рабочих условиях заняло у меня где-то 2-3 года. Если вы так же, как я, увлекаетесь тем, что делаете, то вам понадобится где-то 4-5 лет.

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

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

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 3
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Аватар пользователя mike

умножение чисел можно свести только к сдвигу (ну и записи и чтению) ячеек.

Неа. Но можно свести к сдвигу и СУММИРОВАНИЮ. Читай учебники.

mike пишет:

Logicby twitter.com logicby пишет:

Разумеется. Но кому нужны твои простейшие задачи? 

Ах, да -- учащимся. laughlaugh

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


Не знаю. Это тайна великая. Многие преподы могут брать крутые интегралы, но не желают набивать код, даже за большую зарплату.

mike пишет:

умножение чисел можно свести только к сдвигу (ну и записи и чтению) ячеек.

Неа. Но можно свести к сдвигу и СУММИРОВАНИЮ. Читай учебники.


Сложение не более чем чтение, сравнение и запись. (С)

Аватар пользователя mike

Сложение не более чем чтение, сравнение и запись. (С)

Видишь, а ты утверждал что лишь чтение и запись. :) Сравнение-то упустил! Молодец, подумал -- исправился.laugh

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

Нет тайны. Брать интегралы, ни за что не отвечая,  психологически не так трудно, как отвечать за код рублём, будучи зависимым от многих.

mike пишет:

Сложение не более чем чтение, сравнение и запись. (С)

Видишь, а ты утверждал что лишь чтение и запись. :) Сравнение-то упустил! Молодец, подумал -- исправился.laugh

Да, без сравнения логики нет. (С)

mike пишет:

Нет тайны. Брать интегралы, ни за что не отвечая,  психологически не так трудно, как отвечать за код рублём, будучи зависимым от многих.

Как бы верно. Типа стресс меньше. Но на любой работе свой стресс. И уровень его может быть не меньше.  - Например, препода (любого)  могут "гонять" и "песочить" за дисциплину в ... общаге ли, или "обязать следить" за политическим мировоззрением студентов.

Аватар пользователя mike

Это несравнимо с матответственностью и потери чести из-за ошибки.

mike пишет:

Это несравнимо с матответственностью и потери чести из-за ошибки.


А не если он не возьмёт интеграл? (С)

-2
Аватар пользователя mike

А если он не возьмёт интеграл?

Имхо словоблудствуешь.

Сели преподы в кружок и от нефиг делать интегралы берут, а кто не возьмёт -- без зарплаты на доску позора.laughlaugh

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

mike пишет:

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


Верно. Забыл что интегралы в 18-19 веке как научились брать, так всё с тех пор и замерло то...  (формализация).

 

-2

Страницы