Какой сектор индустрии программного обеспечения использует C ++?[закрыто]
Вопрос
Как и большинство людей, я выучил C ++ после C.Я выучил C ++, потому что это был один из тех языков, которые позволяли выполнять задания.Тем не менее, я все еще учусь (поступаю в магистратуру).Один из моих двоюродных братьев работает разработчиком около 12 лет.
Он советует мне выучить Java, чтобы я мог устроиться на хорошую работу.Он говорит, что лишь немногие отрасли, такие как телекоммуникации, используют C ++, и почти все корпоративное программное обеспечение разработано на Java.Я работаю студентом-техником в своем университете.Работа связана с программированием Windows на C ++.Я выучил core Java.Я не знаю ни одного из этих Распорки, Впадать в спящий режим или что бы там ни было снаружи.
Чтобы быть в большей безопасности, я планирую освоить и то, и другое.Но я думаю, что Java - это океан, хотя программировать на Java проще, чем на C ++ (это мое мнение.Любители C ++ не убивают меня).
Что вы, гики и профессионалы, там советуете мне?Как ты думаешь, я должен выучить их оба?Какие отрасли индустрии программного обеспечения используют C ++?
Решение
Лучший совет, который я когда-либо получал, будучи студентом, был от моего преподавателя иностранных языков, который сказал мне (перефразируя здесь)::"Не запоминай языки;не привязывайте себя к какому-то языку.Это всего лишь инструменты.Все они делают одни и те же базовые вещи.Вместо того чтобы изучать конкретный язык, изучите основы хорошей разработки программного обеспечения.Тогда ты сможешь овладеть любым языком и добиться на нем успеха ".
Я боялась изучать новые языки до того, как он сказал мне это.В заключение скажу, что я принял его совет близко к сердцу, и это все изменило.Языки - это всего лишь инструменты в вашем наборе инструментов.Если вы можете программировать и писать хорошее программное обеспечение на одном языке, вы можете делать это и на другом.
Другие советы
C ++ по-прежнему широко используется для задач с высокой производительностью.Например, я много работаю со сжатием и распаковкой видео - все это на C ++.Отчасти потому, что нам нужна производительность, а отчасти потому, что все библиотеки сторонних производителей, которые необходимо использовать, являются C ++, поэтому с ними легче интегрироваться, если мы используем тот же язык.
Краткий список проектов, которые используют C ++, который не укладывается у меня в голове:
- Разработка драйвера устройства
- Игры
- Продвинутые движки (аудио, обработка изображений и т.д.)
- Телекоммуникации
- Встроенное программное обеспечение (устройства и тому подобное)
C ++ даже близко не близок к тому, чтобы быть мертвым.
Мой опыт:
Bloomberg, Reuters и все их банковские / торговые клиенты, которым нужны каналы рыночных данных с низкой задержкой, используют C ++.(Fidelity, JPMorgan, BNP, Citibank и др.)
Оборонная промышленность использует C++.(среди других языков - Java также популярен)
Эти отрасли также используют java и другие языки, но C ++ трудно превзойти.Обратите также внимание, что существует ОГРОМНАЯ существующая база кода C ++, на устранение которой уйдет много времени (если вообще уйдет).
Узнать и использовать их оба нетрудно.Не беспокойтесь слишком сильно о конкретном языке.Это не настоящая суть разработки программного обеспечения.
Какой-то сайт, называющий себя Google, считает, что он широко использует C ++.Слава Богу, им не нужна производительность, чтобы проиндексировать несколько существующих веб-сайтов.
Однако, если эта паутинная штуковина взлетит, у них будут настоящие неприятности.(-:
Серьезно, если не считать текущей смены канала (возврата?) на C и Perl, все предыдущие четыре проекта были на C ++.
- крупномасштабная система контроля вылета для нескольких крупнейших авиакомпаний мира (30 000 файлов журнала размером 10 МБ в день)
- летный тренажер и наземная платформа для проверки программного обеспечения для нового военного самолета
- крупномасштабная платформа для существующего симулятора управления воздушным движением, которая использовалась для включения новой сети авиационной электросвязи (ATN)
- усовершенствованная система радиолокационной обработки и отображения данных для центра управления воздушным движением на маршруте
Все действительно интересно.
Видеоигры по-прежнему используют C ++.Один из примеров, который приходит на ум, - это Torque engine, который можно использовать для разработки игр для iphone и xbox.
C ++ и близко не близок к тому, чтобы быть мертвым, и, как советуют другие, не связывайте себя узами брака с языком.Если вы изучаете C ++ с точки зрения перспектив трудоустройства, я бы предпочел предложить вам выбрать представителя парадигмы программирования.
- C - Императивное программирование
- C ++/Java/Obj-C - ООП
- Lisp/Haskell/Scheme - Функциональное программирование
Привыкнуть к парадигмам обычно сложнее, чем овладеть самим языком.Надеюсь, что другие откликнутся на другие предложения.
Многие оборонные подрядчики, особенно когда имеют дело с оборудованием, используют C ++
Многие производители передового медицинского оборудования (например, магнитно-резонансной томографии) используют C++.
Я говорю, научись и тому, и другому, если сможешь.Хорошо иметь C ++ foundation, даже если вы в конечном итоге работаете на изолированном языке, таком как C ++ / C #.Слишком много людей не понимают основ.
Обратите внимание, что в разных городах большинство вакансий на определенном языке.Зайдите на доски объявлений о вакансиях craigslist в городе, в котором, по вашему мнению, вы бы оказались, и посмотрите, что они ищут.Например, Питтсбург - город на C #, в то время как Нью-Йорк более сбалансирован.
C ++ по-прежнему широко используется в инженерных приложениях, таких как высокопроизводительные CAD / CAM-системы.
Я думаю, что смерть машинный код это сильно преувеличено.Даже Microsoft отказалась от создания C ++ all about .NET в Visual Studio 2008.Похоже, он снова активно совершенствует свои собственные инструменты разработки на C ++, а также упрощает взаимодействие с управляемым миром.
Мой совет, изучайте C #.В эти дни почти 50% объявлений о вакансиях составляли Java, а почти остальные 50% - C #, было лишь несколько объявлений о C ++.
Тем не менее, люди, использующие C ++, знают, почему они его используют, и, вероятно, у них есть хорошие варианты его использования...это означает, что вы действительно научились бы использовать язык на самом высоком уровне...между тем компании, выпускающие приложения бизнес-логики на Java / C #, вероятно, не научат вас программированию так много и быстро.
Если вы все-таки решите устроиться на работу на C ++, убедитесь, что магазин эффективно использует STL и что они используют Boost.Не рассматривая использование Boost / STL, но фактически используя его.
Ключевые слова:Банковское дело (финансовые учреждения), игры
О, а также физики элементарных частиц и другие ученые, использующие (в) известном КОРЕНЬ рамки.
И проверить этот список приложений на базе C++.
У Бьярне Страуструпа есть список компании / приложения написан на C ++.
В вашем университете не было никаких курсов на основе Java?Это странно!!
Вы должны изучать не только C ++ и Java, но и познакомиться с несколькими языками и парадигмами
Я склонен согласиться с вашим кузеном.Java определенно используется в большем количестве корпоративных приложений (подумайте о том, что могло бы понадобиться банку или страховой компании), в то время как C ++ используется на более "нишевых" рынках.Я также согласен с вами в том, что Java легче изучать и осваивать, чем C ++.Никакого стыда или обиды в том, чтобы признать это.
Мы используем и то, и другое там, где я работаю, пишем встроенное программное обеспечение на C ++, но общаемся с ним из приложений с графическим интерфейсом, написанных на Java.В индустрии программного обеспечения определенно достаточно места для обоих (и многих других) языков.
Большинство упакованных программ по-прежнему написаны на C ++.Это означает игры, офисные приложения, графические и видеоредакторы, а также операционные системы.На самом деле, если вы подумаете о программном обеспечении, которым пользуетесь каждый день, которое не подключено к Сети, скорее всего, оно написано на C ++ (или C или objective-C).Это не написано на Java, Python, Ruby, Perl и т.д.Хотя пакетированное программное обеспечение становится все менее распространенным, оно по-прежнему широко используется и не исчезнет в ближайшее время.
Операционные системы, будь то встроенные или для настольных компьютеров, почти исключительно написаны на каком-либо языке Си.Предпринимались попытки написать их на Java или C #, но ни одна из них не увенчалась успехом.Все ваши драйверы также написаны на каком-либо варианте языка Си.Я не думаю, что это изменится в ближайшее время.
Java великолепна до тех пор, пока вам не придется начать заботиться о деталях, которые она абстрагирует.Большинству людей не нужно этого делать.
Мой совет - овладейте тем языком, который вам больше нравится.Я хорошо знаю C ++ и Java и профессионально использовал и то, и другое.Однако я бы никогда не согласился на другую работу на C ++, потому что нахожу C ++ утомительным и отупляющим занятием.Я предпочитаю тратить свое время на освоение более интересных языков.
Я долгое время писал на C ++ в основном для внутренних и внешних настольных приложений в производственных и телекоммуникационных компаниях и работал полный рабочий день с Java только около 1 года из 16.
Java, казалось, так и не заняла место на рабочем столе, как они предсказывали еще в середине 90-х, когда она впервые появилась, и теперь C ++, похоже, испытывает большую конкуренцию со стороны .net и AJAX / веб-приложений.
Я не могу говорить о его использовании в серверных системах, но я видел там больше, чем на C ++, так что это зависит от того, о каком виде программирования вы говорите (напримерпользователь сталкивается свнутренние системы).
Что ж, я предлагаю выучить больше, чем пару языков.Я работаю в индустрии коммуникаций, и да, мы используем C ++, однако многие проекты, над которыми мы работаем, также написаны на Java.
Я предлагаю вам научиться:
1) C ++ / C 2) Java 3) Erlang или Haskel 4) Ruby
Это поможет вам понять понятия, которые существуют в одном языке, но отсутствуют в другом.Также помогает повысить товарный вид.
Взгляните на индекс программирования tiobe и вы почувствуете, что языки находятся на подъеме.
C ++ широко используется во встраиваемых системах.Он используется при разработке пользовательского интерфейса.Например.знаменитый фреймворк QT написан на C ++.
В конечном счете это зависит от того, что вы хотите сделать.Если вы хотите работать во встраиваемых системах, лучше изучайте C / C ++.
Я регулярно использую C и C ++ на своей работе, где я работаю со встроенными устройствами.Здесь мы тоже не говорим о вещах сверхнизкого уровня.Я занимаюсь средним уровнем и пользовательским интерфейсом.Подумайте о Qt, Gtk +, Windows Mobile SDK и т.д.
C ++ активно используется разработчиками.Подумайте о Microsoft, Adobe, Oracle, Sun, Symantec...
Игровая индустрия выглядит так, как будто идет с C++ навсегда.
Мне пришлось прокрутить до конца, чтобы, наконец, увидеть сообщение с упоминанием видеоигр.C и C ++ имеют огромное значение в этой отрасли.
Что касается вопроса "Чему я должен научиться". Это довольно открытый вопрос, вы хотите узнать как можно больше.Так что да, вы должны изучить их оба.Как уже говорили несколько человек, C # тоже хорош.Вам также следует изучить Python, Ruby или PHP и некоторые веб-фреймворки (Rails, Symfony, Django, ASP.Net).Веб-приложения в наши дни довольно велики.
Если ваш пузырь состоит только из C ++, вы не будете очень востребованы на рынке.
Редактировать: Упс, я думаю, игр упоминалось гораздо больше, чем я изначально увидел здесь.Моя вина.
За свою карьеру я разработал C ++ для:
- Серверные приложения (индустрия ценных бумаг)
- Встроенное программное обеспечение (беспроводные телекоммуникации)
- Настольное прикладное программное обеспечение (беспроводные телекоммуникации)
Я также видел много рекламы для разработчиков C ++ в оборонной промышленности.Там есть работа для разработчиков C ++, не так много, как было в прошлом, но все еще много работы.
Хотя я говорю, что изучение Java не повредило бы, это хороший навык, который нужно иметь за плечами.