Изучаем программирование самостоятельно. Обучение программированию с нуля: с чего начать изучение в домашних условиях

22.12.14 156348

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

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

Что нужно знать «чайнику»

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

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

Многие начинающие обучение считают написание кода чуть ли не самой романтической профессией. Особенно увеличилось количество желающих познать программирование после просмотра фильма «Матрица ». Именно главный герой этой картины Нео подтолкнул многих к становлению на путь постижения программных наук:

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

После развала СССР все отечественные ВУЗы долгое время даже и не пытались перекроить свою систему обучения под потребности современного рынка. Не являлись исключением из этого правила и технические ВУЗы.

Программирования как отдельной отрасли и специализации не существовало как таковой. Его основы преподавались лишь как привязка к другим инженерным дисциплинам. И даже те крохи знаний, которые давались студентам в этой области, не соответствовали современным стандартам и утратили свою актуальность еще 20-30 лет назад.

В странах бывшего СССР основным языком программирования, преподаваемым в технических ВУЗах, был Бейсик.

Ситуация кардинально не изменилась и через 10 лет. Лишь некоторые учебные заведения, учуяв веяния нового времени, в начале двухтысячных года начали перекраивать свое обучение под мировые стандарты. И только с этого момента программирование стало восприниматься как отдельная профессия и специализация обучения:

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

А это в профессии программиста является наиболее важным аспектом. Поэтому большинство из сегодняшних гуру российской IT-индустрии начинали свое обучение программированию с нуля самостоятельно.

В некоторой мере такая тенденция сохраняется и по сей день. Хотя в наше время количество профессионалов, занимающихся преподаванием, заметно возросло.

С какого языка начать изучать программирование

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

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

Чаще всего выбор падает на язык программирования C (си) . Именно с него большинство новичков во всем мире начинают свое обучение. На основе C было создана основная часть программных языков, и во многом они наследуют его структуру и синтаксис.

Изучая C, вы постигаете основы не одного языка программирования, а сразу нескольких.

Рассмотрим особенности этого языка, делающего его оптимальным для изучения:

  • Простая для понимания основа – часть встроенных возможностей языка для простоты вынесена в отдельно подключаемые библиотеки. К таким элементам относится большая часть математических функций и методов для работы с файловой системой;
  • Оптимально подогнанная система типов – благодаря простому набору типов данных и строгой типизации уменьшается риск допущения ошибок в процессе написания программного кода;
  • Направленность C на процедурный тип программирования, при котором соблюдается четкая иерархия всех элементов кода;
  • Доступ к памяти машины с помощью указателей;
  • Минимальное количество поддерживаемых ключевых слов;
  • Поддержка области действия имен;
  • Поддержка пользовательских типов данных (объединения и структуры ).

Проще говоря, C – это то, с чего следует начинать новичку перед тем, как научиться программированию на других языках.

Программы (компиляторы) для программирования

Для обучения программированию недостаточно одного лишь желания и наличия компьютера с выходом в интернет. Для написания программ на C вам потребуется специализированное программное обеспечение – компилятор.

Компилятор – специальная программа, переводящая программный код в форму, понятную для компьютера.

Вот несколько специализированных компиляторов с поддержкой языка C:

  • Microsoft Visual Studio – профессиональный инструмент, поддерживающий множество языков, в том числе и несколько серверных. Подойдет для новичков, если брать его «на вырост»:

  • Borland C++ — бесплатный компилятор, идеально подходящий для начинающего обучение. В отличие от предыдущего инструмента, отличается ясным и понятным интерфейсом. Поэтому его освоение не вызовет особых трудностей даже при самостоятельном освоении азов программирования:

  • Code::Blocks – бесплатная среда разработки, поддерживающая написание кода на нескольких языках. Средний по сложности освоения вариант:

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

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

Сразу можно ответить, что начать можно с любого возраста, главное, чтобы было желание и мотивация заниматься программированием. Рассмотрим подробнее вопрос о возрасте для начала обучения программированию и о том, что нужно учитывать и как поступать в тех или иных случаях.

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

Программирование и возраст

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

Начать учить программирование можно в любом из трех возрастных категорий:

– Те, кому 11-12 лет или меньше, и они задумываются о начале обучения. Точнее, задумываются, как правило, их родители;

– Люди, кому от 14 до 18 лет;

– Те, кому от 20 – 30 лет и старше.

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

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

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

Как понять предрасположенность ребенка?

Есть два пути:

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

Где учат программированию

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

