Программист — Вы мне нужны!!!


Содержание

Как я стал разработчиком с нуля. И вы сможете

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

Короче, мне за 30, я состоявшийся профессионал, и я решил освоить фронтенд-разработку. Захотелось двух вещей:

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

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

С чего начать?

Главная проблема новичка-кодера. Технологий море, языков океан, терминов – безграничная вселенная. Фреймворки, библиотеки, методологии, метаязыки… Неясно вообще ничего, а знакомые программисты и вовсе советуют не лезть. А если очень хочется?

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

Как учиться?

В общем есть два пути:

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

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

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

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

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

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

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

Где учиться?

Для желающего освоить новую профессию в интернете есть куча платных и бесплатных материалов. В моем случае начинающего веб-разработчика я обнаружил:

  • Неиссякаемый YouTube. Вроде бы все есть, но с чего начать, а тем более, куда продолжить, – непонятно. Знания не систематизированны. Блогеры любят фокусироваться на частностях, упуская общую картину. Однако YouTube хорош, когда нужно углубить какую-то тему.
  • Русскоязычные платные курсы «Нетология», GeekBrains, HTML Academy и подобные. Дороговато, если не решил крепко-накрепко менять профессию и не уверен, что в будущем отобьешь затраты. К тому же бесплатные вебинары некоторых школ не блистали качеством, а среди преподавателей по другим специальностям я обнаружил коллег, чей профессионализм оставляет желать лучшего. Хм.

По ценам. Первый уровень месячного интенсива HTML + CSS в HTML Academy стоит 24 500 рублей. Профессия frontend-разработчик в «Нетологии» без скидки 54 900 рублей, правда, за 8-месячные курсы плюс обещают стажировку и трудоустройство. В GeekBrains берутся учить за 7855 руб/мес на протяжение семи месяцев, в комплекте стажировка на реальном проекте GeekBrains или Mail.Ru, а то и у партнеров вплоть до Сбербанка.

И это лишь немногое из того, где можно поучиться.

Меня спасла реклама в Facebook. Предложили англоязычную школу Treehouse, и я повелся. Кликнул на бесплатный курс Introduction to HTML and CSS, прошел его.

Обучение было как раз таким, какое я искал: на видео профессиональный наставник с чувством, с толком, с расстановкой объяснял азы фронтенда. Иногда на экране появлялась доходчивая инфографика. В ходе разбора темы нужно было выполнять задания, а то и пройти целый челлендж, либо ответить на вопросы.В конце – контрольная работа. Есть «песочница», где писать код и ссылки на допматериалы – документации на Mozilla Developer Network и др.

Мне понравилось. Вот просто – понравилось. Обучение стоило всего 25 долларов в месяц, за которые я получал неограниченный доступ ко всем курсам школы. Я и вписался.

И что было дальше?

По мере прохождения курсов я работал над учебными проектами. Это были простенькие одностраничные сайтики. Как только происходил затык, и мне хотелось углубиться в тему, я направлялся на YouTube и в Telegram-чаты. Почувствовав силы, присоединился к тематическим сообществам на Facebook и время от времени отвечал на вопросы новичков.

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

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

Первые деньги

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

В случае с фронтендом это проще простого:

  1. Если вы хорошо учитесь, то у вас по ходу дела будут появляться готовые учебные проекты.
  2. В интернете есть базы готовых макетов. Загружаете – и верстаете. Чтобы не ковыряться слишком долго, поставьте себе цель: сверстать 5 макетов в неделю. Ну или хотя бы парочку.
  3. Наверняка у вас есть друзья, которым нужна сайт. Возьмите и сделайте им подарок.
  4. Если таковых друзей нет, то предложите свои услуги в каком-нибудь профессиональном сообществе. Бесплатно.

Как только почувствовали, что ваш кодинг-скилл достиг 80 lvl, и вы способны на раз-два решать актуальные задачи, можно искать работу. Тут прямой путь как минимум на HeadHunter, а если хотите фрилансить – добро пожаловать на Upwork.

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

(5.00 из 5, оценили: 5)

Неправильный, но быстрый способ стать программистом

Содержание статьи

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

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

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

Как я стал программистом

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

Первый шаг — резюме

Первая и основная проблема, с которой сталкиваются новички, — резюме. Без адекватного, цепляющего резюме тебя не будут приглашать на собеседования. Но как быть тем, у кого совсем нет опыта работы? Для того чтобы «не с пустыми руками» идти к HR, мы с другом вписали мне в резюме целый год опыта работы над его проектом, над которым якобы вместе трудились.

