тест какой язык программирования мне подходит
Онлайн-тест подскажет, какой язык программирования больше всего вам подходит и почему
Хотите стать программистом и не знаете, с чего начать? Или вы уже программист и теперь мучаетесь выбором, какой новый язык освоить? В интернете появился ресурс bestprogramminglanguagefor.me, который поможет определиться и аргументирует свое предложение. Это простой онлайн-тест, правда, на английском языке.
Онлайн-тест состоит всего из трех вопросов. Он определяет ваши цели, интересы и предпочтения, и на основании полученных данных выдает результат.
Возможных результатов всего 10, однако могут быть и комбинации из несколько вариантов. Например: 1) HTML 5, 2) JavaScript. Если вам интересно, почему результат получился именно такой, программа готова ответить. Для этого нужно перейти по ссылке «Почему этот язык вам подходит». Она ведет на отдельную страницу, на которой подробно расписано, какие возможности дает конкретная среда.
Тест разработала образовательная платформа Codementor в рекламных целях. Внизу страницы с результатом есть блок, в котором вам предложат изучить ваш язык с 50% скидкой. Результатами теста можно поделиться в Facebook и Twitter, и если тест станет вирусным, Codementor сможет привлечь немало внимания к своей площадке.
Ранее тест на профпереориентацию «Кто ты в IT» запустил образовательный фонд Brain Basket. Тест определяет склонности человека к той или иной IТ-профессии в зависимости от его личных качеств, знаний и навыков.
Сможете ли вы стать программистом и зарабатывать миллион в секунду?
Тест для тех, кто готов ворваться в мир технологий
132 тысячи рублей — такова средняя ежемесячная зарплата разработчика в России в первом полугодии 2021 года. ИТ входит в список сфер, зарплаты в которых россияне считают неоправданно высокими. По их мнению, врач должен зарабатывать 123 тысячи рублей, а программист меньше — 109 тысяч.
Пока это не совсем так, и все вокруг рвутся в ИТ, но разработчиков на свете по-прежнему не хватает. А вы задумывались когда-нибудь о том, чтобы бросить все и окунуться в бездну цифр и алгоритмов? Это не так просто, как кажется.
Ответьте на 12 вопросов и узнайте свои перспективы:
Да, кроме программирования в ИТ есть и другие интересные занятия. Попробуйте себя в роли инженера по тестированию: сможете ругать разработчиков за бесконечные баги. Это ли не счастье?
Кажется, вам не чуждо чувство прекрасного, а фронтенд-разработчики как раз отвечают за внешний вид сайтов или приложений. А еще за взаимодействие пользователя с ними: мало, чтобы кнопка была красивой, нужно, чтобы она нажималась и вела на верную страницу.
Вы будете оперировать большими данными, убеждать начальство в своих выводах — а там недолго и построить свою нейросеть, которая покорит мир.
Бэкенд — это уже серьезное программирование, и у вас есть все, что для этого нужно: логика, усидчивость и невозмутимость. Еще вы, кажется, не слишком любите людей, а в этой профессии как раз можно держаться от них подальше.
Перспектив у вас масса, а также неограниченное количество путей развития. Можно пойти в электронную коммерцию или банк, а можно погрузиться в робототехнику или блокчейн.
Все это модные, но редкие языки программирования, и платят за них соответствующе. Ваши способности в сочетании с индивидуализмом и амбициями — верный путь к постижению этой перспективной ниши.
Идите в те сферы, где не так много профессионалов. Словом, выделяйтесь из толпы. Правда, придется очень много и постоянно учиться.
Но не расстраивайтесь. До определенной степени освоить этот навык может каждый. Начните с простых уроков и обучающих приложений или откройте для себя мир готовых шаблонов. Сервисы Tilda, Readymag, WordPress помогут собрать сайт и почувствовать себя настоящим разработчиком.
А еще держится не только на программистах. Без хороших менеджеров или маркетологов никуда.
Закодируйся: как выбрать первый язык программирования
Рассказываем о плюсах и минусах JavaScript, PHP, Python, Java, CSS и HTML. Статья подготовлена на основе вебинара с Михаилом Овчинниковым.
В бэкграунде — программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.
У каждого языка веб-разработки свои особенности, достоинства и недостатки, своя сфера применения и свой список связанных технологий (он называется «стек»). Сегодня мы сравним несколько популярных языков и дадим советы, как же из всего многообразия выбрать что-то одно.
Что такое типизация
Прежде чем мы начнём разбираться в плюсах и минусах языков, стоит поговорить о типизации. Потому что от типизации зависит и как вы пишете программу, и как она потом работает.
Типизация — это разделение переменных на разные типы: например int (целое число), flow (число с десятичной частью), string (строка текста), bool (правда/неправда).
Типизация бывает явная или неявная, слабая или сильная и статическая или динамическая.
В языках со статической типизацией типы переменных устанавливаются на этапе компиляции, причём обычно переменные объявляются с указанием типа (явно).
Динамическая типизация означает, что типы определятся уже во время выполнения программы.
Сильная (строгая) типизация не позволяет смешивать в выражениях разные типы и не выполняет автоматически неявные преобразования.
Языки со слабой типизацией более гибкие, но они часто сами неявно преобразуют переменные, даже если в результате может появиться неточность или если преобразование неоднозначно.
Теперь, когда мы разобрались с типизацией, перейдём к самим языкам.
HTML и CSS
Начнем издалека — с HTML (Hypertext Markup Language) и CSS (Cascade StyleSheets). Почему с них и почему «издалека»? С них — потому что они лежат в основе веб-разработки, и ни один сайт без них не обойдётся. А издалека — потому что это не совсем языки программирования.
Они нужны, чтобы создавать содержимое веб-страницы — контент и оформление; программу вы на них не напишете. Тем не менее веб-технологии сейчас уже используются и в других сферах, в том числе в десктопных и даже мобильных приложениях, поэтому у этих «языков» хорошие перспективы.
HTML и CSS очень простые — в основах можно разобраться буквально за пару дней, даже самостоятельно. Так что если вы очень боитесь программирования и не верите, что у вас получится, попробуйте начать с них. Это под силу каждому, поможет вам плавно войти в программирование и оценить свои силы. А потом при желании можно перейти к другим языкам.
Тест: твоя идеальная профессия в ИТ
В информационных технологиях огромное количество направлений и профессий. Иногда можно годами грызть профессию разработчика, чтобы потом внезапно оказаться на своём месте в управлении продуктом. А другой человек страдает на тестировании, просто потому что его истинное предназначение — сиять на фронтенде. Чтобы не маяться в будущем и сразу найти занятие по душе, вот несколько наводящих вопросов, которые помогут вам профориентироваться.
Знаете ли вы технологии двадцатилетней давности? Или дискетка поставит вас в тупик?
Красивые, полезные и странные — всё как мы любим.
Защити свои фото, пароли, документы, соцсети и себя.
Чтобы всегда быть наготове
Поднимайте сайт, закачивайте файлы и программируйте, что вам нужно. Это бесплатно.
Вордпресс после установки не так крут, как хотелось бы. Ставим плагины и наслаждаемся.
Подробный разбор видео с канала Code Bullet.
Знаете ли вы технологии двадцатилетней давности? Или дискетка поставит вас в тупик?
Какой язык программирования стоит выучить первым? (ʇdıɹɔsɐʌɐɾ: ɯǝʚɯо ņıqнqvиʚɐdu)
Многие начинают путь к изучению программирования, открыв поздним вечером Google. Обычно ищут что-то вроде «Как выучить…». Но как тот, кто ищет подобное, решает, какой именно язык программирования выбрать?
Кто-то, начитавшись сайтов и блогов крупнейших компьютерных компаний, рассуждает так: «В Кремниевой долине что ни слово – то Java. Думаю, это – то, что мне нужно». Бывает и так: «Haskell. Он ведь на пике популярности. Страшно подумать, что будет дальше. Определённо – Haskell». И даже так: «Этот суслик на логотипе Go – такая няшка. Хочу знать Go».
Некоторые, движимые стремлением научиться программировать, ищут вот что: «Какой язык программирования выучить первым?».
Бывают вопросы, которые задают так часто, что, для ответа на них создают целые схемы. Вот, например, одна из них, посвящённая выбору первого языка программирования, подготовленная командой этого сайта.
Если рассмотреть эту схему, окажется, например, что Ruby подходит тем, кто ребёнком любил лепить из пластилина.
Выбор первого языка программирования может стать увлекательным занятием, как полусерьёзные опросники, вроде: «Кто вы из героев Квентина Тарантино?».
Но, прежде чем вы уйдёте с головой в изучение Ruby, причём, только потому, что в детстве жить не могли без пластилина, позвольте обратить ваше внимание на то, что первый язык программирования – это очень и очень важно. Слишком многое от него зависит.
Для того, чтобы хотя бы в общих чертах разобраться с выбранным языком, понадобятся сотни часов практики. Поэтому симпатичные логотипы и хитроумные схемы не должны сбивать вас с толку.
Выбирая первый язык стоит трезво оценить следующие факторы:
Когда дело касается выбора первого языка программирования, вам придётся столкнуться с целой лавиной вариантов. Для того, чтобы немного сузить поиск, вот анализ поисковых запросов в Google за последние 12 лет, касающихся изучения программирования.
Из анализа поисковых запросов можно выяснить, что у Java были взлёты и падения. А, например, рейтинг Python постепенно рос, он стал чуть ли не самым популярным языком программирования. Есть здесь и один язык, простой, но обладающий замечательными возможностями, график интереса к которому год от года медленно растёт, хотя и находится в самом низу. Это – JavaScript.
Прежде чем говорить об этих языках программирования, позвольте кое-что уточнить.
Основы информационных технологий и обучение программированию
В вузах обычно учат программировать в рамках предметов по информационным технологиям, которые часто выглядят как дополнения к математическим курсам, либо привязаны к некоей основной специальности, скажем, к электротехнике.
Наверняка вы знакомы с этим высказыванием Эрика Рэймонда: «Образование в сфере компьютерных технологий точно так же не сделает из вас отличного программиста, как изучение кистей и красок не сделает вас прекрасным художником».
Сегодня, так же, как и раньше, большинство учебных заведений ставят знак равенства между программированием и информационными технологиями, а информационные технологии приравнивают к математике.
В результате множество вводных курсов по программированию построено вокруг достаточно низкоуровневых абстракций таких языков, как C, или языков, используемых в математических пакетах вроде MATLAB.
И те, кто принимают решения о том, чему учить на курсах по программированию, обычно придерживаются всяческих официальных источников, регулярно публикующих отчёты с рейтингами языков. Среди таких отчётов, например, TIOBE Index. А вот — таблица лидеров по версии IEEE.
Такие вот «таблицы лидеров» выглядят практически точно так же, как десять лет назад. Однако, всё меняется, даже в академических кругах.
Так, в 2014-м году Python обошёл Java, став самым популярным языком программирования в ведущих курсах по информационным технологиям в США.
И я уверен, что ещё одно изменение обязательно произойдёт, да что там говорить – это уже происходит.
Посмотрев на языки, которыми пользуются программисты, выполняющие реальные проекты, мы увидим совсем другую картину.
Вот результат опроса, который проводился на Stack Overflow в 2016-м году. В нём участвовало 49397 разработчиков. Более половины из них используют JavaScript.
Без JavaScript невозможна разработка веб-интерфейсов, а в последнее время, благодаря Node.js, растёт актуальность JavaScript в серверном коде. Этот язык стремительно распространяется и в другие области, такие, как разработка игр и интернет вещей.
Среди программистских вакансий JavaScript упоминается чаще, чем другие языки, если не брать в расчёт Java. Вот данные с крупнейшего агрегатора вакансий Indeed.com.
Неслучайно и то, что мы, на freecodecamp.com, собрали сообщество разработчиков, занятых проектами на JavaScript с открытым исходным кодом. За прошедшие два года более 5000 человек воспользовались Free Code Camp для того, чтобы найти свою первую работу в роли программиста.
Я, кстати, не ратую за JavaScript только потому, что обучаю на нём программировать. Всё, как раз, наоборот. Я обучаю этому языку именно потому что знание JavaScript – это верная дорога к первой работе программиста.
Но подходит ли JavaScript именно вам? Стоит ли ему становиться вашим первым языком программирования? Рассмотрим подробнее те факторы выбора языка, о которых я говорил выше.
Фактор №1: рынок труда
Если вы учитесь программировать из чистого любопытства и любви к интеллектуальным развлечениям, можете этот раздел пропустить. Но если вы, как и огромное количество других людей, изучаете программирование для того, чтобы с помощью приобретённых знаний и навыков найти работу, вам стоит обратить внимание на то, о чём здесь пойдёт речь.
Как я уже говорил, в объявлениях о вакансиях чаще всего упоминается Java. На втором же месте стоит JavaScript.
Но в случае с JavaScript надо учесть одну важную вещь. Хотя язык существует уже два десятка лет, лишь сравнительно недавно он превратился в серьёзный инструмент, с помощью которого гиганты вроде Netflix, Walmart и PayPal создают полноценные приложения.
В результате множество компаний нанимают JavaScript-разработчиков, но разработчиков этих не так уж и много.
Вот данные с Indeed.com, здесь показано соотношение вакансий и соискателей.
Итак, что мы видим. На одно место Java-разработчика приходится 2.7 программиста. В сфере вакансий, где требуется знание PHP, а также в среде iOS-разработки, складывается похожая ситуация.
Если же взглянуть на данные по JavaScript, то окажется, что на одну вакансию приходится всего 0.6 программиста. Для JavaScript-разработчиков это, определённо, рынок продавца.
Фактор №2: долгосрочные перспективы
JavaScript-проекты на GitHub получают, в среднем, в два раза больше pull-запросов, чем проекты на Java, Python или Ruby. И, кроме этого, JavaScript растёт быстрее, чем любой другой популярный язык.
Вот соответствующие данные GitHub Octoverse:
На экосистему JavaScript, кроме того, благотворно влияют серьёзные инвестиции, как финансовые, так и выражающиеся в человеческом капитале талантливых инженеров, от таких компаний, как Google, Microsoft, Facebook и Netflix.
Например, вклад в язык программирования с открытым исходным кодом TypeScript (расширенная версия JavaScript со статической типизацией) внесли более 100 разработчиков. Многие из них – сотрудники Microsoft и Google, которые получают зарплату за эту работу.
Подобную форму совместной работы компаний в среде Java найти сложнее. Например, Oracle, которая фактически владеет Java, поглотив Sun Microsystems, часто судится с компаниями, которые пытаются работать над этим языком.
Фактор №3: сложность изучения языка
Вот карикатура о сложности языков программирования от XKCD.
Большинство программистов согласится с тем, что высокоуровневые скриптовые языки сравнительно легки в изучении. JavaScript подпадает под эту категорию, вместе с Python и Ruby.
И даже, хотя в учебных заведениях языками, с которых начинают учить программировать, всё ещё являются такие, как Java и C++, разобраться в них значительно сложнее.
Фактор №4: проекты, которые можно создать, используя полученные знания
Вот здесь JavaScript нет равных. Он может работать на любом устройстве, на котором имеется браузер. Да вот хотя бы прямо здесь, где вы это читаете. В принципе, с помощью JavaScript можно создать практически всё, что угодно и распространить это по всему миру с уверенностью в том, что работать это будет практически на всём, что напоминает компьютер или мобильный телефон.
Повсеместное распространение JavaScript привело к такому знаменитому высказыванию Джефа Этвуда, сооснователя Stack Overflow: «Любое приложение, которое можно написать на JavaScript, будет в итоге написано на JavaScript».
С течением времени это высказывание, которое ещё называют «Законом Этвуда», не утрачивает актуальности.
В среде других языков можно наблюдать несколько иные тенденции. Например, однажды обещали, что Java будет работать буквально везде. Помните Java-апплеты? В начале этого года Oracle официально от них отказалась.
Python страдает от похожих проблем. Вот что по этому поводу написал Джеймс Хэг в статье о том, что пришла пора отказаться от Python, как от основного языка, используемого при обучении программированию. Ученик спрашивает: «Как мне дать эту вот игру, которую я написал, друзьям? Или, это будет даже лучше, можно ли как-нибудь записать её на мой телефон, чтобы я мог показать её всем в школе, а им не пришлось бы её устанавливать?». Учителю же, если речь идёт о Python, остаётся лишь хмыкнуть. В двух словах тут и не ответишь.
Если же говорить о JavaScript, то вот живые ответы на вышеупомянутый вопрос. Это – приложения, которые написали члены сообщества Free Code Camp в CodePen, пользуясь браузером.
Вот игра «Simon», созданная в стиле 1970-х.
Вот – реализация математической игры Джона Конвея «Жизнь».
Вот – страница поиска для Wikipedia, стилизованная под «Звёздные войны».
А вот – игра-«рогалик» с традиционным подземельем.
Первый язык: пройтись по верхам, или копнуть поглубже?
Сначала как следует изучите один язык. Затем принимайтесь за следующий.
Если вы будете прыгать от одного языка к другому, нигде толком не задерживаясь, далеко вам не уйти. Для того, чтобы продвинуться заметно дальше «Hello World», нужно как следует изучить ваш первый язык. После этого со вторым и последующим языками будет разобраться гораздо проще.
Хорошо освоив первый язык, вы сможете расширять познания, изучая другие языки и развиваясь как программист. Вот пара слов о языках, которые стоит рассмотреть после достойного освоения JavaScript.
Так, а теперь хочу сделать невозможное. Собираюсь попытаться представить себе возражения некоторых читателей, критику JavaScript и моих идей, которая может появиться в комментариях, и на эту критику ответить.
Возражение №1. JavaScript – язык медленный
JavaScript, для большинства практических целей, так же быстр, как языки, которые традиционно считают высокопроизводительными.
JavaScript (речь идёт о Node.js) на порядки быстрее, чем Python, Ruby и PHP. Его быстродействие приближается к C++, Java и Go. Вот результаты одного весьма серьёзного теста производительности для различных языков программирования.
Возражение №2. В JavaScript нет статической типизации
Как Python и Ruby, JavaScript – это язык с динамической типизацией. И это, с одной стороны, удобно, а с другой – способно завести разработчика в лабиринт ошибок. Вот, например, здесь мне хочется, чтобы переменная exampleArray была массивом. Я записываю в массив значения, проверяю его длину, то есть – количество содержащихся в массиве элементов. Выглядит это так:
Затем я случайно записываю в переменную строку, при этом, что ещё хуже, благодаря особенностям строкового типа данных в JavaScript, я вполне могу получить длину того, что считаю массивом, обратившись к свойству length:
Ошибка на ошибке, одним словом. Подобные вещи постоянно возникают в языках с динамической типизацией. Большинство разработчиков справляются с ними, выполняя проверки в опасных местах и создавая тесты для своего кода.
Если же вам, в первом языке программирования, совершенно необходима статическая типизация, я всё равно рекомендую начать с JavaScript. После этого вы сможете быстро освоить TypeScript. Вот что говорит на эту тему Алекс Эверлоф: «Для того, чтобы освоить TypeScript, нужно время, но, если вы уже знаете JavaScript, всё будет гораздо быстрее и проще».
Возражение №3. Я очень хочу создавать мобильные приложения, поэтому JavaScript не для меня
Даже если так, я всё равно советую сначала изучить JavaScript. И, кстати, он вполне подходит для разработки мобильных приложений, причём, как их клиентской, так и серверной частей. А именно:
Для начала, хотя мобильными приложениями пользуются буквально все, по данным опроса Stack Overflow, в котором приняли участие 49525 программистов, практически половина из них занята в сфере веб-разработки. И лишь немногим более восьми процентов занимаются мобильными приложениями.
Мечты о том, что мобильные пользователи будут охотно работать с великим множеством специализированных приложений, не сбылись. Вместо этого владельцы смартфонов перестали загружать новые приложения.
Безусловно, программами они пользуются. В основном это Facebook, Google Maps и некоторые другие. Их не так уж и много. В результате основной спрос на разработчиков мобильных приложений сконцентрирован в нескольких крупных компаниях.
Сложно предвидеть перспективы развития рабочих мест для мобильных программистов. При этом многие задачи, касающиеся разработки, поддержки и распространения приложений для смартфонов и планшетов легче всего решаются с помощью JavaScript. В результате компании, вроде Facebook и Google, обеспечивают мощную поддержку лучшим JavaScript-инструментам для мобильной разработки.
По состоянию на 2016-й год, практически вся работа программистов сосредоточена на веб-проектах. Всё так или иначе связано с этой огромной платформой, со «Всемирной паутиной». И грядущее поколение бытовых приборов, с которыми можно будет разговаривать, и автомобили, которые будут сами забирать детей из школы – всё это тоже будет частью веба.
Из вышесказанного следует простой вывод: учите JavaScript.
Возражение №4: Разве JavaScript это не игрушечный язык, который был создан за десять дней?
Когда слышу подобное, сразу на ум приходит этот твит. А вообще, у JavaScript, конечно, необычная история. Это провоцирует. Наверняка вам доводилось читать и слышать, как кто-то отпускает шутки об этом языке.
Кстати, некоторым невероятно нравится критиковать C++. Но, как и JavaScript, C++ преуспел несмотря ни на что. Теперь он, точно так же, практически повсюду.
JavaScript – это ни разу не игрушка.
Удачной учёбы!
В итоге хочу сказать вот что. Если кто-нибудь станет вас доставать только потому, что вы изучаете JavaScript, а не «хит сезона», просто вспомните знаменитые слова Бьёрна Страуструпа, человека, который создал C++: «Существует лишь два вида языков программирования: те, которые постоянно ругают, и те, которыми никто не пользуется».
Удачи в изучении вашего первого языка программирования!