×Закрыть

Стоит ли сейчас специализироваться на С#?

Мне 17 лет. Опыт в программировании небольшой, в основном Паскаль. Ещё С# и Java примерно в одинаковой степени. Мне нравится С#. Нравится синтаксис, синтаксический сахар, IDE, нравится документация. Но не нравится веб. Следовательно, довольно популярным сейчас asp.net MVC я заниматься не хочу. Хочу wpf под десктоп, windows phone, windows 8. Реально ли сейчас найти удалённую работу либо Фриланс-заказы С#-джуниору без опыта? Либо приобрести опыт, например, написав пару приложений для marketplace? Либо таки заняться Java + android и не морочить голову себе и другим?
Да, ещё смущает падение С# на tiobe.

LinkedIn

Лучшие комментарии пропустить

Экий вы батенька расчётливый. Падение чего на чём смущает? А как же фан, драйв и цукерберг?

Шарп самый аристократический и правильный язык из всех. Он сам научит тебя программировать. Иногда без твоего участия. И потом всегда будет предсказуемый и пунктуальный как английский дворецкий. Программировать на нём легко и приятно хоть на десктопе хоть на вебе с телефоном. А всякие американские горки в виде доступа к компьютерным потрошкам и F# для гурманов тоже имеются. Чайники с утюгами для шарпа тоже есть, но мало мало.

Современным вебом заниматься не муторнее, чем городить форму на WPF со всякими сеттерами, байндингом, и прочими сложностями, с которыми прийдется столкнуться, если разрабатывать какую-то хотя бы систему документооборота, а не «калькулятор с рюшечками»
От серверного mvc сейчас требуется лишь обработать запрос и выдать голые данные. Там уже практически нет «v». Один лишь Index.aspx да разные хендлеры.
Клиентские mvc (javascript фреймворки), напротив, развиты не по годам. И вообще без какой-либо модификации могут быть подключены хоть к пхп, хоть к пайтону, хоть к чему угодно (только билд скрипты поправить).
И слукавят те, кто скажет, что распарсить razor темплейт и забить его данными на сервере — дешевле, чем отдать json-данные. Они просто так привыкли, не хотят учить жабаскрипт, им легче влепить переменную прямо в форму, чем думать, как она там появится ассинхронно.
Вам (в нормальном проекте) не прийдется ковыряться с хтмл, не переживайте.

И-таки не забывайте, что спрос на десктоп ниже в несколько раз, чем на сервисы и веб. Но все студетны мечтают о большом приложении с workspaces, settings, custom controls -) Это нормально. Рынок объяснит, что к чему.
WindowsPhone — это еще более-менее с точки зрения перспектив имхо. И лучше с экономической точки зрения. Потому что неоднократно поднимался вопрос о прибылях с андроид приложений, и результаты далеко не в пользу рекламной площадки.

Вобщем, C# - стоящая вещь. Язык позволяет сделать все, что ни задумаешь. Вакансий много. Начинайте с того, что будет в хорошоем проекте, на который Вы попадете. Выбирайте тщательнее. Изучайте всяких фаулеров и ооп.
А специализироваться будете лет через 5. И это серьезно.

PS А то потратите молодые годы на WPF, а потом полюбите маки и захочется ObjectiveC. Или линух, и подумаете, что пайтон — тоже совсем себе ничего. Хотя... Я вот Mono использую для себя и я Вам скажу — нормально так.

Я в ваши годы думал не о специализации, а о получении фундаментальных знаний в области информатики и программирования в частности. Поверьте, это гораздо важнее, чем знание конкретных языков и фреймворков. Потому что хорошо понимая принципы, скажем, ООП и зная шаблоны проектирования, конкретные Java и C# вам будет гораздо легче освоить, чем если вы будете тупо учить языки с 0я.
Хороший программист — это далеко не только писатель кода. Он должен не просто уметь писать код, а разбираться в разных подходах к задачам и понимать, чем отличаются различные решения между собой и какое из них будет наилучшим для конкретной задачи. А это очень трудно делать, если не понимаете фундаментальных принципов, на которых строятся эти решения.

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Не важно толи вин формы толи впф толи асп, толи сильверлайт (RIP) — ето почти одно и тоже для изучения. есть знание C# - без хлеба не останешься. Проекты там в основном — корпоративная хрень (большие, долгие и очень не интересные) но могут бить и классные. Джун не в состояние выбирать проект поетому молись на чтото интересное.

Все интересные проекты — мобайл и веб и это тренд. Они короткие и научат процесу создания продукта от А до Я, а то корпоративные большие проекты ты учишь не програмирование а бизнес домейн логику продукта в основном что сильно напрягает тем более джуна.

Совет — иди в веб. Но если че в фриланс без опыта думаю не стоит идти, тебе нужно хотябы несколько месяцев практики на любом проекте в компании. А тогда и в фриланс можно будет и на виду в хедхантеров будешь на всяк пожарный.

Еще совет — по возможности не иди в большие компании, они уничтожат в тебе искру и сделают из тебя корпоративного зомби. В малых компаниях ты всему научишся быстрее и останешся собой :) И если уж возьмут на 1й проект и он будет не интересен, не затягивай, уходи на другой.

Еще совет — забей на все что я написал и делай так как тебе интереснее)

Еще совет — по возможности не иди в большие компании, они уничтожат в тебе искру и сделают из тебя корпоративного зомби. В малых компаниях ты всему научишся быстрее и останешся собой
здесь как повезет. не всегда в крупном аутсорсинге узкая специализация, неинтересные затянутые проекты по саппорту индусских творений, а будем говорить в продуктовых стартапах полная свобода мысли, самые новые технологии и возможность интенсивно развиваться. Не редко в малой компании, кроме загрузки под завязку работой, реального качественного развития куда меньше. Советовать можно не идти работать разрабом прямо в «бизнес» например. По собеседования много чего понять можно и узнать о будущей работе, но точно не в статусе джуна — им выбирать не приходиться.

Похожая была ситуация, как-то отворачивало от веба и всё :) . Вопрос даже не стоял, чего хочу — знал. Попал-таки в контору с .NET десктопом. Правда, потом как доп. нагрузка пошёл и андроид — первые 2 недели было непривычно (не из-за джавы, естественно), а дальше — вполне нормально. Была возможность уйти в серверные джава технологии (когда уже хотелось уйти), но решил остаться, чтобы заниматься чем нравится. Весной ушёл в мобильный геймдев — тоже вариант: скрипты в Unity3D можно на шарпе писать... правда, там mono, AOT-компиляция, своя реализация асинхронности (которой я, прямо скажем, недоволен после TPL) и вытекающие отсюда ограничения — абсолютно всеми привычными плюшками не воспользуешься (LINQ приходится юзать избирательно, а про TPL, догадываюсь, из-за хитростей с доступом к ресурсам и потокобезопасностью — точнее, опасностью :) - можно забыть даже в перспективе). При этом, если мобильный геймдев надоест, всерьёз рассматриваю возможность перейти именно на серверные .NET-технологии — всё-таки, за вебом будущее, да и не так уж ASP.NET и отличается по ощущениям :) (со временем как-то проще смотришь на это всё).

В общем, лучше вас никто не знает. Если хотите — всё будет ОК, .NET — вполне хорошая платформа. Написал это всё потому, что, возможно, ваше мнение изменится, а начать при большом желании всегда стоит.

всё-таки, за вебом будущее,
Вы с этим прогнозом годиков эдак на 10 припозднились Х))

Так это был не прогноз, а констатация факта :) .