Преимущества таких центров в том, что здесь собираются школьники по своим интересам, общаются и быстрее учатся, глядя на успехи своих одногруппников. Кроме того, они могут выступать на соревнованиях по программированию, которые там иногда проводятся.

В некоторых школах есть кружки по программированию.

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

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

Как направить ребенка?

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

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

Надо показать ребенку, как пишутся программы. На примере какой-нибудь простой игрушки. Неплохо для этого подходит Visual Basic, имеющийся внутри стандартного Microsoft Office, точнее, внутри Excel. Да и сам Excel – это возможность писать простые формулы, и тем самым автоматизировать вычисления. Можно привлечь для этого, например, знакомого студента или репетитора.

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

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

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

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

Сразу обязывать ребенка к чему-то не надо. Просто не фиксируйте внимание ребенка на конкретных сферах программирования.

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

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

Как уже упоминалось, Visual Basic встроен внутри Excel. Либо можно установить его отдельно.

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

  • Бейсик,
  • Паскаль или
  • Делфи.

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

Если учить программирование в возрасте с 14 до 18 лет

Возрастная категория примерно от 14 до 18 лет отличается тем, что здесь заинтересовать подростка родителям будет гораздо сложнее, хотя вполне возможно. Главное, использовать интересы, увлечения подростка или еще что-то такое, благодаря чему можно направить его пытливый ум в сторону программирования.

Как правило, в этом возрасте подростки активно используют компьютер с телефоном и уже сами решают, кем им стать. По крайней мере, те, кому интересен этот вопрос как таковой.

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

Взрослые люди тоже учат программирование

Возрастной диапазон от 20-30 лет и выше относится к той категории, в которой человек является сформировавшейся личностью и точно знает, чего он хочет добиться, и потому идет к своей цели прямолинейной поступью.

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

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

Люди, которые после 20-30 лет, начинают осваивать программирование с полного нуля и зачастую достигают замечательных результатов.

Можно стать программистом и в 40 лет при наличии сильной мотивации и склонности к написанию кода (программ).

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

Ирина Давыдова


Время на чтение: 13 минут

А А

Профессию «программист» каждый выбирает по своей конкретной причине. Один решил просто менять специальность, второй вынужден осваивать еще одну профессию, третий не смыслит себя без кодов, а кто-то идет в профессию просто из любопытства.

Так или иначе – все начинают с нуля. И прежде чем с этого самого нуля начать – задайтесь вопросом, действительно ли вам нужна эта профессия?

Суть работы программиста – основные специализации, плюсы и минусы работы

Суть работы программиста зависит от специализации и компании.

Впрочем, иногда программист – и «швец, и жнец, и на дуде игрец». Но это, как правило, в маленьких фирмах, начальники которых экономят на специалистах.

Основные категории, на которые условно можно поделить всех программистов в соответствии с их деятельностью:

  • Прикладные специалисты. Задачи: разработка программного обеспечения для игр, редакторов, бух/программ, мессенджеров и др.; разработка ПО для систем аудио/видеонаблюдения, сигнализации и проч.; адаптация программ под чьи-либо конкретные нужды.
  • Системные специалисты. Задачи: разработка операционных систем, создание интерфейсов к базам данных, управление вычислительной системой, работа с сетями, контроль над работой созданных систем, и др. Эти специалисты зарабатывают больше всех других в своей области, благодаря редкости и специфичности профессии.
  • Web-специалисты. Задачи: работа с Интернетом, создание сайтов и веб-страниц, разработка веб-интерфейсов.

К плюсам профессии можно отнести следующие преимущества:

  1. Очень даже достойная зарплата.
  2. Высокий спрос на хороших специалистов.
  3. Возможность получения престижной работы без образования.
  4. Возможность зарабатывать удаленно, сидя дома на диване.
  5. Возможность работать удаленно на зарубежные компании.
  6. Творческая профессия (правда, нередко творчество зависит от пожеланий заказчика).
  7. Комфортные условия, которые обеспечивают крупные компании своим специалистам (бесплатные напитки/булочки, специальные места для отдыха и спорта, и проч.).
  8. Возможность получения «опциона». То есть, пакета акций компании. Правда, только после отработки определенного срока в компании.
  9. Расширение кругозора. По мере развития себя в профессии приходится знакомиться с самыми разными сферами жизни и вникать в самые разные системы – от делопроизводства и бухгалтерии до проч.

Минусы:

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

Видео: Как стать программистом?

Необходимые личные и деловые качества, профессиональные умения и навыки для работы программистом – что необходимо знать и уметь?

Главные качества хорошего программиста

