Куда пойти учиться на программиста / Habr
Школьники уже, кажется, сдали ЕГЭ и вот-вот отправятся подавать документы в ВУЗы. Программирование и IT-технологии пользуются стабильным спросом, примерно как юридические и экономические специальности 10 лет назад.
В этой статье я расскажу как работает высшее образование для IT, как правильно выбрать IT-специальность.
Статья будет полезна не только абитурентам-2015, но и школьникам старших классов, которые уже решили связать свою жизнь с IT.
Нужно ли поступать в ВУЗ, чтобы стать программистом?
Существует множество точек зрения на этот вопрос и, уверен, в комментариях его не раз поднимут. По моему скромному мнению, высшее образование не является обязательным условием становления специалиста в области IT, ровно как и гарантией этого. Но может стать прочным фундаментом для профессионального роста.
Вы можете читать книги, участвовать в OpenSource-коммьюнити, подрабатывать на oDesk и через несколько лет будете опытным разработчиком, без высшего образования. Правда, ничто не мешает это всё делать параллельно учёбе в ВУЗе, кроме собственной лени.
Хороший ВУЗ даёт прежде всего отличные условия для того, чтобы получать знания, опыт, связи и вырасти как личность. И только от вас зависит, как вы будете их использовать (и будете ли вообще).
Примем условно, что вы уже приняли решение получить высшее образование в сфере IT, и пойдём дальше.
Бакалавр, специалист и магистр
С тех пор как министерство образование решило интегрировать Россию в болонскую систему высшего образования прошли годы и многое изменилось. Раньше все ИТ-шники могли получить только диплом специалиста. В этом году выпустились последние дипломированные специалисты (за исключением специальностей, где срок обучения более 5 лет).
Что изменилось на самом деле?
В старых учебных планах для «специалистов» урезали количество часов на один год, при этом самые сложные дисциплины были либо удалены, либо сокращены. Многие академические темы из области алгебры, теории вероятности, физики останутся для бакалавра неосвещёнными преподавателем. В ряде специальностей, где программирование является вспомогательной компетенцией (например, информационная безопасность), под нож попали различные технологии программирования — от web-разработки до параллельного программирования.
В остальном ни теоретический материал, ни методика преподавания не изменились. Сократился объем материала. Если в каком-то ВУЗе раньше давали лабораторные для Pascal, то по-прежнему их и дают.
При этом учебные планы магистратуры могут похвастать новизной. Об этом можно написать отдельно, если будет спрос.
Нужно учитывать, что бакалавр — это не готовый сотрудник, который может прийти к работодателю с красным дипломом и просить среднюю зарплату по больнице. Бакалавр что-то знает, что-то умеет из технологий, но как правило не умеет работать в команде, большом коллективе и полностью самостоятельно решать конкретные практические задачи. В терминологии разработчиков это Junior, подающий надежды через 2-4 года стать Middle Developer. Во многих компаниях таким выпускникам без опыта устраивают стажёрские программы с наставником на 6-12 месяцев.
Прикладной и академический бакалавриат
Само собой тот факт, что специалитет просто уменьшили на 20%, не мог порадовать министерство образования. Мало кого может порадовать «недоспециалист», который теперь знает ещё меньше. Поэтому с 2015 года будут повсеместно вводить прикладной бакалавриат как альтернативу неполному академическому образованию.
Несмотря на то, что идея на мой взгляд здравая и её реализация была начата ещё 5 лет назад в 44 пилотных ВУЗах, я ещё не встречал ни качественно новых учебно-методических материалов, ни готовых к самостоятельной работе выпускников. Предполагаю, что в ближайшие 2-3 года ничего не изменится и значительной разницы в подготовке академического и прикладного бакалавриата не будет. Тем не менее, если вы уже решили быть магистром — поступайте на академический, если после 4 лет обучения планируете идти работать, а к магистратуре вернуться «когда-нибудь» — то на прикладной.
Преподавание в ВУЗе
Если в школе учатся, то в ВУЗе обучаются. И разница тут огромна. Никто не будет заставлять учиться. Если хотите получить диплом — сидите, разбирайтесь, спрашивайте у однокурсников. Преподаватель — это просто носитель знаний, который умеет эти знания пояснять. Его цель — рассказать, ваша — понять. Если вы что-то не поняли — преподаватель свою цель всё равно выполнил. Даже если в отдельных случаях это не так — лучше думать именно в такой парадигме, будет меньше разочарований.
Качество преподавания заключается именно в том, насколько хорошо преподаватель доносит до вас знания, какую практическую компетенцию вы при этом получаете. Например, донести принцип ООП можно на языке программирования Delphi, а можно на C# или Java. Вы поймёте ООП в любом случае, если будете стараться, но знакомство с языками C# или Java будет полезно для вас в будущем, при подготовке курсовых работ, при подработке или дальнейшем трудоустройстве.
Преподавание — штука инертная. Чем больше преподаватель читает один и тот же курс на примере одних и тех же технологий — тем лучше у него получается донести знания до студентов. Но IT-технологии меняются слишком быстро, поэтому возможны две крайности:
- преподаватель читает вам то, что морально устарело, но вы всё прекрасно понимаете
- преподаватель рассказывает о новейших технологиях, но у вас остаются большие пробелы в понимании чего-либо (если вы не восполните их самостоятельно в книгах, на StackOverflow или MSDN — то так оно и останется).
Есть замечательные преподаватели, которые каждый год обновляют 30% своего учебно-методического материала, но на такие усилия готов не каждый.
Помимо дробления бакалавриата на академический и прикладной, сейчас также проходит обновление стандартов образования со второго поколения на 3 и 3+. В условиях такого количества изменений в преподавании — есть риск, что ближайшие 2-3 набора студентов будут подготовлены хуже, чем последующие. А значит — нужно прилагать больше личных усилий.
Выбирая ВУЗ и специальность желательно знать Кто и Что вам будет рассказывать. Перед окончательным выбором — узнавайте у текущих студентов, читайте студенческие группы VK.
Выбор специальности
Итак, вы решили получить высшее образование, стать программистом. И не просто программистом, а, например, именно Web-разработчиком, специализирующемся на frontend. Круто, что в 18 лет уже есть цель в жизни, но спешу расстроить. В нашем государстве есть такая штука как стандарты высшего образования и они куда более абстрактны, чем вам бы этого хотелось.
Полный список стандартов высшего образования можно посмотреть вот тут. Не по всем ещё есть стандарты поколения 3+, но до конца года будут. Рекомендую почитать эти скучные документы.
Математическое обеспечение и администрирование информационных систем (МОАИС).
Специальность, дающая наилучшие условия для развития компетенций разработчика.
Обучение даёт понимание программирования в принципе, за пару месяцев вы способны изучить любой язык программирования и развиваться в нём; понимание как работает любая программа, как решить большинство вычислительных задач. После получения диплома из вас крепкий Junior, но как только вы разберётесь с конкретными задачами и инструментами в конкретной компании, багажа знаний будет достаточно, чтобы претендовать на Middle.
После опыта работы и хорошей магистратуры по этой специальности вы сможете не просто делать программы и информационные системы, но познакомитесь с принципами разработки высоконагруженных систем, управления командой, планирования разработки и сможете претендовать на Senior и Team Lead.
Фундаментальные информатика и информационные технологии (ФИИТ).
Специальность близка к МОАИС, но ориентирована на вычислительные эксперименты и исследовательские задачи.
Иными словами, как программист вы будете в наилучшей форме, но вы будете почти бесполезны для решения практических бизнес-задач. Зато вы ценный кадр для R&D-департаментов, научных лабораторий и научно-исследовательских команд. Обучение по этой специальности в хорошем ВУЗе даёт возможность выбирать место работы по всему миру, работая известных компаниях. Уже изначально предполагается, что бакалавриат будет только первой ступенькой вашего образования.
Информатика и вычислительная техника (ИВТ)
Специальность ориентирована на воспитание системных программистов, работающих «с железом». У вас будут навыки программирования роботов, систем реального времени и работы с паяльной лампой. С таким образованием разрабатывать скучные учётные системы и веб-приложения не захочется, но ваша дальнейшая карьера может начаться как инженера по видеонаблюдению в небольшом ЧОПе, так и в лаборатории робототехники крупного бренда (само собой после прохождения магистерской программы).
На мой взгляд с чисто программистскими специальностями всё. Ниже будет перечень специальностей, где тоже обучают программированию. Но если у специальностей сверху учебный план построен так, чтобы выпустился Программист, то у специальностей ниже — Специалист в чем-то с навыками программирования.
Не только программист
Программная инженерия
Относительно новая специальность, готовящая по сути менеджеров программного продукта. Этот специалист смотрит поверх задач разработки, управляет требованиями, функционалом, версиями, командами разработки. На первых курсах вы изучите технологии программирования и, возможно, пару языков, но дальше в учебном плане будет всё больше про управление разработкой ПО. Начинать карьеру можно как 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
6 причин не быть программистом
Каждый человек, который собирается посвятить свою жизнь программированию, видит перед собой приятные бонусы, которые приносит эта замечательная профессия. Но недостатки и проблемы этого занятия очень часто остаются в тени. Поэтому мы решили вас познакомить с небольшим списком признаков, по которым вы сможете понять, что программирование — это не ваше.
1. Вы не любите творчество
Многим кажется, что программирование — это математически точная наука, подчиняющаяся некому своду правил, которые просто достаточно хорошо выучить. Отчасти это так, но только отчасти. На самом деле от вас потребуется огромная способность к творчеству, смелость и дух экспериментаторства. Новый проект представляет собой чистый холст, на котором вы с помощью команд создаёте рисунок будущей программы. Процесс программирования потребует от вас больше творческих усилий, чем написание картины или романа, так что будьте к этому готовы.
2. Вы работаете из-под палки
Работа над программой является творческим процессом, а любой творческий процесс требует увлечённости и вовлечённости участников. Вы будете обязаны полюбить своё рабочее место, полюбить программирование и каждый текущий проект, иначе рискуете так и не добиться никаких успехов.
Если вы просыпаетесь утром и не чувствуете жгучего желания сразу же начать кодить, то, возможно, программирование не для вас.
3. Вы не любите решать головоломки
Несмотря на все слова о творчестве, которые вы прочитали немного выше, программирование является глубоко логичным и структурированным действием. Здесь каждый ваш шаг будет приводить к цепочке последующих, а каждое событие будет иметь свою причину. Процесс отладки программы похож на решение сложнейшей логической задачи, при котором вам придётся превратиться в настоящего детектива, скрупулезно ищущего причины того или иного бага. Огромную часть своего времени вы будете посвящать именно поиску ошибок в дебрях своего и чужого кода. Подумайте хорошо, соответствуют ли такие занятия вашим устремлениям и наклонностям.
4. Вы не можете сидеть долго на одном месте
Процесс программирования подразумевает, что вы должны длительное время сидеть перед компьютером. Вы можете менять позу, можете менять окружение или звуковой фон, но суть остаётся: вы привязаны к своему рабочему месту. Это подходит далеко не всем натурам, есть такие непоседы, которым постоянно нужны перемены и движение. Поэтому хорошо подумайте, соответствует ли такой образ жизни вашему складу характера и привычкам.
5. Вы цените нормированный рабочий день
Независимо от того, работаете ли вы на себя или в какой-нибудь компании, скорее всего, вам придётся частенько работать после окончания рабочего дня и, может быть, даже по ночам. Дело в том, что, несмотря на все усилия по планированию и организации, этот процесс трудно поддаётся полному упорядочиванию из-за постоянно возникающих новых обстоятельств и проблем. Так что приготовьтесь к тому, что вам придётся пересмотреть свой распорядок дня и отношение к работе.
6. Вы хотите быстро разбогатеть
Это один из самых главных факторов, который привлекает людей в программировании. Да, если сравнивать уровень дохода людей, занятых в этой отрасли, с другими, то он несколько выше средней температуры по больнице. Но если вы мечтаете о быстрых и больших деньгах, то вас может ожидать большое разочарование. Далеко не все программисты придумывают успешные стартапы, за одну ночь воплощают свою идею в коде, а утром просыпаются миллионерами.
Абсолютное большинство кодеров так и остаются безвестными тружениками, просаживающими своё здоровье перед мониторами и получающими за это не такое уж и большое вознаграждение.
При написании этой статьи я вовсе не ставил себе цель очернить или каким-либо образом принизить профессию программиста. Просто каждый раз, выбирая себе новую профессию, необходимо учитывать, что она может иметь не только парадную сторону, но и негативные аспекты, которые в дальнейшем способны изрядно подпортить вам жизнь.
Ну что, ещё не передумали идти в программисты?
lifehacker.ru
Стоит ли учиться на программиста? Хорошая ли профессия?
Ни для кого не является секретом, что многие молодые люди все чаще и чаще выбирают профессию программиста. Причины выбора банальны — везде говорят, что программисты востребованы и много наглядных примеров успешных компаний, которые создавая программные продукты поднялись с «нуля», а та же Google уже практически десять лет является лучшим работодателем во всем мире. Естественно, стремление стать успешным программистом вполне оправданно. Но все ли так гладко?
Во-первых, перед желающим стать программистом всегда встает вопрос: «Куда пойти учиться?» Многие выбирают престижные ВУЗы, третьи учатся в посредственных и по их окончании ни у кого нет никаких гарантий, что он станет успешным, а не сядет заурядным системным администратором в местной областной больнице или не пойдет работать учителем по информатике. Поймите, бесплатное образование позволяет найти бесплатную работу и никто не раскроет перед вами свои секреты успеха, поэтому учиться программированию придется самому. Будут это книжки купленные в магазинах или довольно удачные видео уроки со специальных сервисов таких как ITVDN https://itvdn.com/ru/, либо просто ограничитесь YouTube’ом — это ваше решение. Главное учитесь, практикуйте и продолжайте развиваться и только тогда вас может ожидать успех.
Во-вторых, мечтая о работе в компании Google следует понимать, что в нашей стране ее штат составлял не более 100 программистом и с началом кризиса она переселила их с семьями в Европейские страны и США, обеспечив всем необходимым. При этом наши ВУЗы ежегодно десятками тысяч выпускают программистов и большинство из них хочет получить работу с хорошей заработной платой и удобным графиком работы. По факту большинство трудоустраивается в бюджетные организации, где либо занимаются 1С программированием, либо ремонтируют компьютеры местных работяг. Заработная плата у этих программистов среднестатистическая — официально средняя, по факту половина от средней.
Поэтому, если у вас нет таланта и «мохнатой руки» за спиной, которая посадит на хорошую работу, но имеется любовь к программированию — научитесь организовывать свое рабочее время и будьте самостоятельным. Только развитие собственного бизнеса вначале на уровне фриланса, а затем и на базе собственной группы программистов — вы добьетесь успеха. Мечтать о труде в Google и Майкрософт не следует — первая набирает избранных, а вторая то и дело сокращает штат программистов. А устроитесь работать программистом в бюджетное учреждение — бесплатно отдадите здоровье, так как любая работа программиста — это ощутимый вред здоровью из-за постоянного сидячего образа жизни.
megaobzor.com
Инструкция для тех, кто хочет стать программистом с нуля
Начать свой путь к карьере программиста стоит с ответа на вопрос, нужно ли вам программирование вообще? Этот вопрос не относится к тем, кто учится или учился по специальности, близкой к программированию. Если вам в школе математика давалась лучше, чем гуманитарные науки, если вам нравится проводить много времени за компьютером, если вам хочется изучать что-то новое, тогда программирование вам подойдёт.
С чего начать
Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый — родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант — модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант — хобби, которое переросло в работу.
Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:
- Самообразование. Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно сайтов, книг и приложений, которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
- Университет. Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
- Ментор. Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о полезном ресурсе, где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
- Специализированные практические курсы. Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.
Какой язык, технологию и направление выбрать
Когда вы станете программистом, через годик-другой будете вольны выбирать любой язык, который вам нравится. Но при выборе первого языка программирования новичок должен учитывать следующие критерии:
- Наличие на рынке вакансий. Конечная цель этого пути — найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
- Низкий уровень вхождения. Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
- Кайф от процесса. Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.
Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли — разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.
В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и JavaScript, который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.
Как получить начальный опыт
Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.
Во-первых, не стоит ждать, пока вы прочитаете все книги по выбранному языку программирования. Начинайте писать свои первые строки кода уже после второй главы книги. Выполняйте все задания из книг, перепечатывайте примеры, разбирайтесь в них. Усложняйте примеры и задания из книг своими идеями. Создавайте свои задачи к пройденному материалу. Решайте эти задачи.
Во-вторых, вам нужно найти свои первые проекты. Это, наверное, самый сложный вариант, но рабочий. Вам придётся самому искать заказы, выполнять их, заморачиваться с оплатой. Для новичка это архисложно, но зато затем все остальные варианты покажутся плёвым делом. Выполненные проекты можно будет записать в опыт и показать вашему будущему работодателю. Реальные проекты являются большим плюсом в вашем резюме.
Если вы знаете английский язык, регистрируйтесь лучше на англоязычных биржах. Рынок там больше. Если не знаете английского, учите его. А пока что вам доступны русскоязычные биржи фриланса. Ищите небольшие проекты, которые соответствуют вашему уровню знаний или чуть выше него. Подайте заявку на пару десятков таких заданий. И приготовьтесь получить море отказов. Но если одна-две заявки выстрелят, у вас будет шанс получить реальный опыт.
Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или других сервисах для хостинга кода. Не стесняйтесь задавать там вопросы.
Четвёртый вариант получения опыта — помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.
Последний способ — собственные проекты, различные хакатоны или работа в коворкинге. Свои проекты сложно начинать самому, лучше поискать знакомых или друзей.
Почему стоит выбрать Python
Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python. Я очень советую выбрать именно его в качестве первого языка программирования.
Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python — язык широкого назначения. И он такой простой, что даже дети могут его выучить.
Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.
PHP — ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.
Языки C и C# очень сложны для новичка. Ruby — хороший выбор в качестве второго языка, но не первого. JavaScript — очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.
Важен ли английский язык
Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.
Что нужно знать, кроме языка программирования
Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что — зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.
Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста — уметь гуглить. Без этого вы не проживёте.
Последние шаги
Вам нужно подготовить резюме. Не просто резюме, а хорошее резюме. Не стоит писать там лишней информации, но и умалчивать о своих умениях тоже не нужно. После того как вас пригласят на интервью, вы должны к нему подготовиться. Пройдитесь по материалу, который указан в вашем резюме. Вы должны быть уверены в своих знаниях. Просмотрите проекты, над которыми вы работали, вспомните технологии, которые вы применяли. И вперёд — к светлому будущему с новой профессией программиста.
lifehacker.ru
Стоит ли идти на программиста
Петя, иди на программиста, не прогадаешь. Сейчас почти все связано с информационными технологиями, без работы не останешься, ради интереса посмотри з/п программистов. Конечно это вечное саморазвитие, собственно, как и в любой другой сфере.
HTML фигня, легко Тебе не математика не физика не понадобятся когда ты на програмиста пойдешь, там всему тебя научат А так идти стоит, УДАЧИ!!!
Иди, хорошая и интересная профессия. По поводу английского — нужен технический английский а не разговорный, что дают в школе
У тебя проблема с русским! . На программиста можно пойти, конечно, но прогу на каком языке будешь делать? Тебя же никто не поймет. Может вначале русский язык выучить? А потом полный вперед!
>>Просто если при поступление понадобится егэ по информатике его я не сдам если ты не уверен, что сдашь школьный курс информатики- оставь этот замысел. Будет сложнее. Намного.
Программирование — профессия интересная, но тяжелая. Такие же деньги можно зарабатывать гораздо меньшим трудом. Знать английский практически обязательно (важнее чем математику или физику) , иначе далеко не уйдешь.
touch.otvet.mail.ru
Стоит ли Вам идти учиться на программиста?
Ребята, которые буквально через год уже заканчивают школу, имеют еще довольно смутные представления о том, на кого же они пойдут учиться после школы. Сегодня вы хотите быть системным администратором, завтра — программистом, послезавтра — гитаристом.
Это очень распространенное явление. Кажется, что ты можешь охватить весь мир, что ты можешь обучиться любой профессии и стать знаменитым. К сожалению, это далеко не так. Поэтому придется выбрать что-то одно.
Из-за частой смены вкусов и предпочтений может получиться так, что вы выберете как раз ту профессию, которая кажется вам крутой, но в которой вы разочаруетесь буквально через два месяца обучения.
Я видел много таких людей. Сначала добросовестно посещают все занятия, пишут контрольные, если что-то не получается, идут на форум программистов за советом, берут на дом и… теряют к обучению интерес, потому что не могут элементарно понимать, зачем в программе нужны, к примеру, циклы и как их записать.
Многих выбивает из колеи огромное количество математических предметов. По любой нормальной программе Вы должны будете пройти высшую математику, дискретную математику, математическую статистику и теорию вероятностей, численные методы, математические методы… Так что если Вы хотите стать программистом, то на математику Вам придется тратить столько же (а может быть, даже и больше) времени, сколько и на программирование.
В различных журналах и фильмах жизнь программистов и хакеров выглядит очень красиво. Они легко зарабатывают тысячи долларов за неделю и живут в шикарных домах. Естественно, что это не так. Ваш труд будет тяжелым. На разработку более-менее нормального приложения уходит не один месяц, так Вы должны свыкнуться с судьбой написания кода для унылых программ в течении нескольких месяцев.
Опять же, сейчас существует огромное количество профессий, связанных с программированием. Веб-программирование — написание сайтов и веб-приложений (знание алгоритмов и математики, конечно, желательно, но не обязательно). Системное программирование — написание драйверов для устройств, ядер операционных систем. Прикладное программирование — разработка прикладных программ, необходимых, например, для работы предприятий, программирование микроконтроллеров…
Работа ведется в разных языках и на разных средах, так что будет плохо, если Вы решите изучать только один язык программирования. Язык — не главное. Главное — знание алгоритмов, понимание того, как это все работает. А уже потом можно будет изучить синтаксис того языка, который будет нужен Вам для профессии.
Если Вы твердо решили поступать на программиста, то Вы должны будете тщательно подобрать учебное заведение. Везде обучение идет по-разному. Меня, например, учили программировать в старом Turbo C++ 3.0, и только во второй половине второго курса мы перешли на C++ Builder. В другом колледже студентов учат программировать на примере языка Pascal и Delphi. В третьем колледже студенты уже на первом курсе вовсю проходят новейшие среды разработки приложений. В ВУЗах ситуация аналогичная.
Понять, получится ли из Вас программист или нет, довольно просто. Попробуйте чуть-чуть почитать самоучители по Pascal, а потом потратить ночь на то, чтобы написать интересную и длинную программу. Если вы с упоением исправляете ошибки в коде, не чувствуя утомления, меняете местами, удаляете или дописываете команды — Вы станете программистом (конечно, для этого придется потрудиться).
Надеюсь, я хотя бы в общих чертах ответил на вопросы будущих кандидатов в программисты. Удачи Вам!
Прочитано: 11218 раз(а) | Комментариев: 3 | Средняя оценка (макс. 7): нет (Голосов: 0)
pc.uz