Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > .NET для новичков > junior C# developer |
Автор: ArniLand 28.7.2011, 12:16 |
Подскажите, что необходимо знать для того чтобы устроиться junior C# developer. |
Автор: gambit 28.7.2011, 13:19 |
Это из темы инструктора Epam, Александра Кузнецова(кстати отличного человека и специалиста) - "Что должен знать практикующий .NET разработчик" 1. Собственно .NET (основные принципы работы, внутреннее устройство и прочее). В зависимости от позиции может потребоваться как поверхностное знание, так и детальное понимание принципов работы того же сборщика мусора и компиляции кода на лету. 2. Reflection. Выделил отдельно, хотя является составной частью 1. Сейчас на этой штуке большинство всех привязок данных построены, так что знать надо. 3. ADO .NET. В небольших проектах сейчас активно заменяется новомодными фреймворками, типа того же Entity Framework, но еще полно старых проектов, да и в крупных от EF как-то больше геморроя. Ну а уж про то, что надо знать основы... 3*. Как справедливо заметил ниже Даниил, SQL знать тоже обязательно. ![]() 4. Entity Framework. Средство крайне быстрой генерации слоя доступа к данным. В небольших проектах однозначно рулит, в крупных... на то, чтобы научиться его правильно готовить, надо потратить время, сопоставимое со временем написания всего проекта. 5. LINQ. Средство крайне удобного описания запросов к данным в различного рода хранилищах. Для начала достаточно понять LINQ to objects, а дальше уже в зависимости от конкретики. 6. XML + XSD + XSLT + XPath. К .NET отношение имеет слабое, скорее, однозначный must have. Но в любом случае, возможности .NET по работе с ними знать надо 7. Сервисы. WCF в последнее время явный лидер, но и о старых тоже забывать не стоит. 8. WWF??? Не знаю, не пользовался. И как-то не особо доводилось видеть, чтобы ее использовали . 9. Remouting. Дальше начинается UI 10. WinForms. Жива еще. Хотя разбираться с ней "на перспективу" уже не стоит. 11. WPF. Создавался как замена Winforms и постепенно успешно ее с рынка вытесняет. 12. ASP .NET средство создания web-приложений. В чистом виде используется уже редко, подменяясь AJAX, Silverlight, или активно тренсформируясь с использованием MVC 13. JavaScript + AJAX (Средство асинхронных запросов из JavaScript к серверу) Опять же не .NET, но знать надо 14. Silverlight. Средство создания UI для веб с использованием WPF. От полного WPF отличается урезанными возможностями и рядом заморочек. Как-то так. Желающие могут продолжить/покритиковать. Естественно, все из этого знать на 100% не стоит (да и вряд ли возможно), но направление для раскопок, надеюсь, задал . http://vkontakte.ru/topic-21396110_23476592 |
Автор: gmx 28.7.2011, 15:08 | ||
gambit, не согласен, потому что: 1-ый пункт - его слабо знают даже системные архитекторы в консалтинговых компаниях ( не смотря на громкое название должности ), в R&D Intel, к примеру, знают. Так что, тут нужно нюансы все учитывать. Что системный архитектор в ООО "Мухосранск-компани" или в Интел - это разные вещи, собственно относится, как и к junior, везде разный уровень серьезности. Хотя, нет... Вообще, несогласен с пунктами всеми, т.к. .net-программисты обычно имеют кривое понимание работы системы в целом... и тут можно затрагивать все аспекты, что и модель OSI плохо знают, и как вообще устроена сеть, как реально разбираются сетевые пакеты, и как устроена работа процессов в ОС, и как вообще устроена файловая система и тд и тп, и на чем сам был написан Silverlight любимый у .net-фанатов ( не только в плане ЯПа, а что NPAPI мало кто знает используется в ряде браузеров для создания подобных технологий ), да и вообще не владеют порой даже простейшими моделями построения данных, как связные списки ( LinkedList<T> в .NET - это не то! ). Да, и вообще среди .net программистов не так много людей, которые закончили технические вузы по профилирующей специальности. Да и работы с указателями норм - нет... ![]() Кстати, вот интересно, как раз коль про такие основы, как связные списки затронули ( что, след. код будет фильмом ужасов для C#-программистов - это ясно, но все же интересно, как разберете ): Задачка: построить односвязный список при помощи указателей , а не встроенного класса из Collection.Generics, и рекурсивно спуститься по нему, при этом изменяя каждый раз значения. И код ниже, с еще задачами: "Почему после AddNewElement(&list, int); - нельзя будет просмотреть список *list?" и "Какие можно отключить сборку мусора ( или отложить ее до завершения опред. действий?"
|
Автор: Экскалупатор 28.7.2011, 15:31 |
gmx, ничего супер мега сложного в твоих примерах нету, первый курс решает подобные. а за использование "unsafe" на некоторых конторах можно и по голове больно получить. несомненно что знать нужно много, но junior он на то и junior что бы учиться... да и зачем если в этом языке их нет? если нравиться Си/С++ то зачем тогда тебе .net? и если ты считаешь, что не знать первый пункт для программиста это нормально то я не хотел бы работать с таким программистом. |
Автор: gmx 28.7.2011, 15:45 | ||||||||||
где я сказал КОНКРЕТНО , что не надо? я написал. что .net программисты обычно реально не знают, как это работает, а не то, что это не надо знать, смысл был в том, что .net программисты все равно не знают реального ус-ва памяти
ок, тогда отвечай на мои задачки , написать "ничего сложного - нет" - это не ответ, за одно и посмотрим, как .net-программист ответит на это
первый курс НЕ решает подобное и на других курсах, в нормальных вузах C#/.NET вообще не преподают, т.к. не несет академической ценности - это раз, кривое - это два первый курс обычно штудирует алгоритмы и опред. разделы математики и лабы выполняют (о Боже!) на bash или подобном, где нет возни с памятью, т.к. на 1-ом курсе это не нужно Вы из какого ВУЗа? фак-т && спец-ть (или какой закончили)?
Они есть. Кстати, зачем они нужны в C# ?
Видимо, это конторы из рязряда, где на Sharepoint отмывают деньги. |
Автор: WarHog 28.7.2011, 16:39 | ||
А С++, стало быть, прям и несет несомненную академическую ценность ![]() Луговского на вас нет, gmx |
Автор: Экскалупатор 28.7.2011, 16:45 |
![]() напомню что тема топика несколько в другом... по теме: ArniLand, ориентируйся на конкретную контору, так будет надежнее, посмотри что они пишут(на сайте конторы обычно перечисляют продукты которые они пишут/писали, типа рекламы что то) ну и можно посмотреть что для этого чаще всего нужно, какие технологии используются и пр. от себя добавлю что в разных местах разные требования, где то нужно просто знать что существует XML и этого для начала будет достаточно, а где то нужно будет уметь рассказать что это и для чего это можно использовать в реальных проектах. знаю что непременным условием остается иностранный язык, но опять же на разных конторах к этому относятся по разному... |
Автор: gambit 28.7.2011, 21:27 | ||||||
В вы каким образом связаны с .net??
Да, я бы тоже не стал с вами работать. Базовое понимание механизмов сборки мусора, рефлексии, имен сборок и пр. необходимо для того кто хочет развиваться в данном направлении, а не писать всю жизнь "Hello world". И раз уж это написал эпамовец, то расскажу про них: у них знание базовых вещей платформы, далеко не единственное, но одно из основных требований для принятия джуниора.
Я в эпам не попал по причине плохого английского, а сейчас работаю в компании, за пол года англ ни разу не понравился. А ни по условиям, ни по зарплате с эпамом никаких различий. |
Автор: gmx 29.7.2011, 11:04 |
Модератор: Сообщение скрыто. |
Автор: Экскалупатор 29.7.2011, 11:28 |
![]() gmx, ты вот скажи, с чего ты решил что в этой ветке форума кому то интересны твои познания в С++? это тема не этого топика и даже не этого раздела. го в флуд и там делай что хочешь... ты лучше свой пример исправь, что бы он работал, а потом будешь учить остальных и показывать свои глубокие познания, а пока что видно что даже если и знаешь названия то применять не умеешь... а то мне прямо страшно от таких слов: вдруг действительно стану любить Си и начну в проекте использовать unsafe тогда и без работы недолго остаться. к тому же я уверен, что лучше Рихтера не пройдешься... оставь лучше этот холивар, он тут мало кого тронет. |
Автор: gmx 29.7.2011, 11:36 | ||
1). уже сказал, что до выходных сделаю пост - раз 2). пример с таким же кодом на С/C++ рабочий, и сам ответить почему .net-кун, из-за чего среде .net будет ошибка во время исполнения , а в нативе нет? прежде, чем комментить надо и про др. вар-ты не забывать, код как раз-таки именно такой взят и был специально и исправлять в нем нечего, поэтому сначала учимся глубже думать, а потом комментарии вешать, ок? все, более подробный ответ по всем - будет до выходных |
Автор: Экскалупатор 29.7.2011, 11:46 |
![]() gmx, что то мне сдается что с таким подходом ты тут не надолго... и попытки отмазаться словами "код как раз-таки именно такой взят и был специально" у тебя не получится. ты выложил пример, описал вопросы, пример г... и не работает, так что это говорит о тебе как о г-разработчике или как о троле. что в принципе не исключает присутствия и того и другого. детский сад тут развел какой то, не хватало что бы еще сказал потом: "ты меня как бы убил, но я как бы из последних сил!". не приставай к людям. p.s. мне кажется что эту тему пора выпилить, ну или как минимум закрыть. |
Автор: gmx 29.7.2011, 11:56 | ||||
так, это ты не ответил мне почему NullReference? я четко написал код, и что код работает на С++ можешь проверять. у меня отмазок - нет, ты мне до сих пор ответа не смог дать, и все это видно значит ты: 1). ни разу не видел в глаза односвязные списки ( это по поводу гавна ) 2). не знаешь из-за чего именно NullReference, и что в свою очередь может показать твои незнания в организации памяти, да и самой работы .net ( а это по поводу, почему это работет в нативе , а в .net - нет )
не скажу, потому что ты меня НЕ убил, а сам не можешь ответить на два вопросы выше так почему код рабочий на нативе и почему в .net ошибка среды исполения? отвечай и сам неувиливай |
Автор: lamber 11.8.2011, 11:29 |
Код который привел gmx формально верен, но не работает, кто-нибудь может объяснить почему, данный код был запощен на MSDN http://social.msdn.microsoft.com/Forums/en-IE/netfxbcl/thread/f0d7459b-e749-4ee7-ab88-894ad2cc926d ответа так и не было получено. По каким-то причинам список собираются GC и как этого избежать. |
Автор: WarHog 11.8.2011, 14:45 | ||||
При чем тут GC? замени
на
место будет выделяться не в стеке, а в хипе и все будет прекрасно работать |
Автор: ДобренькийПапаша 11.8.2011, 20:36 |
Может я скажу глупость, но Interop это не первое и не второе и даже не третье и даже не четвёртое, что должен знать .NET разработчик, ибо от унаследованного кода, начиная со второй версии .NET почти полностью освободился. Ну и потом, gmx тут блещет (как-бэ) познаниями в C++, но, что самое смешное - посади такого "знатока" за приличный проект на .NET, такого ###кода оберёшься, мама не горюй - С-style forever. Я уже как-то об этом говорил, что у программисты С++ и C#.NET разными вещами абсолютно занимаются. Ваши знания в низкоуровневом устройстве ОС не помогут в разработке крупного корпоративного ПО. Так что пишите на С проги для микроконтроллеров и успокойтесь. Не надо лезть не в свою песочницу со своими глупыми идеями (обладая непомерным ЧСВ, помимо всего прочего, что программиста ни разу не украшает, вообще). |