Хороший программист должен…

  1. Любить свою работу. И не просто любить – болеть ею.
  2. Любить учиться и учить с нуля.
  3. Быть очень трудолюбивым, усердным и терпеливым.
  4. Быть готовым к постоянной рутинной работе.
  5. Уметь работать в команде.

Какие знания нужны будущему программисту?

Начинать следует с изучения…

  • Английского языка.
  • Устройства компьютера и физики всех процессов.
  • Языков программирования.
  • Методик разработки ПО.
  • Методик тестирования ПО.
  • Систем версионного контроля.

Язык программирования – с какого начать?

Также нужно будет изучить…

  • Java. Более популярный, чем Питон, и неплохой выбор для начинающего. Но более сложный, чем Питон.
  • PHP. Заточен под «веб», но будет полезен любому новичку.
  • C и C#. Весьма сложные языки, можно оставить их на потом.
  • Ruby. Хороший вариант для второго языка.
  • Django. Он научит программировать правильно. По сложности схож с Питоном.

Многое зависит от выбранного направления.

Например…

  1. Веб-программисту будут полезны знания HTML, CSS и JavaScript.
  2. Для десктоп-программиста — API и фреймворки.
  3. Для разработчика мобильных приложений — Android, iOS или Windows Phone.

Где обучаться на программиста с нуля – учебные заведения России, курсы, дистанционное обучение, онлайн-обучение?

Если у вас нет знакомых, которые могут обучить вас с нуля профессии программиста, то у вас есть несколько вариантов обучения:

  • Самообразование. Самый сложный путь к программированию, который лежит через изучение сайтов, приложений, книг и проч.
  • Университет. Если вы только закончили школу и мечтаете получить престижную профессию программиста, поступайте на соответствующий факультет. Основные знания вы все равно будете получать путем самообразования, но «корочка» поможет вам быстрее приблизиться к заветной цели. ВУЗы выбирайте технические, изучив заранее программы обучения.
  • Персональный учитель . Если вы сможете найти наставника среди программистов, самообучение будет более быстрым и эффективным. Ищите наставников на онлайн-форумах, на айти-тусовках, тематических конференциях и проч.
  • Курсы. Обучить вас тому или иному языку программирования смогут на простых курсах, которые можно найти даже в маленьких городах. Например, «Образовательный IT-портал GeekBrains», « Специалист» при МГТУ Баумана , «Компьютерная Академия ШАГ» , МАСПК .

Получить высшее образование по специальности программист можно в…

  1. МИФИ.
  2. Российском экономическом университете Плеханова.
  3. Московском государственном строительном университете.
  4. МГТУ Баумана.
  5. Государственном университете управления.

Видео: 7 ошибок начинающих программистов

Полезные онлайн-ресурсы и книги для обучения работе программиста

  • habrahabr.ru (статьи на IT-тематику, информация по самым разным темам). Этот ресурс известен каждому программисту.
  • rsdn.org (книги, актуальные вопросы, полезный форум, восполнение пробелов в знаниях, материалы на русском языке).
  • sql.ru (отличный удобный форум, полезная литература и даже предложения по работе).
  • theregister.co.uk (новости из IT-сферы).
  • opennet.ru (новости, полезные статьи, форум и проч.). Ресурс для профессионалов.
  • driver.ru (библиотека драйверов). Полезный сайт для новичков.

Ресурсы для обучения:

  1. ocw.mit.edu/courses (свыше 2000 курсов на разные темы).
  2. coursera.org (более 200 курсов, бесплатно).
  3. thecodeplayer.com (пошаговые руководства для новичков).
  4. eloquentjavascript.net (ресурс для введения в Java Script).
  5. rubykoans.com (для всех, кто изучает Ruby).
  6. learncodethehardway.org (изучение Python, Ruby, C и др.).
  7. udemy.com (платные и бесплатные курсы).
  8. teamtreehouse.com (свыше 600 уроков).
  9. webref.ru/layout/learn-html-css (для освоения HTML и CSS).
  10. getbootstrap.com (изучение возможностей Bootstrap).
  11. learn.javascript.ru (изучение frontend и Javascript).
  12. backbonejs.org (для фронтенд-разработчиков).
  13. itman.in/uroki-django (для изучения Django).