Зарплатная политика

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

Позор и стыд

Первые собеседования были провальными. Надо мной буквально смеялись. На первом же техническом собеседовании, где мне дали пару задачек на бумаге, меня раскусили в два счёта. Кто-то даже по-отечески посоветовал книгу Thinking in Java.

Первая работа

В конце концов меня пригласили на собеседование в филиал одной датской компании, где я ответил на фундаментальные вопросы и приятно удивил всех своим английским. Меня взяли на должность Junior Java developer с одним условием — первые три месяца я буду проходить курс SCJP (Sun Certified Java Programmer), который восполнил бы мои пробелы и выковал бы из меня более подготовленного специалиста. Что может быть лучше, чем оплачиваемая стажировка без нужды работать (выдавать свою некомпетентность)? В этой компании я проработал полгода, чтобы через несколько месяцев пойти на повышение в компанию покрупнее.

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

Рекомендации для начинающих программистов

  1. Резюме. Оно должно быть правильно отформатированным и написанным исключительно на английском. Если не хватает опыта, то его можно (и нужно) придумать, но следует подготовиться отвечать за каждое написанное в резюме слово. Например, если у тебя там написано JMS (Java Message Service), то как минимум следует пройти хоть одну обучалку и поиграться с JMS, поделать какие-нибудь примеры, пускай это и будет банальное «Hello, world!». Теперь будет удобнее пускать пыль в глаза, вы ты и правда «работал с JMS».
  • Выучи азбуку программирования. Если ты ещё можешь позволить себе «плавать» на глубоких уровнях каких-нибудь комплексных технологий вроде Struts и Spring, то неправильные ответы на элементарные вопросы тебе никогда не простят. Если тебя ночью разбудить, то ты должен уметь рассказать про ООП, наследование, инкапсуляцию, полиморфизм и другие базовые концепции, а также суметь объяснить это всё на примерах.
  • Практика. Научиться программировать можно, только лишь программируя. Это больно и неприятно (если ты не программист), но другого пути нет. Единственный способ перестать бояться задачек на собеседованиях — порешать их дома самостоятельно.
  • Читай книги и проходи туториалы по Java только на английском Абсолютно все термины программирования проще понимать на языке оригинала, то есть на английском. Читать техническую литературу по Java на русском — себя не уважать. Почему? Потому что, чтобы понимать что-нибудь в духе «…модуль таблицы во многих смыслах представляет собой промежуточный вариант, компромиссный по отношению к сценарию транзакции и модели предметной области», нужно быть поистине гением, которым ты вряд ли являешься.
  • Выучи, наконец, английский! В первую очередь это касается разговорного английского. Сложно сосчитать то огромное количество толковых программистов, которых на моей памяти забраковали по одной единственной причине — неудовлетворительный уровень разговорного английского. Нет, если ты, конечно, собираешься работать программистом где-нибудь в отечественной компании, то твой уровень языка не будет играть важной роли. Но если ты хочешь попасть на работу в международную компанию, то сам бог велел выучить язык. Уровень твоего английского будет конвертироваться в дополнительные сотни долларов прибавки к зарплате.
  • Знай рынок. Походи по вакансиям, почитай требования, поспрашивай друзей-программистов, сколько они получают. Используй сервисы, которые позволят составить более полную картину о рынке IT. Ты был бы удивлён, узнав о том, насколько велико количество талантливых программистов, которые получают в два раза меньше, чем могли бы, только лишь по причине своей лени и нежелания держать нос по ветру.
  • Торгуйся. Нет ничего предосудительного в том, чтобы торговаться за зарплату. Твоим аргументом в споре может быть как хороший английский, так и предложение о работе в другой компании. Последний аргумент особенно хорошо работает: «Да, но мне в Luxoft предлагают на 300 долларов больше, почему я должен соглашаться на ваши условия? Может, мы могли бы найти компромиссный вариант?». В своё время мне пару раз удалось выторговать дополнительную сотню долларов к своей зарплате, и через год эта сотня долларов дала мне дополнительные 1 800 долларов дохода на ровном месте. Ты должен понимать, что даже для небольших зарубежных IT-компаний лишняя сотня баксов как капля в море.
  • Найди себе ментора. Хорошо, если у тебя будет более опытный товарищ, который сможет помочь советом и ответить даже на самые глупые вопросы. Благодаря его опыту и моральной поддержке ты будешь продвигаться в программировании быстрее, чем в одиночку. Если нет ментора, то неплохо сходить на какие-нибудь курсы по программированию, которые не только дадут более полную картинку того, чем занимается программист, но и позволят познакомиться с более опытными людьми. Кто знает, может быть, кто-нибудь из них захочет стать твоим ментором.
  • Начни свой проект. Даже если он будет образцом самых худших практик кодинга и ты его никогда не закончишь, по крайней мере, у тебя будет то дело, ради которого захочется разбираться в программировании и изучать новые технологии. Кроме того, у тебя появится дополнительная тема для задушевных бесед на собеседованиях.
  • Ищи работу летом. Во-первых, когда все в отпусках, в компаниях более остро ощущается нехватка кадров и повышается вероятность того, что тебя позовут на собеседование. Во-вторых, поскольку твои конкуренты-соискатели тоже на отдыхе, у тебя опять-таки повышаются шансы быть замеченным HR.
  • Никогда не сдавайся. Даже если кажется, что ты заваливаешь собеседование, важно проявить стойкость и продолжить попытки решить задачу, какой бы сложной она ни казалась. Кто знает, может быть, тебя именно в этот момент проверяют на усердие в работе!
  • Избегай заданий на компьютере. Нет способа быстрее раскусить непрофессионала, чем сразу же бросить его в пекло программирования. Твоя задача — постараться перевести все беседы на высокий уровень, где обсуждаются общие подходы и концепции, но никак не конкретная реализация в решении той или иной задачи. Если тебе дали бумагу и ручку и попросили записать решение, то попроси возможность нарисовать его схематически. Таким образом, удалившись от синтаксиса конкретного языка, ты не только убережёшь себя от каких-нибудь режущих глаз ошибок, но и покажешь, что способен мыслить абстрактно, не вдаваясь так уж сильно в детали.
  • Начинай говорить первым. Избегай ситуаций, когда в воздухе виснет пауза, во время которой в мозгу у интервьюера может созреть очередной коварный вопрос. Как только происходит какая-либо заминка, начинай рассказывать что-нибудь из того, что ты хорошо знаешь. Постарайся навязать интервьюеру свою игру.
  • Старайся говорить правду. Если ты никогда не писал PL/SQL процедуры, то лучше об этом сказать прямо. Возможно, в этом для тебя будет минус, однако ты убережёшь себя от нужды выкручиваться, отвечая на вопрос, в котором ничего не смыслишь. Опытный интервьюер за версту почувствует твои пробелы в знаниях.
  • Бойся маленьких компаний. В небольших компаниях, как правило, небольшие команды. Чем меньше в команде людей, тем быстрее тебя раскусят. Твоя цель — большая и неповоротливая корпорация, где ты сможешь выиграть для себя немного времени.
  • Соблюдай дресс-код. Если ты придёшь на собеседование на должность программиста в шикарном костюме, то это вызовет больше подозрения, чем если ты явишься в шортах или потёртом свитере. Не лишним будет также нацепить очки, мол, «эдакий я книжный червь».
  • Конечно, кто-то знающий может отметить, что приведённый выше рецепт — это скорее способ стать кодером, чем программистом, и он где-то будет прав. Однако дело всё в том, что вы никогда не найдёте вакансию с заголовком «Требуется плохой кодер». Всем нужны программисты. Желательно senior. У которых более пяти лет опыта работы на корпоративных проектах и которые одинаково хорошо владеют сразу несколькими языками программирования, при этом досконально разбираются в СУБД, умеют писать bash-скрипты, хранимые процедуры, знают в совершенстве Linux, TCP/IP, обладают лидерскими качествами, стрессоустойчивостью, коммуникабельностью и ещё массой навыков, «без которых никак».

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

