«

»

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

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

Обучение или насильственный аскетизм

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

  1. Идет учиться, понимая, что ему предстоит страдать и обитать вне воли;
  2. Кладет на все, продолжая жить как раньше, но при этом осознавая, либо не осознавая свою немощность.

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

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

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

Для решения выше стоящей проблемы, самым объективным действием будет обратиться к элементарной психологии. Известно, что это мимолетное состояние восторга возникает не просто так, а мы как бы сами цепляемся на крючок случая. В случае программирования это может быть прочтение статей про IT, история или ролик про хакеров, желание «творить» и т.п. Так вот, человек суть механизм, но механизм способный на самообман и самовнушение. И было бы глупо, в достижение своих целей не воспользоваться этим преимуществом. Смотрите вдохновляющие фильмы, читайте книги, которые своим влиянием будут втягивать вас в «мир кода», обзаведитесь окружением, имеющим соответствующие интересы, либо сами создайте его! Существует бесчисленное множество частных вариантов поддержки интереса, главное осознать, что в наших силах преобразовать «исключение» в «правило». Легкая смена климата, явится знаком нужного пути. Это может проявляться в разногласиях со старыми знакомыми, желании говорить только на одну интересующую вас  тему, смене старых привычек и т.д. Но сам факт посадки плодов, пусть даже и на такой черноземной земле, не дает права их собирать. Предстоит долгий путь!

 Способности и одаренность

Бытует мнение, что программисту необходимо быть хорошим математиком. Спешу вас огорчить, но этого недостаточно! Занимаясь программированием профессионально и на высоком уровне, специалист должен обладать знанием математики, логики и теории алгоритмов. Абстрагируя, только что сказанное, придем к заключению: «Программист – обладатель алгоритмического мышления». Его вполне реально развить, изучая упомянутые дисциплины, а также решая разного рода визуально-пространственные задачи. По мнению большинства специалистов, результативность обучения определяется врожденными качествами, о которых мы поговорим немного позднее.

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

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

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

Выбираем снасти

Что касается языка программирования, кой так или иначе стоит упомянуть, то тут (не смотря на повсеместное мнение) он значительной роли в вашем становлении программистом не играет. Спрос и популярность языков машинного кода меняется крайне не стремительно. Но это не значит, что можно уверено заявить, о том, какой из них спустя определенное количество лет будет «на пьедестале». Куда более важно определиться со сферой, в которой Вы желаете работать. Тут можно выделить три основных направления: веб, прикладное и системное программирование.

