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


Какое программирование самое востребованное в 2019 году — статьи на Skillbox

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

Одно из разноплановых направлений. Здесь работают с JavaScript, PHP, Python, Java и Ruby, а также используют «язык структурированных запросов» SQL. Веб-разработка купается во внимании новичков-программистов. Но и конкуренция здесь высокая: чтобы оставаться на плаву, нужно постоянно следить за тенденциями.


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


Это направление считают самым перспективным. Смартфоны есть у всех, и их возможности непрерывно растут. Языки создания мобильных приложений: Java и Kotlin для Android, Swift для Apple, а также Python, JavaScript, C#.

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


Фокус разработки всё больше смещается в сторону мобильных устройств. Если у компании нет приложения, то она незаметна для большинства. И эта сфера продолжает расти.


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

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

Языки десктопа зависят от операционной системы:

  • для Linux и кроссплатформенных приложений — C++;
  • для macOS — Swift и Objective-C;
  • для Windows — C#.

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


Не так давно по геймдеву сходили с ума все поголовно — он был на пике роста популярности. Сегодня страсти улеглись, но это по-прежнему уважаемая и интересная область интернет-технологий. Годовой оборот рынка в 2017 году оценили в 100 миллиардов долларов. Языки геймдева: С++, C#, Lua и JavaScript для браузерных игр.


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


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



Специалисту по Big Data необходимы серьезные знания математического анализа, статистики, машинного и глубокого обучения, текстовой аналитики. Языки программирования, на которых «говорят» здесь, — R, SAS и Python.


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


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

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


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


Интернету вещей пророчат большое будущее и активное развитие в ближайшее время. Аналитики компании Ericsson прогнозируют среднегодовой темп роста в размере 23% до 2021 года.

Интернет вещей — это создание smart-устройств, подключенных к сети умного города или дома.


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


Программные продукты для компаний из трендов не уйдут: наоборот, появляются новые и конкурируют между собой. Популярные в России — «Мегаплан», amoCRM, «Битрикс24», 1С. Лидеры международного рынка: SAP, Salesforce, Microsoft Dynamics CRM, Siebel Oracle CRM и другие.

SaaS — решения для менеджеров, PaaS — ПО для разработчиков, IaaS — сетевые ресурсы в качестве виртуальных машин и хранения данных

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


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


skillbox.ru

На какого программиста учиться? ПрофГид

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

Читайте также:

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

1. Ситуация на рынке труда

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

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

2. Сложность изучения

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

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

Наиболее простыми считаются Ruby, Python, PHP.

Читайте также:

3. Интерес

И, н

www.profguide.io

Отрасли программирования. Кем можно стать? — Хабр Q&A

Мне кажется, что есть смысл начинать с компилируемых ЯП. Они, как правило, более близки к железу, а это, в свою очередь, сыграет очень важную роль в понимании процесса в целом, ведь любая программа, будь то десктопное приложение, или мобильное, или какой-нибудь бэкэнд, рано или поздно превращаться в инструкции процессора, и чем быстрее этот процесс происходит и чем меньше инструкций — тем быстрее она выполниться. Раз у вас есть знания С++ - то это чудесный выбор для начала. Он покажет насколько важны оптимальные алгоритмы, научит планировать и продумывать архитектуру чтоб добиться производительности, научит экономить ресурсы и грамотно управлять ими, столкнет вас лоб в лоб с нюансами типа "битая куча", аварийное завершение приложения со стороны ОС, всевозможные переполнения и т.д. Не стоит этого бояться, в вашем случае, когда есть время, это может стать очень интересным. Кроме этого будет возможность параллельно почерпнуть знаний о строении ОС (виртуальная память, стек, дескрипторы, процессы и потоки и т.д.).

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

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

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

Успехов вам!

qna.habr.com

Куда пойти учиться на программиста / Habr

Школьники уже, кажется, сдали ЕГЭ и вот-вот отправятся подавать документы в ВУЗы. Программирование и IT-технологии пользуются стабильным спросом, примерно как юридические и экономические специальности 10 лет назад.