LifeHacker

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

Зачем учиться программировать непрограммистам

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

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

Увеличивающийся спрос на программистов отражается на всех сферах жизни, в том числе образовании. Например, в Японии решено с 2020 года ввести обязательные уроки программирования в начальной школе. В некоторых государственных колледжах США уже появился учебный курс «Разработка приложений на Swift», а власти выделят на программирование в американских школах $200 млн в год.

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

CEO компании Apple

И мы с ним согласны. Программирование постепенно становится базовым навыком в современном мире, и дальше объясним, в чем его польза.

Программирование — фундаментальный навык

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

Если говорить серьезно, то программирование — фундаментальный навык по той простой причине, что оно заставляет мыслить абстрактно. В его основе лежат принципы анализа и синтеза, или композиции и декомпозиции — это одно и то же по своей сути. В английском языке существует понятие “computational thinking”, которое можно определить как совокупность умений мыслить абстрактно, критически и разделять задачу на небольшие части. Именно этому может научить программирование, по мнению экспертов.

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

Кто должен заняться программированием

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

Контент-менеджер и бильд-редактор

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

В любом случае знания языка разметки HTML для контент-менеджера обязательны. Некоторые начинающие изучать HTML и CSS в итоге идут дальше и становятся полноценными frontend-разработчиками.

