Какой язык программирования выбрать новичку: алгоритм

110602
57

В онлайне наконец-то появился перевод крутой инфографики Which Programming Language Should I Learn First? Здесь наглядно, в виде простого алгоритма показаны варианты выбора языка программирования, с учетом того, что выбирает новичок в IT. Программирование определяется как «написание очень точных инструкций для глупой, но послушной машины».

Главные герои инфографики — это самые популярные языки вроде Java, JavaScript, Python, Ruby, С, PHP и другие. Критериями выбора могут служить самые разные факторы, начиная от желания заработать много денег или реализовать свою идею, до любимой игрушки. Изюминка инфографики — сравнение популярных языков программирования с героями саги «Властелин колец».

Оригинал был опубликован на carlcheo.com. Перевел инфографику на русский Владимир Болиев. Полный размер открывается при клике.

programming2

Оставить комментарий

Комментарии | 57

  • Судя по алгоритму Python куда не сунься 🙂

  • У автора инфографики жуткий bias в сторону питона, новичкам бы категорически не советовал принимать решения, на основе данной инфографики.

    • Моя выборка знакомых, конечно, не показатель, но нескольких человек знаю, которые с нуля начинали именно с питона, мотивируя тем, что легче учить. Еще один аргумент в его пользу — недавно в онлайне запустился курс от КПИ по основам программирования. Там для иллюстраций также используется он.

      Но если вы — разработчик, у вас экспертиза в этом всяко круче моей:)

      • Питон — отличный язык, особенно для новичков, но не единственный. Считаю, что если заниматься веб разработкой, php будет намного проще.

        • php-разработчиков сейчас некоторый переизбыток, нет? (сужу по зп-предложениям).

          • Смотря какая цель. Деньги или интерес. Моментальное вознаграждение (в виде работающих скриптиков из пару строк, без необходимости сложной настройки среды — xampp, например) или медленное, которое может отпугнуть новичка сложностями.

        • даже если ваша цель программировать на PHP лучше начать с Питона — так вы поймете как реализовывать сложные задачи — просто и сильно. На PHP вы как новичек этого не поймете — так как сам PHP в угоду обратной совместимости реализован убого. Еще ООП на Питоне мне нравится но нэймспэйсы и система библиотек сделана таким образом что их попросту сразу нужно допиливать — и как результат куча похожих между собой но не стандартизированных решений.

          Веб разработка на PHP — это веб разработка только если вы используете один из толковых MVC фрэймворков. На Питоне это работает очень похоже — но гораздо мощнее — потому что у Питона просто библиотеки реализованы гораздо лучше, умнее, лучше документация. Большинство из них очень интуитивны — работают именно так как вы этого ожидаете — а если вы перешли с PHP как и я то вы многого просто не ожидаете. 90% Питона это как раз его библиотеки

          • >Веб разработка на PHP — это веб разработка только если вы используете один из толковых MVC фрэймворков.
            ——————————————————-
            Кто тебе такое в бестолковку вбил? 🙂

          • делаеш проєкты с нуля каждый раз? 🙂 инетересно — рупозиторий в студию 🙂

          • Кто тебе в голову вбил, что самопись — каждый раз с нуля?
            Ясен красен, что из проекта в проект перекочовывают наработки. Но для этого не нужен неповоротливый «(без?)толковый MVC фреймворк».
            🙂
            П.С. На других языках без фремйворка — это каждый раз с нуля? Или только на PHP? 🙂

          • всюду, не обязательно MVC (но преймущественно). Имелось введу что PHP врядли вы будете использовать для других целей кроме веба, и очень врядли что без фреймворка. Питоном в этом смысле гораздо более универсален
            Манера начинать говорить — типо хто тебе в голову вбил какая-то гопническая. Ты что гопник-кодер?

          • Да, сейчас у меня PHP только для веба.
            PHP как никто другой подходит для веба. 🙂 Сомневаюсь, будет ли Питон для этого лучше. 🙂
            Хотя вот недавно обрабатывал список эмейлов на нем (PHP).
            Многие вещи можно заставить работать через браузер. 🙂

            С села мы. 🙂 У нас люди простые. На правду не обижаются. 🙂

            https://yopta.space/

    • Ага, Python для новичков очень плохо! Лучше JS например да? Python самый лучший вариант что бы понять программирование а не «язык программирования». В отличии от строгих C, не дай-то бог Java, или дебильного JS, Python может за год дать хороший результат. И отбить охоту, например от руби. 🙂

        • Бесконечными версиями, тестозависимостью, синтаксисом. Для новчика очень актуально, видел нескольких, лыб себе расшибали… 🙂

          • Что плохого в бесконечных версиях если они backward-compatible и в основном являются просто security fix’ами или оптимизацией производительности?
            Тестозависимость? Я так понимаю, намекаете на динамизм руби, а с каких пор python является type-safe языком?

          • Да ладно! Руби… многие его любят, но лично я считаю убожеством. Бесконечные версии вообще бесят, сколько сталкивался с ним в работе, когда эти версии боком вылазили…

            type-safe? Причем тут это? Я упоминал? 🙂

          • Наверное, имеется в виду переход с 1.8 на 1.9, когда добавили поддержку юникода и еще кучу плюшек. Да, там были breaking changes. Однако, не стоит забывать сколько головной боли доставил переход питона с версии 2 на 3.
            Type-safe — это было предположение насчет тестозависимости. Если речь не об этом, тогда не понимаю в чем именно проблема.

          • Смысл с ним спорить? Типичный холиварщик 🙂
            Выбор между Руби и Питоном — это полурелигиозное решение, интуитивное, что ли. Кому какая культура fits better. Персонально — больше люблю Ruby, хотя и Python нравится. От задачи еще сильно зависит. Кое где Ruby не совсем в тему (напр., на слабых железках, типа Raspberry Pi я бы выбрал Python). Everything has it’s own tool.

          • Я не холиващик, а просто выссказал свое мнение, в ответ на узкое выссказывание о пайтоне. Ни больше ни меньше. Руби – рубистам, Пайтон – пайтонистам. Это выбор не более, но то что Python для новичка лучше Руби это большинство мнений, поэтому глупо с этим спорить да?

          • Мало кому доставил боль переход с 2 на 3 в питоне, скорее радость. Искренняя радость.

  • Мда, всем учить питон. PHP ни в коем случае !!!
    Странная статья, кому-то нужны питонщики?

    • Питонщики, конечно, нужны. Например, в модной нынче data science сейчас, в основном, используют 2 языка — R и python. Помимо этого, python повсеместно используется как альтернатива bash на unix. Да и возможность писать нативные расширения к среде на С (у Ruby, кстати, тоже есть такое), делают его почти универсальным решением в большинстве задач.

    • Учат программирование не для трудоустройства 🙂

  • Теперь бы еще найти понятную для такого пня, как я, инструкцию по Питону…

  • Хороший коммент на счет Ruby vs Python от сюда: http://programmers.stackexchange.com/questions/46584/what-should-a-python-developer-know-while-learning-ruby

    (От себя добавлю: да, для новичка лучше Python. К Рубям нужно неможко придти, too dangerous to start from)

    I did Python back in 2003-5, when I was a Plone/Zope consultant. Then in 2006 I started picking up Ruby. I’ve never looked back. I think different people feel more comfortable with different programming languages and cultures, but for me, Ruby feels a lot better than Python.

    I personally think that compared to Ruby, Python is the reliable workhorse that happens also to be a bit staid and bland. Ruby is a lot more fun. It’s a prettier looking language, and can be made to do a lot of fun and funky things that keep wowing its practitioners. I’ve heard Python people attack Ruby for being too dangerous, saying that it’s too easy to re-open classes and do wild and irresponsible stuff like that. But that’s part of what makes Ruby feel like an action adventure comedy romance to me. Python, by contrast, is more like Ikea furniture: it’s pleasant, comfortable, and reliable — but it will never surprise you and take your breath away.

    The two best things about Ruby, from my perspective, are the two things that distinguish it sharply from Python. First, Ruby is influenced a lot by Perl. Python seems to take pride in being the anti-Perl. But the stuff Ruby borrowed from Perl is of great practical value. Take regular expressions, for example. In Ruby, you can write regular expressions naturally, e.g. if mystring =~ /^s+hello word!/ …. In Python, not so much, because Python is so anal about making everything follow a uniformly predictable syntax. In Ruby, you can get STDIN immediately with input = STDIN.read. In Python, you have to import sys and then sys.stdin.read(). These are but two examples where Python’s effort to distance itself from Perl and be so predictably regular is trumped by Ruby’s willingness to do what feels right in each case.

    The other thing that distinguishes Ruby from Python is that Ruby is much closer to Lisp whereas Python is pretty much an imperative programming language. I think this is a big plus in Ruby’s favor.

    There many Lisp-like features of Ruby that make it possible to do more with less code in Ruby than in Python. For example, every statement and control structure in Ruby returns a value: you can get away in Ruby with never using the return statement. Even if statements evaluate to a value, so you can write stuff like this

    result = if output == ‘hello’
    [some code here]
    «world»
    else
    [some other code here]
    «there»
    end

    In Python you would have to write

    if output == «hello»:
    [some code here]
    result = «world»
    else:
    [some other code here]
    result = «there»

    Python makes you type result = twice. That’s not very DRY (Don’t Repeat Yourself). There are a lot of instances like this where Ruby will be more DRY than Python because of its Lisp-like qualities. Matz, the creator of Ruby, came from a Lisp background.

    Some people say that Ruby also kicks Python’s ass in metaprogramming (aka dynamic programming). Python people respond either by saying that metaprogramming is too dangerous, or by saying that theoretically, you can accomplish all the metaprogramming stuff Ruby can in Python, just differently. But one thing everyone does agree on is that metaprogramming is far less common in Python than in Ruby. And that’s too bad, because metaprogramming is a trip.

    I think it’s probably true that at the end of the day Ruby and Python can both get the job done. Compared to C and Java, Ruby and Python are pretty much the same thing. They are expressive, productive, high-level languages.

    So it boils down to your personality.

    Do you like things to be predictable, regular, and safe? Do you like the imperative style of programming? Do you want to maybe work someday for Google? Do you think that Perl is a chaotic spawn of hell? Stick with Python.

    Do you take great pleasure in finding the absolutely most concise way to accomplish some programming result? Do you get bored by regularity and uniformity? Do you like to have the freedom to write code in a style that is all your own, and have a lot of space to come up with your own cool tricks? Do you feel more of an affinity for Lisp than for C? Do you feel great admiration for Perl’s epoch-making contribution to software programming, but only wish that it could be just a little less cryptic and ugly? Do you think of code like other people think of poetry? Try Ruby.

  • Сейчас тенденция на JavaScript. Если по душе веб-технологии и frontend разработка, то лучше учить его.

  • основной вопрос остается — c# или javascript. что же выбрать?)

    • C# для более фундаментальных и крупных проектов предпочтительней (особенно под Windows), но все же в чистом виде почти неактуальна, и нужно знание дополнительных технологий, как минимум дот-нет. JavaScript имеет гораздо более узкую область применения, но с выходом NodeJS может использоваться и для задач которые обычно предпочитались решаться на серверной стороне перловкой либо питоном, а местами заменять и php.

  • Может кто-нибудь подскажет какой язык выбрать. Работаю менеджером по продажам, но вижу что долго в такой профессии не проживешь. Хочется профессию с перспективой на будущее. В общем курсы никакие не заканчивал, английский особо не знаю. Пару лет назад с помощью интернета и перевода статей о программировании сделал приложение в Eclipse на Java для Android, даже разместил его в Google Play, потом это дело забросил. Сейчас для работы в Delphi 10 сделал маленькую программу для печати счетов, расходных, договоров. Не могу определиться на какой язык сделать упор, чтобы совмещать работу и осваивать язык программирования, при этом чтобы была возможность удаленно набираться опыта. В общем надеюсь на советы. Заранее спасибо

Поиск