В этой статье я расскажу как работает высшее образование для IT, как правильно выбрать IT-специальность.
Статья будет полезна не только абитурентам-2015, но и школьникам старших классов, которые уже решили связать свою жизнь с IT.

Нужно ли поступать в ВУЗ, чтобы стать программистом?


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

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

Хороший ВУЗ даёт прежде всего отличные условия для того, чтобы получать знания, опыт, связи и вырасти как личность. И только от вас зависит, как вы будете их использовать (и будете ли вообще).
Примем условно, что вы уже приняли решение получить высшее образование в сфере 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-технологии меняются слишком быстро, поэтому возможны две крайности:

  1. преподаватель читает вам то, что морально устарело, но вы всё прекрасно понимаете
  2. преподаватель рассказывает о новейших технологиях, но у вас остаются большие пробелы в понимании чего-либо (если вы не восполните их самостоятельно в книгах, на 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

Хочу стать программистом. Какой факультет выбрать? — Хабр Q&A

Привет, я как раз из вышки - программа ИВТ (Информатика и вычислительная техника). Расскажу про каждую программу, так как имел опыт общения с людьми оттуда. Сразу предупреждаю - я говорю только о вышке, ее организация сильно отличается от других вузов:
Сперва оговорю что в вышке есть куча факультативов и в прошлом году был факультатив по разработке под Android (начального уровня, но все же неплохо). Так что ты всегда можешь выбрать любую программу обучения и набрать факультативов. Список всех факультативов можешь посмотреть тут .
1) ИВТ: на первом курсе все посредственно - был один семестр паскаль, второй семестр C. Оба курса были очень просты и были нацелены больше на обучение программированию, чем на углубление в него. Была физика, матан, линал. Также была еще информатика, но там больше рассказывали разноплановые интересные вещи. От принципа работы АЦП и ЦАП до введения в lisp. На втором курсе был качественный курс по ООП на C++. Началась электротехника и электроника, ассемблер, компьютерные сети, операционные системы, после второго курса будет выбор специализации: варианты робототехника, автоматизация систем и вычислительные сети. В общем на курсе не очень много программирования пока что, больше низкоуровневых вещей - ассемблер, работа с ОС, построение логики на транзисторах и т.д., т.е. мобильного и веб программирования не намечается

2)Прикладная математика и ИТСС - это то же подразделение, что и ИВТ и, насколько я знаю, основное различие между ними - ИТСС это ИВТ, но с большим количеством электроники, электротехники и т.д., ПМ - это тот же ИВТ, но больше математики и меньше программирования, так что их этих трех тебе больше подходит ИВТ

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

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

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

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

Можешь задавать вопросы в коменты - отвечу

qna.habr.com

10 самых влиятельных языков программирования последних 50 лет и их создатели

В IT-вселенной существует множество языков программирования. С каждым годом их становится всё больше и больше. Например, сравнительно недавно появились языки Scala, Kotlin, Go и Closure. Но история говорит нам о том, что выживут лишь немногие из них.

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

Языки — это важнейшая составляющая индустрии программирования. Их часто обсуждают, критикуют, их, с течением времени, улучшают. Они у всех на слуху, но их историю, хотя бы то, как зовут их создателей, знают далеко не все. Такое менее характерно для популярных языков. Например, все знают о том, что Джеймс Гослинг — это отец Java. Но далеко не каждый программист знает о том, кто создал Perl, Pascal, Lisp или Erlang.

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

Топ-10 языков программирования и их создатели


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

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

1. Java — Джеймс Гослинг



Джеймс Гослинг

Java — это один из самых популярных и успешных языков программирования. Java создал доктор Джеймс Артур Гослинг. Он известен как «отец Java».

Изначально разработкой и поддержкой Java занималась компания Sun Microsystems. С января 2010 года, после того, как компанию Sun купила Oracle, этим занимается Oracle.

В основу Java положен принцип WORA («Write Once Run Anywhere», «Написано один раз, работает везде»). Платформонезависимость Java стала одной из фундаментальных причин успеха этого языка в корпоративной среде.

