Будущие перспективы программирования? [закрыт]

216
16 февраля 2019, 20:30

Здравствуйте, уважаемые.

Дело в том, что находясь на 2 курсе Информационных технологий наступает такая пора, когда надо выбирать дальнейшее направление в мире программирования. А именно между Web-Dev и прикладным программированием, к тому же выбор ЯП как основново инструмента.

В институте ”проходим” C++, (хотя у меня язык не поворачивается назвать изучаем, скорее просто просматриваем логические и операторы вывода, старый синтаксис и т. д) и так целый семестр, складывается впечатление, что лектор отстает от жизни лет на 10 как минимум, и ничего нам больше не светит кроме нудной писанины математических функций в тетрадке. Тут же состоялось мое первое знакомство с прикладным программированием, оставило довольно позитивное впечатление.

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

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

И пошло поехало, стал взвешивать шансы, сравнивать графики ЯП за последние 7 лет, искать те или иные преимущества веб и прикладного программирования, лихорадочно бродить по гуглу выискивая задатки перспектив...

Условно разделив ЯП на категории для достижения цели получил довольно интересную картину:

Веб-Программирование:

  • HTML/CSS/XML
  • PHP + MySQL
  • JavaScript
  • Python + Django
  • Ruby + RoR

Прикладное программирование:

  • Java
  • C#
  • C++

Поиски документации по ЯП завели меня еще дальше, теперь выбор будущего стал более неопределенным. С одной строны Java – всегда вакантные места и кроссплатформенность, к тому же несколько лет он занимает первые места в рейтинге и даже не намерен уступать.

C# - за последнее время этот язык поддерживаемый Microsoft вырос на глазах, и продолжает расти, появляються перспективы полностью заменить C++. Язык будущего, но есть один большой минус, он зависим от платформ, а точнее от Windows... C++ - постепенно умирающий язык. ИМХО. Но его нельзя списывать со счетов.

С другой стороны это Web-программирование которое немного ближе ко мне.

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

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

Впечетленным всем этим уже несколько неделей страдаю фигней, а точнее определяю свое будущее и переспективы. Если я уйду в Web-разработку(а именно в Python, PHP, Ruby, Js) не прогадаю ли я? Или, возможно сразу переквалифицироваться в Java или C#, я конечно понимаю, все зависит от человека?

Интересно ваше мнение.

P. S Сорри за столь сумбурный монолог и за грамматические ошибки если такие имеются.

Answer 1

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

Простой пример: уже наштамповали в стране миллионы никому ненужных юристов и экономистов и все потому, что лет 10 назад их реально не хватало и все идиёты поперлись туда - ну как же востребованная профессия!

То что сейчас (ровно как и 10 лет назад) Java востребована к сожалению ничего не означает. К моменту когда вы станете довольно борзо писать - вполне может случиться что технология сдохнет (окончательно она конечно не сдохнет ибо она уже сейчас является становой хребтиной) - ну в общем вы поняли. Аналогично может случиться с любой технологией dot Net, PHP. Сейчас все очень текуче и зыбко - быстро меняется.

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

Answer 2

Вопрос некорректен. Переквалификация в Java или C# не означает отказ от веба.

Python ... В связке в Django может обвести вокруг пальца любого конкурента,

Нет, он не может. Человек может, а сам по себе питон ничего не может.

Веб-Программирование:

  • HTML/CSS/XML -PHP + MySQL
  • JavaScript
  • Python + Django
  • Ruby + RoR

Прикладное программирование:

  • Java
  • C#
  • C++

Опять неверно. Никто не мешает использовать Python и Ruby для прикладных целей. И даже JavaScript. XML тут тоже не в тему.. он имеет отношение ко всему. Языки C++/C#/Java вообще универсальны. Пожалуй, на C++ делать что-то долго, но дела это не меняет. И, конечно, знание любого пункта из списка не отменяет необходимость знания HTML/CSS/XML и даже JavaScript.

В институте ”проходим” C++,(хотя у меня язык не поворачивается назвать изучаем,скорее просто просматриваем логические и операторы вывода,старый синтаксис и т.д) и так целый семестр,складывается впечатление,что лектор отстает от жизни лет на 10 как минимум

Ну это вы совсем зря. Изучение C++ учит дисциплине. Кроме того, для изучения алгоритмов новомодные языки плохо подходят. Именно поэтому для обучения преподавать надо начинать с C++ или Pascal. Выучить новомодные фишки вы всегда успеете, а вот научиться правильно думать необходимо. И не важно, устарел лектор на 10 лет или нет.

Answer 3

Ценятся программисты, а не кодеры. То есть, конечно, кодеры тоже ценятся (иначе на что бы я жил, хех), но... второсортнее.

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

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

Но самое интересное и нетривиальное, пожалуй, всегда находится "под капотом". А там нет никакой особой разницы каким внешним образом поступают данные и как потом будут визуализироваться результаты. К слову, у немалой кучи "десктопных" приложений под капотом браузер, отрисовывающий HTML+CSS. В обратную сторону реже, но, например, тот же GTK3 имеет HTML5-бэкенд.

Ну и нет особой разницы в языке, на котором пишется код. Главное, чтобы он был адекватен задаче, а дальнейшее - это уже вопросы экономики и политики, а не программирования. Из упомянутых и Python и C# и Java - языки достаточно общего назначения, так что неверно говорить что "вот этот - для веб, а этот - десктопный." Тем более, что большая часть программирования зависит от семантики, а не синтаксиса языка, а перечисленные языки имеют очень много семантически сходных (хотя и не идеально аналогичных) конструкций. А синтаксис учится быстро.

Поэтому лучше, я бы сказал, первично учиться, эээ, computer science. Это, если не посвящать жизнь клепанию сайтов-визиток, todo-приложений под айфон и прочих утилит-менеджеров автозапуска, пригодится всегда, в любой области. Изучать стоит все попадающиеся под руку языки - эти знания лишними не бывают. Впрочем, уделяя приоритет более интересным и, среди интересных - более рыночно-практичным. И, конечно же, любые прикладные навыки-технологии (верстка, фреймворки), на вкус и спрос: знания - сила, но платят, как правило, не за знания, а за практические результаты. Так что если у Вас лежит душа к Python+Django - вот, оно. Рынок этого дела есть (со всеми нишами от индусов-за-еду до грамотных специалистов), за него волноваться не стоит.

Answer 4

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

Answer 5

Нельзя списывать со счетов C# с платформой asp.net.

Технология достаточно удобна и гибка.

Из минусов она дороговата для клиента и собственно зависимо от операционной системы.

Но как не странно работу найти не проблема и американцы хотят свои финансовые сайты именно на asp.net

Answer 6

Вы забыли про технологии облачных вычислений.

Answer 7

Как уже было сказано, деление весьма условно. На том же Python'е сейчас встречаются вакансии и в облачных вычислениях, и в высоконагруженных серверных решениях, хотя из "формального" описания языка это может показаться нонсенсом. А ещё важно понимать, что программирование - это только инструмент. Если вы будете учиться просто программировать, то останетесь и сами только инструментом для других. Разберитесь в чём-нибудь по-настоящему и используйте программирование как самый простой на данный момент способ превращения идей и знаний в материю, меняющую жизнь людей в этой области. И вам будет интересней, и людям полезней.

Answer 8

Все надо изучать самому. Создавать идеальные алгоритмы методом проб и ошибок не получится, так как выучить ЯП - 50% проблемы. Другая половина - почувствовать, понять язык. Программирование - это не простое заучивание новых языком, это изучение методик, паттернов программирования и технологий, встраиваемых в язык.

Я бы сказал так:"Хотите творить - идите в прикладники, хотите заработать - идите в веб." Вообще, программированием надо начинать заниматься с детства, потом все само станет на свои места. Вот у вас еще в запасе есть 3 года, так попытайтесь что-либо сделать, разверните крупный проект и попробуйте заработать(или сотворить)....

Answer 9

Уже упоминал своё имхо в одном из вопросов:

Появится ( и о чудо - оказывается уже есть: node-inspector ) node.js + WebInspector, и тогда php, python, jsp - будут сильно потеснены с Web'а

Что-же относительно прикладных задач - то это больше соревнование оптимизаторов ( как компилируемых, так и JIT ), чем языков, и уж тем-более программистов

Answer 10

Да вы правы,я зря сравниваю совершенно разные направления.Наверное меня сбил с толку именно Jython который переводит в бит-код Java.

Два года назад я как то раз ответил себе на этот вопрос и углубился в веб-разработку которая мне довольно таки нравиться.Ну что ж, не стоит бросать начатое.Буду дальше осваивать ZendFramework и Python+Django,так как есть огромное желание программировать.

Всем спасибо.

Answer 11

Вы по сайтам с работой полазийте, типа ХедХантера, сравните зарплаты, увидите, что системным платят больше, ну а если еще какой нибудь САП ненароком освоить, то отрыв еще больше. Как сайты делались так и будут делаться, тоже самое и про системный софт. Это два разных рынка, но их нельзя сравнивать, что преспективнее, а что нет.

Answer 12

Мой совет тебе. Ориентируйся на гигантов Oracle (JSF) Google (GWT,Android и т.д) хотя все это JAVA.

Answer 13

Для начала пройдите курсы программистов с дальнейшим трудоустройством в какой-нибудь крупной фирме. После этого мировоззрение поменяется))) В любом случае без OOP, SQL, XML, слепого набора на клаве и английского в ИТ делать нечего.

Answer 14

Мде... Сегодня я закажу суши и съем их а завтра сварю макароны и тоже съем) Когда на асу учился тоже стоял выбор = что делать, столько яп, какой изучть полностью а какой нахер не нужен?? Вывод прост, делайте то что вам по душе. хотите на липсе пишите, хотите пхп изучайте, все от вас зависит. не надо ломать голову по таким мелочам, жизнь сама все на места расставит) p.s. Заголовок клевый! я думал тут о всемирном масштабе речь идет)

Answer 15

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

Answer 16

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

Answer 17

Будущее за интернетом, будущее за кроссплатформенным C#, будущее за Ruby, Python.

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

C# развивается в кроссплатформенный язык, стоит ему поглотить платформы, этот язык буду юзать - "мочат так - успевай вытирать". Очень мощный, лаконичный, (отличная, родная IDE) понтяный, удобный, быстрый в разработке. Это новый Java, только гораздо мощнее, я не хочу обидеть Java'еров - нет, это же для нас лучше, что есть такие технологии!

Java по сравнению с C# не шелохнулся в развитии, в то время как в Microsoft придумывают для разработчиков новейшие методы и способы упростить жизнь программистам. Эти методы революционны! Посмотрите динамику развития с С# 3.0 до версии 5.5! С каждой версией добавляется вдохновения, и по правде сказать самой силы в программировании!

Как-нибудь напишу статью, дам ссылочку и будем холиварить. ;)

READ ALSO
Мониторинг web-services Java

Мониторинг web-services Java

Разрабатываю проект мониторинга веб сервиса на Java, но появилось куча вопросов, на которые я не нашёл ответа в сетиЯ могу копаться в JVM вытаскивая...

209
Иерархия классов java

Иерархия классов java

Есть какая-нибудь картинка где изображена иерархия встроенных классов в java? От класса Object и все классы и интерфейсы, которые от него наследуютсяА...

457
Как устроен Netty?

Как устроен Netty?

Немного почитал про асинхронные сокеты и про фреймворк Netty, но у меня возник вопрос о том как устроен механизм обработки многочисленных запросов...

203
Почему не работает подключенный Jackson(2.6.1)? Как подключить Jackson к отдельному модулю?

Почему не работает подключенный Jackson(2.6.1)? Как подключить Jackson к отдельному модулю?

Допустим, проект называется А, состоит из 4 модулей, как подключить библиотеку не ко всему проекту А, а, например, только ко 2 модулю?

197