Под термином «Веб-программирование» обычно подразумевается работа с Интернет-ресурсами, отображаемыми в браузере. Начинающий веб-программист знакомится с HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей). Это можно назвать необходимым посвящением в круг разработчиков этого направления. Далее начинается куда более сложный, но, тем не менее, интересный период в жизни веб-разработчика. Языки веб-программирования (ЯВП) делятся на два типа: клиентские и серверные. Основное отличие в том, что первые выполняются на стороне пользователя (в его браузере), так как для работы вторых необходим сервер, принимающий и обрабатывающий запросы. Дельный веб-программист изучает как минимум один клиентский ЯВП (например, JavaScript, AJAX, JQuery, VBScript, ActionScript) и один серверный (PHP, ASP, С#, Perl, SSI, Ruby). Для использования серверного языка нужно понимать, как работает СУБД (система управления базами данных). Из них наиболее популярными являются: Microsoft SQL Server, Microsoft SQL Server Express, MySQL, Oracle, PostgreSQL, SQLite. Довольно популярна связка PHP – MySQL.

Главной характеристикой прикладного программирования является создания приложений направленных непосредственно на взаимодействие с пользователем. Приложения могут быть как сетевыми (Skype, Opera, µTorrent), так и чисто персональными (CCleaner, Paint, Photoshop). Многие языки программирования достаточно универсальны, что способствует написания программ разной направленности. Но выбирая, мы в первую очередь обратим внимание на востребованность ЯП, иначе, уподобимся гитаристу, покупающему ржавые струны, надеясь что коррозии со временем не останется. В этой категории языков программирования популярными являются:

  • Java
  • C
  • C++
  • Python
  • Visual Basic
  • Delphi
  • Pascal

На рынке востребованы программисты, обладающие знанием написания кода на Java и C++. Конечно ситуация может поменяться, но именно эти языки держаться в лидерах довольно долгое время.

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

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

Есть ли на кого ровняться

Почти две сотни лет прошло с тех пор как не стало первого программиста. Несмотря на то, что в 1843 году графиня Ада Августа Лавлейс написала программу, решающую уравнение Бернулли, первая ЭВМ, обладающая всеми свойствами современного компьютера, была выпущена лишь спустя сотню лет. Возможно, это наблюдение даст стимул начинающему программисту, возвеличив специалиста этой профессии над объектом его стараний. Обойдя вниманием то, что первый программист – девушка, хотелось бы указать на срок, который обуславливает «Эру компьютеров и программистов». В отличие от большинства популярных профессий, рассматриваемая нами, вполне компактно вмещается в 1 век, что дает нам возможность более полно рассмотреть таланты, зародившееся в ней! Предлагаю рассмотреть таблицу сравнения талантливых программистов.

 

Имя

Дата

рождения

Страна рождения

Сфера деятельности

Интересы и особенности

Кнут Эрвин

1938

США

Математика, программирование, компьютерные науки

математика, физика и музыка

Мацумото Юкихиро

1965

Япония

Программирование, компьютерные науки, писатель

Занимался самообразованием до окончания школы

Таненбаум Эндрю

1944

США

Компьютерный ученый, профессор университета

Имеет степень бакалавра по физике

Рэймонд Эрик

1957

США

Разработчик программного обеспечения, писатель

Занимался тхэквондо, страдал церебральным параличом.

Хоппер Грейс

1906

США

компьютерный учёный, военный деятель и контр-адмирал

В детстве любила узнавать, как устроены вещи

Столлман Ричард

1953

США

президент движения свободного ПО и проекта GNU

Ведёт образ жизни «проповедника» и «философа» движения свободных программ

Кей Алан

1940

США

Компьютерные науки

Работал как профессиональный джазовый гитарист

Мейер Сид

1954

Канада

Разработчик компьютерных игр.

Поет в хоре евангелическо-лютеранской церкви

Бьерн Страуструп

1950

Дания

Программист

Общая история, фотография, музыка

Джон Бэкус

1924

США

Информатика

В детстве имел опухоль черепной кости

Джон Маккарти

1927

США

Вычислительная техника

В юности самостоятельно изучал математику

Никлаус Вирт

1934

Швейцария

Информационные технологии

В детстве увлекался электроникой и системами программного управления

Сеймур Пейперт

1928

США

Информатика, математика, эпистемология, педагогика

Философия и социология

Линус Торвальдс

1969

Финляндия

Программист, хакер

В школе преуспевал в физике и математике

Питер Нортон

1943

США

Предприниматель, программист и филантроп

Некоторое время был буддистским монахом

Сергей Брин

1973

СССР

Вычислительная техника, информационные технологии и

экономика

Во время учебы интересовался Интернет — технологиями

Кевин Митник

1963

США

Системная безопасность, бывший взломщик, писатель

В детстве взламывал телефоны, изучал мануалы и компьютерные сети

Алан Тьюринг

1912

Великобритания

математика, логика, криптография, информатика

В детстве проявлял незаурядные способности по математике

Тим Бернер-Ли

1955

Великобритания

Информационные технологии

Родители ОБА математики

Касперский Евгений

1965

СССР

Программист, специалист по информационной безопасности

Увлекался математикой в детстве

 

Данные, собранные в четвертом столбце, указывают на увлеченность наукой и в частности математикой в раннем возрасте. Этот вполне нормальный факт,  говорит о той огромной роли увлеченности в процессе становления. Далее, более 52% из всех приведенных программистов рождены в США, а некоторые эмигрировали в штаты. Не секрет, что Америка является одной из самых развитых стран в сфере IT-индустрии, из чего следует большое количество заинтересованных людей. Родители многих талантливых программистов, да и вообще гениальных людей – научные работники, либо представляют «аристократические» слои общества. Например, у Сергея Брина отец — профессор,  дед — кандидат физико-математических наук, а мать – работник в NASA.  Отец Алана Тьюринг — представитель старого шотландского аристократического рода. Но кроме схожих связей, указывающих на некие тождественные обстоятельства жизни, рассматриваемых нами людей, имеется большое количество расхождений. В этом причинно-следственном переполохе не изменяется только одно – склонность к познанию.

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

5 комментариев

Перейти полю для комментария

  1. Luda

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

    1. А. С. Третьяков

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

  2. rrrFer

    >> На рынке востребованы программисты, обладающие знанием написания кода на Java и C++
    Я бы не сказал, что С++ такой уж востребованый (сужу по числу вакансий на росработе).

    >> В этой категории языков программирования популярными являются:
    Тут категория — языки прикладного программирования. И ниже приведен Питон — я бы не сказал, что это популярный язык для этой категории, хотя можно его сюда отнести, но популярный он в вебе.

    И еще, тут слова нет (я не увидел) про всякие 1С (а если уж говорить о популярности — то у 1С, судя по росработе, она зашкаливает).

    1. А. С. Третьяков

      >> На рынке востребованы программисты, обладающие знанием написания кода на Java и C++
      Я бы не сказал, что С++ такой уж востребованый (сужу по числу вакансий на росработе).

      На мелких предприятиях он может и не слишком востребован, а вот на достаточно крупных — похоже является основным языком.

      >> В этой категории языков программирования популярными являются:
      Тут категория — языки прикладного программирования. И ниже приведен Питон — я бы не сказал, что это популярный язык для этой категории, хотя можно его сюда отнести, но популярный он в вебе.

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

      И еще, тут слова нет (я не увидел) про всякие 1С (а если уж говорить о популярности — то у 1С, судя по росработе, она зашкаливает).

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

  3. KoRSaR

    Впринцепе неплохая статья хоть с кое чем и несогласен но в общес достаточно круто)))))))) ( я даже задумался ахах))))

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать эти теги HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Проверка на человечность *