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

БЕСПЛАТНО ответим на Ваши вопросы
По лишению прав, ДТП, страховом возмещении, выезде на встречную полосу и пр. Ежедневно с 9.00 до 21.00
Москва и МО +7 (499) 938-51-97
С-Петербург и ЛО +7 (812) 467-32-86
Бесплатный звонок по России 8-800-350-23-69 доб.418

какой язык выбрать, способы изучения / Михаил Семин

Михаил Семин, 04.11.2016

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

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

Начало изучения программирования

Несколько вариантов, как люди становятся программистами:

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

Если ваша ситуация не попадает под этот список, то у вас есть еще несколько вариантов по теме «Как самостоятельно стать программистом»:

  • Самообучение. Да, однозначно, это сложно. Но большинство известных программистов — самоучки, которые самостоятельно что-то узнавали, пробовали. В интернете есть куча материалов по этой теме: книги, обучающие статьи, гайды. Этот способ можно совмещать с каким-либо.
  • Университет. Чаще всего, люди, задающиеся вопросом «Как стать программистом» уже оканчивают школу или близки к этому. Прямой путь для них — поступать в университет, если не за знаниями, хотя бы за аттестатом (какие-то знания в любом случае останутся). Он может стать весомым преимуществом при поступлении на работу. Одновременно можно и самостоятельно что-то изучать.
  • Наставник. Вам очень повезло, если у вас есть друг-программист, который готов помочь в освоении этой тяжелой профессии. Он может подсказать полезные материалы, указать на ошибки. Но не стоит навязываться — его может это взбесить; не стоит забывать и о том, что ответы на большинство ваших вопросов уже задавали другие, их (ответы) не составит труда найти в интернете.
  • Курсы. Есть достаточно много ресурсов, на которых можно обучиться основам программирования. Есть как бесплатные, так и платные курсы.

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

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

  • Востребованность. Конечная цель изучения программирования самостоятельно — потратить как можно меньше денег и найти работу. Найти работу будет легче, если, конечно, конкуренция ниже, а востребованность выше.
  • Простота изучения. Изучение одного языка программирования на протяжении долго времени может не слабо ударить по вашей мотивации — не стоит выбирать сначала сложные языки (например, C++). Легкими языками являются PHP, Ruby, Python. Однако не забывайте о том, что стать профессионалом в каждом язык сложно.
  • Удовольствие от написания кода. Разумеется, если вам не нравится синтаксис и/или процесс написания кода на каком-то языке программирования — лучше не изучать его или отложить на будущее.

Задаваясь вопросом «Как самостоятельно стать программистом», многие забывают о том, что программирование делится на направления:

  • мобильное;
  • десктопное;
  • игры;
  • веб;
  • и другие.

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

В любом случае, работая программистом, вам нужно знать хотя бы основы веб-программирования. Это язык гиперразметки HTML, стили CSS, а также скрипты на языке JavaScript, которые позволяют сделать вашу страницу более живой. Все это front end направление. 

После этого, можно приступить к изучению back end и серверных языков: PHP, Python, Ruby, а также фреймворки к ним. Не забудьте про базы данных, практически в каждой вакансии это одно из требований.

Читать о том, какая разница между front end и back end.

Как программисту получить начальный опыт

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

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

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

Английский для программистов

Если вы задаетесь вопросом «Важен ли английский для программистов», то у меня есть однозначный ответ — да, важен. Переходя на более продвинутый уровень, вы начнете замечать, что документация преимущественно на английском. Стоит ли еще объяснять, нужно ли изучать английский?

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

Вот, наконец, когда ваш вопрос «Как самостоятельно стать программистом» постепенно исчезает, вам нужно подготовить резюме. Когда вы получите первые приглашения на собеседование, подготовьтесь к нему: повторите (бегло) материалы того, что указали в резюме.

bifot.ru

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

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

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

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

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

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

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

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

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

  1. Web программирование
  2. Создание мобильного ПО
  3. Информационная безопасность

Web программирование

Конечно же, сфер деятельности которые можно записать под web-программирование очень и очень много, в данном случае мы будем рассматривать Frontend. Если точнее, то Web frontend, потому что этот термин можно отнести и не только к веб-программированию.

Если сказать простым языком, то фронтенд разработчик — это человек, который отвечает за получение входной информации от пользователя(например, на сайте) в любых её проявлениях и передача её дальше(куда скажут, обычно этим занимается backend разработчик). Если еще проще, то фронтенд — это интерфейс между пользователем и бэкендом.