В настоящее время Java — это один из самых популярных языков. Если вы хотите изучить Java — взгляните на этот учебный курс.

2. C — Деннис Ритчи



Деннис Ритчи

Деннис Макалистэйр Ритчи, американский компьютерный специалист, занимался созданием языка программирования C в 1967 — 1973 годах в AT&T Bell Labs.

Язык C всё ещё весьма популярен. Он широко используется в системном программировании. Он старше Java, но не сдаёт своих позиций.

Деннис Ритчи, кстати, создал ещё и всемирно известную операционную систему Unix. Сделал он это вместе со своим давним коллегой Кеном Томпсоном.

Если сравнить популярность Денниса Ритчи с популярностью Билла Гейтса или Стива Джобса, то окажется, что сравнивать тут почти нечего. Но мало кто может сравниться с ним в том, какой вклад он сделал в мир информационных технологий. Об этом стоит знать каждому программисту. Если вы хотите изучить C — взгляните на эту специализацию на Coursera.

3. С++ — Бьёрн Страуструп



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

Бьёрн Страуструп родился 30 Декабря 1950 года в городе Орхус, в Дании. Он известен благодаря созданию и разработке широко используемого языка программирования C++. 

C++, как можно судить по названию языка, представляет собой язык нового поколения, следующего за языком C. C++ отличается поддержкой возможностей по объектно-ориентированному программированию. Это во времена появления C++ выглядело, в сравнении с C, невероятно интересно.

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

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

4. Python — Гвидо ван Россум



Гвидо ван Россум

Язык Python разработал Гвидо ван Россум из Центра математики и информатики (CWI). Python — это высокоуровневый язык общего назначения. При его проектировании особое внимание уделялось хорошей читабельности кода. Его синтаксис считается чистым и выразительным.

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

Python широко используется в разных сферах, в частности, в веб-разработке и в области информационной безопасности. Этот язык применяется в таких компаниях, как Google, Yahoo и Spotify. Вот хороший учебный курс по Python.

5. JavaScript — Брендан Эйх



Брендан Эйх

Если бы вы спросили меня о том, какой язык программирования можно назвать самым популярным в последние 5-10 лет, то я сказал бы, что это JavaScript. Он, совершенно определённо, господствует в мире клиентской веб-разработки, не в последнюю очередь — за счёт существующих JavaScript-библиотек. Кроме того, он пользуется серьёзной популярностью и в серверной среде — благодаря платформе Node.js.

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

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

Если вы хотите изучить JavaScript — к вашим услугам огромное количество материалов.

6. PHP — Расмус Лердорф



Расмус Лердорф

Язык PHP (изначально он назывался Personal Home Page Tools, что переводится как «Инструменты для создания персональных веб-страниц») создал в 1995 году Расмус Лердорф. Вне зависимости от того, насколько сильно вы этот язык ненавидите, вам никуда не деться от того факта, что он довольно-таки популярен при разработке серверных частей современных веб-проектов.

В настоящее время эталонная реализация PHP разрабатывается силами The PHP Group. PHP соперничал с технологиями Microsoft Active Server Pages (ASP) и Java Server Pages (JSP) и в итоге стал гораздо более востребованным, чем они. Это — опенсорсный язык, который используется такими интернет-гигантами, как Facebook, Wikipedia, Wordpress и Joomla.

Если вы хотите изучить PHP — загляните сюда.

7. Perl — Ларри Уолл



Ларри Уолл

Perl — это высокоуровневый, динамический, интерпретируемый язык программирования общего назначения. Его создал Ларри Уолл в середине 1980-х. Своей популярностью Perl обязан замечательными возможностями по обработке текстов.

Perl всё ещё является основным языком, используемым для разработки скриптов в UNIX-системах. Perl используется в сфере компьютерной графики, в приложениях для работы с базами данных, в сфере сетевого программирования. Среди компаний, которые используют этот язык, можно отметить IMDB, Amazon и Priceline. Вот хороший учебный курс по Perl.