SEO-специалист

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

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

Менеджер проектов

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

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

Интернет-маркетолог

Если программирование и маркетинг кажутся вам вещами несовместными, вы удивитесь. Здесь тоже всем заправляет аналитика, а для решения ее задач в последнее время активно применяется язык программирования Python. Специально для этих целей созданы библиотеки NumPy, Matplotlib, Pandas, Jupyter и другие.

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

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

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

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

Хорошим стартом и дополнительной мотивацией к овладению новыми навыками станет прохождение онлайн-курсов. Например, «Аналитик данных на Python» для тех, кто желает прокачать себя как маркетолога. Новичкам рекомендуем взглянуть на курс «Профессия frontend-разработчик», где вы освоите базовые навыки HTML и CSS, полезные в работе маркетологов, менеджеров и других специалистов.

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

Заключение

Мысль о том, что программирование — вторая грамотность, озвучил еще в 1981 году на конференции ЮНЕСКО академик А.П. Ершов. В 2020 году мы видим, что эта идея воплощается в жизнь, хотя в докладе Ершова содержался несколько иной смысл — соответственно этапу развития компьютеров того времени.

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

Сложно ли стать программистом

Многие слышали, что хорошо быть программистом.

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

У них хорошие зарплаты. Где как, конечно. В Москве зарплаты по меркам замкадья огромные, но москвичей программистскими зарплатами не удивишь. В Минске, говорят, зарплаты у программистов почти на московском уровне, а то и выше, другие же профессии на такие деньги рассчитывать не позволяют. В российской глубинке платят гораздо меньше, чем в Москве, но все равно хорошо. Мой друг простым программистом в Перми, на неполной рабочей неделе, еще в студенческие годы, получал 50 тыс рублей, что на тот момент составляло $1700. Где-то программистам платят очень хорошо, где-то — неплохо, но уж точно зарплатой они не обижены.

Так нужно ли лезть в программирование?

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

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

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

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

Редко встречаются люди, не интересовавшиеся программированием, но потом влюбившиеся в него.

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

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

masterok

Мастерок.жж.рф

Хочу все знать

Когда я поступал в институт, то планировал идти учиться на программиста. Уже тогда в 90-е это было очень перспективное направление. Компьютеры только только начали массово появляться в быту, бизнесе и производстве. Но скорость этого процесса была настолько велика, что никто не сомневался в том, что программисты будут «в цене».

Многие хотели заниматься программированием, но даже та скудная информация, которую предоставляли в школе по этой теме давала понять что это направление не все смогут осилить. На специальность «программирование» я так и не прошел по баллам, но обучаясь на «автоматизации» самостоятельно и с помощью друзей довольно плотно занимался изучением предмета и практиковался как только мог. Как оказалось не зря. Жизнь меня все же свела достаточно плотно с программированием на базе «1С».

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

Следует отметить, что уже который год профессия программиста является желанной и высокооплачиваемой. Если же говорить о том, кто из программистов наиболее востребован работодателями, то больше всех вакансий в этом году – для веб-разработчиков. Их более половины от общего количества вакансий. В большим отрывом идут далее программисты . NET и JAVA, а в пятерке лидеров – Mobile Development и C++.

Вот графически это представлено так:

Несомненным и постоянным лидером является веб-разработка, а вот программирование С/С++ показывало отличную динамику в прошлом году, но за последние пару кварталов утратило свои позиции, пропустив вперед стремительно набирающее популярность .NET программирование.