Звучит запутанно, понимаю, но на деле это очень интересно. Как правило специалист в подобной области — это очень творческий человек, потому что ему постоянно нужно придумывать формы взаимодействие веб-дизайна с пользователем, а так же придумывать, как все это можно соединить с помощью языка программирования. Как максимально упростить работу пользователя на сайте, чтобы превратить его в потенциального клиента или читателя или или или…

Специалисты в области frontend’a очень ценятся в крупных компаниях(apple, microsoft, yahoo, google и так далее). Кстати, для примера, можете зайти на сайт компании Apple и посмотреть, что значит хорошая работа frontend разработчиков.

Что нужно знать frontend разработчику:

  1. JavaScript во многих его проявлениях( Angular JS, Backbone JS, Rcact JS, Bootstrap JS, node JS, ecmascript, express JS и так далее). То есть вам придется иметь дело с очень большим количеством библиотек JavsScript(но в этом ничего страшного нет — это даже круто).
  2. Html, CSS — это основа основ, без доброго хтмл и каскадных таблиц никуда не уйти в области фронтенда.
  3. Серверные языки. Вам по-любому придется работать с серверами, а для этого вам пригодиться какой-нибудь perl или php. Конечно вы можете работать на С++, но это не так эффективно, поэтому запишите в список своих целей изучение серверного языка.
  4. Придется научиться работать с базами данных, а для этого вам, вероятнее всего, нужно освоить MySQL.

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

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

 Создание мобильного ПО

Уверен вы знаете, что рынок мобильного программного обеспечения растет еще быстрее, чем процесс развития IT, вероятно, за счет высокой конкуренции. Apple судиться с Samsung, Samsung с еще половиной Азии и так далее,  это создает возможность для нашего выхода на рынок мобильных приложений. Почему? Все просто! Это мотивирует подобные компании делать все лучшие продукты, что увеличивает возможности разработчиков, а чем больше вы можете, тем лучше вы создадите приложение(игру, например).

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

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

 

Не секрет, что самые распространенные операционные системы(мобильные) — это iOS и Android. Но, к сожалению, для того, чтобы создавать приложения для, например, iOS, нужно знать одни языки программирования, в то время как для Android нужны другие.

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

Что нужно знать разработчику мобильных приложения для ОС apple iOS:

  1. Зарегистрироваться как iOS разработчик(за 99$ или 299$). Разницу вы можете узнать на сайте Apple или из вот этой статьи на хабре.
  2. Mac OS X — вам по-любому нужна ОС от Apple, так как без неё не загрузить iOS SDK, но это не значит, что нужно покупать mac. Многие писали о том, что им хватало хакинтоша или виртуальной машины(об этом вы так же можете узнать на хабре).
  3. Язык программирования Objective-C или, уже совсем скоро, Swift. Логичнее использовать недавно созданный язык программирования от компании Apple(Swift), так как он действительно хорош и, я уверен, что компания приложит все усилия для перевода на него всех своих разработчиков.

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