8. Ruby — Юкихиро Мацумото



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

Язык Ruby был создан Юкихиро Мацумото в середине 1990-х в Японии. Программирование на Ruby — занятие увлекательное. Если вы пробовали веб-фреймворк Ruby on Rails, то вы меня поймёте.

Воздействие на Ruby оказали такие языки, как Perl, Ada, Lisp, Smalltalk. Этот язык создан в расчёте на то, чтобы писать программы на нём можно было бы быстро и приятно.

Ruby, в основном, используется при разработке веб-приложений. В частности, этот язык применяется в таких компаниях, как Twitter, Hulu и Groupon.

Вот учебный курс по Ruby.

9. Lisp — Джон Маккарти



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

Язык Lisp (LISt Processing language, язык обработки списков) был разработан Джоном Маккарти. Это — один из старейших высокоуровневых языков, которые используются по сей день.

Я никогда не изучал Lisp, но говорят, что этот язык является прародителем таких языков функционального программирования, как Haskell, Erlang и Scala. Этот язык используется в самых разных сферах. В частности — в военной. По Lisp существует не так уж и много учебных курсов. Вот — один из них.

10. Pascal — Никлаус Вирт



Никлаус Вирт

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

Итоги


Я поделился с вами моим рассказом о 10 языках программирования и об их создателях. Все, о ком я рассказал, внесли серьёзный вклад в развитие IT-индустрии. Без них современный мир был бы совсем другим.

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

habr.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

Вывод:

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

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

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

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

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

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

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

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

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

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

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

Итоги:

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

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

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

yhoome.ru

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

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

Разработка web-приложений

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

Web-программирование можно разделить на backend (написание серверных скриптов – PHP, Python, Ruby) и frontend (разработка юзерского интерфейса – Javascript, HTML, CSS).

Разработка desktop-приложений

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

Разработка серверных приложений

Это различные игровые сервера (ваша любимая Дотка, CS: GO), IM-сервисы (серверная часть Skype, ICQ, MSN), банковские базы данных.

Разработка мобильных приложений

Множество Java-приложений. VK, Viber, Яндекс.Карты, переводчики, электронные читалки.

Программирование встраиваемых систем

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

Системное программирование

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

Разработка игр

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

Олимпиадное программирование и решение задач

Программирование на различных «непрактичных» и не распространенных языках (Pascal, Delphi) для решения каких-то оригинальных задач, требующих нестандартного подхода, смекалки и IQ выше 160.

Программирование для бухгалтерских и финансовых продуктов

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

Программирование баз данных

Серьезное направление. Хотите разрабатывать базы данных, способных хранить миллиарды строк информации о всех пользователях VKontakte или Facebook и при этом не тормозить – вам сюда.

Science

Наука и этим все сказано. Нейронные сети, моделирование структуры ДНК, запуск спутников, моделирование Большого Взрыва.

Кстати, недавно на сайте NASA была опубликована новость о поиске программиста на «древнем» языке Fortran, которому уже более 60 лет. Требовался программист для разработки программ по управлению автоматическими зондами Вояджер-1 и Вояджер-2, программное обеспечение для которых было написано на Ассемблере, Фортране и языке COBOL еще в 1970-х годах. Никогда не знаешь, какие знания могут пригодиться.

moeobrazovanie.ru

Что айтишнику делать в 2020?  / RUVDS.com corporate blog / Habr

Приобрести VDS со скидкой 30%, да ещё и до повышения цен. Шутка :) Но в каждой шутке есть доля правды.

До нового года осталась ровно неделя и мы знаем, что почти никто из нас с вами не начнёт новую жизнь с 1 января или с понедельника. Но также мы знаем, что никто не остановится в развитии — такова уж наша айтишная судьба: ушёл на три недели на больничный, вернулся и выпал из реальности. Ну почти. Казалось бы, сложившиеся технологии вполне достаточны для реализации большинства текущих проектов и даже самых смелых фантазий, но тем не менее в привычный стек то и дело врывается что-то новое. А стоит ли в это новое вникать? Что изучать дальше? Или наконец выйти из айти? Мы набросали небольшой план на год.