После того, как у меня не сложилось с долгосрочными перспективами на заводе по специальности, я обратил свои взоры на программирование в сфере «1С». Вот что то, а бухгалтерских и торговых программ точно всегда будет хватать и проблем с ним никогда не будет мало, думалось мне. Текущая обстановка у меня на фирме подтверждает эти предположения. Кризис, не кризис, а налоги платить надо, зарплату начислять надо и худо ли бедно учет вести надо. А значит и я при деле. А значит и зарплата в семье.

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

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

  • Освоите фундаментальные основы программирования;
  • Познакомитесь с основными терминами и понятиями;
  • Научитесь разрабатывать алгоритмы;
  • Получите реальный опыт разработки;
  • Сможете писать простые программы;
  • Познакомитесь с языками и направлениями программирования;
  • Сможете четко определиться с направлением ваших интересов;
  • Получите материалы и инструкции для дальнейшего развития

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

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

Вот тут вы можете почитать ОТЗЫВЫ УЧЕНИКОВ этого курса и вот такая программа в частности предлагается на он-лайн курсе «Основы программирования»:

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

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

Мне нужен программист, где его искать?

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

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

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

Проблема еще в том, что финансирование проекта скромное, готовы платить небольшую ЗП + дать долю в организации официально. Проект не быстрый — полгода разработки ориентировочно.

То есть нужен человек, который сам давно хотел принять участие в классном стартапе. Где такого найти и как? :) Ах, да, удаленка.

Конкурс «Есть такая профессия! — 2006»

Программистами хотят быть все. Программисты — элита. Интеллектуалы. Волшебники клавиатуры и мыши.

Хочу быть программистом! Ну, в крайнем случае — системным администратором.

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

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

Тоже типичное мнение — мнение пользователей.

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

В объявлениях набор требований зашкаливает за все мыслимые пределы —

требуется знание Oracle, C++, Delphi, 1C, технологий ASP, HTML, XML, OLE и ActiveX и т.д.

Не хватает только нимба.

Как выглядит реальный кандидат?

Он из перечисленного знает только треть — но со всем, что он знает, он плотно работал. Другой — знает все. Потому что видел эти аббревиатуры и искренне полагает, что разберется.:)

Кого из них возьмут на работу?

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

Вот! В этом соль! Крутость программиста — не в том, сколько технологий и приемов он знает. А в том, может ли он решить реально возникающие задачи.

Какой язык должен программист изучать в первую очередь? Pascal? C? SQL?

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

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

Поэтому программисты делятся на две категории: те, кто решает задачи, и те, кто гордится своими знаниями.

Знания? Да, знания нужны. Не нужно знать десять языков — достаточно знать один, но уметь решать на нем задачи. И при необходимости суметь выучить новый.

Мне в свое время пришлось временно забросить Pascal и выучить язык 1C. При всей бедности языка 1С, я понимаю, почему руководители предпочитают программистов на 1С, а не на Delphi или Visual C.

Открыть вам эту тайну? Читайте выше. 1С — ники могут быстро решать задачи предприятия.

И здесь самым важным умением оказвыается не умение писать программы, а умение забыть о том, что ты программист, и вникнуть в проблемы предприятия — как оно работает? Что ему нужно?

Побеседовать с людьми, пусть даже не знающими компьютера — и понять, как они делают свою работу.

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

Так что самое главное в программисте — умение смотреть шире своей профессии, изучать новое.

Типичный программист — любопытен как кошка и оригинален, как ребенок.

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

И вот тут появляется второй критерий оценки программиста: работают ли твои программы тогда, когда тебя нет рядом?

Если нет — плохи твои дела, парень. Второй раз к тебе уже не обратятся. Найдут другого.

Как идет разработка программы?

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

Это называется постановка задачи. Срок — неделя.

Потом делаем — это собственно программирование. Недели две пишем.

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

Потом — еще месяц с трепетом ждем, не вылезут ли еще какие ошибки. Это опытная эксплуатация.

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

(Но руководство не всегда готово пойти таким экстремистам навстречу. Только после демонстрации на опыте, что такой подход сокращает сроки и улучшает качество.)

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

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

Господа руководители! Не сажайте программиста вместе с пользователями!

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

* Сохранена орфография и пунктуация автора

Профессия программист

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

Правда ли, что программирование — ну самая востребованная специальность в мире? Кто такие системные и прикладные программисты? Сколько лет нужно учиться на программиста? В какой вуз и колледж поступить, чтобы стать программистом?

Говорят, что в мире есть 10 видов людей. Те, кто понимает двоичный код… и те, кто не понимает.
Юмор программистов

Программирование зародилось в XIX веке, и до середины XX века, когда случился бурный рост информационных технологий, создание программ для машины было сродни искусству. Программирование было уделом избранных. Сегодня же профессия программиста распространена и очень востребована. В 2020 году в мире насчитывалось 18.2 млн разработчиков программного обеспечения, из них 1.3 млн — в России.
Давайте посмотрим, какое будущее у профессии программиста. И что ему угрожает.