Бесплатные сайты для обучения в помощь новичкам:

  • ru.hexlet.io (8 бесплатных курсов по C и PHP, JavaScript и Bash).
  • htmlacademy.ru (18 бесплатных курсов для верстальщиков).
  • codecademy.com (популярные курсы по языкам, инструментам и проч.).
  • codeschool.com (более 60 курсов (13 – бесплатных) по HTML/CSS и JavaScript, Ruby и Python, iOS и Git, и пр.).
  • checkio.org (для изучения Python и JavaScript).
  • codingame.com (обучение через видео-игры, 23 языка программирования).
  • codecombat.com (изучение JavaScript, Python и пр.). Обучающая игра, доступная и для тех, кто пока еще не владеет английским языком.
  • codehunt.com (обучение поиску ошибок в коде).
  • codefights.com (обучающая платформа, через турниры на которой можно «загреметь» на собеседование в приличную IT-компанию).
  • bloc.io/ruby-warrior# (изучение Ruby, а также искусств/интеллекта).
  • theaigames.com (развитие навыков программирования – увлекательный игровой онлайн-тренажер для программиста).
  • codewars.com (сборник обучающих интерактивных задач для тех, кто обладает минимумом знаний).

Обычно на самостоятельное изучение основ программирования уходит от полугода до 12 месяцев.

Как быстро найти работу программиста и начать зарабатывать – советы бывалых

Естественно, устроиться в нормальную компанию без опыта работы вы просто не сможете.

Поэтому…

  1. Читайте книги, изучайте сайты и самообразовывайтесь, но уже сейчас начинайте писать свои самые 1-е строчки кода.
  2. Сами создавайте и усложняйте себе задачи по пройденному материалу.
  3. Ищите свои первые проекты, пусть даже и за «смешные деньги», записывайте себе в «резюме».
  4. Ищите работу на русскоязычных биржах фриланса (ru) и на англоязычных биржах (upwork.com) тоже – там больше шансов ее получить.
  5. Начинайте с маленьких проектов, которые вам по плечу.
  6. Не упускайте и вариант open source (в таких проектах всегда не хватает людей).
  7. Помогайте «за копеечку» (или даже бесплатно, для опыта) знакомым программистам. Пусть они дают вам несложные задания.

  • Обязательно пишем: свой опыт работы, список языков и технологий, которыми вы владеете, образование и контакты.
  • Не впихиваем в резюме весь перечень своих качеств и талантов. Даже, если вы виртуозно играете на баяне, писать об этом в резюме не стоит.
  • Оформляйте резюме с учетом креатива, но уместного.
  • Не стоит заполнять пункты вроде «ваши цели и амбиции» или «кем я вижу себя через 5 лет». Достаточно написать, чем вы занимались ранее и чем хотели бы теперь.
  • Не пишите о языках и технологиях, которые вам известны только по названиям. В резюме следует писать лишь те, в которых вы плаваете, как рыба в воде. Для всего остального есть волшебная фраза – «был небольшой опыт».
  • Если вы профессионально владеете Delphi, не забудьте упомянуть, что знаете также C#, jave или иной язык, потому как просто «программист дельфи» никому по сути не нужен (дельфи – это азы, с которыми знаком каждый выпускник).
  • Не упоминайте работу, которая была не по специальности. Это никому не интересно. Также никому не интересно, есть ли у вас водительские права или автомобиль. Вы же не курьером собираетесь устраиваться.

Перспективы карьеры программиста и зарплата программистов

Средняя зарплата программиста в крупных городах страны – от 50000 до 200000 рублей .

По России в целом – от 35 тысяч до 120000 .

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

От стажера до руководителя IT-отдела – путь не такой уж долгий, а зарплата на самом верху может достигать и 4000 долларов ежемесячно. Ну а потом можно двинуться и в руководители крупного проекта (прим. – по разработке ПО), а тут уже зарплата превышает 5000 долларов.

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

С чего начать

Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый - родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант - модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант - хобби, которое переросло в работу.

Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

  • Самообразование . Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно , и приложений , которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
  • Университет . Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
  • Ментор . Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о , где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
  • Специализированные практические курсы . Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

Какой язык, технологию и направление выбрать

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

  • Наличие на рынке вакансий . Конечная цель этого пути - найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения . Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса . Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли - разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.

В любом случае изучите веб-технологии. Это язык разметки , стили и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

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

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

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

Если вы знаете английский язык, регистрируйтесь лучше на англоязычных биржах. Рынок там больше. Если не знаете английского, учите его. А пока что вам доступны русскоязычные биржи фриланса. Ищите небольшие проекты, которые соответствуют вашему уровню знаний или чуть выше него. Подайте заявку на пару десятков таких заданий. И приготовьтесь получить море отказов. Но если одна-две заявки выстрелят, у вас будет шанс получить реальный опыт.

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

