Заканчивая 4 год обучения на программиста, я понимаю, что до программиста мне далеко
Статья в первую очередь направлена на молодых людей, которые еще только думают выбрать профессию.Предисловие
В уже, как нам кажется, далеком 2015 я окончил школу и начал раздумывать о том, кем же я хочу стать в этой жизни. (хороший вопрос, я все еще ищу на него ответ) Жил я в маленьком городишке, обычные школы, пару ПТУ и филиал простенького университета. Окончил музыкальную школу, играл на протяжении всей школьной жизни в театре, но после 11 класса дернуло встать на техническую тропу. Стать программистом я не хотел, хотя и отучился в классе с упором на информатику, смотрел специальности связанные с проектированием или робототехникой. Подал заявления куда смог, съездил в военное училище, понял, что не мое. Остался на выбор 2 университета, была не была, поеду в Питер.
В Питере выбор огромен, но что-то убедило меня пойти учиться на пилота — это престижно, денежно, статус в обществе. При поступлении предлагалось выбрать 3 направления, не долго думая, указал пилота (2 направления: специалист и бакалавр). Но ребята в приемной комиссии убедили все же выбрать и третье, сказал, что мне в целом без разницы, если что-то есть с программированием, то можно туда (не зря же в школе отучился дистанционно основам IT-специалиста (еще и за денежку)). Август близится к концу, мониторя каждый день списки, понимаю, что на пилота явно не прохожу из-за количества баллов, потихоньку собирался в армейку, деревья пересаживать, снежок чистить, но вдруг, звонок от родителей: «Сынок, поздравляем ты поступил!» Изумленно жду продолжения. «Ты поступил на ОрАСУВД, мы не знаем что это, но на бюджет! Мы очень рады!» «Да», — думаю я, — «главное же бюджет!» Почесывая голову, думал о том, что же значит это загадочное ОрАСУВД, но как бы там ни было, я еду в Питер, и это уже огромный повод радоваться.
Начало учебы
Первый курс был прост, как и у любой специальности ничего необычного, начерталка, математика и еще пару гуманитарных предметов. Прошло полгода, я все также не понимаю, что значит ОрАСУВД, а уж тем более чем они занимаются. В конце первого семестра к нам приезжает из Питера преподаватель и читает нам дисциплину «Введение в профессию».
«Ну все, наконец-то я услышу ответы на мои вечные вопросы», — подумал я, но не так все просто.
Специальность эта оказалась весьма востребованной и не такой далекой от программирования. Нас даже больше удивил тот факт, что это вообще единственная специальность в России не имеющих аналогов.
Суть профессии заключается в том, чтобы понимать все процессы происходящие в небе, собирать информацию со всех видов локаторов и в цифре передавать на монитор диспетчера. Проще говоря, мы делаем то, благодаря чему диспетчер может работать (ПО для авиации). Вдохновляет, не так ли? Нам говорили, что даже уголовная ответственность предусматривается, если вдруг твой код станет причиной катастрофы.
Отстранимся от кучи мелочей и тонкостей и поговорим о теме программирования.
Крупинка за крупинкой
После того, как мы успешно прошли первый курс и приехали обучаться дальше в Питер, стало немного интереснее, и с каждым семестром все понятнее чего от нас хотят. Мы наконец-то принялись кодить, изучать азы C++. С каждым семестром наши знания наращивались, было много предметов, связанных с авиацией и радиотехникой.
К началу 4 курса я уже знал пару библиотек, научился пользоваться vector’ом и его сородичами. Немножко попрактиковал ООП, наследование, классы, в общем все то, без чего программирование на C++ вообще сложно представить. Появилось очень много предметов связанных с радиотехникой, физикой, появился Linux, который казался очень сложным, но в целом интересным.
Из нас не пытались сделать хороших программистов, из нас хотели сделать людей, понимающих все процессы, наверное, именно в этом и проблема. Мы должны были быть гибридами, что-то между программистом, эксплуатантом и руководителем одновременно (не зря наверное говорят, что двух зайцев не убить). Мы знали очень много разных вещей, но всего понемножку. С каждым годом я все больше увлекался кодить, но из-за нехватки предметов направленных на это, желание узнавать больше оставалось не исполненным. Да, возможно, я мог бы заниматься сам, дома, но в студенческие годы мало когда тебя волнуют вещи, которых не будет на сессии. Именно поэтому, будучи на пороге 5 курса, я понимаю, что все знания накопленные мною за 4 года, это маленькая горстка, с которой меня никто нигде не ждет. Нет, я не говорю, что нас плохо учили, что знания не те или не нужные. Думаю все дело в том, что осознание того, что мне нравится программирование ко мне пришло только в конце 4 курса. Только сейчас я понимаю насколько огромен выбор в направлениях кодирования, сколько всего можно сделать, если выбрать один путь из тысячи и начать изучать все, что касается этой темы. Просмотрев множество вакансий, прихожу к выводу, что и податься некуда, опыта нет, знания минимальны. Руки опускаются и кажется, что все старания в учебе сыпятся на глазах. Я же сдавал все на 5, я так много старался в написании программ, а потом оказывается, что то, чем я занимаюсь в стенах университета, настоящие программисты щелкают, как семечки на перерывах.
«ИТМО, ГУАП, Политех… Я ведь реально мог поступить туда, баллов хватило бы, а даже если не туда куда хотел бы, наверно все же лучше, чем тут!», — подумал я, кусая локоть. Но выбор сделан, время забрало свое и мне остается только брать себя в руки, и делать все, что в моих силах.
Выводы и небольшое напутствие для тех кто еще не начал свой путь
Уже этим летом мне предстоит пройти практику в весьма солидной фирме, и заняться делом напрямую связанным с моей специальностью. Очень страшно, ведь я могу не оправдать не только свои надежды, но и надежды руководителя. Однако если делать что-то в этой жизни, то делать нужно с умом и качественно. Пусть я пока и не создал ничего сверхсложного или заурядного, но я ведь только начал, до меня только-только стало доходить что нужно делать, и весь вкус программирования мне еще предстоит узнать. Возможно я начал не там, и не в той сфере и вообще делаю не то, о чем мечтал. Но я уже с чего-то начал и точно понял, что хочу связать жизнь с программированием, правда пока что так и не выбрал ту самую дорогу, по которой пойду, возможно это будет БД, или же промышленное программирование, может я стану писать мобильные приложения, а может ПО для систем установленных на самолетах. Одно я точно знаю, пора начать, и как можно скорее понять, что из всего программного изобилия я бы хотел вкусить.
P.S. Знал бы, что буду плыть, взял бы плавки. Я бы очень хотел начать разбираться во всем этом раньше, но в силу незаинтересованности, рутинности обучения и не понимания, что будет дальше, упустил время. Но свято верю, что никогда не поздно.
Куда пойти учиться на программиста / Habr
Школьники уже, кажется, сдали ЕГЭ и вот-вот отправятся подавать документы в ВУЗы. Программирование и IT-технологии пользуются стабильным спросом, примерно как юридические и экономические специальности 10 лет назад.
В этой статье я расскажу как работает высшее образование для IT, как правильно выбрать IT-специальность.
Статья будет полезна не только абитурентам-2015, но и школьникам старших классов, которые уже решили связать свою жизнь с IT.
Нужно ли поступать в ВУЗ, чтобы стать программистом?
Существует множество точек зрения на этот вопрос и, уверен, в комментариях его не раз поднимут. По моему скромному мнению, высшее образование не является обязательным условием становления специалиста в области IT, ровно как и гарантией этого. Но может стать прочным фундаментом для профессионального роста.
Вы можете поступить, сдавать зачёты и экзамены, получить диплом и не стать в итоге профессиональным программистом — таких историй миллионы.
Хороший ВУЗ даёт прежде всего отличные условия для того, чтобы получать знания, опыт, связи и вырасти как личность. И только от вас зависит, как вы будете их использовать (и будете ли вообще).
Бакалавр, специалист и магистр
С тех пор как министерство образование решило интегрировать Россию в болонскую систему высшего образования прошли годы и многое изменилось. Раньше все ИТ-шники могли получить только диплом специалиста. В этом году выпустились последние дипломированные специалисты (за исключением специальностей, где срок обучения более 5 лет).
Сейчас вы можете стать бакалавром, после этого — магистром, а далее поступать в аспирантуру для соискания российского аналога Ph.D.
В старых учебных планах для «специалистов» урезали количество часов на один год, при этом самые сложные дисциплины были либо удалены, либо сокращены. Многие академические темы из области алгебры, теории вероятности, физики останутся для бакалавра неосвещёнными преподавателем. В ряде специальностей, где программирование является вспомогательной компетенцией (например, информационная безопасность), под нож попали различные технологии программирования — от web-разработки до параллельного программирования.
В остальном ни теоретический материал, ни методика преподавания не изменились. Сократился объем материала. Если в каком-то ВУЗе раньше давали лабораторные для Pascal, то по-прежнему их и дают.
При этом учебные планы магистратуры могут похвастать новизной. Об этом можно написать отдельно, если будет спрос.
Нужно учитывать, что бакалавр — это не готовый сотрудник, который может прийти к работодателю с красным дипломом и просить среднюю зарплату по больнице. Бакалавр что-то знает, что-то умеет из технологий, но как правило не умеет работать в команде, большом коллективе и полностью самостоятельно решать конкретные практические задачи. В терминологии разработчиков это Junior, подающий надежды через 2-4 года стать Middle Developer. Во многих компаниях таким выпускникам без опыта устраивают стажёрские программы с наставником на 6-12 месяцев.
Прикладной и академический бакалавриат
Само собой тот факт, что специалитет просто уменьшили на 20%, не мог порадовать министерство образования. Мало кого может порадовать «недоспециалист», который теперь знает ещё меньше. Поэтому с 2015 года будут повсеместно вводить прикладной бакалавриат как альтернативу неполному академическому образованию.
Если коротко, то прикладной от академического отличается новым учебным планом, где все дисциплины сфокусированы на выпуск максимально готового к реальным рабочим задачам сотрудника. Без стажировок и прочих головняков для работодателя. Например, из академического бакалавриата может выйти «математик-программист», а из прикладного «Разработчик .Net», «Разработчик реляционных баз данных» или «Программист C++». Последние более интересны рынку труда сразу после окончания ВУЗа, первые же после окончания бакалавриата должны поступать в магистратуру и дальше качать свои компетенции, чтобы после выпуска претендовать на более высокие позиции. Другая полезная вещь — участие в учебной программе прикладного бакалавриата работодателей (как базы практики) и IT-вендоров.
Несмотря на то, что идея на мой взгляд здравая и её реализация была начата ещё 5 лет назад в 44 пилотных ВУЗах, я ещё не встречал ни качественно новых учебно-методических материалов, ни готовых к самостоятельной работе выпускников. Предполагаю, что в ближайшие 2-3 года ничего не изменится и значительной разницы в подготовке академического и прикладного бакалавриата не будет. Тем не менее, если вы уже решили быть магистром — поступайте на академический, если после 4 лет обучения планируете идти работать, а к магистратуре вернуться «когда-нибудь» — то на прикладной.
Преподавание в ВУЗе
Если в школе учатся, то в ВУЗе обучаются. И разница тут огромна. Никто не будет заставлять учиться. Если хотите получить диплом — сидите, разбирайтесь, спрашивайте у однокурсников. Преподаватель — это просто носитель знаний, который умеет эти знания пояснять. Его цель — рассказать, ваша — понять. Если вы что-то не поняли — преподаватель свою цель всё равно выполнил. Даже если в отдельных случаях это не так — лучше думать именно в такой парадигме, будет меньше разочарований.
Качество преподавания заключается именно в том, насколько хорошо преподаватель доносит до вас знания, какую практическую компетенцию вы при этом получаете. Например, донести принцип ООП можно на языке программирования Delphi, а можно на C# или Java. Вы поймёте ООП в любом случае, если будете стараться, но знакомство с языками C# или Java будет полезно для вас в будущем, при подготовке курсовых работ, при подработке или дальнейшем трудоустройстве.
Преподавание — штука инертная. Чем больше преподаватель читает один и тот же курс на примере одних и тех же технологий — тем лучше у него получается донести знания до студентов. Но IT-технологии меняются слишком быстро, поэтому возможны две крайности:
- преподаватель читает вам то, что морально устарело, но вы всё прекрасно понимаете
- преподаватель рассказывает о новейших технологиях, но у вас остаются большие пробелы в понимании чего-либо (если вы не восполните их самостоятельно в книгах, на StackOverflow или MSDN — то так оно и останется).
Есть замечательные преподаватели, которые каждый год обновляют 30% своего учебно-методического материала, но на такие усилия готов не каждый.
Помимо дробления бакалавриата на академический и прикладной, сейчас также проходит обновление стандартов образования со второго поколения на 3 и 3+. В условиях такого количества изменений в преподавании — есть риск, что ближайшие 2-3 набора студентов будут подготовлены хуже, чем последующие. А значит — нужно прилагать больше личных усилий.
Выбирая ВУЗ и специальность желательно знать Кто и Что вам будет рассказывать. Перед окончательным выбором — узнавайте у текущих студентов, читайте студенческие группы VK.
Выбор специальности
Итак, вы решили получить высшее образование, стать программистом. И не просто программистом, а, например, именно Web-разработчиком, специализирующемся на frontend. Круто, что в 18 лет уже есть цель в жизни, но спешу расстроить. В нашем государстве есть такая штука как стандарты высшего образования и они куда более абстрактны, чем вам бы этого хотелось.
Полный список стандартов высшего образования можно посмотреть вот тут. Не по всем ещё есть стандарты поколения 3+, но до конца года будут. Рекомендую почитать эти скучные документы.
Математическое обеспечение и администрирование информационных систем (МОАИС).
Специальность, дающая наилучшие условия для развития компетенций разработчика.
Вы изучите: технологии программирования на различных языках (обычно за 4 года вы познакомитесь с минимум тремя языками программирования — например: C++, C#, Lisp, или C++, Java, Python), разработка и основы администрирования реляционных и объектно-ориентированных БД, сетевые технологии, разработка приложений «клиент-сервер», «клиент — сервер приложений — сервер БД», параллельное программирование.
Обучение даёт понимание программирования в принципе, за пару месяцев вы способны изучить любой язык программирования и развиваться в нём; понимание как работает любая программа, как решить большинство вычислительных задач. После получения диплома из вас крепкий Junior, но как только вы разберётесь с конкретными задачами и инструментами в конкретной компании, багажа знаний будет достаточно, чтобы претендовать на Middle.
После опыта работы и хорошей магистратуры по этой специальности вы сможете не просто делать программы и информационные системы, но познакомитесь с принципами разработки высоконагруженных систем, управления командой, планирования разработки и сможете претендовать на Senior и Team Lead.
Фундаментальные информатика и информационные технологии (ФИИТ).
Специальность близка к МОАИС, но ориентирована на вычислительные эксперименты и исследовательские задачи.
Иными словами, как программист вы будете в наилучшей форме, но вы будете почти бесполезны для решения практических бизнес-задач. Зато вы ценный кадр для R&D-департаментов, научных лабораторий и научно-исследовательских команд. Обучение по этой специальности в хорошем ВУЗе даёт возможность выбирать место работы по всему миру, работая известных компаниях. Уже изначально предполагается, что бакалавриат будет только первой ступенькой вашего образования.
Вполне реальная история: получив бакалавра в МГУ, поступить в магистратуру CalTech. Само собой, физика, алгебра и матанализ должны быть вашей страстью.
Информатика и вычислительная техника (ИВТ)
Специальность ориентирована на воспитание системных программистов, работающих «с железом». У вас будут навыки программирования роботов, систем реального времени и работы с паяльной лампой. С таким образованием разрабатывать скучные учётные системы и веб-приложения не захочется, но ваша дальнейшая карьера может начаться как инженера по видеонаблюдению в небольшом ЧОПе, так и в лаборатории робототехники крупного бренда (само собой после прохождения магистерской программы).
На мой взгляд с чисто программистскими специальностями всё. Ниже будет перечень специальностей, где тоже обучают программированию. Но если у специальностей сверху учебный план построен так, чтобы выпустился Программист, то у специальностей ниже — Специалист в чем-то с навыками программирования.
Не только программист
Программная инженерия
Относительно новая специальность, готовящая по сути менеджеров программного продукта. Этот специалист смотрит поверх задач разработки, управляет требованиями, функционалом, версиями, командами разработки. На первых курсах вы изучите технологии программирования и, возможно, пару языков, но дальше в учебном плане будет всё больше про управление разработкой ПО. Начинать карьеру можно как Junior Developer, но вместо дальнейшего апгрейда до Middle вы станете менеджером проекта.
Прикладная информатика
Выпускает системных аналитиков с широким кругозором в IT и бизнесе. Они тоже умеют программировать, но по настоящему хорошо у них получается писать технические задания, формализовать бизнес-процессы и эффективно коммуницировать с разработчиками, которые витают в высоких абстракциях. Можно стать менеджером проекта или даже директором своей компании, если есть такие амбиции.
Бизнес-информатика
Очень близка к прикладной информатике, но компетенции менеджера у выпускника значительно сильнее. Можно быть консультантом по применению IT или управлять политикой IT небольшого холдинга. После получения диплома начать работать хоть в саппорте, но карьерная цель «IT-директор» может быть достигнута за считанные годы.
Информационные системы и технологии
Фокус на администрировании информационных технологий и правильном выборе софта и железа под задачи корпоративной локальной сети. Программирование будет, но на процедурном уровне, ближе к скриптам и конфигурационным файлам.
Математика и компьютерные науки
Большая порция фундаментальных знаний позволит вам работать как учителем информатики в школе, так и аналитиком в крупной компании. В хорошем ВУЗе эта специальность тяготеет к научным исследованиям и также может быть стартом в R&D для тех, кто физике предпочитает математические науки.
Информационная безопасность
Первый курс часто похож на специальности вроде МОАИС, где программируют много и на разных языках, но потом это прекращается. Вы не должны писать код, вы должны понимать как любой код могут атаковать. Сети и операционные системы будут знакомы как никому другому, можно будет называть себя хакером, но работать придётся в сфере безопасности, с нормативно-правовыми документами, а не только с firewall и sniffer.
Важно понимать, что всё зависит от конкретного учебного заведения. Это как стандарт HTML и его реализация на сайте провинциального салона красоты. Есть ВУЗы, где студенты всех специальностей ходят на одинаковые лекции. Есть ВУЗы, где МОАИС изучает Visual Basic и Pascal, пишет макросы в Excel, а базы данных изучает на примере Access. Если в вашем родном городе именно такой ВУЗ, то пора покупать билеты на поезд.
Выбор специальности при поступлении крайне важен, поскольку определяет дальнейшую карьеру и, может быть, всю жизнь. Это по сути первый самостоятельный выбор в жизни и ошибка будет измеряться годами. Поэтому рано «выдыхать» после ЕГЭ, самое время узнать как можно больше про ближайший университет, его студентов и преподавателей. Удачи.
P.S. Предлагаю хабрапользователям поделиться личным опытом: какая специальность в каком ВУЗе помогла вам стать таким замечательным разработчиком.
habr.com
Стоит ли учиться на программиста?
Стоит ли учиться на программиста, если их и так становится все больше и больше? Такой вопрос всё чаще могут себе задавать те, кто стремиться попасть в IT-сферу, но боится оказаться не у дел. Вот несколько мнений пользователей сайта Quora, которые могут повлиять на ваше решение.
Аарон Чамберлэйн, специалист в сфере вычислительной техники с самыми разными хобби в области программирования
Первое, что вам нужно понять — в «программировании» есть огромное количество подразделов, и нужно найти то, что будет вам интересно и что при этом будет достаточно перспективным.
Вот лишь некоторые из областей:
- Front-End разработка, к примеру, отвечает за дизайн и внедрение пользовательского интерфейса. Данная сфера может потерять актуальность со временем, так как она уже насыщена специалистами, пришедшими работать после прохождения 10-долларовых курсов на платформе Udemy или насмотревшихся обучающих роликов на YouTube. Для работы в данной области не нужно заканчивать университет, и я бы не стал советовать именно этот раздел программирования, разве что вы собираетесь стать лучшим из лучших и готовы терпеть жесткую конкуренцию.
- Разработка встроенных систем: в данной сфере придется попотеть, стараясь написать код, о котором раньше никто даже не задумывался. Такие коды управляют нашими телефонами, планшетами, радионяней, микроволновками и вообще всем, что имеет отношение к цифровым технологиям. Данная сфера выглядит намного более перспективной, потому что, как я уже сказал, вряд ли микрочипы куда-либо денутся в ближайшее время. И это при том, что все большее количество устройств интернета вещей планируются к выпуску на рынок, а специалистов, выбирающих работу в этой области, совсем не так много.
- Проектирование специализированных интегральных схем и смежные области: в данной сфере вам придется столкнуться с разработкой микрочипов, используемых в блоках программного управления. Я бы посоветовал данную область программирования, если вы хорошо знакомы и умеете работать с языками проектирования аппаратуры. Данная сфера достаточно перспективна, так как такие языки, как Verilog или VHDL, вряд ли куда-либо исчезнут в ближайшее время.
Можно назвать еще огромное количество подразделов. И если вам интересна какая-то из вышеназванных отраслей или любая другая сфера, скрывающаяся под понятием «программирование», тогда, безо всяких сомнений, дерзайте и изучайте ее. Просто подберите достоверные источники, а также позвольте интернету стать вашим учителем. В наши дни можно научиться любой сфере программирования, а уж дешевые курсы по JS/Python/ML вообще распространены повсеместно.
Если же после изучения базовых основ вы захотите продолжить свое обучение, тогда задумайтесь о получении образования в сфере компьютерных наук или вычислительной техники. В университете вы получите более академичные знания, которые, как говорил один из моих профессоров, «позволят вам быть уверенным в том, что ваш плохо написанный код никого не уничтожит».
Джон Оно, работник медиакомпании Thomson Reuters
Если вы хотите научиться программированию только лишь для того, чтобы получить высокооплачиваемую работу в этой сфере, то это не лучшее решение. Хоть зарплаты в этой области и достаточно высоки, но профессиональное программирование со временем может перестать приносить удовольствие и стать рутиной даже для тех, кто искренне им наслаждается — что уж говорить о людях, которые начинают заниматься этим только ради денег. Поэтому я бы точно не советовал учиться программированию только исходя из того, что это прибыльно и перспективно. Хотя, с другой стороны, если человек, работающий в непрограммистской сфере, хочет улучшить свои околопрофессиональные навыки, то это может стать достаточно неплохим решением.
При этом рынок наводнен посредственными программистами, исходя из чего старательному специалисту достаточно просто выделиться из толпы, изучив непопулярные инструменты.
Если вам нравится писать коды, то вам не составит труда в течение нескольких лет заниматься сторонними проектами, что позволит набрать достаточно практического опыта. Чем сложнее и необычнее проекты, тем более ценным будет опыт: почти каждый в этой сфере умеет создавать систему управления конфигурациями на языке Java, но если вы поработаете над созданием шутера от первого лица на языке postscript или при помощи языка befunge введете производную регулярного выражения, то вы приобретете такой опыт, которым может похвастаться далеко не каждый эксперт. Беритесь за как можно большее количество необычных проектов, и тогда вы станете специалистом, умеющим справляться с такими заданиями, с которыми никто другой совладать не в состоянии.
Вполне возможно, что вам никогда больше не придется сталкиваться с какими-то подобными заданиями, но это и неважно, так как большинство кандидатов не могут самостоятельно справляться с проблемой и в большинстве случаев ищут уже существующие решения. В то время как вы сможете показать себя и продемонстрировать свое умение самостоятельно решать возникающие проблему.
Конечно, глупо будет потратить первые несколько лет, занимаясь написанием кодов за гроши или без практического их применения в том случае, если вам не нравится сам процесс создания кода. Если вас это не увлекает, то советую вообще уйти из данной сферы, потому что вы точно не созданы для нее. Если же подобная перспектива не вселяет в вас ужас, то тогда и огромное количество заурядных программистов, наводнивших рынок, не станут для вас проблемой, потому что вы наверняка найдете способ выделиться.
Майлс Фиделман, архитектор систем, предприниматель
Если вы спрашиваете с позиции создания карьеры, то мой ответ – «нет».
Во-первых, это не самая лучшая мотивация для изучения программирования.
Во-вторых, профессия программиста движется по тому же пути, по которому в свое время пошли операторы телефонных станций, машинной печати и вычислительных машин (в английском языке слова “calculator” и “computer” раньше использовались в качестве названия должности, которую, как правило, занимали девушки, работающие с печатными и счетными машинками, а также ранними ЭВМ). В наше время программистов достаточно быстро заменяют оффшорные фирмы и веб-сайты, которым нужно платить намного меньше. Во многих сферах само программирование перешло к конечным пользователям: предприниматели пишут свои собственные электронные таблицы вместо создания целого отдела, который бы занимался отчетами; «волшебные конструкторы» помогают людям самим быстро создавать сайты; а электронная коммерция сейчас скорее связана с самостоятельным созданием магазина Amazon, нежели с наймом армии программистов для того, чтобы с нуля создать собственное программное обеспечение для этого магазина.
Но при этом, кроме стремления получить работу программистом, существуют веские причины для изучения программирования:
- Базовое программирование становится таким же основным навыком, как и умение печатать. Это как раз тот навык, который в нынешнее время необходим каждому: чтобы подключить видеорегистратор, создать электронную таблицу или настроить специализированное оборудование, которое мы используем для работы. Довольно скоро будет крайне сложно получить работу, не имея навыков базового программирования (и горе будет тому финансовому аналитику, который не умеет писать макросы для Excel).
- В качестве хобби или развлечения: некоторым людям нравится писать коды или создавать что-то, что содержит код (к примеру, робототехнику). Есть даже люди, которым нравится принимать участие в олимпиадах по программированию (хотя и не очень понимаю их).
- Искренний интерес к компьютерной сфере. Но в этом случае, программирование – это лишь часть обширных знаний, наряду с математикой, структурой аппаратного обеспечения, теорией вычислений, архитектурой систем и программного обеспечения, а также многими другими темами, лишь отдаленно имеющими отношение непосредственно к программированию.
Милош Гарунович, Java, Kotlin (Android), музыкант, играет на басс-гитаре
Я приведу вам один пример, почему вам не стоит беспокоиться по этому вопросу.
Когда я поступил в университет, вместе со мной поступили еще 180 абитуриентов. Спустя 3 года обучения нас осталось всего 20.
Мораль этой крайне короткой истории заключается в том, что все большее и большее количество людей хотят стать программистами, но большинство из них через какое-то время бросают эту затею. Если вы будете упорно работать и стараться каждый день узнавать и изучать что-то новое, то вам не следует волноваться по поводу того, что вокруг слишком много программистов.
www.kv.by
Программист — ожидание и реальность / Habr
Предисловие
Данная публикация не претендует на вселенскую истину, это не более чем личный опыт, наблюдения и опыт коллег. Думаю, что новичкам, стоящим на пороге интереснейшего мира программирования, стоит трезво смотреть на реальное положение вещей и чем быстрее иллюзии уйдут на второй план, тем быстрее можно получить удовольствие (и не только) от своих разработок.
Мифы для начинающих
Миф 1: «Сейчас я выучу С# (С++, ассемблер и т.д.) и стану настоящим программистом»
Увы, как показывает практика, кроме знания языка надо знать очень много смежных направлений. Например, очень часто нужны знания ведения какого либо учёта. Заказчику не нужен программист просто потому что он хорошо кодит, заказчик готов платить деньги, а иногда и не малые, за решение поставленной задачи, а не красивый алгоритм.
Миф 2: «Настоящий программист сутками пишет программы»
Как показывает практика, программист программирует в лучшем случае ⅓ времени проекта, всё остальное время уходит на постановки задач, общение с заказчиком и прочее убийство этого времени. Нет, конечно же есть среды, где программист именно кодит сутками, например, как в SAP-е. Но именно в SAP-е самая низкооплачиваемая должность кодер, который пишет строго по предоставленному техническому заданию. Шаг вправо, шаг влево — расстрел. И всё равно компания, автоматизирующая предприятие держит огромный штат сотрудников, далёких от кодирования для проведения как раз этих ⅔ работ.
Миф 3: «Сейчас как сделаю бухгалтерию и её как начнут все покупать»
К сожалению многие себя тешат этим мифом (и я давным давно был наивен). Мол, сейчас сделаю программу, которая будет быстрее и удобнее той-же 1С и она будет всем нужна. Но сделав начальную поделку пользователь задаёт резонный вопрос: “у меня работает 1С, она всем удовлетворяет, почти полностью поддерживает изменения в законодательстве, позволяет сдавать рег. отчётность и тогда зачем твоя, ни кому не известная программа?”.
Миф 4: «Мне бы только продать пару копий своего продукта и тогда уж точно попрёт»
Хорошо, предположим есть в знакомых влиятельная личность, которая инициирует покупку этого продукта для старта. Такое часто бывает (конкретные предприятия называть не буду по понятным причинам). А дальше то надо поддерживать продукт, что-бы конкуренты смотрели, завидовали и тоже хотели купить его. И вот тут начинается неприятное — разработчик перегорает, начинает требовать немалых денег, ведь кушать то хочется и клиент, серьёзно подумав, покупает 1С, где обновления бесплатные или условно бесплатные.
Миф 5: «Я стану специалистом и буду богат как Билл Гейтс»
Это самый печальный миф из всех остальных. Во-первых, Билл Гейтс по своей натуре был и есть менеджер, а не программист. Он всегда думал как выгодней продать, а не как лучше создать код. Поэтому, уверяю, без доп.образования (например, финансово-экономического) дальше начальника ИТ-отдела или руководителя проекта уйти не получится.
Миф 6: «Я буду создавать интереснейшие программы»
А вот и нет. За работу платят деньги только если результат нужен заказчику и как выясняется на рынке требуются очень нудные учётные системы или что-то подобное. Если мечтание жизни было создавать игры, то там тоже многомесячные нудные решения проблем.
Я тоже на работе занимаюсь тем, что мне не по душе, главное что-бы заказчику понравилось, а вот дома, по вечерам, запускаю свой любимый TASM и програмирую для души. Абсолютно ни кому не нужные программы создаются от души и для собственного удовлетворения.
Личный опыт или как не надо поступать новичкам
На одном из проектов набирали молодых сотрудников, только-что окончивших ВУЗ по специальности связанной с программированием. И один молодой работник как-то обнаружил поразительную вещь: «ни когда не подумал бы, что знания из ВУЗа придётся отбросить и учиться заново». Я не знаю что именно его поразило, но он во всём прав. Мы изучаем крутые методы сортировки, а заказчику надо просто видеть когда и куда он потратит деньги, когда и в какую сумму построит новый мост, в общем всё что угодно, кроме мастерства программиста. Именно поэтому многие программисты разочаровываются, узнав, что на предприятии он далеко не первый человек и жизни учит его даже бухгалтер.
Это может показаться смешным, но в реальной жизни надо делить на ноль. Это самый яркий пример, встретившийся мне в начале карьеры программиста. Бухгалтер на полном серьёзе оперирует такими понятиями, как «ну мы же делим на ноль, значит и в результате получаем ноль…». По своей глупости я начал возмущаться, отправлять человека обратно в школу, требовать дать адекватного заказчика, но вместо всего этого предприятие отказалось от моих услуг и обратилось к тому, кто умеет делить на ноль. Это теперь я знаю, что берд с моей точки зрения не обязательно таковым является с точки зрения заказчика, а тогда подобное было просто дикостью.
Альтруизм оказывается в IT-сфере не приветствуется. Однажды я решил помочь хорошему человеку в настройке компьютерного клуба (лет 15 назад они были в моде), при чём абсолютно бесплатно. Да, сутки на ногах без копейки денег, просто что-бы пообщаться с хорошим человеком. Но он тогда отказался от моей помощи, по причине как он выразился: «если человек не берёт деньги за работу, значит он не честный». И как показывает практика у всего есть своя цена. Деньги, это не только мотиватор разработчика, но и демотиватор заказчика, он лишний раз отбросит ненужный функционал в долгий ящик и разработчику не придётся реализовывать чью то бредовую идею.
Ещё позволю себе отметить интереснейший факт роста программиста как специалиста. Пока человек ещё новичок и только познаёт просторы ит-мира, ему кажется, что он всё знает. С опытом, программист понимает, что он почти ни чего не знает. И только став профессионалом, разработчик понимает, что ему абсолютно всё без разницы, главное что-бы заказчик был доволен. Конечно, этот анекдот рассказывают как анекдот, но беда в том, что эта самая настоящая реальность.
Рекомендации самому себе в молодости
1. Плюй на красивый код, лучше изучай стандартные конфигурации, ячеечный складской учёт и бюджетирование.
2. Забудь про добрых пользователей, они ленивы по определению. Им не нужны новшества и сложности, при любом нововведении, пользователи так или иначе будут саботировать и бунтовать.
3. Большинство крупных руководителей вообще не знают зачем нужны ит-структуры. Смирись и не доказывай свою значимость, это неблагодарно и заведомо проигрышно. Тебе будут понимающе кивать, тебя будут хвалить, но все лавры от внедрённой системы поимеет совсем другой человек. Кстати, это относится к любой проектной деятельности.
4. Изучай планирование времени. Прям тренируйся сразу после ВУЗа, а лучше прям учась на программиста. Это очень важно и именно из-за нехватки этих знаний, многие проекты заваливаются самым неприятным образом.
5. Учись брать деньги. За каждый чих бери определённую сумму. Да, это страшно, да, заказчика можно потерять, но за то зацепившийся клиент тебя быстро обеспечит работой.
6. Не играй в комповые игры и занимайся спортом. Смешно? У многих в этом серьёзные проблемы. Что первое, что второе, сильно влияет на производительность. Именно поэтому во многих организациях делают упор на тренажёрные залы, бассейны и фитнес-центры, лишь бы работники работали эффективней.
7. Самое главное — не забывай семью, звони родным, навещай родителей и уважай своих детей. Поверь, эти ошибки практически невозможно исправить.
Казалось бы чего общего в этих советах с алгоритмами на С++? Вот это и есть то необычное, что если-бы хоть кто-то раньше мне дал такие советы, то шишек набил бы гораздо меньше. Надеюсь, что после этого текста в мире будет чуть меньше шишек, набиваемых молодыми людьми.
habr.com
А сложно ли работать программистом? / Инфопульс Украина corporate blog / Habr
Этот вопрос мне часто задают вокруг. Задают родственники, друзья, дети друзей и вообще незнакомые люди. У всех своих цели — кто-то хочет сменить род деятельности, кто-то только выбирает куда пойти учиться, а кто-то желает в первую очередь убедить себя в том, что «вот еще и этим бездельникам ни за что деньги платят». Что же ответить на этот вопрос? Честно говоря, первым делом, конечно, хочется выпятить грудь колесом и двинуть речь о том, что, дескать, окромя нечеловеческого ума и 10 лет глубокой математической подготовки нужно еще иметь природный талант и пахать круглосуточно… Но где-то на третьей минуте этого увлекательного текста включаются мозги и здоровый скептицизм, требующий на время замолчать и немного подумать.
А и правда — сложно ли?
Кодеры vs программисты
Как-то так исторически сложилось, что в самом IT-мире принято отделять «кодеров» от «программистов». Дескать, первые тупо клепают что-то по шаблонам и указаниям сверху, а вот вторые — ТВОРЯТ. Мне это разделение никогда не нравилось. Любому порой может попасться глупая и нудная работа. Писать простой код можно не потому, что ты глуп или ленив, а потому, например, что ты молод и только учишься или хочешь сменить вид деятельности. Более того, сама по себе надпись «программист» на бейджике даже вместе с тем фактом, что ты вроде бы должен как раз «творить», а не «кодить», тоже ничего не значит. Бывает, что «программисты» такого напишут, что кажется, будто они мозги вообще не включали по ходу работы, а бывает и наоборот — рядовой трудяга что-то эдакое заавтоматизирует — и вот уже все смотрят на результат с восторгом. Вывод: формальное название должности не определяет степень сложности работы.
Узкая специализация vs широкая
Есть программисты узкого профиля, а есть программисты широкого профиля. Первые знают, каким именно должен быть параметр Х в методе Y класса Z, для того, чтобы код работал оптимально при выполнении задачи W. Вторые могут не догадываться не только о параметре X, методе Y и классе Z, но даже о существовании задачи W. Первые потратили очень много времени и сил на совершенствовании в своей области, им было тяжело в учении, но зато теперь легко в бою. Вторые тоже учились прилежно и усердно, но больше — общим принципам, универсальным языкам и распространённым задачам. Им было легче в учёбе, но каждый новый день бросает им новые вызовы. Некоторые из них можно перекинуть на узкоспециализированных коллег, но большинство придётся решать самим. Что лучше — поработать в молодости «на будущее» и почивать на лаврах своих знаний, или каждый день вступать в новый бой, «размазывая» сложность во времени? Не знаю. В молодости легче учиться, но предметная область может перестать быть актуальной. С другой стороны, каждый день тратить кучу мозговых усилий на то, что спец в этой сфере сделал бы за минуту — слегка унизительно. Каждый решает сам.
Хочу думать или не хочу
К сожалению, работа программиста порой напоминает работу укладчика парашюта: на результат никто не жаловался. Либо всё хорошо и все молодцы, либо «всё пропало» — но тогда окажется, что и сроки были плохо рассчитаны, и бюджет никакой, и людей мало, и задание глупое, и заказчик плохой и еще 150 причин. «Хороший программист всегда объяснит, почему выданное задание сделать ну никак невозможно». Профессия программиста часто ставит человека перед выбором: думать или не думать? Баг пофиксился каким-то костылём. Думать как сделать лучше, или и так сойдет? Система вроде бы стабильно работает при 10 запросах в секунду. Думать, что будет при 100 или не думать? Сделать рефакторинг или ну его? Свой велосипед или общепризнанное решение? Заложить архитектуру с запасом — или пока и так сойдет?
На каждом шагу есть соблазн увильнуть. Слабый духом программист будет это делать. Многие люди не хотят лишний раз думать и (вот парадокс!) будут постоянно думать, как этого достичь. Есть выбор: усложнять свою жизнь, или не делать этого. Каждый решает сам.
Ограниченность возможностей ума
Есть такая шутка, что, мол, самым лучшим образом природа распределила между людьми ум, поскольку люди часто жалуются на непослушные волосы, некрасивую форму ушей или длинный нос, но никто никогда не пожалуется, что ему досталось маловато ума. Так вот, чушь это всё. Я вот лично жалуюсь, что мне как-раз ума досталось маловато. Я помню только ограниченное количество информации, из-за чего постоянно приходится что-то куда-то записывать. Я отчаянно завидую компьютерам, в которых за какую-то смешную сотню баксов можно поставить новый процессор, удвоив его скорость работы. На понимание какого-то алгоритма я трачу в тысячи, в миллионы раз больше времени, чем компьютер — на его исполнение. Я порой сталкиваюсь с невозможными задачами — и отступаю. Я иногда недооцениваю сроки выполнения задач. Да попросту откровенно торможу порой! И поэтому да, мне частенько бывает сложно именно в силу ограниченности моего ума. Завидую тем, у кого всего-лишь нос длинноват, а вот с головой всё в самый раз.
А должно ли вообще быть сложно хорошему программисту?
Много лет назад «быть хорошим программистом» означало уметь писать эффективные алгоритмы, выжать лишний процессорный такт, сэкономить десяток байтов памяти. Сегодня это не так. Все базовые алгоритмы имеют прекрасные реализации на всех возможных языках, масса разнообразных полезных вещей собрана в хороших, проверенных библиотеках. На сегодняшний день основное свойство «хорошего программиста» — уметь построить из готовых кубиков программу, минимизировав её сложность (тем самым и надежность повысится, и скорость работы, и стоимость сопровождения уменьшится). Именно уменьшение сложности сегодня является самым важным. Если вдуматься, всё, что было придумано в программной индустрии за последние пару десятилетий, служит именно этой цели. Для чего нужно ООП? Чтобы стало проще и понятней. Зачем нужен UML? Уменьшить хаос. Интерфейсы? Управляемые языки? MVC? MVVM? Всё на тот же алтарь. Получается, что умело применяя современные инструменты, программист должен писать только простой, компактный и понятный код? Получается, что хорошему программисту не должно быть сложно, ведь если ему сложно — значит он просто еще не освоил инструменты, которые сделают его работу простой и понятной? Так? А вот и нет. Применение всего вышеуказанного инструментария сделало возможным построить такие системы, которые невозможно было создать раньше. Windows 8 и iOS 6 были созданы в 2012 году не потому, что 20 лет назад не могли нарисовать их дизайн или не было подходящего железа. Всё дело в том, что те способы создания программ, те методологии управления программистами и те подходы к написанию кода просто не могли дать на выходе систему столь высокой сложности, как нынешние ОС. Люди работали на пределе сил, но в итоге сделали намного более простые системы. Сегодняшние программисты тоже работают на пределе сил. И абсолютно точно, что через 20 лет люди будут посмеиваться и над Win8 и над iOS 6, указывая на то, какими примитивными и несовершенными они были. Будем верить, что они тоже поймут, что современные программисты старались, как могли.
habr.com
Стоит ли учиться на программиста, если не нравится информатика? (подробнее внутри)
Я думаю, что не стоит.
Друг мой Программисты как учителя могут подразделяться на разные узкие специальности. Например как учитель физики или учитель истории так же в it сфере например программист 1С или web программист дизайнер. Попробуйте себя в разных узких специальностях если вы чувствуете что вам это не дано то лучше не начинайте ибо программист он отчасти тоже творческий человек.
Радует что в нашей стране есть молодые люди, которые так осознано подходят к выбору своей профессии, правильно излагают свои мысли. Поступай только на ту специальность к которой лежит душа и в которой ты хорошо разбираешься. Не нужно пока думать о заработке. Если ты окажешься хорошим специалистом, зар. плата будет соответствующая. Если верить росстату то 60 % россиян работают не по специальности. Если ты человек думающий (это очевидно) ты найдешь себя в любой сфере.
во-первых, программист — слишком размытое определение. в школе вы должны научиться осознанно писать оптимальные алгоритмы. По поводу специальностей IT-сферы: есть такие, где требуется математика и физика, причём в обучении упор идёт на физику (работа с железом) -почитайте, может понравится (это специальности политехнических ВУЗов). Во-вторых, насчёт инженеров.. нормальных мало, большой зарплаты не будет сразу на любой специальности, везде будет требоваться опыт.. и они разные. Вакансии стоит смотреть даже не в Москве, а в крупных промышленных городах: Томск, Норильск, Челябинск, и т. п.. Платить будут больше, чем 60тысяч) особенное, если будете хорошим специалистом.
иди на связиста на телекоммуникации, там дофига физики, матана, и программировать для сетей будешь.. или на крайняк поступай на вычислительные машины. системы и сети
Странный вопрос. Точно так же можно сказать что стоит учиться на сантехника если не нравится с трубами работать
… мамин сын …
touch.otvet.mail.ru
Стоит ли Вам идти учиться на программиста?
Ребята, которые буквально через год уже заканчивают школу, имеют еще довольно смутные представления о том, на кого же они пойдут учиться после школы. Сегодня вы хотите быть системным администратором, завтра — программистом, послезавтра — гитаристом.
Это очень распространенное явление. Кажется, что ты можешь охватить весь мир, что ты можешь обучиться любой профессии и стать знаменитым. К сожалению, это далеко не так. Поэтому придется выбрать что-то одно.
Из-за частой смены вкусов и предпочтений может получиться так, что вы выберете как раз ту профессию, которая кажется вам крутой, но в которой вы разочаруетесь буквально через два месяца обучения.
Я видел много таких людей. Сначала добросовестно посещают все занятия, пишут контрольные, если что-то не получается, идут на форум программистов за советом, берут на дом и… теряют к обучению интерес, потому что не могут элементарно понимать, зачем в программе нужны, к примеру, циклы и как их записать.
Многих выбивает из колеи огромное количество математических предметов. По любой нормальной программе Вы должны будете пройти высшую математику, дискретную математику, математическую статистику и теорию вероятностей, численные методы, математические методы… Так что если Вы хотите стать программистом, то на математику Вам придется тратить столько же (а может быть, даже и больше) времени, сколько и на программирование.
В различных журналах и фильмах жизнь программистов и хакеров выглядит очень красиво. Они легко зарабатывают тысячи долларов за неделю и живут в шикарных домах. Естественно, что это не так. Ваш труд будет тяжелым. На разработку более-менее нормального приложения уходит не один месяц, так Вы должны свыкнуться с судьбой написания кода для унылых программ в течении нескольких месяцев.
Опять же, сейчас существует огромное количество профессий, связанных с программированием. Веб-программирование — написание сайтов и веб-приложений (знание алгоритмов и математики, конечно, желательно, но не обязательно). Системное программирование — написание драйверов для устройств, ядер операционных систем. Прикладное программирование — разработка прикладных программ, необходимых, например, для работы предприятий, программирование микроконтроллеров…
Работа ведется в разных языках и на разных средах, так что будет плохо, если Вы решите изучать только один язык программирования. Язык — не главное. Главное — знание алгоритмов, понимание того, как это все работает. А уже потом можно будет изучить синтаксис того языка, который будет нужен Вам для профессии.
Если Вы твердо решили поступать на программиста, то Вы должны будете тщательно подобрать учебное заведение. Везде обучение идет по-разному. Меня, например, учили программировать в старом Turbo C++ 3.0, и только во второй половине второго курса мы перешли на C++ Builder. В другом колледже студентов учат программировать на примере языка Pascal и Delphi. В третьем колледже студенты уже на первом курсе вовсю проходят новейшие среды разработки приложений. В ВУЗах ситуация аналогичная.
Понять, получится ли из Вас программист или нет, довольно просто. Попробуйте чуть-чуть почитать самоучители по Pascal, а потом потратить ночь на то, чтобы написать интересную и длинную программу. Если вы с упоением исправляете ошибки в коде, не чувствуя утомления, меняете местами, удаляете или дописываете команды — Вы станете программистом (конечно, для этого придется потрудиться).
Надеюсь, я хотя бы в общих чертах ответил на вопросы будущих кандидатов в программисты. Удачи Вам!
Прочитано: 11476 раз(а) | Комментариев: 3 | Средняя оценка (макс. 7): нет (Голосов: 0)
pc.uz