Программист – это специалист, создающий исходный код для программы. Такой программой может быть операционная система компьютера, видеоигра, web или мобильное приложение и даже алгоритм работы микроволновки. Программный код пишется на специальном языке программирования. Он состоит из обычных слов и некоторых специальных символов. Сегодня насчитывается несколько сотен языков программирования, но самые распространенные из них – Java, Python, PHP, C#, JavaScript, C, С++, Objective-C, Swift. Какой язык программирования выбрать, программист решает сам в зависимости от конкретной задачи (сделать игру, приложение для web или программу для сервера) и собственных знаний. Квалифицированный программист уверенно использует 2-4 языка.

Если вы думаете, что программист = компьютерщик, то это далеко не так. Самое удивительное, что программист не обязательно работает на компьютере. Он может писать код программы хоть на салфетке, а компьютер ему нужен, чтобы применить этот код и протестировать.
Не стоит также приравнивать программиста к «айтишнику». Под общим названием «IT-специалист» скрывается более 50 разных профессий и должностей. Например, UIX-дизайнер (разработчик интерфейсов), account-менеджер (специалист техподдержки), системный администратор, devops («инженер по автоматизации IT-процессов»), менеджер IT-проекта – это «айтишники», но не программисты. Однако стоит помнить, что в любую из IT-профессий можно попасть через образование программиста.

По специализации программисты делятся на системных, прикладных и веб-программистов. Прикладные программисты занимаются написанием различных программ и приложений: игры (например, популярная игра Angry birds), офисные приложения (например, Microsoft Office Word) и многое другое. Системные программисты занимаются созданием операционных систем (например, Android или iOS). Веб-программисты разрабатывают интернет-сайты и программы, которые поддерживают работу этих сайтов.
На сайтах вакансий вы найдете разделение программистов по тем языкам, с которыми они работают: программист C++, программист Delphi, PHP-программист. А также по типам задач, которые они выполняют: программист баз данных, фронтенд / бекенд разработчик, мобильный / десктоп разработчик, программист 1С, программист Битрикс, геймдев, архитектор ПО, системный инженер и т.д.

Плюсы и минусы профессии программиста

Профессия программиста очень притягательна для современных абитуриентов. В 2020 году в технических вузах самый большой конкурс пришелся на специальности «Прикладная математика», «Информатика и вычислительная техника», «Электроника и наноэлектроника». В 2020 году проходные баллы по ЕГЭ на эти специальности обещают только вырасти. Что так привлекает молодых в программировании?

Плюсы профессии программист:

Высокая зарплата. Средняя зарплата высококвалифицированного программиста 70-100 тыс. рублей.
Востребованность. Рынок труда для программистов растет за счет цифровизации всех сфер общественной жизни. Онлайн-образование, телемедицина, интернет вещей (IoT), даже сельское хозяйство не обходится теперь без IT-специалистов.
Интересные задачи и простор для творчества. Что делает программист на работе? Пишет код, тестирует, проверяет на уязвимости, переписывает код. Тем не менее, конечный результат кодирования – это рабочая программа с разными целями. Одни программисты создают игры. Другие программируют роботов. Третьи делают полезное приложение под Android. Четвертые создают агрегатор, который соберет все билеты мировых авиакомпаний в один сервис для бронирования авиабилетов. Разнообразно, не правда ли? А когда продукт начинает исправно работать, программист испытывает радость, как персонаж папа Карло, который из деревянного полена выстругал живого мальчика.
Возможность удаленной работы и свободный график. Программисты – это каста людей, к которым не применяют строгих офисных правил. Для поддержания креативности и работоспособности им разрешают работать из дома, приходить позже на работу. И, если вы еще не знаете, лучшие офисы принадлежат именно IT-компаниям. Загляните в Google, Microsoft, Яндекс и Mail.Ru.
Карьерный рост в России и за рубежом. Для программирования нет географических границ. Во-первых, многие российский специалисты работают удаленно в иностранных проектах. Во-вторых, переехать в «Силиконовую» долину (более точно ее называть «Кремниевой») для IT-профессионала с отличным знанием английского гораздо проще, чем, например, бухгалтеру, юристу или инженеру-строителю, которым придется изучать специфику профессии в конкретной стране.

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