веб разве уже никому не интересен?

Удалённую работу либо Фриланс-заказы X-джуниору без опыта найти нереально, не тратьте время. ASP.NET MVC + EF + JavaScript неплохой скил, есть и будет спрос на фрилансе.

А вообще настоятельно рекомендую поработать в Linux, если понравится вас больше не будут беспокоить подобные темы

Пробовал. Даже вот прям сегодня) Не могу я там, костылей слишком много. Чтобы intellij idea нормально выглядела, нужно ставить виндовые шрифты. Чтобы работала отладка на x64, надоставить специальные 32-битные либы совместимости. Да чтобы её из магазина установить, надо зарегистрировать аккаунт Ubuntu one! И это только с одной ide.

Ещё в Linux надо уметь работать с консолью

да вполне — почему нет. У MS сейчас вполне достойная лиейка инструментов
Но если вам не нравится веб- идите в геймдев и вокруг. Но это надо любить очень сильно что бы остаться в индустрии. ОЧЕНЬ сильно. Думаю если бы вас оно перло вопросов бы тут не задавали.

Стоит ли сейчас специализироваться на С#?
Да.
Но не нравится веб.
Не ты определяешь потребности рынка.

Новых проектов на десктоп приложения на C# сейчас практически нет. И это понятно, ведь фактически нужно писать сразу 2-3 версии:
1. Под Windows 7 на WPF.
2. Под Windows 8 (Metro) на WinRT.
3. Под телефон на сервелате.
И работать это все будет только на виндах.
А если то-же самое написать на HTML5 то будет работать везде. А если немного «подпилить» под каждую платформу то почти так же хорошо, как нативное.

Java for Android или C# for desktop — что востребованнее на Украине? По какой специальности легче найти работу джунику? Почему-то на этом сайте не заметил. Кто-то скажет «С# для андроида», но ксамарин дорого стоит.

Java for Android или C# for desktop
А почему не «трейдинг с окамлом» или «обработка медицинских изображений на си»?
Обоим вариантам развития должен предшествовать свалинг.

Я выбрал 2 интересных мне направления, но выбрать из них не могу)

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

зачем делать, то что не нравится/не хочется? все равно потом заработанные деньги кайфа не принесут, а вот занимательные проекты очень даже

делать надо то, что ты тебе подходит попробовав процесс, а не размышляя что раз ты любишь покушать, то определенно будешь поваром.

все равно потом заработанные деньги кайфа не принесут
принесут.

кто ж спорит, я как раз имел в виду, что любить надо сам процесс, а не только его результат

Сейчас, имхо, в фаворе English, Java for Android, С++ iOs, Java EE, WPF C#, ASP.NET, PHP.
На собеседованиях гоняют по теории, могут спросить, что такое двухсвязный список или что такое О(1), именно такой принцип отбора на бесплатные курсы Java EE, потом стажировку и работу был в Епаме ;)

Могут задрота взять писать на Erlange, a защитившего кандидатскую на мехмате — в Самсунг дла писания алгоритмов.
Задроты, пилячющие по 15 −20 лет одни им интересные темы, потом основывают компании и продаются в Гугл.
Ценятся люди, способные увидеть в во всем разнообразии базовые инжинерные принципы.

А если сиюминутно кусок хлеба интересует — Java EE.
Гребут всех, сильно много энтерпрайза.

С# для андроида
Жесть просто. Писать на гавноязыке для гавнотелефона. Уж точно лучше Java for Android.
C# for desktop
Нереально найти работу. Ну вот закончиться твой десктопный проект и переведут тебя на аспнетмвц и придется все равно учить верстку и яваскрипт.
Ну вот закончиться твой десктопный проект и переведут тебя на аспнетмвц и придется все равно учить верстку и яваскрипт.
А в особо хитрозадых фирмах и фотошоп.

Ну не то, что бы так уж не реально найти работу — в банках (почему-то) по прежнему предпочитают десктопные велосипеды под винду. Только в банках своя специфика — кто работал, тот знает :). Но в целом — да, предложений меньше и «полюбить» веб сегодня все-таки более выгодное вложение своего времени, чем вкладываться в настольный C#, имхо. Это я как WPF разработчик со стажем говорю :)

Но в целом — да, предложений меньше и «полюбить» веб сегодня все-таки более выгодное вложение своего времени, чем вкладываться в настольный C#, имхо
Или полюбить мобильную разработку, с ней будет всё хорошо.

В общем, пока остался при жабе для андроида)

Java for Android

Забей и осваивай C++. Гугл выпустил NDK не просто так. :)

Мужык, не теряй время! Учи языки и пытайся убежать из страны любой ценой.

Да, мейнстримом таки является английский язык в совершенстве, он неубиваемей, чем С++.

С++ опять мейнстрим похоже маятник качнулся в правильную сторону

в общем да. логичнее вроде в 17 лет выучить 1-2 иностранных языка и основы программирования, а года через 2-3 уже специализироваться. это если нет острой нужды в немедленном зарабатывании денег

Хочу wpf под десктоп, windows phone, windows 8

WPF на WinRT нет (и, вероятно, не будет). C# есть, но мелкомягкие рекомендуют «гоу нэйтив», т.е. пользовать C++.

WPF на WinRT нет (и, вероятно, не будет). C# есть, но мелкомягкие рекомендуют «гоу нэйтив», т.е. пользовать C++.
Да, пожирают собственных детей, как с Silverlight. Где же «разработчики, разработчики»?
И не будет ли мейнстримом HTML5?;))))

HTML5 — это вэб. А вэба далеко не всем хватает (вот и топикстартер тоже хочет дэсктоп).

Кто его знает, что у этого Майкрософта на уме.

Кто его знает, что у этого Майкрософта на уме.
Деньги, только деньги ...
Деньги, только деньги ...
Судя по некоторым интервью инсайдеров — они стараются не только деньги, но осадочек у народа трудно убрать.

В последний раз, когда был у них, то насчет

«гоу нэйтив»
у них было совсем другое мнение.

Синофски (тот, который go native продвигал) уже не работает в МС, а судя по последнему релизу 2013 студии и улучшений в CLR — все как раз наоборот...

Синовски известен тем, что прибил Сильверлайт (и тем самым сократил количество «платформ», на которых можно было использовать «шарпы» с ВПФами). А что касается «плюсников» — у мелкомягких их гнездо. И, собственно, мелкомягкие одни из основных продвигателей ANSI C++ стандарта.

Синовски уволили год назад, а последняя конференция «гоу нэйтив» была в сентябре этого года. И с очень даже достойными «плюсоведами»: :)
channel9.msdn.com/...oingNative/2013

Да, собственно, смотрим на 8-ю винду. Любители виртуальных машин надеялись увидеть «плиточную» операционку на .НЕТ — а операционка получилась, сплошь, из кома, где основным языком разработки является C++.

The theme of GoingNative 2013 is decidedly pragmatic — to inform and educate the global C++ developer community with the latest information about ISO C++11 and draft C++14.

И где здесь

рекомендуют “гоу нэйтив”, т.е. пользовать C++.
?