Четвёртый вариант получения опыта - помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.

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

Почему стоит выбрать Python

Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python . Я очень советую выбрать именно его в качестве первого языка программирования.

Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python - язык широкого назначения. И он такой простой, что даже дети могут его выучить.

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

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

Языки C и C# очень сложны для новичка. Ruby - хороший выбор в качестве второго языка, но не первого. JavaScript - очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

Что нужно знать, кроме языка программирования

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что - зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.

Последние шаги

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

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

Александр Агуленко, Software Engineering Intern в Google

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

Думаю, учиться никогда не поздно, было бы желание. Сейчас не нужно для этого учиться где-либо, можно дома, сидя на диване, найти огромное количество уроков в Интернете и, что самое главное, начать писать что-то, потому что, как мне кажется, лучше всего учиться на каких-то реальных проектах (я имею в виду, делать что-то работающее, пусть даже не выпущенное публично). Потом эти же проекты можно прикреплять в резюме, получая дополнительные бонусы "при прочих равных".

Я слышал историю о том, что двукратный чемпион мира по программированию Евгений Капун (из университета ИТМО) начал заниматься программированием только в университете и всего за несколько лет достиг больших успехов. Не берусь говорить, насколько правдива эта история, лучше уточнить её у ребят из ИТМО:)".

Сергей Миронов, руководитель направления eCommerce Software Development в Techport

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

Я компьютерами увлекался ещё с детства. ZX Spectrum - с него всё и поехало, после школы поступил на факультет информатики и радиоэлектроники, там начал программировать, но по сути ничего не выходило, да и всё это был детский лепет. Программировать научился когда уже закончил универ и попал на работу стажером. Поздно, думаю, не бывает, тут больше вопросы "зачем?" и "для чего?". Научиться кодить - проще, чем кажется, а вот разбираться в бизнесе, в котором работаешь, и решать его задачи с помощью программирования намного сложнее. Основная проблема поколения, которое сейчас приходит в эту профессию, - это амбиции и заблуждения. Со старта каждый хочет получать не менее 100 тысяч рублей, и, конечно же, все думают, что это очень весело, все начитались красивых статей на хабре про сводный график, кучу еды, гамаки, насмотрелись красочных фото офиса Яндекса и т.п. На самом деле, платить просто так никто не будет, без хорошего опыта, какое бы не было образование, ты никому не нужен. Я начал с 12 тысяч (в Макдональдсе в то время платили бы больше) со временем эта цифра, конечно, изменилась более чем в 10 раз, но это было непросто".

Валерий Попов, iOS developer в Rambler&Co

"В 19 лет начал, до этого даже в школе не было программирования. Правда, был олимпиадником по математике. Начинал с Delphi в универе, потом C++, Java, и так далее. Мне кажется, что и в 19 с нуля учить достаточно поздно, но если более объективно, то, думаю, не позже 30 стоит начать. Зависит от таланта и состояния мозгов. Конечно, есть исключения, но обычно люди за 30 уже хуже обучаемы, да и не могут кодить сутками".

Юрий Волков, разработчик в Яндекс

"Несмотря на то, что мне программирование было интересно почти всю жизнь (первые попытки были классе в седьмом), «изучать» программирование я начал где-то на третьем курсе.Тогда это были академические "плюсы" и немного питон. Ну, и почитывал «совершенный код» и ещё что-то. Осознал, что такое «настоящая разработка», уже в 2013-м и то, это были свои маленькие домашние проекты из разряда «сделай себе идеальный линукс».

Насчёт возраста, когда уже поздно: всё зависит от предметной области. Если ты хочешь стать БОГОМ АЛГОРИТМОВ - то начинать следует очень рано и готовить математическую базу в университете, изучая вышмат, в том числе и самостоятельно, ибо именно то, что тебе понадобится, забудут рассказать. Если тебе интересно быть в IT и/или тебе просто хочется иметь ненапряжную работу с большой зарплатой/соцпакетом/и т.д. - вряд ли поздно.Разве что за твоей спиной могут пошучивать что-нибудь типа «стажёр в команде старше сеньора».

Возраст, когда не стоит идти в разработку, - это возраст, когда становится тяжело изучать что-то новое. И если тебе это тяжело уже сейчас - скорее всего, эта работа не для тебя.

О себе:). Зарабатывать деньги разработкой я начал чуть больше полугода назад (а почти все мои друзья из этой сферы - 3–5 лет назад). До этого год работал админом в вузе, потом два года - в яндексовом хэлпдеске. То есть, места, где программирование никогда не было основным занятием".

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