Чтобы стать программистом, можно пойти тремя путями:
1. После 11 класса в вуз по направлению 09.00.00 «Информатика и вычислительная техника» или 10.00.00 «Информационная безопасность».
2. После 9 класса в колледж на эти же направления, а потом пойти или не пойти в вуз.
3. Учиться на курсах программирования и самому.

IT-сфера отличается молодостью и современным подходом к образованию. При трудоустройстве ценится не столько диплом, сколько те навыки (hard skills), которые у будущего сотрудника в багаже. Работодатель даст тестовое задание по программированию и по его результатам примет или не примет соискателя на работу. Именно поэтому приобретать знания и опыт в информационных технологиях можно и дома с помощью книг, online-курсов и создания небольших программ. Какой вариант образования лучше, решает каждый сам. Главный вопрос, который должен задать себе программист – «Достаточно ли я усидчивый и целеустремленный человек, чтобы выучиться и потом конкурировать с теми, кто пришел из вуза?».

В каких вузах и колледжах учиться на программиста
Для поступления в вуз необходимо успешно сдать ЕГЭ по математике, русскому языку, информатике и ИКТ, физике, английскому языку (4 из 5 экзаменов в зависимости от специализации). В Москве получить образование программиста можно во многих учебных организациях.
Полный список вузов, колледжей и техникумов смотрите здесь >>

• Компании-разработчики (сервисы Booking.com, Mail.ru, Yandex, Unisender)
• IT-отделы и отделы digital-маркетинга организаций (Сбербанк России, Газпром, Тинькофф банк)
• Системные интеграторы (Крок, Softline, Техносерв, Ланит, Ай-Теко)

Из-за бурного роста сферы IT и дефицита разработчиков ПО, работать программистом можно начать еще в институте. Со 2-3 курса можно устроиться junior-разработчиком и начинать движение по карьерной лестнице. И при этом получать достойную для студента зарплату в 30-50 тысяч рублей.

Сами программисты оценивают длительность каждой ступени следующим образом:
• Первые полгода-полтора года реального опыта вы junior
• При активном обучении следующие 1-3 года работы вы middle
• А программист с опытом работы 4-6 лет – это senior

Но, конечно, стоит помнить, что границы условны, и более активный и любознательный разработчик сможет освоить все навыки senior-developer за 3 года.

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

Оплата труда (диапазон зарплат)

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

    30 000 – 260 000 рублей

Перспективы профессии (востребованность)

Сейчас отрасль IT в целом и программирование в частности находятся на пике востребованности. Компании конкурируют за квалифицированных специалистов. В перспективе ближайших 5 лет программистов ждет благополучная жизнь и высокие зарплаты, потому что молодых кадров станет немного меньше. Придет период демографической ямы из-за низкой рождаемости в начале 90-х гг.
Но рынок IT ждет несколько опасностей. Во-первых, обучение программированию сейчас начинается уже практически с детского сада. Самые известные обучающие языки — это Scratch от MIT и Blockly от Google. Вероятно, навык программирования будет настолько же распространен, как знание английского языка, то есть будет входить в «джентльменский набор» при приеме на работу. А если им владеет почти каждый, то и ценность работы снижается.
Во-вторых, IT-образование сейчас дает почти каждый колледж и вуз. После дефицита рынок может «насытиться» профессиональными программистами, и их зарплаты упадут.
В-третьих, есть страны, в частности Индия, где IT-образование развивается еще быстрее. И в определенный момент услуги программирования насытят мировой рынок, как сейчас произошло с товарами, произведенными в Китае. С индийскими программистами трудно будет конкурировать в цене.

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

Какие компетенции и личные качества необходимы программисту

Наверняка, вы сходу назовете 3 качества, которые отличают программиста:
✎ логическое мышление
✎ математические способности
✎ усидчивость

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

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

Что делать уже сейчас

Вы думаете о программировании или хотите в будущем работать в IT? Начать развиваться можно уже в сейчас:

    ✔ Углубленно изучать математику, информатику, русский и английский язык в школе.
    ✔ Программировать и создавать веб-сайты, небольшие редакторы и полезные утилиты.
    ✔ Читать новости из сферы IT: на порталах cnews.ru, habrahabr.ru, computerworld.ru, hightech.fm и github.com.
    ✔ Заниматься в кружках по программированию и школах юного программиста.
    ✔ Посетить iСмену лагеря «Профессионалы будущего», чтобы пообщаться с настоящими IT-специалистами и узнать больше о современных технологиях.

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