Что нужно знать разработчику мобильных приложения для ОС android:

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

  1. Необходимо знать язык программирования Java(можно C#).
  2. Зарегистрироваться как android разработчик.
  3. Вам можно разрабатывать на любой ОС, в отличии от разработки под iOS.

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

Вывод:

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

Информационная безопасность

Мы подошли к самому интересному нашему разделу! Если вы хотите спасти или уничтожить мир — то вам прямая дорога в сферу кибер-безопасности. Потому что, как сказал мне однажды мой преподаватель по электронике, специалист в этой области — это и есть хакер, потому что нельзя защититься от кибер атаки, если ты не знаешь как она работает.

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

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

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

Чтобы соответствовать статусу, вам ЖИЗНЕННО необходимо из-за дня в день совершенствоваться, искать новые способы нападения и защиты при этом не попав под следствие за взлом.

В этом случае лучшей возможностью развития является работа на КГБ, ФБР, ЦРУ и так далее.

Что нужно знать специалисту по информационной безопасности:

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

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

Итоги:

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

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

Похожие статьи:

yhoome.ru

6 причин не быть программистом

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

1. Вы не любите творчество

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

2. Вы работаете из-под палки

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

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

3. Вы не любите решать головоломки

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

4. Вы не можете сидеть долго на одном месте

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

5. Вы цените нормированный рабочий день

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

6. Вы хотите быстро разбогатеть

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

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

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

Ну что, ещё не передумали идти в программисты?

lifehacker.ru

Как стать хорошим программистом? | KV.by

Что нужно изучить программисту, чтобы повысить свой уровень профессионализма? На этот вопрос отвечают пользователи сайта Quora.

 

Пья На, работает в компании Google

Почитайте о структуре и интерпретации компьютерных программ. (Например, «Структура и интерпретация компьютерных программ», Харольд Абельсон и Джеральд Джей Сассман). Если вы целеустремленный и действительно хотите изучить основы компьютерных наук, то никакая другая книга за настолько короткий промежуток времени не даст столь всесторонний и глубокий взгляд на информатику. 

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

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

Прочтите книгу Питера Норвига «Научитесь программировать за 10 лет».

 

Майк Каутермарш, работает в Product Hunt

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

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

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

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

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

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

Однажды мой наставник дал мне классный совет: “Ты должен поднять свою пятую точку со стула и пойти поговорить со своими клиентами”. Именно после этого все поменялось для меня.

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

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

Начать – это совсем просто, и вы тоже так можете.

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

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

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

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

Итак, как же стать отличным программистом?

  1. Не закрывайтесь в «технической ракушке» и постарайтесь узнать, как работает бизнес.
  2. Изучите и применяйте принцип Парето 20/80!
  3. Используйте свои технические навыки для того, чтобы решить важные для компании задачи.

 

 

Пауль Колоцсвари, работает в компании Motorola

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

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

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

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

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

www.kv.by

Выгодно ли быть программистом? С точки зрения манимейкинга, заработка и здоровья. А как стать программистом?

Мне постучал один знакомый и скинул ссылку на статью, что-то вроде «5 плюсов и минусов программирования». Я прочитал и выразил свое недовольное довольство по поводу этой статьи. Она была написана год назад и я решил переработать ее и сделать собственную. А потом мне в голову пришла мысль написать еще и о плюсах и минусах специальности «программирование» для манимейкинга.

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

Итак, тем, кто хочет начать изучать программирование, посвящается. Сначала о плюсах программирования.

Плюсы:

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

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

3. Перейти с одного языка на другой довольно просто. Для знающих C++ никакого труда перейти на PHP нет (у меня это заняло 2 дня).

4. Я считаю это плюсом: программисты – почти секта. Свои шутки, свой внешний вид, разговоры о том, в чем «нормальные люди» не понимают не слово. Майки, кружки, кепки с непонятными словами. И только второй такой же, посмотрев на все это – оценит по достоинству. Мне нравится :)

5. По поводу фриланса -можно сидеть себе целый день дома и нормально зарабатывать.

6. Можно выучить программирование самостоятельно. А вот выучить, например, машиностроение самостоятельно не выйдет.

Минусы:

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

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

3. Программист привязан к компьютеру. Сломался компьютер – не может работать. Кроме того, если сгорит винчестер, то часто еще и теряются многолетние наработки. Хотя от этого спасает бекап.

4. Работать через Интернет сложно, т.к. если он (интернет) сломается, а еще и нужно сдавать проект… Такая беготня начнется, Вы не представляете. Тот, кто не купил ноутбук будет в этот момент проклинать все на свете :)

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

6. А вот и хрен )) Это все.

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

Теперь о возможности заработать.

Я уже давно занимаюсь только фрилансом и своими проектами и могу сказать – 2k$ в месяц – это нормально (для фриланса). Но нужно учитывать, что работать нужно каждый день и часов по 10, а это уже тяжело (я сейчас зарабатываю меньше). С постоянной работой хуже – средняя начальная ставка в моем городе около 500-800$/месяц. А выйти на 1000$+ на постоянной работе очень сложно (повышения почти никогда не дают).

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

Я считаю, что для манимейкера важнее быть программистом, чем СЕО. По очень простой причине – СЕО легче :) Да-да, СЕО легче. Оно часто отнимает больше времени и туда нужно вкладывать деньги, но оно легче. Если разобраться в нем, то оно вообще банально (все супер-методы продвижения обычно сводятся к медиа-рекламе и ссылкам).

