В данный момент занимаюсь разработкой бизнес-приложений на C#, но в будущем хотелось бы заниматься чем-нибудь более высокотехнологичным. Например, чем-нибудь из области искусственного интеллекта или сложных научных расчетов.
Изредка попадаются вакансии, где ищут .NET-чиков на что-то более-менее интересное, но их очень мало. Подобных вакансий на C++ или Java гораздо больше, а абсолютное большинство .NET вакансий — это та же бизнес-автоматизация или создание сайтов.
Хотел бы узнать мнение сообщества будет ли в будущем ситуация меняться. Стоит ли при таком раскладе продолжать развиваться как .NET-чик или же лучше пытаться перейти на C++, Java или что-то другое?
Re: Технологии используемые в высокотехнологичных направлени
Это в стиле: "погадайте люди дорогие, а то так переучиваться лень".
Зачем спрашивать? Сейчас тут разведут полемику, а толку для Вас никакого. Видите шанс — хватайте быка за рога. Через 10 лет возможно всё с ног на голову перевернётся, другие языки/технологии будут и прийдётся снова учить и переучивать. На мой личный взгляд, если спрашиваете, а не пытаетесь писать на С++, значит не так уж и интересна Вам та область, о которой говорите.
Здравствуйте, Kedr, Вы писали:
K>Всем добрый день.
K>В данный момент занимаюсь разработкой бизнес-приложений на C#, но в будущем хотелось бы заниматься чем-нибудь более высокотехнологичным. Например, чем-нибудь из области искусственного интеллекта или сложных научных расчетов. K>Изредка попадаются вакансии, где ищут .NET-чиков на что-то более-менее интересное, но их очень мало. Подобных вакансий на C++ или Java гораздо больше, а абсолютное большинство .NET вакансий — это та же бизнес-автоматизация или создание сайтов. K>Хотел бы узнать мнение сообщества будет ли в будущем ситуация меняться. Стоит ли при таком раскладе продолжать развиваться как .NET-чик или же лучше пытаться перейти на C++, Java или что-то другое?
Здравствуйте, Kedr, Вы писали:
K>Всем добрый день.
K>В данный момент занимаюсь разработкой бизнес-приложений на C#, но в будущем хотелось бы заниматься чем-нибудь более высокотехнологичным. Например, чем-нибудь из области искусственного интеллекта или сложных научных расчетов. K>Изредка попадаются вакансии, где ищут .NET-чиков на что-то более-менее интересное, но их очень мало. Подобных вакансий на C++ или Java гораздо больше, а абсолютное большинство .NET вакансий — это та же бизнес-автоматизация или создание сайтов. K>Хотел бы узнать мнение сообщества будет ли в будущем ситуация меняться. Стоит ли при таком раскладе продолжать развиваться как .NET-чик или же лучше пытаться перейти на C++, Java или что-то другое?
чтобы заниматься чем-то вывокотехнологичным нужно знать алгоритмы и понимать предментную область. фреймворки и языки тут вторичны.
Re: Технологии используемые в высокотехнологичных направлени
Здравствуйте, Kedr, Вы писали:
K>Всем добрый день.
K>В данный момент занимаюсь разработкой бизнес-приложений на C#, но в будущем хотелось бы заниматься чем-нибудь более высокотехнологичным. Например, чем-нибудь из области искусственного интеллекта или сложных научных расчетов.
Учи C#, С/C++ и Java.
Их широко использут в высокотехнологичных направлениях
Если интересуют сложные научные расчеты, то Matlab и фортран тебе в руки
Re: Технологии используемые в высокотехнологичных направлени
Здравствуйте, Kedr, Вы писали:
K>пытаться перейти на C++, Java или что-то другое?
В этой фразе только "перейти" лишнее слово. Не надо никуда переходить. Надо, по мере возможностей, приобретать хотя бы общее представление о языках, технологиях и инструментах, которые кто-то уже использует или планирует использовать в интересующих областях.
Здравствуйте, PAS_Tor, Вы писали:
PAS>Это в стиле: "погадайте люди дорогие, а то так переучиваться лень".
PAS>Зачем спрашивать? Сейчас тут разведут полемику, а толку для Вас никакого. Видите шанс — хватайте быка за рога. Через 10 лет возможно всё с ног на голову перевернётся, другие языки/технологии будут и прийдётся снова учить и переучивать.
Мне как раз интересно не гадание и полемика, а факты и мнение знающих людей по данному вопросу.
Ожидал услышать что-то вроде "я работаю в области ***, в последнее время мы потихоньку стали отказываться от использования *** в пользу перехода на ***, потому что ***"
или "а я вот наблюдаю такую-то тенденцию, и слышал, что даже в Яндексе решили переписать свои поисковые алгоритмы на ***".
Re[2]: Технологии используемые в высокотехнологичных направл
Здравствуйте, gandjustas, Вы писали:
G>чтобы заниматься чем-то вывокотехнологичным нужно знать алгоритмы и понимать предментную область. фреймворки и языки тут вторичны.
В общем согласен.
Но представьте висит вакансия:
Обязательные требования:
* AAA
* глубокие знания C++ (от 5 лет)
* BBB
Допустим я знаю AAA и BBB, но занимался этим исключительно на .NET. Каковы мои шансы на эту вакансию?
А на .NET подобных вакансий мало или вообще нет.
Re[3]: Технологии используемые в высокотехнологичных направл
Здравствуйте, Kedr, Вы писали:
K>Здравствуйте, gandjustas, Вы писали:
G>>чтобы заниматься чем-то вывокотехнологичным нужно знать алгоритмы и понимать предментную область. фреймворки и языки тут вторичны.
K>В общем согласен. K>Но представьте висит вакансия:
K>Обязательные требования: K>* AAA K>* глубокие знания C++ (от 5 лет) K>* BBB K> K>Допустим я знаю AAA и BBB, но занимался этим исключительно на .NET. Каковы мои шансы на эту вакансию?
Вообще-то сильно зависит от AAA и BBB. Можно сходить на собеседование и узнать.
K>А на .NET подобных вакансий мало или вообще нет.
Исторический фактор. .NET сильно моложе java и C++, поэтому и проектов мало.
Re: Технологии используемые в высокотехнологичных направлени
Здравствуйте, Kedr, Вы писали:
K>Всем добрый день.
K>В данный момент занимаюсь разработкой бизнес-приложений на C#, но в будущем хотелось бы заниматься чем-нибудь более высокотехнологичным. Например, чем-нибудь из области искусственного интеллекта или сложных научных расчетов. K>Изредка попадаются вакансии, где ищут .NET-чиков на что-то более-менее интересное, но их очень мало. Подобных вакансий на C++ или Java гораздо больше, а абсолютное большинство .NET вакансий — это та же бизнес-автоматизация или создание сайтов. K>Хотел бы узнать мнение сообщества будет ли в будущем ситуация меняться. Стоит ли при таком раскладе продолжать развиваться как .NET-чик или же лучше пытаться перейти на C++, Java или что-то другое?
В таких областях ценится знание прикладного аспекта. Обычно кода там достаточно весьма средненького. Ну максимум с заточкой на производительность.
Множества объектов разводить не требуется. Зато надо сильно много думать над алгоритмом и архитектурой а также над прикладной областью.
Языки используются весьма разные, из того что знаю C++,Java,C#,python,perl,Matlab. Часто если допиливается что-то с открытым кодом, то и пишется на языке исходника.
Фортран раньше был мегакрут по скорости для математики но вроде компилятор СИ уже с 9 версии его обгоняет, так что многие мигрировали на си.
Re: Технологии используемые в высокотехнологичных направлени
Здравствуйте, Kedr, Вы писали:
K>Всем добрый день.
K>В данный момент занимаюсь разработкой бизнес-приложений на C#, но в будущем хотелось бы заниматься чем-нибудь более высокотехнологичным. Например, чем-нибудь из области искусственного интеллекта или сложных научных расчетов.
все такие вещи пишутся на С++, регулярно пытаются подобное сделать на Java и Питоне, но потом обычно или загибаются или переписываются на С++. например, на хабрабобре была недавно история что первый движок гугла был на яве написан, потом все переписали на С++
Re: Технологии используемые в высокотехнологичных направлени
Ну по моему мнению стоит смотреть в сторону вычислений на графических процессорах (CUDA, OpenCL и т.д.), поскольку, если посмотреть различные прикладные работы, то четко прослеживается тренд портирования современных и классических численных методов на архитектуры с массовым параллелизмом. В некоторых (но не во всех) случаях это позволяет сравнительно дешево получить существенный (в разы и даже на порядки) выигрыш по скорости вычислений. Как сопутствующие технологии здесь следует знать С, С++ и хотя бы одну платформу для математических вычислений, например, matlab, mathematica и т.д. Кроме того обязательно если не доскональное знание, то хотя бы понимание какой-либо конкретной предметной области.
Все ИМХО.
Re[4]: Технологии используемые в высокотехнологичных направл
Здравствуйте, gandjustas, Вы писали:
K>>Допустим я знаю AAA и BBB, но занимался этим исключительно на .NET. Каковы мои шансы на эту вакансию? G>Вообще-то сильно зависит от AAA и BBB. Можно сходить на собеседование и узнать.
K>>А на .NET подобных вакансий мало или вообще нет. G>Исторический фактор. .NET сильно моложе java и C++, поэтому и проектов мало.
Не исторический факт: в научных рассчетах обычно не голая математика с одной формулой, а много-много данных или много много рассчетов.
Данные могут быть как образ интернета, так данные снятые с датчиков коллайдера, или 600Mb строки с человеческим геномом.
Для значительной части требуется много CPU в рассчетах, например для моделирования погоды, ядерного взрыва, или аэродинамики bmw.
Много ресурсов означает много серверов. Много серверов означает unix(windows кластера стоят денег за софт, и чудовищны в администрировании) и никакой винды. .net в unix среде как-то не очень модная технология. Поэтому на нем и нет науки.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[3]: Технологии используемые в высокотехнологичных направл
K>"я работаю в области ***, в последнее время мы потихоньку стали отказываться от использования *** в пользу перехода на ***, потому что ***" K>или K>"а я вот наблюдаю такую-то тенденцию, и слышал, что даже в Яндексе решили переписать свои поисковые алгоритмы на ***".
я работаю в области внедрения MS CRM, Sharepoint, MOSS и NAV, в последнее время мы потихоньку стали отказываться от использования C# в пользу перехода на Хаскель, потому что Хаскель — простой и понятный язык для нормальных людей вроде консультантов и деплоймент-инженеров, отчищенный от байтосодомии и делающий специально выведенных компьютерных программистов ненужными. Да, вы не ослышались. После того, как этот язык для нормальных людей получит распространение, байтоспарта закаленных трудностями программирования под архитектуру фон Неймана и неудосбтвами аппликативного порядка боевых инженеров-программистов потеряет всякий смысл. Что останется делать после этого недоинженерам, которых за пять лет обучения в вузе так и не научили ничему человеческому? Остается только самостоятельное освоение теории категорий.
Re[4]: Технологии используемые в высокотехнологичных направл
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>я работаю в области внедрения MS CRM, Sharepoint, MOSS и NAV, в последнее время мы потихоньку стали отказываться от использования C# в пользу перехода на Хаскель, потому что Хаскель — простой и понятный язык для нормальных людей вроде консультантов и деплоймент-инженеров, отчищенный от байтосодомии и делающий специально выведенных компьютерных программистов ненужными. Да, вы не ослышались. После того, как этот язык для нормальных людей получит распространение, байтоспарта закаленных трудностями программирования под архитектуру фон Неймана и неудосбтвами аппликативного порядка боевых инженеров-программистов потеряет всякий смысл. Что останется делать после этого недоинженерам, которых за пять лет обучения в вузе так и не научили ничему человеческому? Остается только самостоятельное освоение теории категорий.
"не судите меня строго, я маленький и еще только учусь"(С)
Re[2]: Технологии используемые в высокотехнологичных направл
Здравствуйте, __kot2, Вы писали:
__>все такие вещи пишутся на С++, регулярно пытаются подобное сделать на Java и Питоне, но потом обычно или загибаются или переписываются на С++. например, на хабрабобре была недавно история что первый движок гугла был на яве написан, потом все переписали на С++
афаир первый движок гугла был написан через мягкое место.. потом наняли какого-то д.т.н. на рефакторинг..
...coding for chaos...
Re[4]: Технологии используемые в высокотехнологичных направл
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Да, вы не ослышались. После того, .... инженеров-программистов потеряет всякий смысл.
Один умудренный опытом мужик говаривал: "Когда-то лет 25 назад, когда появились интегральные схемы, мы думали что схемотехники скоро будут не нужны. Оказалось не так"
Re[4]: Технологии используемые в высокотехнологичных направл
Здравствуйте, gandjustas, Вы писали:
K>>А на .NET подобных вакансий мало или вообще нет. G>Исторический фактор. .NET сильно моложе java и C++, поэтому и проектов мало.
Не только молодость, но и среда обитания. UNIX-мир роднее для науки, чем Windows.
Re[2]: Технологии используемые в высокотехнологичных направл
On 10.05.2011 8:15, fleandr wrote:
> Фортран раньше был мегакрут по скорости для математики но вроде компилятор СИ > уже с 9 версии его обгоняет, так что многие мигрировали на си.
На каком этапе пути он интересно знать его обгоняет ?
Как бы колёса у них у обоих круглыя, примерно одного диаметра.
Одна вот незадача -- FORTRAN распараллеливается легко (автоматически), а вот ни
C, ни С++ на это принципиально не способен, только "на ручной передаче".
И тут-то выясняется, что на одной и той же машинке с 16 цилиндрами
фортранова программа может работать до 16 раз быстрее, а С-шная --
только один цилиндр использовать будет.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Технологии используемые в высокотехнологичных направл
Здравствуйте, MasterZiv, Вы писали:
MZ>На каком этапе пути он интересно знать его обгоняет ? MZ>Как бы колёса у них у обоих круглыя, примерно одного диаметра. MZ>Одна вот незадача -- FORTRAN распараллеливается легко (автоматически)
Если бы. В более новых Фортранах есть все проблемы с aliasing'ом.
MZ>И тут-то выясняется, что на одной и той же машинке с 16 цилиндрами MZ>фортранова программа может работать до 16 раз быстрее, а С-шная -- MZ>только один цилиндр использовать будет.
Поэтому программисты на С используют OpenMP. Как, кстати, и серьёзные программисты на Фортране.
Sapienti sat!
Re: Технологии используемые в высокотехнологичных направлени
Здравствуйте, Kedr, Вы писали:
K>Всем добрый день.
K> В данный момент занимаюсь разработкой бизнес-приложений на C#, K> но в будущем хотелось бы заниматься чем-нибудь более высокотехнологичным. K> Например, чем-нибудь из области искусственного интеллекта или сложных научных расчетов.
в качестве средства для быстрого прототипирования C# вполне подходит для ИИ, а так же для моделирования того, что требуется обсчитать, хотя тут все упирается в доступность библиотек (не уверен, что они есть для C# в силу его относительной новизны и ореентации -- в университетах в основном никсы и под никсовые языки создаются тонны библиотек).
будучи системным программистом я последние ~15 лет ковырял потроха разных систем и шарахался от матчасти как черт от бена ладана. последние два года курю алгосы и создают свои, за счем чего обеспечиваю конкурентное преимущество продукту фирмы. вот щас в подтверждение моих упорных трудов позволи в универ на следующую туссовку: http://secindustry.cs.ucsb.edu/ где мы будем говорить как переложить ИИ на FSM.
"высокотехнологичные" алгосы по фиг на каком языке прототипировать. от си я отказался через пару лет работы, т.к. стало совсем невмоготу и все-таки заставил себя выучить питон и руби. ну "выучить" это сильно сказано. на руби хватило выходных. на питон ушло еще меньше. конечно, мои познания языка смехотворны, ну так я и не спец по питону, мне главное чтобы язык позволял быстро выражать мысли и предоставлял необходимый инструментарий для работы.
отсюда -- отличное знание C# не обеспечит вам преимуществ в "высокотехнологичной" сфере, т.к. в таких сферах на язык предпочитают не отвлекаться и основной упор делается на поставленную задачу, одну из которых я на этом форуме приводил — мультипоиск большого кол-ва шаблонов в коротких строках с наперед неизвестной кодировкой. за решение по скорости за O(N) и памяти O(1) мне деньги хорошие платят. само решение (на уровне прототипа) помешается на экран.
K>Изредка попадаются вакансии, где ищут .NET-чиков на K>что-то более-менее интересное, но их очень мало.
коллега на .net'е написал TCP-ассемблер. интересно?
K> Подобных вакансий на C++ или Java гораздо больше,
а это случайно не вакансии на кодеров? ну будете вы кодить не бизнес-приложения, а какие-то там расчеты непонятно чего. мне кажется, что вы хотите работать в R&D, а в R&D подразделениях к знаниям языков предъявляются весьма либеральные требования. видели бы я как программирую. любой нормальный программист, увидев такой код, стошнил бы чистой жельчью на полпути до унитаза. а ведь код работает в критических инфраструктурах в реалтайме. и меня никто не пинает ногами.
K> а абсолютное большинство .NET вакансий — это та же бизнес-автоматизация или создание сайтов.
на .net сложно делать что-то другое.
K> Хотел бы узнать мнение сообщества будет ли в будущем ситуация меняться.
научные расчеты в разное время делались на разных языках, но главным образом под никсы. net на эту нишу не претендует и навряд ли ее займет до того как о ней (о net, а не нише) все забудут. java язык хороший, но далеко не единственный -- сейчас народ активно экспериментирует с новыми технологиями программирования, впрочем, полноправных переемников что-то не видно. от плюсов в научных расчетах постепенно отказываются. он и раньше был не самым популярным средством в этой области, а с увеличением мощи процов стал заметно сдавать позиции (обращаю ваще внимание, что научные расчеты имплементируют кодеры, а хорошие кодеры на плюсах как бы сильно дороже процессоров)
> Стоит ли при таком раскладе продолжать развиваться как .NET-чик > или же лучше пытаться перейти на C++, Java или что-то другое?
язык это только инструмент. за знания языка платят немного и творческой работы никакой не поручают. качественный скачок наступает, когда язык уходит на второй план.
впрочем, .net это винда (моно не берем в расчет). а си или java это и винда, и никсы, и маки. вот такая разница.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.