Мои уроки программирования в школе были на C ++, но в последние несколько лет я работал над C #. Если бы была такая должность, которая требовала бы, скажем, 1 или 2 года опыта в C ++, был бы достоин рассмотрения мой опыт в C #? Насколько эффективно я могу быть в таком положении? Так нужно ли мне начинать программистом C ++ начального уровня, чтобы получить необходимый опыт?
c#
c++
experience
MetaGuru
источник
источник
Ответы:
Проблема здесь заключается в том, что C ++ и C # - это принципиально разные языки с разными подходами ко многим проблемам. Их легко смешать как «язык OO», но простой факт заключается в том, что многие идиомы C # считаются очень плохим кодом в C ++ (и наоборот).
Если вы действительно знаете различия и как выглядят идиомы C ++, то я не вижу причин, по которым это не должно быть хорошо.
источник
Я был в одной лодке около 2 лет назад. Ваш опыт работы с c #, вероятно, не будет стоить столько же для работы c ++, сколько c ++ для работы ac #. Тем не менее, если вы знаете, как на самом деле работает c # (на самом деле очень мало программистов на c #), и хорошо изучили ваш c ++, то проблема с c ++ не будет. Проблема будет в том, как вы привыкли к определенным шаблонам проектирования, которые будут слишком высокого уровня для c ++.
Например, переходя от красивой модели доступа к данным ADO.NET к использованию cppcon для доступа к mysql, System.Collections.Generic к использованию stl, множественному наследованию, сборке мусора для очистки вашей памяти в деструкторах и так далее ... все стремятся быть жесткими переходами. С ++ не проблема, изучение библиотек, шаблонов проектирования и того, как их использовать, является проблемой. Большинство рекрутеров не осознают этого. Если вы можете заниматься базовым дизайном и использовать реально часто используемые функции с ++, тогда вы должны быть в порядке в интервью.
Однако готовность к работе - это другая история. Это веселый вызов, но я надеюсь, что все идет хорошо.
источник
Я не могу говорить за каждого работодателя, но лично я рассматриваю программирование как навыки и специфику языка как хорошее. Вполне возможно получить работу на другом занятии по программированию, которое не является вашим основным навыком.
Сказав, что это очень очень маловероятно, я бы нанял кого-то, у кого не было абсолютно никакого опыта в языке, для которого я его нанимаю. Проведите несколько выходных, изучая и разработав несколько любимых проектов, чтобы поддержать свое резюме. Даже маленькие доказывают, что вы способны учиться и увлечены.
источник
Вы точно в той же ситуации, что и я, 4 года назад.
Я немного занимался С ++ во время учебы, но ненавидел это. В свободное время я занимался веб-разработкой и получил работу в этой области.
Когда я переехал, я подал заявку на работу на C ++, которая требовала 2 года опыта в C ++. Ну, я освежил свои воспоминания о C ++ до интервью, и когда пришло время для тестов, мне удалось сойти с рук с некоторыми вещами, которые я не был уверен, что я делал правильно.
Но большая часть интервью была посвящена решению проблем и творческим решениям, и C ++ стал второстепенным фактором.
Так что шансы действительно зависят от работодателя и занимаемой должности.
Если вы проходите через агентство по подбору персонала, вам «вероятно» скажут, что ваш профиль не соответствует. Но с реальным работодателем ваши шансы намного лучше, поскольку они действительно знают, что им нужно.
источник
По-разному. Если вы можете ответить на некоторые базовые вопросы об указателях и тому подобное, то все будет в порядке.
Также полезно, если вы можете перечислить различия между шаблонами C ++ и обобщениями .NET.
Кроме этого, довольно легко догнать остальных по ходу дела.
источник
Да. Это может быть не так актуально, как опыт C ++, но это хорошо.
Хороших работодателей будет интересовать, как вы думаете , больше, чем сколько лет конкретного языка у вас есть.
Позиция начального уровня в C ++ хороша: вы можете быстро учиться и отлично работать. Хорошая компания даст вам много возможностей для роста. Если нет, вы можете пойти куда-нибудь еще, и иметь опыт работы как на C #, так и на C ++.
источник
Это действительно зависит от характера бизнеса, к которому вы обращаетесь. Если они ищут кого-то, кто обладает хорошими навыками программирования и архитектуры на основе ОО, C #, вероятно, так же хорош, как и следующая вещь.
Если они гордятся скоростью и быстротой реагирования своего программного обеспечения, вам нужно знать свои алгоритмы, поскольку это важнее микрооптимизаций - хэш-таблиц, линейного поиска и т. Д. C # по-прежнему актуален, но вам нужно продемонстрировать понимание характеристик производительности - например, не все знают о ngen.exe.
Если они находятся во встроенной / мобильной среде и / или в среде без сбора мусора, вам действительно необходимо знать, как эффективно управлять памятью. Интеллектуальные указатели, как указывал @DeadMG, являются ключевыми здесь, но также понимают профиль распределения памяти. Программисты игр часто предварительно выделяют большие массивы объектов и перерабатывают их, чтобы заранее знать требования к памяти и сокращать число неизвестных для каждого кадра. Это также техника, используемая в прокрутке TableViews в iOS.
Если есть какая-либо работа по интеграции, вам, вероятно, понадобится опыт уровня C в плане упорядочения данных между языками (например, P / Invoke), а также понимание на уровне байтов того, как эти структуры данных могут использоваться, что не является обычной практикой в C # по моему опыту.
источник