На роздоріжжі: C++, Python
Шановні юзери доу, в переді мною постало наступне питання, шостий курс як не як:
Куди б податися джуну який володіє c/c++ на досить такому непоганому рівні. Часто працює з пайтоном (розрахунки та моделювання пов’язані з моєю науковою діяльністю).
Є досвідченим користувачем Linux (консоль, gentoo і тайлові менеджери моє все).
Трішки мав справу з qt та стеком TCP/IP — я був дуже зайнятий нічого було робити і хотілося повчитися використовувати патерни, в результаті написав сервер і клієнт для віддаленого запуску розрахунків.
І взагалі, має десь до 10 тисяч строк різних проектів Just for Fun, сильне бажання творити, розвиватися, але не має досвіду в комерційних проектах?
Англійська intermediate+.
Більш подобаються плюси, але частіше використовую пайтон.
Цікаво почути думку вашу.
93 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівКогда я начинал свою карьеру после окончания университета, а это было в 1999 году, я очень завидовал программистам на С++. Я считал их очень крутыми специалистами и хотел сам этим заниматься. Так получилось, что я попал на работу в лидер рынка того времени на очень интересный и амбициозный проект, чему был очень рад, но работа была никак не связана с С++. В результате, после университета я уже никогда не занимался С++. Возможно, и у Вас так же сложится. Перспективная работа может быть не связана с технологиями, о которых Вы говорите. Главное, чтобы в Вас поверили.
Коментар порушує правила спільноти і видалений модераторами.
Если и выбирать, то внутри одной весовой категории: C++, Java, C#, Objective C/Swift
...
Java — тренд есть и будет продолжаться, альтернативы: скорость входа, кросплатформенность, time2market пока на рынке разработки ПО нет, ну и как генератора технического долга тоже )
.
C# - M$ была, есть и будет — Вам сюда, если делаете ставку на Микрософт и корпоративный софт.
.
С++ - game, embedded, automotive, ресурсоёмкие вычисления никуда не денутся
.
Objective C/Swift — запомните это твит, скоро альянс Apple+IBM выстрелит, ниша RIM/BB долго пустовать не может, AppleTV, VR и по слухам автомобиль
...
Почитайте Quora, определитесь с тем будете иммигрировать или нет и просто зафиксируйте то, что вам нравится делать, какой бизнес домен ближе и вперёд.
...
Серебрянную пулю и даймонд солюшон Вам никто не предложит.
Не совсем корректно ставить вопрос так
...
Если бы 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, а не собирается ли создавать амазон свою ось-магазин? может есть смысл нырнуть туда и т.д.
И ответ на вопрос об инструментах отпадёт сам собой.
Спасибо большое за ответ. Я в принципе- где-то так и сам думал.:)
А именно, по «определитесь -будете вы имигрировать или нет..»Хотя вопрос был по вашему предложению изначально:
Как намерение имиграции может повлиять на выбор языка? Я подумал, может вы в курсе дела.
В этом контексте, если есть стремление уехать, то нужно мониторить рынок не локальный, а через glassdoor например.
У нас, наприклад, зараз відкривається новий проект, де використовується і С++, і Python. Це я до того, що можливо і не прийдеться обирати щось одне :)
В чому полягає ваша наукова діяльність?
З точки зору ІТ: Моделювання методом молекулярної динаміки та наступна обробка даних(наприклад отримав я 100Гб даних, які вручну не обробити, я пишу алгоритм для постпроцесінгу, фільтрування шуму, фур’є і так далі...). Потім іде статистична обробка. І все це з використанням переважно python і bash scripting.
Класно, йдіть на data science
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 он с рождения => переписывать будет не нужно :)
Вам всё хиханьки, а ведь эта дрянь реально распространилась почти везде.
У нас было 2 виртуальных машины (jvm, clr) , 3 старперских языка, рубиновая забористая дурь, одно пресмыкающееся и прочее множество некомплируемых воннаби недоязыков, а также надстройки над jvm, для желающих упороться функциональщиной. Не то чтобы это был необходимый запас для аутсорса, но если начал собирать дурь, становится трудно остановиться. Единственное, что вызывало у меня опасение — это JS. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем подсевший на JS с тамошними фреймворками. Я знал, что рано или поздно мы перейдем и на эту дрянь.
Ну здрасте на вас. нормально всё под цигвином слепляется вроде. Подтормаживает и консоль в винде конченая — это конечно да....
Я встречал — скрипт на cmd.exe %-O
> utils/make_lexicon_fst.pl
низачоД :)
>
Я ставлю оба.
На баші зручно робити скрипт-обгортку, а постобробка з активним юзанням матану краще робиться з пайтонівською бібліотекою scipy і numpy. В Сі все це писати було б довго і складно.
Тобто Матлаб більше вітається на ринку ніж Пітон?
Ок, скільки коштує Матлаб для універу, і чи можна купити, якщо я не афліований в академічні заклади?
мож відкриті і безплатні R/Maxima/Axiom/Octave/SciLab/GAP ? www.axiom-developer.org www.r-project.org maxima.sourceforge.net www.scilab.org www.gnu.org/software/octave www.gap-system.org
Octave це надкусаний Матлаб, там багатьох ляґумін нема.
за то R та Maxima дадуть можливості SPSS i матлаб для студентських цілей і не потрібно купляти нічого
Що прада то правда
Ні, в моїй задачі баш і пайтон саме те, оскільки:
1. Програма яка моделює зовнішня, а саме LAMMPS.
2. Оскільки в мене проблема має елемент набору статистики, то моделювань десятки тисяч.
3. Відповідно постає проблема організації, обробки, архівації даних.
4. Для файлової організації та архівування, розархівування та керування в цілому баша хватає з головою, він простий і для цього він і розроблявся.
5. Для подільшої обробки даних і виводу графіків, задач з обробки статистики та написання алгоритмів знаходження потрібних мені інтегральних характеристик пайтону мені вистачає.
6. Віддалено по ssh я не знаю, чи є можливість в консольному режимі правити матлабівські скрипти, але баш з пайтоном запросто.
Для того чтобы выжить в С++ сегодня, знать только С++ недостаточно. Чистых С++ проектов с каждым годом становятся мало. Обычно в проекте кидают на конкретные задачи другие языки, чтобы с меньшими затратами сделать проект. Н-р, в браузеровском плагине проще к плюсам через соотв. библиотеку подключить выполнение js скрипта, чем такое реализовывать на плюсах.
Поэтому совет, учи то и другое, а также добавь к своему стеку еще пару топовых языков.
Подавай резюме на обидва напрямки. Що швидше вистрелить, туди і йди. А вже коли матимеш першу роботу програмістом, зможеш переключитсь, куди душа бажає. Це вже простіше.
На распутье: секс или онанизм?
тут і без порад все знаходиться tions/kyiv/c-c-plus-plus 18 вакансій на с++
лише тут globallogic.com.ua/...
Пітон як окрема вакансія іде якщо хочеш на веб. А в випадках с с/с++ про нього в описі рідко згадують, то просто інструмент. Якщо нема знань веброзробки і відпівідних фреймворків — іди на с++ девелопера
Зробити проект на Django з використанням БД і враховуючи ваш інтермідіейт плюс, вас будь-яка компанія з топу рейтингу швіденько забере на відкриту вакансію.
Machine learning, big data.
Ну что же вы такое пишите Евгений ? Вы же умный человек и сами всё понимаете, по «плюсам» тут очевидно что на этом пути по мимо разработки ПО нужно следить за всякой низкоуровневой фигней, особенностями компилятора, ОС, процессора, борьба с утечками, парадоксальными ситуациями и волшебным гoвнoкодом написаным до вас, который практически нереально разобрать из-за многоликости языка который и без этого полон прочей мозгодробильной xeрней — Вас это не тревожит ? Тогда это ваш путь !30-40% Python и 70% HTML, JS ,CSS — тогда это ваше ... (правда можно свалить в машинное обучение если с математикой дружите)
Python — это 90% работа с Джанго гадостный фреймворк как по мне после Rails но вполне съедобен, тут если вас не раздражает Фронт-Энд со всеми этими картинками, формами, верстками, HTML, CSS, JS и куча неоднозначных фреймворков для клиента где на проекте сейчас часто
— Выберите для себя из двух зол меньшее ...
ну это уже стереотипы в духе «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).
Все эти темы достаточно актуальны, высокобюджетны и долгоиграющи, чтобы влазить в них всерьез и надолго, хотя конечно подобных вакансий гораздо меньше, чем булшита на Джанго.
Хз, может что-то я не так искал.
Ну я вот из этого мира — ИМХО мало кому оно надо, я просто свою компетенцию продать толково не смог, правда город не Киев. Всё жирное — интерпрайз всё джава, либо поделки на джанге. А Твистед по-моему уже история. Очень узкий рынок, бюджет поменьше чем у формоклепателей :) Вот про них забыл. Эти интересные.жирный embedded (на гигагерцовых РРС)
Очень узкий рынок, бюджет поменьше чем у формоклепателей :)
Вот тут бы я очень сильно поспорил — вендинг, сетевое оборудование, промавтоматика, роботы и распределенный сбор данных. Краем глаза видел через забор «технологии двойного назначения»
У всех этих ребят монета есть. А главное — у них проекты не однодневки как у вебберов, но и не бесконечная долбежка окаменевшего говна, как в энтерпрайзе.
java
Руби рулез!
Не знаю смеяться тут или плакать. Что на этом руби можно посчитать, таблицу умножения до 3 знаков?
ain.ua/2015/04/22/577015
Руби может и рулез, вот только в списке за 2015 год , аааж на почетном 18 месте.
А в списке за 2016 год рубин подымается галопом.
www.tiobe.com/index.php/tiobe_index
Ну как бы да, но это помесячное сравнение, хотелось бы за год посмотреть. А то мало ли, что там в Феврале за флуктуации происходят.
а перл еще лучше
ударим анхуманизмом по анхуманизму!
зачем рубить рулез? не понимаю....
Чтобы душить прекрасные порывы
Просто руби рулез некогда объяснять! (к) (тм)
jobs.42cc.co :)
А это у вас на компьютеры сотрудников установлены специфические тайм-трекеры, которые открываются раз в полчаса поверх всех окон и требуют написать микроотчёт?
Гггг.....
Ні, у нас всі розробники під’єднані до системи життєзабезпечення, суміщеної з електричним стулом. Самі знаєте для чого ;)
Слабенькая отмазка, на 3 с минусом.
В науці і в embedded можна і те і те використовувати і не треба буде обирати)
Можу порадити декілька підходів:2-3 резюме, одне по С++, зробити акценти на цьому і подавайся на всі вакансії, стажування і т.д. Інше резюме по пайтону і подавай його на пайтон вакансії.
1. Створи
2. Спробй зрозуміти, що ж все-таки більше подобається і подавайся тільки туди. Тут варто зазначити, що варто визначитись не лише з мовою але й з обласю: мобайл, ембедед, геймдев і т.д.
Якщо є трохи можливостей і часу, хоча б до літа, радив би не кидатись на перший ліпший офер, а зрозуміти. що подобається, покопати в цьому напрямку і пробувати туди.
C++. До них часто хочуть пайтон як скриптову мову.
Або навпаки.