После Cybertruck мы решили не включать дизайн в список перспективных направлений для айтишников в 2020 году. Что есть внешность вещей? Ничто рядом с их сутью

Какой язык программирования на коне?


С чего начать пост о планах разработчика на 2020 год? Конечно, с анализа популярности языков программирования. Мы обратились к статистике Octoverse и осознали, что нет ничего более вечного, чем JavaScript борьба языков в первой пятёрке. Как видите, сохраняет свои позиции JavaScript и его можно смело изучать, он не потеряет популярности даже через 5-7 лет, а то и больше. 

Любителям больших данных, нейросетей и крутой аналитики стоит заняться Python и его библиотеками, поскольку ещё долго время он будет основой data science. Однако будьте осторожны — компаний с большими данными не так уж много, конкуренция на рынке разработчиков уже есть, а значит, вы можете не сразу найти работу мечты и заняться по-настоящему крутыми задачами.


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

Но ограничиться одним графиком неинтересно, давайте немного углубимся в статистику.

Лучшие проекты на GitHub по версии Octoverse выглядят так:


Среди этих проектов следует выделить Flutter — SDK с открытым исходным кодом для создания мобильных приложений от компании Google. Он используется для разработки приложений под Android и iOS и позволяет не создавать сразу два приложения, вы просто пилите приложение на одном языке программирования для обеих мобильных платформ. У Flutter очень много фишек и преимуществ, инженерных находок, поэтому его интересно изучить хотя бы для своего пет-проекта. На данный момент это отчасти будущее всей кроссплатформенной разработки — может и не в рамках Flutter, но выглядеть оно будет примерно так.

Языки программирования на GitHub с самыми высокими темпами роста (Octoverse):


Как видите, Dart показал колоссальный рост и это не случайно. Именно Dart — основной язык для Flutter. Это интересный, мощный язык, который уже сейчас позиционируется как альтернатива, наследник и чуть ли не убийца JavaScript (но мы-то знаем…). Вообще, список языков довольно специфический, и присутствие языка в списке скорее свидетельствует не о его популярности, а о росте интереса (как у Dart) или востребованности профессионалов с хорошим уровнем языка. Например, сложно посоветовать учить в 2020 году Rust или увлечься PowerShell, но то, что хорошие специалисты в этих технологиях получают выше рынка, это факт. Так что если у вас в голове завалялся недоученный и непрактикуемый Rust, а путь не определён, вполне можно потратить время на этот скилл.

Подведём чёткую черту:

  • если вы новичок и выбираете первый язык программирования, наш совет — JavaScript, Python, C++;
  • если вы мобильный разработчик или тяготеете к ней, то Dart + Flutter, но и Kotlin не помешает;
  • если вы профессиональный разработчик, растите вширь (фреймворки, производительность, новые версии языков), изучайте DevOps, смотрите в сторону безопасности;
  • если вы просто хотите «поучить язык для себя без цели, ну так» — учите английский или китайский, у языка программирования должна быть идея и цель. 

Чем ещё заняться в 2020 году?


▍Найдите Азию в себе


Если вы думаете, что про китайский чуть выше мы пошутили, то нет. Китай, Япония, Южная Корея сильно растут технологически, принимают крупнейшие конференции по нейросетям и VR/AR и вполне готовы работать с крутыми разработчиками удалённо и на территории своей страны, а также в рамках совместных с Россией государственных и коммерческих проектов. Пока, конечно, рано судить и делать грубые прогнозы, но не исключено, что в скором времени у Калифорнии появится немало конкурентов именно в Азии. Так что да, выбирайте страну, которая вам кажется интереснее, и изучайте язык, культуру, традиции — пока как хобби, а там как карта ляжет.

▍Девопсь!


