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

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

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

Поначалу ничего не работало, но постепенно начало получаться.

А какая была твоя первая программа?

Я уже не помню. То ли она спрашивала «Как твоё имя?», там можно было ввести «Вася» и она писала «Привет, Вася», а может и нет – я уже не помню. Наверное, что-то связанное с текстом – программа что-то спрашивает, что-то выводит в ответ.

Ещё экспериментировал с какой-то программой-рисовалкой, но я так в ней и не разобрался, получалась какая-то непонятная фигня на экране. Зато это было весело.

Подскажешь способ, как наиболее эффективно научиться программировать?

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

Ну, простые задачи можно искать на форумах, где студенты спрашивают (особенно в период сессии), как им решить ту или иную задачу, но там задачи более академического плана. Можно придумывать из головы. А можно сесть и подумать, какие функции в компьютере вы бы хотели добавить или улучшить, или какие свои рутинные дела вы бы хотели автоматизировать.

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

Выбрав себе интересную задачу, пишем программу, которая эту задачу решает. Естественно, поначалу непонятно, как писать. Поэтому используем поисковые системы: ищем в Google, ищем в Яндексе (кстати, вопросы по программированию лучше искать в Google).

Просто задаём запрос, например: «как определить, подключен ли пользователь к интернету». И в запросе обязательно указываем язык программирования, например: «как определить, подключен ли пользователь к интернету на C++», «… на Visual Basic». Вот так можно находить ответы на типичные вопросы. Если не находим – то спрашиваем на форумах.

А какие форумы можешь посоветовать?

Ну, думаю, можно зайти в Интернет и набрать просто «форум программистов», и парочка форумов из первых строк точно подойдёт. С ходу могу вспомнить vingrad ru. Есть хороший форум, где сидят именно специалисты, это rsdn ru. Есть какие-то ещё, но с ходу даже не вспомню. Но, как правило, крупные форумы сразу вылезают в поисковике.

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

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

Для этого достаточно просто почитать какую-нибудь книгу или посмотреть видеокурс по самым базовым основам программирования, чтобы уже начать что-то понимать. Ну а затем идём по тому алгоритму, который я описал выше. И есть небольшая подсказка. Можно учиться и так, что за это ещё и будут платить вам! То есть – ты учишься, а тебе за это ещё и приплачивают.

Раскрою секрет. Я этот способ для себя открыл где-то курсе на втором. Ищём на фрилансе несложные дешёвые заказы, подаём на эти проекты заявки, получаем на них заказ – то есть заказчик нас выбирает исполнителем в этот проект, и под них пишем программу.

А если не выбрали?

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

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

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

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

Как же это нам применять так, чтобы денежки были, как найти работу?

Так, есть два основных способа: можно работать удалённо (так называемый фриланс), или можно устроиться в какую-нибудь фирму на постоянную основу. А я правильно понимаю, что для того, чтобы устроиться программистом – как на фрилансе, так и где-то в фирме, — мне не обязательно быть именно по образованию, по диплому программистом?

В принципе, не обязательно, потому что хорошие программисты сейчас реально нужны, и как правило фирме важнее получить хорошего программиста, чем человека «с бумажкой». Поэтому в первую очередь обращают внимание именно на профессиональные качества, на знания, навыки, ну и бумажка может дать ещё +1 балл к тем 100, которые дают реальные знания и умения.

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

То есть при удалённой работе о «бумажках» можно не задумываться.

Как доказывать то, что у тебя есть опыт, не все же поверят на слово?

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

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

А что в таких случаях делать?

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

Поделиться!
Tags: ,

49.73MB | MySQL:51 | 0,265sec