• Какие навыки в программировании на C# нужно иметь для устройства на первую работу?

    @cantcodethis
    Если вы новичок, то, скорее всего вам доверят легаси код, или какие-нибудь простенькие задачи. В любом случае, первое время вы будете больше читать код, чем писать его. Поэтому, советую изучить базовые конструкции языка, в частности устаревшие и хитрые, потому что они будут вам встречаться и очень часто. Очень рекомендую потренироваться с многозадачностью, лямбдами, событиями, рефлексией, IO, обобщениями, LINQ-ами, сериализацией, потренироваться с базовыми SQL-запросами, и особенно обратите свое внимание на unit-тестирование. Обязательно уверенно чувствовать себя с ООП и с системами контроля версий (обычно это SVN или Git, хотя персонально мне больше нравится Mercurial). Эти "пункты" пригодятся, какую бы сферу вы не выбрали.
    Месяц назад я устроился работать в софтварную компанию, которая разрабатывает свой продукт еще с первых версий .net. Хоть сейчас и используется .net 4.5, понятное дело, что работающий старый код переписывать никто не будет, особенно без гарантий, что ничего не сломается (тут на сцену выходят unit-тесты, которые все хотели, но времени не было). Регулярно встречается макаронный код, в котором очень трудно разобраться (как вам if-ветка, в которой 50 тысяч символов?). Хочется винить других программистов, но трудно. Возможно, у них тогда не было достаточного опыта или времени, а дедлайн неумолимо приближался с каждой секундой. Времени на комментирование тоже не хватало. Опять же, разные участки кода написаны по разному, по понятным причинам. Поэтому важно уметь компилировать код в голове, и дебажить его в отладчике.
    Хотелось бы посоветовать практику, как обычно Open Source, но сам не смог найти ни одного проекта (на C#) который бы меня зацепил, и в котором хотелось бы разобраться. Поэтому посоветую писать утилиты для своих собственных нужд, пусть даже самые простые программки на десять строк кода, которые могут упросить какую-нибудь рутину. Либо, если интересно, можно писать какие-нибудь простенькие игрушки, например змейку или тетрис можно написать в консоли или в обычном приложении, не задействуя библиотек для работы с графикой. Обязательно сохраняйте свой старый код, можно хранить его в приватных репозитариях на bitbucket.org, они бесплатны для команд до пяти человек. Так вы будете видеть свой прогресс, да и забавно через полгода, взглянув на код, думать, кто же написал эту фигню. Опять же, можно будет показать работодателю на собеседовании.
    И, конечно, иногда стоит обращать свое внимание на другие языки и технологии. Пишите бэкэнд для web-приложения? Обязательно посмотрите на HTML, CSS, JavaScript. Высоконагруженный сервер? Попробуйте Go. Пишете игры? Попробуйте С++, или Lua. Если это десктоп-приложения, попробуйте написать что-нибудь для Windows 8 (Modern UI, возможно для телефона, даже если у вас такого нет), или больше внимания уделить внешности, например попробовать разные стили или анимацию для интерфейса.
    Обязательно советую знать какой-нибудь скриптовый язык программирования, вроде JavaScript, Python, Ruby, Lua и т.п. Никогда не прекращайте учиться и интересоваться происходящим в IT близкое к вашей сфере интересов.
    Ответ написан
    Комментировать
  • C#: какой есть хороший 3D движок для Windows Store приложений?

    xakpc
    @xakpc
    full-stack .net developer, CEO Leecero.com
    Обратите внимание на MonoXNA/MonoGame
    blogs.msdn.com/b/bobfamiliar/archive/2012/08/01/wi...
    Ответ написан
    Комментировать
  • Какую выбрать тему диплома по специальности АСОИУ?

    Vadimyan
    @Vadimyan
    Программист C#
    У вас осталось очень мало времени для, собственно, реализации, поэтому что-нибудь интересное и актуальное взять вряд ли получиться. А дальше всё зависит от ваших целей и ВУЗа. Если кафедра даёт полную свободу технологий и темы - это очень хорошо.
    Если вы хотите защититься с наименьшими трудозатратами, то стоит выбирать тему исходя из простоты реализации. Я видел "отл" за сайты для школ с расписанием занятий. Написать небольшой таскменеджер для собственных нужд - неплохо. Его всегда можно легко расширить до CRM, добавив проекты к каждой доске задач. Даже Trello некоторые пользуются для простого составления списка покупок.
    Если вы хотите получить какой-то опыт или заинтересовать комиссию на защите, всё гораздо интереснее. Я зацепился за слова "обработка информации" и решил, что это имеет отношение к анализу информации из внешних источников.
    1. Парсинг и обработка цифрового сигнала. Например, в DVB (стандарт цифрового ТВ) идёт много служебной информации, которую можно парсить в потоковом режиме и давать пользователю. Список каналов, программа передач. Только не уверен, можно ли где-то так просто получать в потоке DVB-сигнал или найти его кусок в виде файла.
    2. Сейчас есть попытки развивать открытые данные в России. Можно поискать открытые данные для своего региона или что-нибудь интересное из федерального уровня и красиво это отобразить. Если положить это в открытый доступ, то кто-нибудь даже может сказать спасибо.
    3. Сбор и анализ каких-нибудь данных с сайтов. Вот пример парня, который парсит данные с сайтов знакомств и превращает их в весьма занятную статистику. Здесь будут сложности с обоснованием разработки.
    4. Анализ данных анкетирования. Приведу сложный пример - моей темой диплома была система взаимодействия аутсорсинговой компании с заказчиками. Клиенту давалась анкета на 100 вопросов о проекте (с чьей стороны будет менеджер проекта, требуется ли тестирование исполнителем, как будет происходить приемка), система изучала ответы и могла дать ряд уточняющих вопросов. На выходе был документ, регламентирующий взаимодействие сторон - описывались сценарии работы (dedicated development center model, project outsourcing, etc.), правила распределения ответственности и общения сторон. Можно упростить эту задачу.
    5. Распределенные вычисления. Берем задачу, которая требует значительных вычислительных мощностей и при этом легко делится на отдельные работы. Создаём сервер, который будет принимать на вход условия задачи, разделять их на отдельные задания, отсылать эти задания клиентам, принимать результаты и на выходе давать ответ. Из простого - умножение матриц, чуть занятнее - поиск больших простых чисел.
    6. Помощь кафедре? В одной из курсовых работ я пытался внедрить на кафедру доску объявлений, которая бы дублировала стенды и давала при этом приватные зоны (а ля подфорумы) для преподавателей и каждой группы. Некоторые преподаватели появляются на на работе довольно редко (например, совмещающие с другой работой) и им нужна возможность узнавать о важных объявлениях. Студенты тоже обычно организуются вконтакте, что не всегда и не всем удобно.
    7. Флешка с медицинской картой. все данные хранятся в зашифрованном виде. Приходишь к врачу, даёшь флешку, вводишь пароль (или другой способ ограничения доступа), открывается история болезни. Там могут быть записи разных специалистов, история результатов анализов. Актуально для очень разъездных сотрудников.
    8. Найти проект (на преддипломной практике - в каком-нибудь НИИ вам будут рады :D внутренний проект для какой-нибудь компании; фриланс) и приспособить под диплом его. В этом случае ответственность подстегнёт к лучшей реализации, что положительно скажется и на дипломе.

    В целом, к сожалению, студенческие выпускные работы очень редко находят реальное применение и стремиться к этому бесполезно. Нужно выбирать что-то, исходя из своих интересов и целей.
    Ответ написан
    1 комментарий
  • SharpDevelop VS Visual Studio 2012. Что выбрать?

    FAQEnD
    @FAQEnD
    Student, android developer on GlobalLogic
    Как по мне лучше VS, ибо Microsoft разработали C# и кому как не им лучше знать какая нужна IDE для этого языка
    Ответ написан
    Комментировать
  • Где найти задачки для более практического изучения C#?

    foxmuldercp
    @foxmuldercp
    Системный администратор, программист, фотограф
    Смотря Что Вам больше нравится - WinForms - своё потихоньку отживают.
    WPF - более интересно в плане GUI, как минимум масштабируемостью окон/шрифтов для разных разрешений экрана, иногда очень идиотских.
    Modern-UI - плитки и прочие радости Win8+, с маркетплейсом.
    Web - C# + Asp.Net MVC + какойнить Jquery/Bootstrap - вполне сейчас тенденция для выноса приложений в веб
    Мобильное - тоже, что и с Win8+, только в стандартизированных разрешениях экрана.
    Еще игры, например Unity-based. Интересная штука, можно начать с какихнить Tower-Defence игрулек с минимумом графики.

    А теперь чисто для себя - 16 лет стажа администрирования, из них немного стажа в написании админских скриптов на PowerShell, bash.
    Последние пару лет вечерами с нуля, без знаний C#, html/css/web и прочего, где-то за полтора-два месяца фуллтайма 5х8, если пересчитать, пишу домашнюю бухгалтерию на Asp.Net MVC с Jquery + Twitter Bootstrap с MS SQL как хранилищем данных (тоже без особых его знаний).
    Сейчас всё это живет в MS Azure при участии в программе Microsoft BizSpark.
    Если я скажу, что в 31 подался в C# Junior - я Вас сильно удивлю?
    Ответ написан
    Комментировать
  • Где найти задачки для более практического изучения C#?

    cheerfulatlas
    @cheerfulatlas
    Напиши модель какого-нибудь процесса, например, регистрации на авиарейс. Будут стойки регистрации, очередь пассажиров, можно еще чего-нибудь придумать. И чтоб все шевелилось :)
    Изучишь .net-овские структуры данных. Причем, не обязательно для этого использовать оконный интерфейс, если вдруг еще до него не добрался в изучении.
    Сначала можно сделать модель в пошаговом режиме, потом начать изучать и реализовать все с помощью потоков, они по любому еще пригодятся когда-нибудь.

    Еще можно, например, написать программу, берущую погоду с гисметео, и выводящую на экран в вашем формате. И чтоб можно было переключать режимы день/неделя/больше без перезапуска программы.
    Ответ написан
    Комментировать