Хороших DevOps-ов на рынке катастрофически мало. Здесь получилась такая же ситуация, как с разработкой — вроде «яждевопсов» много, а по сути просто умеют ковырять Docker. В то время как DevOps это и безопасность (уже два года как есть понятие DevSecOps), и микросервисные архитектуры, и собственно контейнеризация, и старое доброе системное администрирование. Поэтому, если есть потребность одновременно горизонтального и вертикального профессионального роста, приступите к DevOps. Чтобы вы понимали, насколько это серьёзно, мы приведём суперский roadmap освоения этой сферы от Камрана Ахмеда. 

▍Между небом и землёй


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

▍Пятёрка самых-самых


  1. Смешанная реальность придёт на смену виртуальной реальности и выйдет за пределы игровой сферы. Уже сейчас появились первые проекты дополненной и смешанной реальности, и эта тенденция однозначно продолжится и выйдет за пределы очков и покемонов. Поэтому, если вас захватывает эта в прямом смысле головокружительная технология, дерзайте.
  2. Искусственный интеллект вопреки прогнозам ИТ-фантастов не станет по-настоящему интеллектуальным и «человекоподобным», он так и останется алгоритмом. Но все эти умные колонки, разработка навыков под них и т.д. здорово помогут изучить сферу новичкам и любителям, а профессионалы смогут применить свои знания в финтехе, медтехе, космосе и промышленности.
  3. Блокчейн вероятнее всего постепенно сбросит с себя негативный оттенок криптовалют и станет одним из стандартов защиты конфиденциальных данных, например, в платежах, недвижимости, ритейле и медицине. Конечно, вы можете написать свою криптовалюту как практику для изучения блокчейна, но рекомендуем не делать из этого самоцель — хайп уходит, а вот интересная и крутая технология продолжает жить.
  4. Кибербезопасность будет требовать всё более сильных пентестеров, разработчиков, сисадминов и даже менеджеров, поэтому это одно из самых перспективных направлений развития — специалисты по инфобезу будут нужны буквально в каждой компании. 
  5. Медицинские технологии — это объективно сформированная потребность ближайшего будущего. В медицинских командах учёных будут всё чаще нужны разработчики, девопсы, биотехнологи, медицинские инженеры. Войти в эту сферу достаточно сложно, но если вы выбираете вуз себе или ребенку, обязательно рассмотрите это направление, оно появилось уже и в крупных региональных университетах.

Учите математику


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

А если вы компания…


Не вляпайтесь в проблемы с поставщиками услуг, которые подводят в самый неподходящий момент. Мы вас не подведём и по старой доброй традиции, на весь декабрь мы установили скидку в 30% при оплате за год. Хорошая возможность заморозить цены на наши услуги перед новогодним подорожанием. Например, Вы можете оплатить на 3 года вперед и сэкономить до 90% от стоимости вашего VPS за 1 год.

И да, призы и промокод на 10% вас тоже ждут!

Что бы вы ни выбрали, мы желаем вам впечатляющих достижений, крутых открытий, успеха в работе и главное, устойчивого work/life баланса. Пусть ваш 2020 станет годом роста и определения себя внутри отрасли.  


habr.com

Какой путь изучения программирования выбрать? — Хабр Q&A

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

Б1: РЫНОК ТРУДА И ПЕРСПЕКТИВЫ.

Б1.1. Какая специальности в программировании наиболее открыты и дружелюбны к джуниорам?
Каковы перспективы развития?

Б1.2. На какие специальности можно выучиться до джуниора за наиболее короткий срок?

Б1.3. В общих чертах, что должен знать и уметь джуниор? До какого уровня учиться?

Б1.4. Каковы шансы устроиться джуниором в сферу C++? И, с учётом сложности языка, стоит ли мне рассматривать эту сферу в свои года?

Б2: ОСНОВЫ ПРОГРАММИРОВАНИЯ\БАЗА.

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

Б2.1. Хотел бы узнать наиболее полный список действительно нужных тем и дисциплин computer science.
И хотел бы узнать лучшие источники (курсы\книги) знаний по этому списку.
Идеально, если это цельная программа в одном месте.

Б2.2. Покрывают ли потребность в теории курсы Introduction To Computer Science от MIT и Harvard? Стоит ли их проходить?