А вот написать какой-нибудь позарез нужный скрипт СЕОшник, как правило, не может. Ну например, у Вас есть база из 50.000 каталогов. И нужно ее проверить – не закрылись ли эти каталоги или не попали ли в бан в Яндексе. Программист за 5 минут напишет скрипт для проверки всей этой базы, а что делать СЕОшнику? Руками что ли проверять? Или за деньги заказывать такой скрипт? А за деньги – не дешево, долларов 100.

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

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

Хотите стать программистом?

Это не так сложно, как кажется. Во всяком случае в наши дни. Умные дяди придумали столько всяких штук для «легкого» написания программы, что теперь заниматься этим может каждый. Например, PHP – это говно-язык, придуманный для того, чтобы можно было километровые программы сокращать до нескольких строк. Как фанату программирования мне даже обидно – писать на PHP довольно легко, но я представляю сколько труда было вложено, чтобы создать этот язык.

Теперь я порекомендую, как стать программистом (вариант – «учиться в ВУЗ» я не рассматриваю). Конечная цель для нас – писать в Web. Есть два пути – суть самурая и путь идиота.

Путь самурая.

Обычно учить все нужно по книгам, сразу говорю. Статьи из сети не подходят – слишком непонятно там все. Купите какую-нибудь толстую книгу по C++ и попробуйте пару недель почитать. Покупайте книгу о программировании на «чистом» C++, например самоучитель от Бьерна Страуструп. Причем читать книгу с компьютера я бы не рекомендовал. Писать лучше всего на Borlanc C++ 3.1

Когда что-то начнете понимать в C++, можно переходить к Perl. Почему к перл? Потому, что он – сложный! И непонятный. И дает заодно знания о Linux (хотите-не-хотите, так сказать). «До победного» его учить не обязательно, но знаеть о нем точно необходимо.

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

А уже только потом можно купить тонкий и дешевый справочник по PHP и MySQL. Там все будет понятно сразу, после таких-то знаний. ;)

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

Путь идиота.

Я назвал его так, потому что человек, прошедший этот путь будет что-то знать о Web (но меньше, чем прошедший путь самурая). И не будет иметь представления о программировании «в общем» и не будет знать, как работают и устроены сервера. Поверьте, знать целую картину «компьютерого мира» – полезная вещь. Понимать, как оно работает и т.п.

Так вот. Тут все просто – сразу покупаем книгу «программирование PHP + MySQL для начинающих» и начинаем ее читать. Проблема тут очевидна: ничего не понимая в программировании, не имея опыта – сразу окунуться в Web и базы данных. Это сложно. И Вам, я думаю, понятно, какое качество кода будет у таких «программистов», если вообще код будет.

Продавать ничего нельзя, боже упаси! Но для себя кое-что делать уже будет можно.

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

А вообще, если есть желание, то пугаться не нужно. Попробуйте сначала первый метод, потом второй. Я верю – у того, кто хочет, все получится!

webnewsite.ru

Сможете ли вы стать программистом?

Любовь к делу

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

Спросите себя, почему вы хотите стать программистом. Если ответ — «Это модно» или «Чтобы заработать деньги», то вам лучше заняться чем-нибудь другим. Нет ничего ужаснее, чем ходить на работу просто потому, что надо.

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

Работодателю на заметку: хороший знак, если в резюме в графе «Хобби» соискатель на должность программиста указал: «Пишу код».

Умение проявлять гибкость

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

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

Работодателю на заметку: эксперт в С++ или Java — это здорово, но ещё лучше, если программист, специализирующийся на том или ином языке, разбирается в остальных, знает, как устроен не только back-end, но и front-end.

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

Готовность обучаться

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

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

Подспорьем послужит сервис GeekBrains.ru. Там вы сможете совершенствовать навыки кодинга на Python, PHP и других языках, с которыми работаете, и прокачивать сопутствующие скиллы. Например, в области системного администрирования, SEO или SMM.

Планирование

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

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

Вы должны мастерски управлять своим временем, грамотно распределять ресурсы и расставлять приоритеты. Это называется планированием.

Умение работать в команде

Почему программисту так важно следить за временем? Потому что он не один. От своевременности его действий зависит работа большого количества людей: дизайнеров, менеджеров, маркетологов.

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

Работодателю на заметку: предложите программисту-стажёру провести небольшую самопрезентацию перед коллегами — поймёте, нет ли у него проблем с общением.