«Десктоп» уже перемещается на таблетки. С виртуальными машинами (и, соответственно, C#/Java) там не разгуляешься — потому, учи C++.

Освоишь «плюсы» — на джаве с шарпами научишься программировать с полпинка (если понадобится).

1. У меня смартфон на 4 ядра и 2 гига памяти за 500 долларов, так что разгуляешься, тем более через год-два.
2. Видел я товарищей, перешедших на Шарп с Плюсов — тихий ужас, экономят на спичках и копипастят код вместо построения правильной архитектуры, да еще и учить новое не желают. Не знаю, может это мне не повезло, но для меня 5 лет опыта на плюсах в резюме является огромным жирным минусом для кандидата на должность разработчика .NET.

или вам не повезло, или с с++ у вас какой то внутренний конфликт

1. Софт, 100% работающий на «виртуальной машине» будет сажать аккумулятор раза в 2 быстрее, чем без «виртуальной машины» — потому, для мало-мальски серьёзных задач, без C++ обойтись не выйдет.

2. Я из таких. Сейчас по работе пишу на «шарпе», после 15+ лет опыта «плюсов». WPF, XAML, MVVM, Spring.NET, все дела... Можно писать говнoкод на «шарпе», а можно делать нормальную архитектуру, с теми же паттернами на «плюсах». У чистых «шарпников» другие проблемы — неспособность использования WinAPI (+ многопоточности, типа создания WPF окон или контролов в отдельных тредах и работы с ними), использование «тяжёлых» вызовов, не понимая их тяжести. Ну и, собственно, целый класс задач, в которых нужна серьёзная функциональность в более или менее жёстком реал-тайме, «сэйф» кодом вообще не решаются — а такие задачи в серьёзной разработке возникают постоянно.

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

позволяет одному и тому же исполняемому файлу работать под абсолютно разным железом.

«Работать» это сильно сказано. Позволяет тормозить на абсолютно разном железе — так будет точнее. :)

К тому же, машина мелкомягких существует лишь на Винде («моно» ещё долго придётся допиливать напильником, чтобы заработала хотя бы в мире десктопных юниксов.). С машинами под Джаву дела обстоят получше, но и у них на разных платформах баги лезут косяками.

С машинами под Джаву дела обстоят получше, но и у них на разных платформах баги лезут косяками.
Поподробнее плиз?

Приятельница работает в конкуренте САПа (по нескольким приложениям). У них не так давно перевели продукты (клиентскую и серверную части) на Джава, выделенные АС-400 сервера на каждого крупного клиента, все дела... При этом, с джава-машинами (под винду и под какой-то из юниксовых серверов) идёт перманентная борьба по избавлению от багов.

выделенные АС-400 сервера на каждого крупного клиента, все дела...
АС400, это что-то из 90-ых?

Если бы баги таки лезли косяками, наверное нашлось бы что-то более предметное чем абстрактные рассказы воображаемых знакомых. У джавы есть очень жирный набор тестов(Java Compatibility Kit), который обязана пройти каждая реализация джавы.

Тесты не мешают нехилому количеству ошибок в JVM.

Нехилому по сравнению с чем? Хватит абстрактных набросов. Примеры в студию. Про косяки багов совместимости ты видимо просто так сболтнул и совсем не в курсе дел, раз сказать нечего.

Про баги несовместимости я ничего не писал. Я писал следующее: «с джава-машинами (под винду и под какой-то из юниксовых серверов) идёт перманентная борьба по избавлению от багов».

Борьба ведётся обращением в службу поддержки соответсвующей машины, размещением ошибок в тамошнем баг-трекере.

Совместимость я имел в виду между платформами. Твоя критика не соответствует моим наблюдениям, я склонен считать что у колег твоей подруги просто руки не оттуда растут, а жабка — самая переносимая между железом платформа на сегодняшний день

я склонен считать что у колег твоей подруги просто руки не оттуда растут

Руки растут, откуда надо. Просто задачи недеццкие — в Украине таких не бывает.

Да, типичная отмазка гавнокодеровэнтерпрайз программистов

и про моно детальней тоже :))

никто не будет под линукс писать чтото сложное на шарпе, но ситуация из жизни:
есть большой мультиязыковий проект, часть которого билдится только под линуксом, для билда надо было перед запуском пропатчить хмлный конфиг не меняя его в сорсах, варианты:
— с пол дня курить регексы и потом столько ж «вспиминать» что ето такое если нужны изменения или фиксы;
— «быстренько» выучить джаву по семплам, собрать, работать с хмл через человеческие функции — 2-3 дня на старт, з быстрыми фиксами потом
— за 15 минут наваять тоже на шарпе, скомпилить в студии, и ище за пол часа просмотреть как правильно запустить екзешку

как ни странно третий вариант работает идеально и уже давно :))

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

Освоишь «плюсы» — на джаве с шарпами научишься программировать с полпинка (если понадобится)
" — не научишься, в плюсах больше упор на производительность, в шарпе — на архитектуру и возможность повторного использования кода, + безопасность (нет утечек памяти). Да и в том же шарпе нет Линкью — а его освоить далеко не с полпинка выйдет...
Моё мнение — если человек хочет писать на шарпе/джаве — пусть учит их, а не плюсы сначала, потому что профит будет много меньше потраченного времени.

Кроме батарей есть ещё одна проблемка — невозможность охлаждения. В таблетке вентиляторами процы не обставишь. К тому же, маркетинг работает так, что более качественные аккумуляторы приведут к более тонким таблеткам и 8-миядерным таблеткам/фонам, вместо нынешних 4-хядерных. Т.е. таблетка будет по-прежнему интенсивно работать часа 4 на одном заряде и приложения на «виртуальной машине» будут сажать аккумулятор ~ в 2 раза быстрее нативных.

К тому же, ещё одна проблемка — сложность решений для таблеток растёт быстрее, чем возможности элементной базы/аккумиляторов. Сейчас мобильный рынок относительно свободный и конкуренция невысока — можно писать программы, без особых напрягов. Но когда ниши начнут заполняться и возникнет конкуренция, никто не станет терпеть приложение, которое делает то же самое, но в 2 раза медленнее и в 2 раза быстрее разряжая акку.

Тенденции разные бывают, я все же буду более оптимистичен насчет С# и Джавы. Будем посмотреть, как он будет.

ем... на шарпе пишете, а основы архитектуры фреймворка не читали... (Hint: google JIT compiler)
а вот то что класичаские шарпники не тыкают всюду знакомый вин-апи — ето только плюс.... для переносимости кода туда где его просто нету ;)
да и создание окон и контролов в отдельных потоках ето извращение, для тяжелых задач потоки то есть смысл создать, а ЮІ лутше держать в родном потоке.
а да, конечно, драйвера и подобное на шарпе не пишут — но обычно никто и не предлагает, а связь з ком сервером что ето будет делат прописывается в два клика, в том и сила шарпа (не надо дебагать огромную програму написаную на “неудобном” языке изза одного компонента где он таки необходим)

да и создание окон и контролов в отдельных потоках ето извращение, для тяжелых задач потоки то есть смысл создать, а ЮІ лутше держать в родном потоке.

Это не извращение, а суровые реалии серьёзной разработки. Когда требования таковы, чтобы определённые окошки/контролы всегда оставались живы и доступны, даже если основной ГУИ-поток навернётся медным тазом (или будет слишком сильно нагружен текущей задачей и “нот респонсив” некоторое время).

Но если ограничиваться написанием на “шарпе” очередной версии ноутпада — тогда да, извращение. :)

основной ГУИ-поток навернётся медным тазом (или будет слишком сильно нагружен текущей задачей и «нот респонсив» некоторое время).
не там вы проблему ищете :))

задачи надо из ЮИ потока выводить, он не имеет права быть анреспонсив, а не давать жить одной контролке вместо всех .. .
может ето было очень сложно в плюсах, но в шарпе ето реализуется в пару строк текста...

задачи надо из ЮИ потока выводить

Задачи надо выводить. А рисование и создание/размещение других контролов?

ето как добавлением контролов можно залочить поток до безответности? о.0
вы ими мону лизу рисуете? о.0

Это наверное, когда перерисовка контролов формы намертво вешает UI %) Видимо, в серьезной разработке оно так и должно быть, нам «шарпникам» не понять.

К примеру, когда одновременно выводятся всякие графики кардиограммы, подачи контраста, движения всяких приспособ, а ещё и надо вывести из «нэйтив» части 3д реконструкцию + проекции. Плюс к этому, кучи всяких контролов и прочих окошек. Тут отображение может залипнуть на пару-тройку-пятёрку секунд. И если все будут крутиться в одном ГУИ-потоке и кнопки станут «нереспонсив», а кривые перестанут рисоваться — врач не сможет среагировать и чел получит лишнюю дозу какой-нибудь херни. Хорошо, если лишь химии, хуже если радиации. Примерно, так.
Похожее творится и в области финансов/рынка (всякиe трейдинговые системы, с человеческим участием).

Я ведь написал, что серьёзные проекты обсуждаю, а не очередные ноутпадики, которые в Украину отдают в аутсорсинг.

Каких бы сложных вычислений ваша графика не требовала, её можно подготовить в любом потоке, и лишь результат использовать в GUI. Как тут можно загрузить гуи поток на 2-5 секунд? Я конечно в серьезных проектах, где кого-то можно убить или взорвать АЭС, не участвовал, но вполне обычные приложения для управления технологическими процессами с двигателями, частотниками, датчиками и да — со свистелками/мигалками и всякими АЧХ — реализуются на шарпе без проблем. Примитивы синхронизации никто не отменял, а это имхо необходимое и достаточное условие для использования многопоточного кода.

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

Для систем, требующих строгий реалтайм, сишарп не лучший кандидат, как собственно и виндовс. Да, в области финансов вон лондонская биржа перешла на сильверлайт, потом долго плевалась.

Реалтайм не супержёсткий (т.е. никакого автоматизированного управления) — но тем не менее, надо показывать актуальные данные и иметь готовые к нажатиям кнопки, без протормаживаний более полусекунды или типа того (время реакции человека).

А на «шарпы» такие системы переводят, т.к. дешевле разрабатывать/сопровождать, более современный ГУИ, больший выбор работников и меньшие требования к квалификации работников («шарп» — это не «плюсы»).

не похоже, что вы действительно работали много на C# - вы допускаете фактические ошибки. Все контролы в WPF доступны только из UI thread и

создания WPF окон или контролов в отдельных тредах
невозможно.
Все контролы в WPF доступны только из UI thread и создания WPF окон или контролов в отдельных тредах невозможно.

Просто, вы не в теме. :)

П.С. Показывает уровень "senior developer"ов Украины...

Я так понимаю, пред. оратор имел ввиду это:

When you create an element it is tied to a Dispatcher & thread and can only be accessed from the thread associated with the Dispatcher.

Any modifications to the UI need to be performed on the same thread on which a UI element was created...so background threads use Invoke/BeginInvoke to get that work run on the UI thread.

stackoverflow.com/a/12389044
It’s possible to create secondary UI-threads, so long as you mark the thread as using the STA apartment model, and create a Dispatcher (e.g. use Dispatcher.Current) and start a “run” loop (Dispatcher.Run()) so the Dispatcher can service messages for the UI elements created on that thread.
stackoverflow.com/...fferent-threads

Да.

Но чтобы в в таких «секондари» тредах разместить WPF—ное окошко с контролами и заставить всё это работать реально независимо от основного (и прочих) ГУИ-тредов, приходится помучаться...

Ок. Вірю:) Я з WPF не працював, просто цікаво було перевірити хто правий.

Вікно WPF (Window) ~= звичайному віндоусовському вікну, що створюється за допомогою CreateWindow/CreateWindowЕх. Тому, такі вікна без жодних проблем можна створювати у окремих тредах. Але потім починається шаманство з повним відокремленням від головного ГУІ-треда — і це не так вже легко.

Не совсем. Котролы доступны из СТА. Теоретически, сам никогда не пробовал.

Не совсем так. ВПФные контролы не являются окнами (т.е. не именют своих виндовых хэндлов), потому всегда прилеплены к какому-либо окну, т.к. на этом окне не созданы, а нарисованы. Соответственно, размещение их в отдельном от окна треде проблематично.

Потому, в отдельном треде создаётся окно (Window), а уже в этом окне размещаются 1 или более контролы, которые должны работать независимо от основного ГУИ-треда.

хах, я, кажется теперь понял, зачем смартфону 4 ядра))

Стоит ли сейчас специализироваться на С#?

Что это за профессия такая «Специалист по синтаксису C#»? В Microsoft Research что-ли?

Современным вебом заниматься не муторнее, чем городить форму на WPF со всякими сеттерами, байндингом, и прочими сложностями, с которыми прийдется столкнуться, если разрабатывать какую-то хотя бы систему документооборота, а не «калькулятор с рюшечками»
От серверного mvc сейчас требуется лишь обработать запрос и выдать голые данные. Там уже практически нет «v». Один лишь Index.aspx да разные хендлеры.
Клиентские mvc (javascript фреймворки), напротив, развиты не по годам. И вообще без какой-либо модификации могут быть подключены хоть к пхп, хоть к пайтону, хоть к чему угодно (только билд скрипты поправить).
И слукавят те, кто скажет, что распарсить razor темплейт и забить его данными на сервере — дешевле, чем отдать json-данные. Они просто так привыкли, не хотят учить жабаскрипт, им легче влепить переменную прямо в форму, чем думать, как она там появится ассинхронно.
Вам (в нормальном проекте) не прийдется ковыряться с хтмл, не переживайте.

И-таки не забывайте, что спрос на десктоп ниже в несколько раз, чем на сервисы и веб. Но все студетны мечтают о большом приложении с workspaces, settings, custom controls -) Это нормально. Рынок объяснит, что к чему.
WindowsPhone — это еще более-менее с точки зрения перспектив имхо. И лучше с экономической точки зрения. Потому что неоднократно поднимался вопрос о прибылях с андроид приложений, и результаты далеко не в пользу рекламной площадки.

Вобщем, C# - стоящая вещь. Язык позволяет сделать все, что ни задумаешь. Вакансий много. Начинайте с того, что будет в хорошоем проекте, на который Вы попадете. Выбирайте тщательнее. Изучайте всяких фаулеров и ооп.
А специализироваться будете лет через 5. И это серьезно.

PS А то потратите молодые годы на WPF, а потом полюбите маки и захочется ObjectiveC. Или линух, и подумаете, что пайтон — тоже совсем себе ничего. Хотя... Я вот Mono использую для себя и я Вам скажу — нормально так.

И слукавят те, кто скажет, что распарсить razor темплейт и забить его данными на сервере — дешевле, чем отдать json-данные. Они просто так привыкли, не хотят учить жабаскрипт, им легче влепить переменную прямо в форму, чем думать, как она там появится ассинхронно.
Потому что джаваскрипт в этом назначении — это грустно, тоскливо и программирования в нём мало.
В нём легко потеряться хорошему специалисту.

не специалист определяет качество инструмента, а владение инструментом специалиста.
Высокоуровневый клиентский фреймворк, который обедняет функциональность других высокоуровневых js extension вроде requirejs, knockout в большинстве случаев позволяет делать быстрые производительные, гибкие клиенты, причем достаточно прозрачно для разработчика и тестируемо. Формировать кусок разметки на серваке отделенно от клиента, как минимум уже вызывает вопросы с точки зрения совмести клиентской части под разные требования, не говоря уже о том, что контролы все равно прийдеться делать на какой-то низкоуровневой js лапше.

