Тест какой язык программирования выбрать
Как выбрать первый язык программирования, гайд начинающим от профессионала
Кратко для введения: я являюсь профессиональным разработчиком и мне есть что сказать себе 15 лет назад. По результатам стрима я решил оформить статью с рекомендациями тем, кто находится в самом начале пути к программированию. Статья в основном направлена на школьников (и их родителей), студентов и может быть джунов. Для людей более старшего возраста но желающих стать программистами, думаю также будет интересно.
Сначала приведу несколько постулатов, которые просто примем за истину, как аксиомы:
— Путь в серьёзное программирование долгий и сложный
— Программирование требует полного погружения и «безбашенно ворваться»
— Технологии и подходы меняются очень быстро
— Алгоритмы и основы практически не меняются а только дополняются
— Освоить новую технологию если вы уже специалист в какой то технологии многократно проще
— Кроме технических навыков, soft skills также важны и они не меняются от смены техи
Эти постулаты можно оспаривать и много обсуждать, но это не цель данной статьи.
Самое важное состоит в том что сменить язык и технологию многократно проще чем выучить первую, а множество навыков языконезависимы. Поэтому из сложного пути стоит выкинуть всё сложное что не является необходимым, а взять в дорогу всё что вам поможет.
На протяжении всего времени, до того как вы сможете зарабатывать какие-то деньги при помощи программирования вам придётся идти на голом энтузиазме. На пути вы встретите множество проблем которые на определённом этапе развития могут казаться непреодолимыми. И в этот момент у вас должно быть достаточно воли и желания этот период преодолеть. Поэтому управление собственной мотивацией я считаю наиболее важной частью процесса обучения.
Поэтому первый язык и технологию я рекомендую выбирать строго по любви. Во всех технологиях к которым вы сейчас свободно найдёте бесплатные онлайн курсы есть заработки, просто полностью исключите вопрос «сколько я заработаю» из критериев выбора. Также я считаю что бесплатных образовательных материалов сейчас неимоверно много и я не вижу особого смысла покупать платные онлайн курсы. Из платного образования кружки с программированием и роботостроением для детей я считаю хорошней идеей, также любые технические лицеи, гимназии, университеты, т.е. классическое образование, если вы находитесь в возрасте приемлемом для такого образования.
Тут отдельно для родителей: школа с углублённой технической программой многократно лучше обычной. Если уклон только в информатику, то это не так хорошо. Хорошо когда углублены математика, физика, информатика, английский язык. Чем больше удастся впихать математики в обычный период стандартного обучения школа-вуз, тем легче будет с программированием, но без фанатизма.
Итак, алгоритм как я советую выбрать язык программирования:
Идёте и гугл, яндекс или чем вы пользуетесь и забиваете там запрос: «бесплатные онлайн курсы программирования» и выбираете просто по описаниям 5 разных языков. Почитайте про разные, может что-то зацепит. Если что-то зацепило, всё выбор сделан, берите это.
По каждому языку идёте в википедию и читаете про этот язык. Что-то не понравится, то выкидывайте. Останется 2-3 языка. Если что-то зацепило, всё выбор сделан, берите это.
Определитесь с предметной областью, что вам интересно, например модифицировать игры и писать для них скрипты, или писать игры целиком, или сдеать финансовый расчёт, смоделировать что-нибудь типа эпидемии, управлять роботом, или ещё что-нибудь, важно взять то что лично вам интересно, а не что кто-то считает важным.
Поищите курсы про интересную вам специфику на разных языках.
Ключевой момент поймать желание в этом закопаться. И как только вы это желание поймали, начинайте любой онлайн курс. Если возникли сложности и проблемы, попробуйте другой курс или другой язык. Не бойтесьпопробовать разное.
Если выбрать направление в котором потенциальная зарплата больше, а фана нет, то риск не дойти многократно увеличивается. Поэтому первую технологию нужно выбирать только по любви. А по расчёту выбирать будете уже следующие техи когда будет некий бекграунд. Обычно это второй/третий язык программирования. А менять технологии всё равно придётся, потому что всё меняется очень быстро. И даже такой консервативный язык как C++ качественно меняется и программирование на нём требует новых подходов.
Технологии которые сейчас можно изучать сильно устареют и изменятся когда вы дойдёте до того чтобы применять их на работе. Поэтому вообще расслабьтесь и делайте то, что штырит и прёт, а не то что модно или кому-то нужно. Более того знать несколько языков и разных тех крайне полезно для опыта и общего развития в отрасли. Можно сравнивать разные подходы и совершенствовать свой стиль и путь.
Несколько очень частых вопросов:
Нужен ли английский?
Нужна ли высшая математика?
Нужна ли высшее образование?
В начале, когда вы учитесь ходить нужно учиться именно ходить, с любой скоростью и в любом направлении, направление выберете потом. Тоже самое с обучением плаванию, езде на велосипеде, автомобиле. Сначала вы осваиваете инструмент и воспитываете в себе навыки, потом уже выбираете направление движения и интересные вам напрвления развития в рамках навыка. Вот с программированием ровно также. Просто начните с следуйте за удовольствием.
И на последок: пара прикольных игр которые я считаю полезными: https://lightbot.com/ https://www.euclidea.xyz/ru/
Дубликаты не найдены
Больше 20-и лет в профессии, а ничего столь удивительного не видел.
Господи, ну наконец-то что-то адекватное.
Да, забыл ещё один важный момент. Когда я учился, того языка прораммирования и тех технологий в которых я сейчас работаю вообще не существовало. А некоторые вещи популярные тогда ныне мертвы. Поэтому также то с чего конкретно вы начнёте имеет меньшее значение чем кажется.
Когда я учился те ЯП и технологии с которыми я сейчас работаю уже существовали, но в 2012 году предпочли преподавать макромедиа флеш 2004 чем тот же php, и за все 5 лет обучения не было ни одной пары по предметам которые я уже использовал в работе ( работал по специальности которую еще не получил с четвертого курса )
Зачем это в вузе учить?) Программирование можно дома выучить, а алгоритмы нет? Кстати, а многие знают как в вузе учат? У нас это было так: в лекционном зале собираеттся 200 человек, приходит прохфессор под 60 лет, и себе под нос бубнит лекцию без остановки! Записать шансы близки к нулю! Если переходил из одного корпуса вуза в другой, то шанс попасть в первые ряды нулевой, сидиль на галерке и ничего не слышишь..
Вероятно, потому что в ВУЗе ты молодой, это легче дается, у тебя много времени и всегда есть к кому обратиться (от сокурсников до того же преподавателя 60 лет). И да, высшую математику в возрасте сложнее освоить, чем php
Это такой юмор?! Я когда учился у меня у одного в группе был комп. к каким бы я однокурсникам обратился? И когда я обратился к преподу за помощью, оказалось что он знает меньше меня, ибо читать теорию это не применять знания на практике. а перед лаборантом выпендрился что знаю материала больше чем давали ( видетели мы такую тему еще не проходили и я не должен был идти по легкому пути, должен был строго по методичке писать) так он мне мстил до конца семестра завалив так что пришлось сдавать предмет напрямую зав кафедры.
Не очень понимаю, как коррелирует наличие компа с изучением высшей математики?
Так же как я не понимаю как коррелируеться нахождение в вузе с тем что ты освоишь вышку или нет? Я когда учился на подготовительных курсаз со мной сидел чувак, который вышку знал лучше препода который вел курсы.
Программирование можно дома выучить, а алгоритмы нет?
практика показывает что да, именно так.
Простите, но у меня знакомый учился в вузе на геолога, потом бах, и он уже c# программист, потом еще бах, и он уже в крупной международной компаниии, потом еще раз бах, и у него предложение с переездом в Германию.. и он уже там 5-й год. как думаете скольки алгоритмам программирования его обучили во время его обучения на геолога?)
знаете, у меня вот знакомый есть, он без ремня в машине ехал, и тут бах камаз с гравием. Автомобиль согнуло в дугу, он через открытую дверь выпал. Камаз стащил бедную тачку в кювет и завалил гравием. Выжил только тот что был не пристёгнут. А вы пристёгиваетесь?
Вы знаете я как то шел по улице и тут бах, вы начали что то писать не относящееся к теме ))))
Ужасно, срочно прекратите ходить по улицам. Да и не рекомендуется это в нынешней обстановке.
я вообще на третьем курсе бросил и работать пошёл. Но на своём пути я ни разу не втсретил профессионала который бы вообще не начинал вышку.
Ну я тоже на третьам бросил, потом на заочке доучился. но я вот как бы профи.. на позиции сеньера в крупной фирме, ну и типа тим лида по фронтенд части ( тоесть контролю всех фронтов, но у нас все проекты разделены на фронт и бэк,а так как я стэк бэка не знаю, а тим лид чуть знает фронт, но хуже меня, то вот такое разделение обязонностей, но как и что должно работаьь тим лид всегда согласовывает мо мной ).. по высшей математике сейчас даже под дулом автомата ничего не вспомню ))
Сейчас изучаю Java с прицелом на моб. разработку и чтобы сформировать ОПП мышление.
Буду благодарен за какие-нибудь мысли по моей ситуации, нужен взгляд со стороны.
А почему нет? Ну вот реально. Да это крайне маловероятно, что сходу кому-то понравится асм, но если цепанёт как вызов, то почему кто-то должен ограничить себя только потому что кто-то не советует.
Английский в профессиональном пути очень нужен, но это не повод откладывать программирование.
Программирование требует полного погружения и «безбашенно ворваться»
— Кроме технических навыков, soft skills также важны и они не меняются от смены техи
не понял, что исправить?
Это в 90х было, сейчас уже давным-давно всё переведено, разжёвано, да и комьюнити вполне себе.
И норм роботодатели в основеом только с знанием английского берут!
Начал было писать, но глянул пост целиком. А там опять стандартные тезисы.
Захотел переучиться на 1с с системного администрирования (поднадоело за много лет), где-то увидел рекламу, посмотрел чудные промо ролики, пару интенсивов, которые напичканы рекламой по самую макушку. Ну ладно, созвонился с менеджером, поговорил, наобещали и общение с преподавателем и супер обучение, разговор был был заманчивый. Предложили какую-то неплохую скидку, рассрочку (ага, кредит). Ладно, согласился, все же хорошо, чего бояться? Презентация Skillboxa (видео, разговоры) были такими заманчивыми, что я уже побежал к банкомату, чтобы побыстрее избавиться от честно заработанных (сейчас сижу и думаю, м-да, пропить надо было, или акций Tesla купить, а они, кстати, с сентября на 70% выросли ). Поехали дальше, деньги отданы, 1с установлена, ноутбук настроен, готов слушать и вникать в супер-профессионалов своего дела (пффф). Первые 3 темы зашли очень хорошо, Дмитрий Барабаш молодец, к нему претензий 0. Потом, стало веселее, по какой-то причине меняется преподаватель и начинается.
— Механизмы интеграции
— Составление ТЗ в терминах 1С
— Доработка конфигураций 1С
— Командная разработка
Написал им претензию на возврат средств за некачественно предоставленную услугу, посмотрим, что из этого выйдет. Сегодня с утра позвонили и предложили на 50% от стоимости учебы предоставить мне доступ к их курсам. Ну, вы понимаете, да? Мне их учеба не понравилась, а они предлагают насыпать еще немного учебы.
Небольшой update: сказали, что много кому курс понравился, поэтому он хороший и я не прав. Вот так.
Еще update: всего 20 тем (с ДЗ 18, остальные административные), менеджер сегодня сказала, что я мог бы написать претензию по возврату денег, например, пройдя 18 тем, или 17, но не 20. Если я прошел 20, то закончил обучение ) хотя, я уже темы с 7-8 писал им свои претензии по обучению.
Последний на сегодня update: Отправил им письмо, где поблагодарил их за то, что сподвигли написать пост на Пикабу и за то, что я стал известным (ага, известным )), вот что пришло в ответ, опять одно и тоже, ни одного конструктивного предложения:
Лучшие языки для автоматизации тестирования в 2020 году
Нужно понимать, что программист, который создаёт скрипты автоматизации, ценится намного больше, чем рядовой ручной тестировщик. А значит, он может продавать свою работу дороже.
Python
Один из самых востребованных языков – занимает первое место по мнению 73,3% разработчиков, принявших участие в исследовании. Этот open source инструмент нравится широкому кругу айтишников по нескольким причинам. Во-первых, большое количество библиотек позволяют меньше кодовых строк писать самостоятельно. Во-вторых, Python обладает хорошей переносимостью и простым синтаксисом, благодаря чему его можно быстро и легко освоить. В третьих, у него есть сильное сообщество, открывающее перед программистами массу возможностей.
Для упрощения тестирования используют такие библиотеки, как Selenium или Appium. Очень полезны для тестировщиков ПО и фреймворки:
ОО-язык, который принадлежит корпорации Oracle. Java придерживается принципа WORA, что расшифровывается как «write-once-run-anywhere» (на русском: «напиши единожды, запускай повсюду»). Это даёт много межплатформенных преимуществ. Этот язык в своих внутренних системах использует большое количество разных крупных компаний. В современном мире насчитывается больше 3 млрд устройств, на которых установлены Java-приложения.
Для модульного тестирования чаще всего используют JUnit. В. Если речь идёт о браузерах, пользуются библиотека JUnit и инструмент Selenium WebDriver. Также можно посоветовать следующие фреймворки:
Он совместим с инструментом Selenium WebDriver, благодаря чему многие тестировщики применяют его в автоматизации и межбраузерных тестах. С помощью Page Object Model QA получают возможность быстро написать эффективно работающий, поддерживаемый код.
Так как в C# доступен большой выбор сред, его обычно предпочитают в межбраузерном тестировании. Самыми распространенными в C# являются такие платформы:
JavaScript
Это одна из популярнейших технологий на сегодняшний день. Данным языком пользуются многие крупные организации для разработки интерфейса веб-сайтов электронной коммерции.
Главная причина, по которой JavaScript начал доминировать в сфере автоматизации тестирования заключается в том, что IT-индустрию покоряет метод тестирования под названием “сдвиг влево”, предусматривающий тестирование проектов на первоначальных этапах разработки. При этом QA работают вместе с разработчиками, чтобы реализовать автоматизацию тестирования максимально эффективно.
JavaScript стали предпочитать в QA и благодаря широкому выбору сред для разных видов тестирования. Среди фреймворков можно выделить:
Open source язык программирования, отличающийся от остальных главным образом мощностью, гибкой архитектурой, удобным синтаксисом и простотой. Ростом своей популярности Ruby обязан и поддержке непрерывно растущего сообщества.
Постепенно этот язык выходит на первый план в сфере разработки веб-проектов. На нем программисты создают разные полезные приложения, при этом самостоятельно прописывая относительно мало строк кода, потому что им на помощь приходят обширнейшие библиотеки.
С Ruby совместим и Selenium WebDriver. Начать их использовать совсем не сложно: для первого межбраузерного теста понадобится только несколько кодовых строк. Наиболее востребованными платформами для автоматизации межбраузерного тестирования стали:
SmashTest
Этот язык использует NodeJS и дает возможность создавать тесты за короткий промежуток времени. Он очень быстрый, но обладает своим недостатком – документации по нему в интернете очень мало.
SmashTest легкий для понимания, а в дополнение к этому удобочитаемые шаги плюс мощные инструменты отчетности позволяют назвать его превосходным вариантом для изучения и применения в QA. Вот фреймворки, обычно используемые специалистами этой сферы:
Скриптовый язык сценариев общего назначения, который применяется для разработки веб-приложений. Но помимо этого PHP широко используется и в работе QA. Одна из причин – этот язык не такой трудный, как другие ЯП backend-разработки, вроде Python или Java.
У PHP отличная поддержка сообщества. Он также предлагает XDebug – средство отладки скриптов и их профилирования, обладающее большой мощностью и возможностями. Язык поддерживает много сред для QA, в том числе:
Закодируйся: как выбрать первый язык программирования
Рассказываем о плюсах и минусах JavaScript, PHP, Python, Java, CSS и HTML. Статья подготовлена на основе вебинара с Михаилом Овчинниковым.
В бэкграунде — программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.
У каждого языка веб-разработки свои особенности, достоинства и недостатки, своя сфера применения и свой список связанных технологий (он называется «стек»). Сегодня мы сравним несколько популярных языков и дадим советы, как же из всего многообразия выбрать что-то одно.
Что такое типизация
Прежде чем мы начнём разбираться в плюсах и минусах языков, стоит поговорить о типизации. Потому что от типизации зависит и как вы пишете программу, и как она потом работает.
Типизация — это разделение переменных на разные типы: например int (целое число), flow (число с десятичной частью), string (строка текста), bool (правда/неправда).
Типизация бывает явная или неявная, слабая или сильная и статическая или динамическая.
В языках со статической типизацией типы переменных устанавливаются на этапе компиляции, причём обычно переменные объявляются с указанием типа (явно).
Динамическая типизация означает, что типы определятся уже во время выполнения программы.
Сильная (строгая) типизация не позволяет смешивать в выражениях разные типы и не выполняет автоматически неявные преобразования.
Языки со слабой типизацией более гибкие, но они часто сами неявно преобразуют переменные, даже если в результате может появиться неточность или если преобразование неоднозначно.
Теперь, когда мы разобрались с типизацией, перейдём к самим языкам.
HTML и CSS
Начнем издалека — с HTML (Hypertext Markup Language) и CSS (Cascade StyleSheets). Почему с них и почему «издалека»? С них — потому что они лежат в основе веб-разработки, и ни один сайт без них не обойдётся. А издалека — потому что это не совсем языки программирования.
Они нужны, чтобы создавать содержимое веб-страницы — контент и оформление; программу вы на них не напишете. Тем не менее веб-технологии сейчас уже используются и в других сферах, в том числе в десктопных и даже мобильных приложениях, поэтому у этих «языков» хорошие перспективы.
HTML и CSS очень простые — в основах можно разобраться буквально за пару дней, даже самостоятельно. Так что если вы очень боитесь программирования и не верите, что у вас получится, попробуйте начать с них. Это под силу каждому, поможет вам плавно войти в программирование и оценить свои силы. А потом при желании можно перейти к другим языкам.
Какие языки программирования учить в 2021 (для начинающих)
13 комментариев 5 месяцев назад обновлено 2 месяца назад
Наша редакция подготовила исчерпывающее руководство по языкам программирования в 2021 году. В статье ответим на такие вопросы:
Содержание:
Как выбирают
язык программирования?
Список востребованных языков программирования не меняется уже лет 20. Тот же С, который был изобретен в 1972 году в 2019 стал лидером согласно индексу TIOBE. Но смотреть на индексы, когда выбираете язык программирования для изучения – не самая лучшая стратегия. Вы рискуете так и не стать программистом, потому что на каком-то этапе может стать понятно, что это не ваше.
Некоторые пытаются оценить сам язык с позиции синтаксиса и удобства. Но для человека, который только выбирает язык программирования для изучения, будет бесполезной информация о том, что в Python применяется динамические ограничения видимости.
Важный критерий – скорость изучения. Самые интуитивно понятные языки: Python и JavaScript. Но они могут подойти не для любой задачи.
Те, у кого цель как можно быстрее начать зарабатывать – начинают с оценки, какие специалисты востребованы на рынке. Но программисты, среднего и высокого уровня подготовки, получают плюс-минус одинаковые деньги, а в ТОП, в том числе по заработной плате, выбиваются лучшие.
Чтобы стать лучшим, нужно любить свою работу. Поэтому наша редакция настоятельно рекомендует: выбирайте не язык программирования, а сферу, в которой вы в будущем хотите работать.
Какой язык программирования
тебе выбрать?
Смотрите инфографику ниже. Она поможет с выбором:
Чтобы выбрать язык программирования, определитесь, какие задачи вы хотите решать, а с чем точно не захотите связываться. Оцените, какие дополнительные навыки потребуются, какие личностные черты важны.
Если вы не хотите работать с визуальным компонентом, вам точно не подойдет Frontend, мобильная разработка. Если вы пойдете в одну из этих сфер, то вам придется работать с графическими редакторами, с дизайнерами которые будут настаивать практически попиксельному соответствию макету. Но у вас будет возможность показать результат роботы в виде веб-страницы или приложения которые будут понятны человеку который далёк от программирования.
Если все же хочется работать с вебом, но без соприкосновения с графикой, то ваш путь в Backend разработку. Дополнительные навыки здесь – администрирование серверов на Linux, организация и работа с базами данных.
Определились с профессией? Теперь давайте выберем, какой язык изучать.
Виды направлений
и языков программирования
В мире насчитывается по разным источникам до 25 000 языков. Но наиболее востребованными остаются 15-20: Java, JavaScript, Python, PHP, С, С++, С# и другие.
Устоялись и сферы их применения. С и С++ используется для ресурсоемких технологий или решения задач на устройствах с маленькой производительностью: авто, банкоматы.
PHP и JavaScript – для создания сайтов.
Когда вы изучили один язык, следующий будет выучить проще. Поэтому, если вы еще до конца не определились, чем именно хотите заниматься, начните изучать один из популярных языков Python или JavaScript.
В то же время, распыляться не стоит, лучше углублять свои знания, чтобы стать программистом высокого класса. Настоятельно рекомендуем не менять язык во время изучения. Вы должны овладеть хотя бы одним языком программирования на достаточном уровне.
Backend разработка
Чем занимается backend разработчик?
Разрабатывает «невидимую», серверную часть веб-приложений: сайтов, многопользовательских онлайн игр, мобильного банкинга и других продуктов сфер, в которых данные приложения обрабатываются на удаленной машине, а не на устройстве пользователя.
Бекенд разработчик отвечает за развертывание сервера, создание/доработку движка сайта, занесение информации в базы данных и извлечение ее оттуда.
Он программирует логику работы алгоритмов выдачи в социальных сетях, порядок прохождения курса на учебных платформах, списание-начисление средств в системах лояльности и подобные задачи.
Какие языки программирования используют в backend?
Backend developer должен знать один или несколько серверных языков. Какой именно — зависит от назначения сервера. Если это типичный веб, то подойдет PHP, Python. Для RPG игр подойдет производительный С++.
Java для сайтов с большими базами данных и сложными задачами, аналогичных Uber или Airbnb. Чтобы разработка шла быстро пригодятся знания фреймворков: например, Django для Python, Laravel для PHP.
Разработчику потребуются навыки настройки Nginx или Apache, если нужно будет развернуть веб-сервер. Обязательны навыки работы с базами данных MySql, PostgreSQL, MongoDB и языками запросов.
Работа с API: Rest, JSON. Это нужно для работы с интеграциями с разного рода внешними сервисами и обработкой запросов от фронтенда. В must have список знаний бекендера с квалификацией выше среднего добавляется инструменты для автоматизации развёртывания, контейнеризации например Docker.
JavaScript, понадобиться, чтобы помочь на клиентской стороне. Для этого же будет полезно понимать логику работы HTML/CSS технологий.
Для любого программиста обязательно знать и уметь обращаться с системами контроля версий. Например Git.