Б2.3. Что ещё из теории помимо основ computer science нужно программисту?
К примеру, есть тематика "введение в программирование" и "software developing" - нужно ли изучать ещё и эти темы или в них тоже самое, что и в computer-science?

Б2.4. Хотел бы узнать наиболее полный список действительно нужных математических дисциплин для программиста? И лучшие курсы\книги для изучения этого?

Б3: ЯЗЫКИ ПРОГРАММИРОВАНИЯ

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

Б3.1. Сколько языков нужно знать джуниору?

Б3.2. С какого языка следует начать обучение? Наиболее перспективный и гибкий (используется в различных сферах и специальностях) и лучший для изучения? И какой язык к нему следует добавить в дальнейшем?

Б3.3. Посоветуйте самые качественные проработанные курсы\книги для изучения рекомендуемых языков.(можно на английском и можно платные)

Б3.4. Насколько сильно версии одного и того же языка отличаются друг от друга? Как долго времени занимает изучение новой версии языка?

Б3.5. Что вы можете сказать о курсах Treehouse?

Б3.6 Стоит ли мне начать изучения с языка C++? Я наслышан о том, что он достаточно сложен и это наводит на мысли, что я могу очень долго провозиться с ним.

Заранее большое спасибо всем, кто окажет помощь!

PS Тем, кто также находится в процессе обучения - пишите на почту [email protected] Сможем делиться опытом и наработками. Буду рад общению!

qna.habr.com

Какие существуют направления в программировании? — Хабр Q&A

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

1. Встраиваемые системы. Насколько это перспективно? Видел на одном форуме мнение, что embedded в будущем станет менее востребованным, хотя самому мне так не кажется — ведь это и смартфоны, и роботы, и ip камеры и много чего ещё

2. Вирусная аналитика. Совсем недавно это направление попало в моё поле зрения. Хотелось бы просто больше узнать о навыках и знаниях, нужных вирусному аналитику и о том, какие существуют смежные направления.

3. Шифрование, криптография, ЦОС. Насколько практично изучение этих вещей? Я имею ввиду, для того, чтобы работать в крупной компании, а не в каком-нибудь НИИ.

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

5. Функциональное программирование. Ну там, Haskell, Erlang. С одной стороны, видел много статей, в которых этот самый хаскель и ФП вообще расхваливались, да и самому мне идеи их нравятся, да только много кто считает, что в теории-то они хороши, но на практике никуда с ними не устроишься. Неужели всё так плохо? И ещё, в каких конкретно направлениях использование ФЯ действительно оправдано?

Вообще интересно ещё низкоуровневое программирование, ковыряние с железом (с паяльником дружу, обжимать умею :)

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

На счёт опыта и навыков:

Python (писал программку для автоматической настройки ip-камеры, сейчас пишу программу ля отправки видео с камеры на сервер, параллельно разбираясь с Django, чтобы писать для этой программы серверную часть)

C++ (ничего готового пока не сделал, сейчас начал писать кейлоггер и простенького сетевого червя — исключительно в (само)образовательных целях, распространять не буду)

Pascal/Delphi (писал программку-переводчик с английского на русский, которая брала слова и их перевод из текстового файла и ещё одну — тест с выбором ответа, берущий вопросы и ответы из текстового файла, спрашивающий у пользователя фамилию и имя, вычисляющий оценку и записывающий в другой файл фамилию, результат и дату — но это давно было, сейчас паскаль как-то подзабросил)

Потихоньку начал учить fasm под Linux, поверхностно знаком с HTML/CSS, очень поверхностно с JavaScript.

Чуть не забыл — интересны в первую очередь свободные технологии — поэтому .NET и Flash, например, не сильно привлекают. Но это не самый важный критерий.

P. S. Изначально хотел попросить более общий список направлений, но так вышло, что в процессе формулирования вопроса пронял, что просить перечислять вообще все направления — слишком нагло, поэтому постарался определить, в направлениях в каких областях мне бы хотелось больше всего узнать.

qna.habr.com


Смотрите также