Мало? -) У нас в проекте порядка 200 файлов с модулями, сервисами и контроллерами (а также фильтрами и директивами) на javascript. И всего десяток контроллеров на серверной стороне, которые генерируют commands и вызывают queries. Ну, дальше идет сотня проектов домена и денормалайзеров, но это уже не вэб -))
Какая разница, на каком языке дергать сервис и гонять сообщения по приложению?.. Допустим, на клиентской стороне был бы Silverlight с «настоящим» языком. Вместе с ним Вы бы получили МАССУ проблем и потерю времени на том, что решали бы, какую бы заумную штуку тут применить.
Клиенту нет дела до «солидности» того, на чем сделан его продукт, а будущая задача топикстартера — удовлетворять его и кормить семью. Мы же о профессии говорим, а не о хобби.
Выучит основы и ему будет все-равно на чем, лишь бы быстро, качественно и не сидеть на бенче.

Такой маленький, а уже какой хитрый. :) В 17 лет пробовать надо всё до чего руки дотянутся. Веб это пхп, а не .нет. Объясняю за Си-хеш. Это сейчас рабочая лошадка микрософта, а значит раньше чем помрёт сам микрософт с ней ничего страшного не случится, то есть да — можно специализироваться.

в 17 лет — учи всё подряд, через годик — будет видно куда свернуть

Можете писать на C# под андроид. А вообще я бы посоветовал присмотреться к Qt: синтаксический сахар почти такой же, компилится подо все (правда в iOS не работает QtQuick2.0, только первая версия)
А вообще говнокодеров на С# сейчас полно. Готовьтесь к конкуренции. Хотя и работы тоже полно

Видал я архитекторов, те еще говнокодеры.

Хреновых архитекторов значит вы видели. Основная задача архитектора как раз предотвратить появление говнокода.

Они же его и вносили :) Так что быдлокодер — это состояние души и с языком программирования не связан.

Тут вы правы. Но я подразумевал порог вхождения в язык и соответственно количество быдлокодеров в следствие этого.

В том то и проблема. Вхождение не проблема — всегда напишут книжку XYZ за 24 часа.

Хорошо, кто-то очень с большим трудом вполз в синтаксис юберсиньорский С++, это его научит писать правильно архитектуру?

Да, рейты и спрос на Java (и даже PHP) повыше будут.
Причем по Java гребут всех (начались курсы для студентов с прямой дорогой в продакшн), а по C# устраивают «экзамены на краповый берет».

«Двухсвязный список» как критерий отбора — это вторая крайность нынешнего рекрутинга.

Глядя на количество открытых вакансий по Java, сложно не согласиться, вот только это относится только для мидлов и выше. К сожалению, найти бесплатные курсы или же позицию трейни оказалось не такой уж и легкой задачей, как казалось. Во всяком случае, это верно для Днепропетровска.

Для Киева не совсем верно, беседую сейчас с преджуниором — получил предложение о стажировке в «лидере рынка».

В дополнение к уже ответившим господам: я бы не стал специлизироваться на C#, как на язык и его фичи. Не потому что язык не правильный, или там например Майкрософт не тру, но в отличии от той же Java где все тотально трясутся над тем что бы не сломать уже построенное, в Редмонте над этим особо не парятся, и с каждым новым релизом постоянно приходится переучиваться снова и снова.
Безотносительно этого, довольно вредный совет, но все же — подумай где бы ты хотел работать через N лет. Если, например, в Гугле, то сам язык и его экосистема окажутся не релевантными твоим устремлениям. И не обязательно компания, но и область — веб, мобилки, фронтенд/бэкэнд и тд.

В дополнение к уже ответившим господам: я бы не стал специлизироваться на C#, как на язык и его фичи. Не потому что язык не правильный, или там например Майкрософт не тру, но в отличии от той же Java где все тотально трясутся над тем что бы не сломать уже построенное, в Редмонте над этим особо не парятся, и с каждым новым релизом постоянно приходится переучиваться снова и снова.
Это, как бы по интелегентнее, не соответствует истине. Последнее «мы всё сломаем» было почти десять лет назад при переходе от 1.0 к 1.1.

Я в основном про парадигмы и то что теперь модно LINQ, Async, Nullable типы, DLR и тд и тп
Но Вы видимо про технические вещи — да, глобального редизайна API не было, но
* если в приложении появляются data races при переезде на новую версию фреймворка это ок? и нет, это не «мои руки кривые» — официально признанная МС проблема
* если VS 2010 не открывает и не компилирует проекты от VS 2008 это ок?

Я в основном про парадигмы и то что теперь модно LINQ, Async, Nullable типы, DLR и тд и тп
А где была совместимость нарушена? Где что сломалось?
У меня почему то что веб, что десктоп на С#, как работал, так и работает.
К тому же LINQ (во всяком случае ввиде method chaining, мне LINQ синтаксис отдельный не нравится, я его к примеру стараюсь не использовать) и Nullable уже давным давно все используют.
* если VS 2010 не открывает и не компилирует проекты от VS 2008 это ок?
Смешно. Если сравнивать С++ проекты (даже в MSVS), Java в Eclipse или IDEA, и прочее, MSVS + C# реже всего отказывается с первого разу открыть и скомпилировать. Если уж студия отказывается открыть проект, дело скорее всего в неустановленном плагине, и в нестандартном типе проекта, в остальных случая — все нормально открывает. Опять же, одно дело открыть, а другое сразу скомпилировать, не устанавливая потом целый день правильные версии библиотек, скопилированые в нужной разрадности.

В той или иной мере подобные проблемы возникают на всех основных языках, и IDE.

А где тут «переучиваться»? Максимум — «доучиваться». Не путайте людей.
А по поводу уровня «все сломанность/новая версия» — тут уже надо сравнивать с конкурирующими платформами. И что-то мне подсказывает, что они (эти конкурирующие платформы) не такие уж и дартаньяны, в этом аспекте.

а то что во всем мире переезд на новую версию любого фреймворка просто может поломать все зависимости, ето ничего?
а вот если вы компилили под 2.0 как и раньше — то даже в новой студии, и у клиентов с установленным 4.5 — все будет нормально работать ;)
не открывает? не замечал, обычно все конвертит в новую версию без проблем, тем более вы сейчас вспоминаете проблемы совместимости 3й і 4й с конца версий, тогда как с 10й на 12ю переезд идет без конвертации, и вероятно в 13й будет тоже самое.
новые парадигмы — прикольно, но ето называется развитием, а не ломанием, от етого старые не перестали работать, а что-то новое появляется постоянно и всюду — и ето и хорошо.. а вот разработчик который отказывается и не любит постоянно учится — ето уже чтото не то .. .

то что во всем мире переезд на новую версию любого фреймворка просто может поломать все зависимости, ето ничего?
Это тоже плохо, увы
а вот если вы компилили под 2.0 как и раньше — то даже в новой студии, и у клиентов с установленным 4.5 — все будет нормально работать
msdn.microsoft.com/...31(VS.100).aspx
новые парадигмы — прикольно, но ето называется развитием, а не ломанием, от етого старые не перестали работать, а что-то новое появляется постоянно и всюду — и ето и хорошо

окей, согласен, возможно я погорячился
а вот разработчик который отказывается и не любит постоянно учится — ето уже чтото не то
это палка о двух концах, увы
msdn.microsoft.com/...31(VS.100).aspx
прикольно, но:
— все задокументировано
— довольно редкие фичи и нюансы
это палка о двух концах, увы
обычно с началом кардинально нового проекта надо разобраться в такой горе информации(не связаной с ЯП), что изучение линка или асинка по сравнению с етим незаметно — занимает часы, а не дни или недели...

Второй конец палки это то что люди которые любят изучать новое тащят это новое в проект (в том числе этим страдаю я). А так как это новое, зачастую нет каких-то устоявшихся практик, все шишки мы собираем сами, например в одном из проектов у нас использовался Iteratees (если очень грубо то это такой паттерн обработки данных в ФП), из-за чего у нас были жуткие утечки памяти (правда из-за конкретной стандартной third-party имплементации, а не подхода в целом). Ну и опять же, NoSQL — люди которые любят изучать новое порой бездумно кидаются использовать такие базы/хранилища и отгребают кучу проблем там, где старые добрые RDBMS решили бы задачу быстро и просто. Я если что не ретроград, у нас, например, Кассандра крутится и мы ей очень рады.

Темная сторона программирования Вам в помощь.
Читал, как хипстерскую MongoDB правильно готовили тру инжинеры — это просто песня, на одном дыхании.
habrahabr.ru/post/86429

msdn.microsoft.com/...31(VS.100).aspx
Ну ведь было написано, если компилишь проект в 2008 под C#2.0, никаких проблем у пользователя на 4.5 не будет. В тоже время, в этом списке нет ничего страшного. Разве что последнее, но и там — просто креш в итоге.

На фоне этого, использование OpenGL на Андроиде — ад. С учетом того что на старых устройствах есть только OpenGL ES 1.0, и должен быть 1.1 по заявлению Гугла, но в реальности 1.1 есть не везде. А 2.0 — вообще по другому выглядит абсолютно, потому что его совсем поменяли (и правильно сделали, наконец то), и нужно заново переучиваться (какой кошмар). Опять же, никто не мешает дальше все под 1.0 делать, но вот нужна очень фича одна, переходишь на новую версию, и все нужно переписать, абсолютно все, ещё и выучить GLSL (на самом деле там ничего учить не нужно, очень простой С подобный язык, со своей спецификой), потому что готовых встроенных функций для простого освещения нету.

* если VS 2010 не открывает и не компилирует проекты от VS 2008 это ок?
Вы сделали вывод по одной попытке открыть солюшн 2008й студии в 2010й? Насколько я помню, вс2010 конвертит «старые» проекты в свой формат и нормально (в общем-то) их открывает.

Just for lulz в 2012 версии Visual Studio сделали новый Database Project несовместимый со старым Database Project (который поддерживался в 2008 и 2010 студии). В результате проект конвертируется в новый формат, с которым перестает работать старый процесс деплоя.

2013 Visual Studio при открытии ASP.NET MVC веб проекта, созданного в 2012 версии, конвертит его во что-то, что не компилируется, после чего начинается увлекательное путешествие.

Вы сделали вывод по одной попытке открыть солюшн 2008й студии в 2010й? Насколько я помню, вс2010 конвертит «старые» проекты в свой формат и нормально (в общем-то) их открывает.
Вы сделали свой вывод по одной удачной попытке открыть солюшн в 2010 версии?
* если в приложении появляются data races при переезде на новую версию фреймворка это ок? и нет, это не «мои руки кривые» — официально признанная МС проблема
Нужно очень постараться, что бы выбить этот баг.
* если VS 2010 не открывает и не компилирует проекты от VS 2008 это ок?
Не знаю, у меня нормально конверитрует. Вы наверное с плагинами чего то перемудрили.

Я в ваши годы думал не о специализации, а о получении фундаментальных знаний в области информатики и программирования в частности. Поверьте, это гораздо важнее, чем знание конкретных языков и фреймворков. Потому что хорошо понимая принципы, скажем, ООП и зная шаблоны проектирования, конкретные Java и C# вам будет гораздо легче освоить, чем если вы будете тупо учить языки с 0я.
Хороший программист — это далеко не только писатель кода. Он должен не просто уметь писать код, а разбираться в разных подходах к задачам и понимать, чем отличаются различные решения между собой и какое из них будет наилучшим для конкретной задачи. А это очень трудно делать, если не понимаете фундаментальных принципов, на которых строятся эти решения.

Хороший программист — это далеко не только писатель кода.
В украинском быдлоаутстаффе этого не понимают.
Им нужен знаток коричневых машин.

Естественно, вечные есть: алгоритмы, паттерны проектирования, ООП (везде, кроме SQL, Си и чего-то ещё), умение работать с абстракциями и мыслить структурно.

Кто-то рассмотрит человека с этими знаниями и навыками, а кто-то отклонит за незнание библиотеки bullshitJS

Это, конечно, печальная реальность (что быдлоаутстаффу до лампочки, откуда берутся джуны). Но я надеюсь, что хотя бы молодежь это начнет понимать (или уже понимает). И тогда ей (молодежи) будет пофиг, что быдлоаутстафу внезапно стали нужны специалисты по салатовым машинам — RTFM левым глазом, и уже спец.

Кто-то рассмотрит человека с этими знаниями и навыками, а кто-то отклонит за незнание библиотеки bullshitJS
В этом есть своя сермяжная правда, нужно молотить код, быстро и сразу.

Но почему при отборе обычно начинают не с того конца — не с фундамента, а с металлопластиковых окон, мне неясно.

Размышления в стиле «Стоит ли сейчас специализироваться» — полный бред, тем более в 17 лет.
Иди учись, независимо от языка. В норм ВУЗах учат Делфи, С/С++ и HTML/JS, и архитектуру ПК, но суть обучения — понять основные принципы, и после этого, для нормального программиста не должна существовать проблема, что он не на то «специализировался». Или иди работай.
Нужно не морочить другим голову, и просто что-то делать, неважно что, Java или C#, нужно перестать писать унылые темы на форуме, а начать делать программы которые тебе нравятся, или идти на работу и делать задачи — которые тебе дадут (даже если это Веб).
А что значить «заняться Java», вообще непонятно. Можно подумать есть какая то конкретная процедура, которую можно выполнить, и ты уже специалист по Java, и больше не нужно будет ничего делать.

программировании небольшой, в основном Паскаль
Это вообще не опыт. Как тебя может смущать рейтинг на каком то tiobe, если ты даже
не видел ни одного нормального куска кода?
Разве что ты переживаешь, что твой чудесный код понизить рейтинг ещё больше.

Какой вы злой... Я учусь на заочке, специальность: «Обслуживание компьютерных систем и сетей». Писал на паскале, занял второе место на области на олимпиаде. Писал на C#/Java по мере возможности. Но времени не было. Теперь оно есть и я выбираю направление — два сразу ниасилю.
Вы верите в магию обучения в вузе? Я — нет. Занимаюсь самообучением. Учился бы на очке — времени не было, пришлось бы заниматься тем, что пихают в голову учителя — старая, часто уже не нужная на практике информация. Для развития — да, остальное без толку. А так как время есть, хочу заниматься полезным — тем, что нужно для работы, а не для того, чтобы стать _самым_крутым_программистом_разбирающемся_во_всем_что_преподавали_но_не_могущим_найти_работу_после_вуза_ .

Ну, я вот, после 17 лет программирования и смены несчетного количества языков и технологий больше всего хочу осилить не новомодный фреймворк, а Танненбаума, ибо технологии приходят и уходят, а в профессии хочется полагаться на нечто стабильное, доброе, вечное...

Писал на паскале, занял второе место на области на олимпиаде.
Я тоже. Турбо Паскаль и консольное приложение для решения задачи коммивояжёра, это потрясающий опыт. После этого уже точно можно судить о рейтингах на tiobe.
я выбираю направление — два сразу ниасилю.
Как можно делать об этом вывод, если ты даже не представляешь, что значить «осилить» одно, и сколько на это нужно времени?
Учился бы на очке — времени не было, пришлось бы заниматься тем, что пихают в голову учителя — старая, часто уже не нужная на практике информация
Конечно, архитектура фон Неймана, теория реляционных баз данных, теория ООП, алгоритмы и структуры данных. Абсолютно не актуальный SQL с HTML/JS и C/C++. Совсем не нужная на практике информация. Ну если ты уже всему этому самообучился (не похоже на это), зачем пишешь такие печальные посты (как тысячи до тебя). Иди уже работай фрилансером.
_самым_крутым_программистом_разбирающемся_во_всем_что_преподавали_но_не_могущим_найти_работу_после_вуза_
Лучше конечно 10 лет сидеть на форумах, и думать о том, какой же язык выбрать. И плакать, о том, что же будет если вдруг выберешь не перспективный язык. Или о том, что ты не хочешь Веба, или ещё чего-то.
Учился бы на очке — времени не было, пришлось бы заниматься тем, что пихают в голову учителя

ORLY? Нет времени на очном обучении? Это разве что у уже работающих студентов или беспробудно бухающих. Ну еще у крайне ленивых — у этих всегда катастрофически не хватает времени. А вы к какому типу относитесь?

пихают в голову учителя
Пардон, а вы где учитесь сейчас? Во-первых, не учителя, а преподаватели. Во-вторых, не пихают, а преподают же. А дальше вы уж сами — либо усваиваете знания либо нет.. wakeup, вы уже не в средней школе.

Что тут непонятного? В норм — Делфи. В ненорм — Бейсик. Такова реальность )

Язык, собсно, погоды не делает, погоду решаемые задачи делают. Новые делфя неплохи. VB тоже неплох.

На любом из современных языков можно так или иначе решить любую задачу. На любом можно сделать хорошую программу. Но это не означает что все языки одинаковые.
Язык погоду делает, с точки зрения эффективности разработчика.
Пример, нужно прицепить событие к кнопке на Андроиде.
Если бы все основывалось на C#, это выглядело бы так:

class MyActivity { MyActivity() { myButton.Click += myButton_OnClick; } void myButton_OnClick() { //action } }

Но поскольку используется Java, все выглядит так:
class MyActivity { MyActivity() { myButton.setOnItemClickListener( new Button.OnItemClickListener() { public void onItemClick() { //action } } ); } }

В обоих случаях все работает, я могу писать и так и так.
Но на Java конструкция сложнее, её сложнее писать, сложнее читать.
К тому же если делаешь вызовы из onItemClick, к классу MyActivity через this обратиться нельзя,
нужно череp MyActivity.this, потому что добавился ещё один скоуп (нужно держать ещё один скоуп в голове).
И главное, Гугловцы позже добавили возможность ссылаться на метод MyActivity как на обработчик события из XMLки с layout’ом. То есть отсутствует consistency, из разметки можно ссылатся на прямую, а в коде, нужно это делать через декларацию нового анонимного класса, с одним единственным методом (из которого уже вызываешь метод из MyActivity).

EDIT:
Но это если речь о работе, вот в ВУЗе главное не эффективность, а понятность и простота (в начале).
Кто то ещё может спорить, что лучше языки с более четкой структурой, но это уже другая тема.

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

это уж не языки, а фреймверки и платформы.
Проблема примера — отсутсвтие делегатов в самом языке.
Но в любом случае язык, на котором студент будет постигать основы — роли практически никакой не играет.
Возможно.
Да, чтобы понять работу с памятью шарпик — не самая прозрачная система, давайте тут поюзаем плюсы или даже паскаль
В плане понимания работы с памятью, C# на уровне с Делфи (причем его старые версии без .NETа тоже).
Ну я и не говорил что в ВУЗе должен быть только один язык. Делфи — хорошо с самого начала, особенно заинтересовать человка простой GUIшкой. Си обязательно нужен, потом С++ (но не оба сразу, сначала один и другой). И так далее.
А лучше вообще ничего не давайте — пусть сразу, курса со второго сам решает, что ему юзать — вот тогда будет толк.
На самом деле к черту ВУЗы, пусть тогда люди сами решают что им изучать, и учат это в интрнете, в котором полно видео уроков, статей, документации, примеров, и прочего. Главное что бы школе только учили правильно Гуглом пользоваться.
Но ведь не хотят они так, им лучше писать посты — о том какой язык лучше учить.
И в школе поиском пользоватся нормально не учат.
На самом деле к черту ВУЗы, пусть тогда люди сами решают что им изучать, и учат это в интрнете, в котором полно видео уроков, статей, документации, примеров, и прочего.
Полировать фундаментальное образование — годится.
А выудить из горы мусора бриллианты крайне сложно.
На самом деле к черту ВУЗы, пусть тогда люди сами решают что им изучать, и учат это в интрнете, в котором полно видео уроков, статей, документации, примеров, и прочего. Главное что бы школе только учили правильно Гуглом пользоваться.
Ой не согласен. ВУЗы (по идее) дают гораздо более целостные и т.с. «стандартизированные» знания, чем когда человек самостоятельно изучает, что хочет. Да и мышление тоже в какой-то степени хоть как-то стандартизируется. И отсюда важное следствие — меньше хаоса в общении с коллегами из подобных ВУЗов, т.к. разговор ведется приблизительно на одной волне. И особенно это хорошо для технических профессий, в т.ч. и программистов. Потому что когда совместно работают программисты с хрен-его-поймет какой разницей в знаниях и мышлении, это будет напоминать либо тотальное недопонимание (и хорошо если все будут это осознавать, а то «испорченный телефон» — это еще хуже), либо непрерывное обучение. Последний вариант в каких-то случаях может быть полезным и увлекательным, но гораздо менее продуктивным, чем когда все понимают о чем речь.
Но понятно, что в реальности обучение ВУЗами может только начинаться, а не заканчиваться. И после ВУЗов как раз идет самостоятельно обучение. Так что я за ВУЗы, как весьма полезный этап, проходя который, человек получает хоть какие-то представления о различных уровнях систематизации и получения знаний и как это надо делать.

Зачем фриланс, пиши под маркетплейс и становись инди разработчиком.

Экий вы батенька расчётливый. Падение чего на чём смущает? А как же фан, драйв и цукерберг?

Шарп самый аристократический и правильный язык из всех. Он сам научит тебя программировать. Иногда без твоего участия. И потом всегда будет предсказуемый и пунктуальный как английский дворецкий. Программировать на нём легко и приятно хоть на десктопе хоть на вебе с телефоном. А всякие американские горки в виде доступа к компьютерным потрошкам и F# для гурманов тоже имеются. Чайники с утюгами для шарпа тоже есть, но мало мало.

Парень, ты сделал мой день, спасибо :)

Очень давно пытался выразить свои мысли по этому поводу, но теперь эта дыра во мне заполнена. Спасибо

Однако есть один момент — лицензирование от МС. Многие не хотят платить за ПО

Учи то, что нравится. То, что нравится делается лучше, чем то, что «так себе» или «ну ладно уж». Профессионал в любой сфере ценится.

не страдайте фигней — специализируйтесь на программировании и (особенно) инженерии программных систем

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

Правда, есть какая-то «ностальгия» — в студенчестве хотел писать десктоп, так и не начал практически. Никогда даже не видел десктоп-разработчиков.

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

теплый ламповый винил десктоп? Боюсь, что тебя весь код станет эфемерным, когда начнешь в команде работать в таком случае. Или думаешь, что десктоп или мобайл апп сейчас самобытные приложения?

— А ты бы хотел с коровой?
— Дедуля мой первый раз с коровой трахался, ему понравилось. Говорит с бабами не сравнить.
— Ты слишком молодой, глупый и романтичный. Современные коровы это результат генной инженерии...
© «Завет», Э. Кустурица
Это я к тому, что подрастет и все поймет

Это я к тому, что подрастет и все поймет
Или просто бабла захочется и тогда хоть веб хоть десктоп, а бабло всегда больше нравиться личных предпочтений !

И вообще, C# это не секс, это так, цветочки.

SAP, SAS и прочая энтерпрайз продукция...

Та ну, разве энтерпрайз — секс? Вот бабушка из бугалтерии и формочка с не-тем-цветом-и-размером на 1С — это секс.

Это, как раз, ерунда.

Кому куда приятней, как говорится)

У них он, небось, с фронт-эндом ассоциируется. А там и в бэкэнде и бизнес-логике (а она может быть и на клиенте) есть чем заняться.

У меня так и было :)
И всякие метафизические вещи тоже говорил, типа «потрогать то, что пишешь» и т.д. :D

Ну я десктопом занимаюсь 10 лет — и дизайнеры всякие с GDI+ и LOB на WPF :)
Веб как-то сразу не взлюбил :) Так что каждому свое :)

Работаю программистом уже больше 8 лет из которых больше 6 на C#. Хоть и приходится делать часть работы под web, не лежит к нему душа хоть убей (правда под MVC ничего делать не доводилось, в основном web forms), от java script вообще воротит. А вот десктопными и сервисными частями заниматься люблю. Каждому свое.

На mvc можно достаточно быстро начать, если вдруг придётся.
Чем больше джаваскрипта — тем сильнее кажется, что уходишь от программирования.

СтОит. Если не нравится веб — смотрите в сторону мобайла, покопайтесь в Xamarin. После C# Джава покажется слишком многословной. ИМХО падение на tiobe не должно страшить, вакансий крайне много в количественном выражении, правда не уверен насчет Xamarin, но под WPF найти несложно.

Спасибо. Xamarin дорогой как для первокурсника, а вот wpf — это хорошо. Прошёл учить)

Я бы все же советовал еще раз подумать над Xamarin, он мне кажется более перспективным. Могу еще посоветовать потратить свобожный вечер на гугление того, что будет в тренде через год. Моё мнение — доля мобайла будет увеличиваться, и Xamarin будет на коне.

Да, wpf — это, в общем, лучше винформ. По сравнению с windows forms (и с некоторыми другими гуями), он мегагибок, конечно. Но и с ним надо поосторожнее, а то можно вконец утонуть во всем этом xaml’е.

за безплатно уже слишком дорого ? :)
store.xamarin.com

А вы пользовались бесплатной редакцией? Ограниченный размер кода, нету поддержки сторонних либ... С ТАКИМ работать не хочу) А инди уже 300$.

Это не ограниченный размер кода, это ограниченный размер приложения.

Неважно. Главное, что даже некоторые сэмплы не компилятся, так как превышается лимит размера.

Без Visual Studio? За 300 баксов, тоже без? В добавок, последние два раза, когда я пробовал из интереса демо версию, оно не деплоилось на девайс (без внятного отображения ошибки). Хотя на той же машине стоял Android SDK , и из под Eclipse с ADT все прекрасно деплоилось.

EDIT:
Если бы они хотя бы предлагали свой UI. То что на C# писать можно, это радует, но в конечном итоге все равно нужно иметь дело с layouts от Андроида, с их ресурсами, стилями и прочим. И с их API. Если бы можно было WPF на Андроиде использовать, вот это было классно.

версия студии куда можно плагины ставить тоже не бесплатная :))
а так — да, ограниченая демоверсия, для поучится, а для всего остального уже покупается [работодателем] рабочий инструмент, дев акаунты, и все остальное...

Ну действительно. Если мы представим, что не экспресс Студия — платная, и стоит столько сколько она стоит, то может это и норм. Но со Студией тоже отдельный разговор, как по мне ей тоже не хватает инди лицензии за 100 баксов, я бы такую для дома купил, если бы там было все кроме поддержки TFS.

Если бы можно было WPF на Андроиде использовать, вот это было классно.
Учитывая, в каких муках рождался silverlight под Mono — это маловероятно.

вакансии в основном на ASP/MVC, найти десктоп ниже мидла — сложновато. В этой стране, хех

Cаппорт старых проектов на asp.net web forms в Украине таки есть.

На TIOBE я бы особо не ориентировался, т.к. это такая специальная штука для сишников, для повышения их ЧСВ.
Учтите, С# не будет вашим единственным языком, вам обязательно придется выучить еще пару языков, а вероятность того, что через десять лет вы все-еще будете использовать выбранный вами язык, стремиться к нулю. Так что не напрягайтесь, пользуйтесь поиском по форуму и учите то что сможете быстрее капитализировать, в данном случае С# очень даже ок.

Я понимаю, что не будет единственным. Но может дом он претендовать на роль основного на сегодня без лазания в дебри asp.net?

— C# один из основных.
— Java будет жить очень долго, джавистов отрывают с руками и ногами ибо очень много кода в ентерпрайзе. Есть вакансии C# + Java.
— Мобильные приложения также помогают заработать себе на кусок хлеба.
— С++ не умрет никогда, ибо он всесилен и верен;)
— PHP-шники тоже имеют свой смачный шмат, не сматря на сказочки про быдлоязык.
— А истинно вечное — это алгоритмы, структуры данных, паттерны, архитектура корпоративных приложений, принципы построения операционных систем и прочие базовые вещи, кажущиеся Вам незначительными на сегодняшний день.
Если в любом языке или фреймворке видеть именно это — то не страшен ни хипстерский Руби, ни очередной WPF.

И где в Asp.net Вы увидели дебри?.

— Мобильные приложения также помогают заработать себе на кусок хлеба.
Эппл скорее всего померкнет в тени Гугла и тогда программистам на Objective-C придётся переучиваться или идти в супермаркет на 2000 грн работать, где за знание английского языка выше pre-intermediate — оштрафуют.

Эппл сильно обгадилась с этой новой прошивкой. У двух знакомых разработчиков началась депрессия, один из них начал выпивать даже...

Эппл скорее всего померкнет в тени Гугла и тогда программистам на Objective-C придётся переучиваться или идти в супермаркет на 2000 грн работать, где за знание английского языка выше pre-intermediate — оштрафуют.
Эппл сильно обгадилась с этой новой прошивкой. У двух знакомых разработчиков началась депрессия, один из них начал выпивать даже...
Тру сишники всегда найдут себе кусок хлеба с икоркой и беллентайн.
К «знатокам коричневых машин» жалости не испытываю;)
К «знатокам коричневых машин» жалости не испытываю;)
Это кто такие?

Оттуда же:

рекрутёры работают с чудовищно низким КПД — отсеивают огромную часть перспективных кадров своими сомнительными критериями.

там же:
А если у человека не стильная причёска? Как же он справится с каскадными таблицами стилей?
:)))

А если у человека собака невыгулянная лает?
Как же он будет с тасками не затягивать?

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