Автор: Ольга Биккулова, ЦТР «Гуманитарные технологии»

Если вы хотите получать свежие статьи о профессиях, подпишитесь на нашу рассылку.

10 самых распространенных ошибок начинающих программистов

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

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

1. Выбор платформы и языка программирования

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

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

Еще один более трудоемкий способ – это ходить на собеседования. Там вы не только сможете понять, нужны ли вы вообще хоть кому-нибудь с тем объемом знаний и навыков, которыми вы обладаете на данный момент. А еще вы поймете, какие требования есть у работодателей.

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

2. Слишком много сомнений

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

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

3. Слишком высокое самомнение

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

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

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

4. Не знать английский

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

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

5. Слишком много комментариев

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

Но вот что вам не стоит делать, так это оставлять комментарии вроде этого: “score += 5; // добавляет 5”. Это очевидно, и нет нужды еще раз писать об этом в комментарии. Конечно, комментировать каждую линию – это отличное упражнение для вашей первой программы. Но это не то, к чему вы должны привыкать.

6. Не доучиваться до конца

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

7. Учить один язык за другим

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

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

8. Пренебрегать дебаггерами

Если вы работаете с такими языками как Java, C# или ActionScript3, то вам стоит пользоваться дебаггером. Он не только облегчит вашу работу, но и обнаружит то, что вы можете не заметить.

9. Не делать бэкапы своей работы

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

10. Писать код без плана

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

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

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

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

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

Программирование для себя: почему всем нужно научиться писать код

Nastya Nikolaeva

Илья Щуров

доцент кафедры высшей математики ВШЭ и преподаватель Центра непрерывного образования факультета компьютерных наук НИУ ВШЭ

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

Опрос профессиональных программистов этого года показал, что 81% из них программируют в качестве хобби. Это означает, что программирование доставляет удовольствие, что это не просто работа, но и развлечение. Вы можете пользоваться готовыми программами, и в 95% случаев вы будете это делать, даже если вы профессиональный программист. Но в любой области есть задачи, которые никто до вас не решал, и умение программировать позволяет решать их гораздо эффективнее. Однажды я был в , и меня попросили объединить две таблицы. Человек, который поручил мне эту задачу, ожидал, что я начну по одной копировать ячейки из первой таблицы во вторую. Я перенес пару записей, мне надоело, и я написал короткий скрипт, который брал данные из одной таблицы и вместо меня заполнял гугл-форму, что не очень сложно. Мне это понравилось, но больше всего мне понравилось то, что коллеги смотрели на меня так, будто я владею какой-то магией.

Писать код интересно, но, с другой стороны, это испытание. Ты взаимодействуешь с компьютером, и очень часто это взаимодействие, особенно если ты осваиваешь новую технологию, новый язык, выглядит так. Ты пишешь код, считаешь, что написал его верно, а компьютер говорит, что у тебя ошибка синтаксиса. Действительно, забыл точку с запятой, исправил, запустил заново. А компьютер говорит: «Закрой скобку». Через несколько таких итераций программа начинает работать, и становится ясно, кто в доме хозяин. Дело в том, что и у навыка программирования, и у процесса обучения ему есть некоторые побочные (в том числе положительные) эффекты.

1. Экстремальный опыт руководства

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

2. Новый подход к информации

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

3. Профессиональная коммуникация

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

Почему уметь программировать может быть опасным? Первая причина — «тыжпрограммист». Если вдруг кто-то узнает, что вы умеете программировать, на вас начинают сыпаться запросы: «Переустанови мне операционную систему, пожалуйста, ты ж программист», «Почини чайник, ты ж программист» и так далее. Это не самая страшная проблема, есть пострашнее. Например, в 2001 году на первом курсе, когда интернет еще был медленным, я решил, что нужно сделать какую-то штуку, чтобы быстрее обмениваться информацией с друзьями. Я подумал: есть почта, и она работает. Тогда я завел отдельный почтовый ящик для нашей тусовки и написал скрипт. Робот заходил в этот ящик, брал письма, которые туда пришли, и пересылал их всем, кто был подписан на эту штуку. Так сейчас работают гугл-группы. Если я хотел написать всем, я отправлял письмо на этот общий ящик; если кто-то хотел ответить, он отвечал на него же, письмо попадало ко всем, и можно было что-то обсуждать.

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

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

Как научиться?

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

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

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

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

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

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

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

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

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

Цукерберг рекомендует:  Оборонка и ДепТранс что в багаже у back-end-преподавателя
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих