Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

На роздоріжжі: C++, Python

Шановні юзери доу, в переді мною постало наступне питання, шостий курс як не як:

Куди б податися джуну який володіє c/c++ на досить такому непоганому рівні. Часто працює з пайтоном (розрахунки та моделювання пов’язані з моєю науковою діяльністю).
Є досвідченим користувачем Linux (консоль, gentoo і тайлові менеджери моє все).
Трішки мав справу з qt та стеком TCP/IP — я був дуже зайнятий нічого було робити і хотілося повчитися використовувати патерни, в результаті написав сервер і клієнт для віддаленого запуску розрахунків.
І взагалі, має десь до 10 тисяч строк різних проектів Just for Fun, сильне бажання творити, розвиватися, але не має досвіду в комерційних проектах?
Англійська intermediate+.

Більш подобаються плюси, але частіше використовую пайтон.

Цікаво почути думку вашу.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Когда я начинал свою карьеру после окончания университета, а это было в 1999 году, я очень завидовал программистам на С++. Я считал их очень крутыми специалистами и хотел сам этим заниматься. Так получилось, что я попал на работу в лидер рынка того времени на очень интересный и амбициозный проект, чему был очень рад, но работа была никак не связана с С++. В результате, после университета я уже никогда не занимался С++. Возможно, и у Вас так же сложится. Перспективная работа может быть не связана с технологиями, о которых Вы говорите. Главное, чтобы в Вас поверили.

Коментар порушує правила спільноти і видалений модераторами.

Если и выбирать, то внутри одной весовой категории: C++, Java, C#, Objective C/Swift
...
Java — тренд есть и будет продолжаться, альтернативы: скорость входа, кросплатформенность, time2market пока на рынке разработки ПО нет, ну и как генератора технического долга тоже )
.
C# - M$ была, есть и будет — Вам сюда, если делаете ставку на Микрософт и корпоративный софт.
.
С++ - game, embedded, automotive, ресурсоёмкие вычисления никуда не денутся
.
Objective C/Swift — запомните это твит, скоро альянс Apple+IBM выстрелит, ниша RIM/BB долго пустовать не может, AppleTV, VR и по слухам автомобиль
...
Почитайте Quora, определитесь с тем будете иммигрировать или нет и просто зафиксируйте то, что вам нравится делать, какой бизнес домен ближе и вперёд.
...
Серебрянную пулю и даймонд солюшон Вам никто не предложит.

определитесь с тем будете иммигрировать или нет
Для эмиграции что-то из вашего списка
C++, Java, C#, Objective C/Swift
подходит больше?

Не совсем корректно ставить вопрос так
...
Если бы 16 лет назад, Вы спросили, что нужно изучать, чтобы уехать. Ответ был был — как что Delphi или Borland C++ и хорошо бы выучить такую модную фишку как ссылочная целостность, которая только что появилась в СУБД Paradox.
...
Тут нужно исходить из бизнес домена в который Вы собираетесь инвестировать: игры — ок, облачные технологии — отлично, мобильные и носимые устройства — то что нужно и т.д.
...
Почему? Как бы кому-то не хотелось — 10000 часов никто не отменял, тоесть в любой области прийдётся кропотливо учиться, набивать шишки и пр. Помимо денег, нужно позаботиться, чтобы было что-то ещё, Вам должно нравиться заниматься решенеим задач в определённом домене.
...
А вот после этого можно ответить на вопрос об инструменте. Да, в некоторых областях одни инструменты использовать эффективнее чем другие: игры\финансы — С++, корпоратиные системы: Java/C# и т.д.
Также важно понимать, что предпочтения в инструментах могут измениться со временем, кто кроме топ экзекьютивс в 2006 понимал чем будет Android в 2016?
...
Выберите направление и подтягивайте те инструменты, которые сейчас используются с прицелом на будущее.

Меня интересует старый добрый веб : фронтэнд, бэкенд..
В смысле более социальные проекты среднего размера, не корпоративные..
Тут самая большая каша в языках- руби, питон, пхп, перл, джс а так же все остальное)

Ок. Понял. Вы пока решили выбрать изучение инструментария, а не специализацию в домене.
Небольшой замечания: инструмент+домен, всегда лучше чем просто инструмент.
Тут и порог входа ниже, значит конкуренция выше и как следствие ниже зп.
Тоесть CSS3+HTML5, чуток хуже, чем Angular+UI/UX,
также как UI/UX без game или mobile.
...
Возвращаясь к вопросу. Пару лет назад Глобал приглашал одного из топов Linkedin — и мой ключевой вопрос был: победит ли HTML5 нативные приложения? Как мы видим по истечению 2 лет — мобильный клиент Linkedin-а все ещё native.
...
Если бы и существовал явный лидер, то он уже давно бы захватил мир. А так, для определённых доменов лучше подходят те или иные инструменты и они буду продолжать там доминировать.
...
In My Simple World, на горизонте в пару лет
RoR — скорость и простота разработки
NodeJS — здесь есть здравый тренд объединить кодовую базу(фронтэнд, бэкенд) вокруг одного языка, это позволит существенно сократить издержки
PHP — будет жить так как блише всех к KISS, издержки на JIT меньше чем у конкурентов, позволяет использовать как процедурный, так и ОО подходы. Плюс куча проекто уже крутятся на нём.
Java/Scala/Closure — модно, современно, молодёжно, интерпрайзно
...
Повторюсь, сфокусируйтесь на домене.
Например — хочу клепать интернет магазины. Ок. Но тут сразу вопросы: а как крутится амазон или розетка, а какие тенденции в инструментах для маркетинга, топовые CMS, а не собирается ли создавать амазон свою ось-магазин? может есть смысл нырнуть туда и т.д.
И ответ на вопрос об инструментах отпадёт сам собой.

Спасибо большое за ответ. Я в принципе- где-то так и сам думал.:)
Хотя вопрос был по вашему предложению изначально:

Почитайте Quora, определитесь с тем будете иммигрировать или нет и просто зафиксируйте то, что вам нравится делать, какой бизнес домен ближе и вперёд.
А именно, по «определитесь -будете вы имигрировать или нет..»
Как намерение имиграции может повлиять на выбор языка? Я подумал, может вы в курсе дела.
Как намерение имиграции может повлиять на выбор языка? Я подумал, может вы в курсе дела.
Ремарка была по поводу того, что надо брать во внимание один момент — наш рынок ИТ слегка не репрезентативный с точки зрения технологий. Это прямое следствие полностью аутсорсинговой модели.
В этом контексте, если есть стремление уехать, то нужно мониторить рынок не локальный, а через glassdoor например.

У нас, наприклад, зараз відкривається новий проект, де використовується і С++, і Python. Це я до того, що можливо і не прийдеться обирати щось одне :)

В чому полягає ваша наукова діяльність?

З точки зору ІТ: Моделювання методом молекулярної динаміки та наступна обробка даних(наприклад отримав я 100Гб даних, які вручну не обробити, я пишу алгоритм для постпроцесінгу, фільтрування шуму, фур’є і так далі...). Потім іде статистична обробка. І все це з використанням переважно python і bash scripting.

this.
В зв"язку в збільшенням об"єму даних, люди, прогнозують, шо буде дуже великий попит на спеціалістів по аналізу даних. Звичайно, що таких вакансій у нас на ринку зараз не багато, але дуже рекомендую автору рухатись в цьому напрямку. Промонітор вакансії і компанії, які працюють с big data і подивись, з якими інструментами вони працюють. ПО великому рахунку, тобі не варто зациклюватись на інструменті, в ІТ все дуже швидко змінюється.

Big data рекрутери пишуть, що овердокуя, але Java

Можливо я помиляюсь, але Java куди простіша від плюсів, адже, нема вказівників — нема проблем

Більш подобаються плюси, але частіше використовую пайтон.
Ты серьёзно?

У мня аналогично, так что студент не одинок в предпочтении С++ пайтону.

Я так понимаю, это старички гонят волну на С++, чтоб неофиты из вайтивайти не лезли в их нишу?
«За 21 день не выучить», «низкоуровневая фигня», «высокий порог».
Скоро будут пинать как Делфи или турбопаскаль)

низкоуровневая фигня
це може про С без плюсів

да ніфіга, С++ це ж ООР і ООД перегрузка операторов і мультинаслідовання
а С він такий унилий, ніякого ванільного цукру

ніякого ванільного цукру
Я бы назвал это несколько иначе.

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

плюс авк и сед

Которые или нифига не умеют, или писать надо так, что сдохнешь от попыток вложить всё это в построчно-потоковую модель.

Когда один знаменитый программист попытался решить задачу, в частности, избавить awk от этой потоковости — получился Perl. От которого, если говорить только об этом уровне запросов, Python не отличим, как близнец.

это баш скрипт со всеми тысячами консольных утилит

В истории IT несколько раз решалась задача «сделать логическое замыкание командного шелла до состояния — лучший шелл, чем шелл, устранив все ‘неустранимые преимущества’ простого шелла.
Известные мне три попытки дали Perl, Tcl и Rexx. Из них сейчас только Rexx можно хоть как-то считать шеллом. Оставшиеся два — полноценные скриптовые языки.

Если серьёзно писать — это си.

Да, очень распространённое мнение. Лет 15 назад я тоже таким страдал, извините за слегка личные намёки. Правда, в то время языки были менее удобны, я в итоге кое-как приспособился к Perl и решал на нём основные задачи автоматизации деятельности узла интернет-провайдера. Но постепенно и тогда началась задумчивая миграция на Python, как только уровень задач выходил, грубо говоря, за пять экранов кода.

Проблема с обозначенным Вами бутербродом из технологий в том, что у него нет адекватного промежуточного уровня. Голый C слишком примитивен, в нём нет даже поддержки штатных структур данных, которые реально требуются в заметной части таких задач. Например, unordered map, он же dictionary. Да, в типичной Unix среде есть hsearch() для памяти и *DBM для диска, но найдите их хоть в одном стандарте за пределами XPG+XSI (то есть, это даже не базовый Posix). Если же имелся в виду C++, то его постоянные подплывания в результате сдвига стандартов (вот, считаем, только-только успокоились после C++11, и то 14-й вносит немного хитрых новостей), да и сам язык, за пределами понимания типичного админа (ничего личного, просто другая специфика). Тянуть за собой десяток библиотек поддержки ради сишной поделки обычно как-то не хочется, да и неудобно.

С другой стороны, вызывать по каждому чиху какую-то внешнюю тулзу из bash не только дорого, но и часто несекьюрно (например, постоянные проблемы с реинтерпретацией значений в backticks).

«Вкусность» развитых скриптовых языков в том и состоит, что они:
1. Обеспечивают бо́льшую часть необходимой функциональности своими средствами, на основании встроенных типов данных и функций. Это устраняет как цену вызова внешних средств на каждый чих, так и проблемы на границах процессов.
2. Позволяют встраивать (системой модулей) расширения всех видов, не требуя продираться сквозь конфликты и позволяя уходить от чрезмерной цены IPC. Для простого пользователя — соответственно, всё это использовать дешёвым образом.
3. Позволяют удобно работать со сложными структурами данных (сложными — это, например, от 4 уровней вложенности и выше).
4. Устраняют основные проблемы управления памятью (которая обычно слишком сложна для админа).
5. Не требуют компиляции.

Баш скрипт.... большего ужаса я не встречал...

привильний проект = пітон + баш + С
і ніяких хрестів

нажаль (чи на щастя) не досліджував життя баша під віндовозом

В винде же родной powershell есть. нафига там ещё баш?
habrahabr.ru/post/85576

Скоро JS в ядрах будет, а в powershell он с рождения => переписывать будет не нужно :)

Скоро JS в ядрах будет
надеюсь, в пушечных ядрах?

Вам всё хиханьки, а ведь эта дрянь реально распространилась почти везде.

а ведь эта дрянь реально распространилась почти везде.

У нас было 2 виртуальных машины (jvm, clr) , 3 старперских языка, рубиновая забористая дурь, одно пресмыкающееся и прочее множество некомплируемых воннаби недоязыков, а также надстройки над jvm, для желающих упороться функциональщиной. Не то чтобы это был необходимый запас для аутсорса, но если начал собирать дурь, становится трудно остановиться. Единственное, что вызывало у меня опасение — это JS. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем подсевший на JS с тамошними фреймворками. Я знал, что рано или поздно мы перейдем и на эту дрянь.

Т.е. цепочки команд нельзя слепить также, как в линухе это раз

Ну здрасте на вас. нормально всё под цигвином слепляется вроде. Подтормаживает и консоль в винде конченая — это конечно да....

Я встречал — скрипт на cmd.exe %-O

> utils/make_lexicon_fst.pl

низачоД :)

>

Мдас тег code здесь прикольно работает. Заюзал pre.

Я ставлю оба.

На баші зручно робити скрипт-обгортку, а постобробка з активним юзанням матану краще робиться з пайтонівською бібліотекою scipy і numpy. В Сі все це писати було б довго і складно.

Тобто Матлаб більше вітається на ринку ніж Пітон?

Ок, скільки коштує Матлаб для універу, і чи можна купити, якщо я не афліований в академічні заклади?

Octave це надкусаний Матлаб, там багатьох ляґумін нема.

за то R та Maxima дадуть можливості SPSS i матлаб для студентських цілей і не потрібно купляти нічого

Ні, в моїй задачі баш і пайтон саме те, оскільки:
1. Програма яка моделює зовнішня, а саме LAMMPS.
2. Оскільки в мене проблема має елемент набору статистики, то моделювань десятки тисяч.
3. Відповідно постає проблема організації, обробки, архівації даних.
4. Для файлової організації та архівування, розархівування та керування в цілому баша хватає з головою, він простий і для цього він і розроблявся.
5. Для подільшої обробки даних і виводу графіків, задач з обробки статистики та написання алгоритмів знаходження потрібних мені інтегральних характеристик пайтону мені вистачає.
6. Віддалено по ssh я не знаю, чи є можливість в консольному режимі правити матлабівські скрипти, але баш з пайтоном запросто.

Ні, в моїй задачі баш і пайтон саме те, оскільки:
Тогда в чем вопрос ? Если инструменты вас устраивают, то яке «раздорiжжя» ?

Для того чтобы выжить в С++ сегодня, знать только С++ недостаточно. Чистых С++ проектов с каждым годом становятся мало. Обычно в проекте кидают на конкретные задачи другие языки, чтобы с меньшими затратами сделать проект. Н-р, в браузеровском плагине проще к плюсам через соотв. библиотеку подключить выполнение js скрипта, чем такое реализовывать на плюсах.
Поэтому совет, учи то и другое, а также добавь к своему стеку еще пару топовых языков.

Подавай резюме на обидва напрямки. Що швидше вистрелить, туди і йди. А вже коли матимеш першу роботу програмістом, зможеш переключитсь, куди душа бажає. Це вже простіше.

На распутье: секс или онанизм?

тут і без порад все знаходиться
лише тут globallogic.com.ua/...tions/kyiv/c-c-plus-plus 18 вакансій на с++
Пітон як окрема вакансія іде якщо хочеш на веб. А в випадках с с/с++ про нього в описі рідко згадують, то просто інструмент. Якщо нема знань веброзробки і відпівідних фреймворків — іди на с++ девелопера

лише тут
Угу... тикнув пальцем в найбілшу контору яка наймає С++.

Зробити проект на Django з використанням БД і враховуючи ваш інтермідіейт плюс, вас будь-яка компанія з топу рейтингу швіденько забере на відкриту вакансію.

Ну что же вы такое пишите Евгений ? Вы же умный человек и сами всё понимаете, по «плюсам» тут очевидно что на этом пути по мимо разработки ПО нужно следить за всякой низкоуровневой фигней, особенностями компилятора, ОС, процессора, борьба с утечками, парадоксальными ситуациями и волшебным гoвнoкодом написаным до вас, который практически нереально разобрать из-за многоликости языка который и без этого полон прочей мозгодробильной xeрней — Вас это не тревожит ? Тогда это ваш путь !
Python — это 90% работа с Джанго гадостный фреймворк как по мне после Rails но вполне съедобен, тут если вас не раздражает Фронт-Энд со всеми этими картинками, формами, верстками, HTML, CSS, JS и куча неоднозначных фреймворков для клиента где на проекте сейчас часто 30-40% Python и 70% HTML, JS ,CSS — тогда это ваше ... (правда можно свалить в машинное обучение если с математикой дружите)
— Выберите для себя из двух зол меньшее ...

ну это уже стереотипы в духе «PHP вакансия? — забудь, там 99% сайты на джумле делать придется»

То есть вы со мной не согласны что в вашей «Питоновской» среде люди уделяют минимум 50-процентов рабочего времени разработке\доработке клиентской стороны копаясь в фронтэнде со всяким JS, CSS, HTML и соответственно сопутствующими клиентскими фреймворками ?

Не согласен. Мне такие два проекта попались, что фронтенд был вне моей зоны ответственности — тем более тенденция сейчас идет в сторону реализации API, которое будет использоваться веб-фронтендом, мобильными приложениями и т.д.

Знакомство с Python состоялось вообще в формате написания инструмента для сбора метрик из Jira. Достаточно часто попадаются вакансии на проекты «оркестраторов» — управления облаком, там фронтенд явно не самая важная часть.

То, о чем вы говорите, сейчас рекрутеры называют «Full-stack web development» — имеет место быть, но этим область применения, как и вебом вообще, не ограничивается. Если от фронтенда хочется держаться подальше, тогда вместо Django стоит просто разобраться с Tornado или Twisted.

Спасибо за достойный ответ ...
На Tornado или Twisted я действительно не смотрел !

я роздорижья не вижу, с++ старый низкоуровневый язык, питон новый высокоуровневый. развитие может идти в сторону фреймворков или вообще переход на яву.

Я б обрав С++ за основу а Пітон на додачу

Не вижу альтернативы. Хорошая рабочая связка.
С (даже не ++) для основного софта,
Python для прототипирования, конфигурирования, тестирования и даже автогенерации кода.

Есть. А главное, что и за пределами Украины тоже.

Хз, Я Сам С++ и Python, За последние годы только от воргейминга и видел такие вакансии.

Не ну так чтобы сразу C++/Python такого нет.
Но хорошая С++ вакансия, как правило включает Python как would be a plus.
Где видел — жирное серверное программирование, имплементация всяких сетевых фич (привет Twisted), жирный embedded (на гигагерцовых РРС), IoT, виртуализация (привет Мирантис и OpenStack).
Все эти темы достаточно актуальны, высокобюджетны и долгоиграющи, чтобы влазить в них всерьез и надолго, хотя конечно подобных вакансий гораздо меньше, чем булшита на Джанго.

Хз, может что-то я не так искал.

Где видел — жирное серверное программирование, имплементация всяких сетевых фич (привет Twisted)
Ну я вот из этого мира — ИМХО мало кому оно надо, я просто свою компетенцию продать толково не смог, правда город не Киев. Всё жирное — интерпрайз всё джава, либо поделки на джанге. А Твистед по-моему уже история.
жирный embedded (на гигагерцовых РРС)
Очень узкий рынок, бюджет поменьше чем у формоклепателей :)
виртуализация (привет Мирантис и OpenStack)
Вот про них забыл. Эти интересные.

жирный embedded (на гигагерцовых РРС)
Очень узкий рынок, бюджет поменьше чем у формоклепателей :)
Вот тут бы я очень сильно поспорил — вендинг, сетевое оборудование, промавтоматика, роботы и распределенный сбор данных. Краем глаза видел через забор «технологии двойного назначения»
У всех этих ребят монета есть. А главное — у них проекты не однодневки как у вебберов, но и не бесконечная долбежка окаменевшего говна, как в энтерпрайзе.

Руби рулез!

Не знаю смеяться тут или плакать. Что на этом руби можно посчитать, таблицу умножения до 3 знаков?

ain.ua/2015/04/22/577015

Руби может и рулез, вот только в списке за 2015 год , аааж на почетном 18 месте.

А в списке за 2016 год рубин подымается галопом.
www.tiobe.com/index.php/tiobe_index

Ну как бы да, но это помесячное сравнение, хотелось бы за год посмотреть. А то мало ли, что там в Феврале за флуктуации происходят.

а перл еще лучше

ударим анхуманизмом по анхуманизму!

зачем рубить рулез? не понимаю....

Чтобы душить прекрасные порывы

Просто руби рулез некогда объяснять! (к) (тм)

А это у вас на компьютеры сотрудников установлены специфические тайм-трекеры, которые открываются раз в полчаса поверх всех окон и требуют написать микроотчёт?

Гггг.....

Ні, у нас всі розробники під’єднані до системи життєзабезпечення, суміщеної з електричним стулом. Самі знаєте для чого ;)

Слабенькая отмазка, на 3 с минусом.

В науці і в embedded можна і те і те використовувати і не треба буде обирати)

Можу порадити декілька підходів:
1. Створи 2-3 резюме, одне по С++, зробити акценти на цьому і подавайся на всі вакансії, стажування і т.д. Інше резюме по пайтону і подавай його на пайтон вакансії.
2. Спробй зрозуміти, що ж все-таки більше подобається і подавайся тільки туди. Тут варто зазначити, що варто визначитись не лише з мовою але й з обласю: мобайл, ембедед, геймдев і т.д.

Якщо є трохи можливостей і часу, хоча б до літа, радив би не кидатись на перший ліпший офер, а зрозуміти. що подобається, покопати в цьому напрямку і пробувати туди.

C++. До них часто хочуть пайтон як скриптову мову.

Підписатись на коментарі