Человек, испытывающий трудности с коммуникацией, не командный игрок. Он не объяснит коллегам задачу и не поймёт фидбэк.

Умение быстро входить в состояние потока

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

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

А что нужно вам, чтобы войти в состояние потока? Изучите одноимённую книгу Михайя Чиксентмихайи и выработайте свой алгоритм.

Терпеливость

Написать код — полдела. В работе программиста много рутины: проверка кода, поиск и устранение багов и — самое ненавистное — правки. Это требует усидчивости и терпения.

Простой тест: выберете один из бесплатных курсов GeekBrains и пройдите от начала до конца. Выполните все задания не халтуря. Если справитесь, то с настырностью (в лучшем понимании этого слова) у вас порядок. А как насчёт стрессоустойчивости?

Умение справляться с трудностями

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

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

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

Здоровая порция лени

Ларри Уолл, создатель языка программирования Perl, в своей книге называет три важных для программиста качества:

  • высокая самооценка;
  • нетерпеливость;
  • лень.

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

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

Амбициозность

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

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

Изучать основы программирования

lifehacker.ru

ТОП-10 качеств программиста. Мнение лучших работодателей | GeekBrains

Личностные качества хорошего разработчика глазами ведущих IT-компаний.

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

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

Всё зависит от особенностей работы в конкретной компании

Рекомендуется брать поправку на личные особенности при выборе работы. Например, интроверту, скорее всего, будет комфортнее работать удаленно. А экстраверту - в open space-офисе.

Игорь Селецкий, CEO & Founder в Cloud Linux Inc.: “Все люди разные и программисты в том числе. Одни могут летать в облаках, другие будут “цепляться” к деталям - и те и другие важны, пусть и для различных позиций, задач и даже компаний. А так, главное, чтобы человек был хороший. Я могу назвать качества, которые значимы для работников в моей компании. Но ведь это не важно. Есть другие компании, где эти качества не играют никакой роли или, наоборот, очень мешают. У нас вся работа удалённая, поэтому необходимо, чтоб программисты могли сами следить за своим временем и умели работать сами по себе. А люди, которым обязательно нужен тесный контакт (“face to face”) у нас не приживаются. Но это наша специфика. У большинства компаний наверняка наоборот. Но это всё “качества” нужные отдельным компаниям, позициям, а не программистам в общем.”

“Работа программиста - это решение задач”

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

Дмитрий Ейбоженко, Development Team Lead в Яндекс:

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

Аналитический склад ума, упорство и умение работать в команде

Иван Луковников, вице-президент по разработке и облачным технологиям в Acronis:

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

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

Александр Решетков, ИТ-директор компании Softline:

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

Хороший программист умеет презентовать свои идеи и общаться с людьми

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

Александр Горный, директор по информационным технологиям Mail.Ru Group: 

“Я бы выделил три главных достоинства разработчика: ответственность, коммуникабельность и инициативность. Ответственность обеспечивает написание хорошего кода и выполнение задач в срок. Инициативность дает возможность реализовывать собственные идеи. На коммуникабельности я бы хотел остановиться отдельно. Современная разработка - это во многом командная история, чтобы преуспеть в ней, очень важны определенные социальные навыки, так называемые soft skills: умение находить общий язык с коллегами и партнерами, вести переговоры, эффективно презентовать свои идеи, хорошо выступать перед большой аудиторией, управлять своим временем и так далее. 

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

Наиболее ценные качества программиста по мнению работодателей:

  1. Умение решать задачи
  2. Аналитический склад ума
  3. Упорство
  4. Умение работать в команде
  5. Хорошая концентрация
  6. Усидчивость
  7. Алгоритмизированный подход
  8. Ответственность
  9. Коммуникабельность
  10. Инициативность

Нужно понимать, что эти качества крайне желательны, но не обязательны. Здесь всё зависит от компании и специфики должности. Ларри Уолл, создатель Perl, сказал: “Многие знакомы с достоинствами программиста. Их всего три, и, разумеется, это: лень, нетерпеливость и гордыня.” Объясняется это просто: ленивый человек, скорее всего, найдет наиболее эффективный способ решения задачи. Поэтому, если вы обнаружили у себя несоответствие с вышеперечисленными пунктами, то не теряйте энтузиазма. Найдите “позитивное” применение своим особенностям. 

Автор: Михаил Климов

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

geekbrains.ru



О сайте

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