Всем привет.
Программист-самоучка, 21 год. Опыта, начиная с первого дня обучения, - чуть меньше года.
Только отстажировался и попал на позицию джуна, в аутсорсинговой компании, в качестве веб-разработчика.
Одного направления придерживаться не получается. Одни задачи на верстку, другие на бек.
Основной стек технологий: HTML, CSS, JS/NodeJS/AngularJS, Elasticsearch.
Цели превратиться в мастера на все руки или недофулстека нет. Потому выбрал одно направление - бек.
И вот на данном этапе я столкнулся с выбором, определиться в котором, прошу помочь вас: Ориентируясь на востребованность, потенциал и лучшую приспособленность к беку,
Что бы вы лично назвали более предпочтительной технологией - Python или NodeJS? И почему?
Ремарка:
Чтобы быть более конкретным, вот мои основные интересы в работе:
• Работаю с вебом. Очень интересна бекенд часть. Фронта хотелось бы как можно меньше.
• Интересна работа с ботами под различные платформы.
• Очень интересует работа с интернетом, сетями, данными передающимися с помощью протоколов и т.д.
• Интересны сервера и linux.
• Интересна сфера информационной безопасности.
Добрый день.
Да, это я понимаю.
Но все же вопрос у меня возник не просто так.
Меня интересует какая из двух технологий лучше подходит для конкретной задачи, - для бекенда.
Чтобы ответить на этот вопрос мне не достает опыта, потому обращаюсь к вашему.
А с сосать у меня пока отлично получается как на питоне, так и на жс`е. С этим трудностей нет.)
zx5zx6, любой из этих языков подходит для бэкенда. Лучшего среди них нет. Когда я делал выбор — выбрал питон и не жалею. Освоить после питона ноду было делом одной недели. Сейчас я бы выбрал ноду, потому что у неё есть TypeScript, который (исключительно по моему мнению) лучше, чем типизация в питоне. Но тоже не вижу никакой проблемы после ноды освоить питон за ту же неделю.
Все зависит от того, что вы собираетесь делать на бекенде. По хорошему надо знать и ноду и python.
Но если первый язык программирования на бек, то полезнее будет изучать python. Для общего развития полезно. Сам язык более... традиционный. Потом проще на другой переучиться. Сообщество более дружелюбное.
Нода она более профессиональная и может потребовать большего времени на вхождения. Мб поэтому лично я бы советовал изучать ее после другого языка. Как минимум сразу будете видеть ее сильные стороны и профит от ее применения, которые не очевидны без такого сравнения.
И как правильно заметил выше DevMan и там и там все зависит в конечном итоге от вас.
Речь идет не совсем о выборе первого языка.
Я работаю с js, python знаю на уровне человека, прочитавшего "a byte of python", посмотревшего туториалы и и посетившего пару вебинаров по джанге/фласку.
На данный момент встал выбор, продолжать c языком, с которым работаю и доучить Node или переключиться на Python.
zx5zx6, в краткосрочном периоде максимальная выгода будет от продолжения углубления в Ноду. В долгосрочном периоде, ограничиваясь в ноде Вы пропускаете мимо определенные значимые части фундаментального программирования. Поэтому придется изучать другой язык, чтобы латать эти дыры.
В каком порядке - решать Вам. Лучше всего смотреть по вакансиям и какие компания есть в Вашем городе. Какие проекты есть прямо сейчас.
Особой фундаментальной разницы между языками нет. Вы всегда будете упираться в производительности и качества кода в более фундаментальные вещи, не привязанные к языкам. Алгоритмы, архитектура, базы данных и прочее.
В конце концов язык программирования именно и называется языком программирования потому что это средство выражения мыслей определяемых фундаментальным знанием.
Для имеющихся вводных:
1. Node.js - 75%
2. Python - 25%
Если же речь пойдёт о более конкретной задаче, пункты могут не только поменяться, но и вовсе пропасть из списка приоритетов выбора.
Возможно я смогу быть более конкретным, если выражу свои интересы. Очень хочется, чтобы язык подходил для всех этих областей:
• Работаю с вебом. Очень интересна бекенд часть. Фронта хотелось бы как можно меньше.
• Интересна работа с ботами под различные платформы.
• Очень интересует работа с интернетом, сетями, данными передающимися с помощью протоколов и т.д.
• Интересны сервера и linux.
• Интересна сфера информационной безопасности.
zx5zx6, я для бэка использую php. Мне слихвой этого хватает.
Нода (язык javascript), вместо языка php, ничем не хуже на бэке.
Протоколы, алгоритмы, операционки, безопасность... И.. уж точно, боты - ничего общего с языком разработки не имеют.
Язык программирования - это не средство для решения задач бизнеса, а средство для кодирования уже готовой логики для последующего исполнения на вычислительном устройстве.
А работающее решение - оно то как раз и решает проблемы бизнеса.
PS: надеюсь, мне удалось донести то, что язык программирования - это не самый важный инструмент в достижении цели.
Подскажите, правильно ли я понял все, что сегодня мне пытались донести?
Хороший программист - это не человек, идеально знающий конкретный стек технологий, а человек, который знает как максимально грамотно решить ту или иную задачу, используя нужный инструмент.
Знание технологий - это второстепенно. В первую очередь надо разбираться с устройством своей области, чтобы понимать ее идеально и всегда знать, какой инструмент использовать.
Выбор этих технологий легко можно нагуглить. Так я пойму, что c++ не так подходит для веба как JS.
А вот представленные для определенной сферы языки сравнивать не совсем корректно. Можно начинать с более общего и популярного, но так или иначе, понимать придется все.
Python, потому что подходит не только для веб-разработки. Заодно стоит начинать интересоваться облачными инфраструктурами с тем как их можно использовать: платформа для веб-приложений, СУБД и т.д.