![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
ArniLand |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
Подскажите, что необходимо знать для того чтобы устроиться junior C# developer.
|
|||
|
||||
gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
Это из темы инструктора 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 Это сообщение отредактировал(а) gambit - 28.7.2011, 13:19 |
|||
|
||||
gmx |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 28.7.2011 Репутация: нет Всего: нет |
gambit, не согласен, потому что:
1-ый пункт - его слабо знают даже системные архитекторы в консалтинговых компаниях ( не смотря на громкое название должности ), в R&D Intel, к примеру, знают. Так что, тут нужно нюансы все учитывать. Что системный архитектор в ООО "Мухосранск-компани" или в Интел - это разные вещи, собственно относится, как и к junior, везде разный уровень серьезности. Хотя, нет... Вообще, несогласен с пунктами всеми, т.к. .net-программисты обычно имеют кривое понимание работы системы в целом... и тут можно затрагивать все аспекты, что и модель OSI плохо знают, и как вообще устроена сеть, как реально разбираются сетевые пакеты, и как устроена работа процессов в ОС, и как вообще устроена файловая система и тд и тп, и на чем сам был написан Silverlight любимый у .net-фанатов ( не только в плане ЯПа, а что NPAPI мало кто знает используется в ряде браузеров для создания подобных технологий ), да и вообще не владеют порой даже простейшими моделями построения данных, как связные списки ( LinkedList<T> в .NET - это не то! ). Да, и вообще среди .net программистов не так много людей, которые закончили технические вузы по профилирующей специальности. Да и работы с указателями норм - нет... ![]() Кстати, вот интересно, как раз коль про такие основы, как связные списки затронули ( что, след. код будет фильмом ужасов для C#-программистов - это ясно, но все же интересно, как разберете ): Задачка: построить односвязный список при помощи указателей , а не встроенного класса из Collection.Generics, и рекурсивно спуститься по нему, при этом изменяя каждый раз значения. И код ниже, с еще задачами: "Почему после AddNewElement(&list, int); - нельзя будет просмотреть список *list?" и "Какие можно отключить сборку мусора ( или отложить ее до завершения опред. действий?"
|
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
gmx, ничего супер мега сложного в твоих примерах нету, первый курс решает подобные. а за использование "unsafe" на некоторых конторах можно и по голове больно получить. несомненно что знать нужно много, но junior он на то и junior что бы учиться...
да и зачем если в этом языке их нет? если нравиться Си/С++ то зачем тогда тебе .net? и если ты считаешь, что не знать первый пункт для программиста это нормально то я не хотел бы работать с таким программистом. Это сообщение отредактировал(а) Экскалупатор - 28.7.2011, 15:40 |
|||
|
||||
gmx |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 28.7.2011 Репутация: нет Всего: нет |
где я сказал КОНКРЕТНО , что не надо? я написал. что .net программисты обычно реально не знают, как это работает, а не то, что это не надо знать, смысл был в том, что .net программисты все равно не знают реального ус-ва памяти
ок, тогда отвечай на мои задачки , написать "ничего сложного - нет" - это не ответ, за одно и посмотрим, как .net-программист ответит на это
первый курс НЕ решает подобное и на других курсах, в нормальных вузах C#/.NET вообще не преподают, т.к. не несет академической ценности - это раз, кривое - это два первый курс обычно штудирует алгоритмы и опред. разделы математики и лабы выполняют (о Боже!) на bash или подобном, где нет возни с памятью, т.к. на 1-ом курсе это не нужно Вы из какого ВУЗа? фак-т && спец-ть (или какой закончили)?
Они есть. Кстати, зачем они нужны в C# ?
Видимо, это конторы из рязряда, где на Sharepoint отмывают деньги. Это сообщение отредактировал(а) gmx - 28.7.2011, 15:47 |
||||||||||
|
|||||||||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
1. что подразумевается под словами "посмотреть список"? в дебагере не видно? потому что указатель в неуправляемую память... 2. GC.KeepAlive. это как бы кошерно, но "утечку памяти" вполне реально вызвать и самостоятельно, хотя и не совсем тривиально. ps. твой код не работает, PrintAll(list); генерирует "NullReferenceException" Object reference not set to an instance of an object. и таки да, динамические структуры это первый курс, второй семестр. там где бинарные деревья и пр. Это сообщение отредактировал(а) Экскалупатор - 28.7.2011, 16:31 |
|||
|
||||
WarHog |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.10.2007 Где: Воронеж Репутация: нет Всего: 2 |
А С++, стало быть, прям и несет несомненную академическую ценность ![]() Луговского на вас нет, gmx --------------------
|
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
![]() напомню что тема топика несколько в другом... по теме: ArniLand, ориентируйся на конкретную контору, так будет надежнее, посмотри что они пишут(на сайте конторы обычно перечисляют продукты которые они пишут/писали, типа рекламы что то) ну и можно посмотреть что для этого чаще всего нужно, какие технологии используются и пр. от себя добавлю что в разных местах разные требования, где то нужно просто знать что существует XML и этого для начала будет достаточно, а где то нужно будет уметь рассказать что это и для чего это можно использовать в реальных проектах. знаю что непременным условием остается иностранный язык, но опять же на разных конторах к этому относятся по разному... |
|||
|
||||
gambit |
|
||||||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
В вы каким образом связаны с .net??
Да, я бы тоже не стал с вами работать. Базовое понимание механизмов сборки мусора, рефлексии, имен сборок и пр. необходимо для того кто хочет развиваться в данном направлении, а не писать всю жизнь "Hello world". И раз уж это написал эпамовец, то расскажу про них: у них знание базовых вещей платформы, далеко не единственное, но одно из основных требований для принятия джуниора.
Я в эпам не попал по причине плохого английского, а сейчас работаю в компании, за пол года англ ни разу не понравился. А ни по условиям, ни по зарплате с эпамом никаких различий. |
||||||
|
|||||||
gmx |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 28.7.2011 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
![]() gmx, ты вот скажи, с чего ты решил что в этой ветке форума кому то интересны твои познания в С++? это тема не этого топика и даже не этого раздела. го в флуд и там делай что хочешь... ты лучше свой пример исправь, что бы он работал, а потом будешь учить остальных и показывать свои глубокие познания, а пока что видно что даже если и знаешь названия то применять не умеешь... а то мне прямо страшно от таких слов: вдруг действительно стану любить Си и начну в проекте использовать unsafe тогда и без работы недолго остаться. к тому же я уверен, что лучше Рихтера не пройдешься... оставь лучше этот холивар, он тут мало кого тронет. |
|||
|
||||
gmx |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 28.7.2011 Репутация: нет Всего: нет |
1). уже сказал, что до выходных сделаю пост - раз 2). пример с таким же кодом на С/C++ рабочий, и сам ответить почему .net-кун, из-за чего среде .net будет ошибка во время исполнения , а в нативе нет? прежде, чем комментить надо и про др. вар-ты не забывать, код как раз-таки именно такой взят и был специально и исправлять в нем нечего, поэтому сначала учимся глубже думать, а потом комментарии вешать, ок? все, более подробный ответ по всем - будет до выходных |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
![]() gmx, что то мне сдается что с таким подходом ты тут не надолго... и попытки отмазаться словами "код как раз-таки именно такой взят и был специально" у тебя не получится. ты выложил пример, описал вопросы, пример г... и не работает, так что это говорит о тебе как о г-разработчике или как о троле. что в принципе не исключает присутствия и того и другого. детский сад тут развел какой то, не хватало что бы еще сказал потом: "ты меня как бы убил, но я как бы из последних сил!". не приставай к людям. p.s. мне кажется что эту тему пора выпилить, ну или как минимум закрыть. |
|||
|
||||
gmx |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 28.7.2011 Репутация: нет Всего: нет |
так, это ты не ответил мне почему NullReference? я четко написал код, и что код работает на С++ можешь проверять. у меня отмазок - нет, ты мне до сих пор ответа не смог дать, и все это видно значит ты: 1). ни разу не видел в глаза односвязные списки ( это по поводу гавна ) 2). не знаешь из-за чего именно NullReference, и что в свою очередь может показать твои незнания в организации памяти, да и самой работы .net ( а это по поводу, почему это работет в нативе , а в .net - нет )
не скажу, потому что ты меня НЕ убил, а сам не можешь ответить на два вопросы выше так почему код рабочий на нативе и почему в .net ошибка среды исполения? отвечай и сам неувиливай Это сообщение отредактировал(а) gmx - 29.7.2011, 11:57 |
||||
|
|||||
lamber |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 20.12.2008 Репутация: нет Всего: нет |
Код который привел gmx формально верен, но не работает, кто-нибудь может объяснить почему, данный код был запощен на MSDN тут ответа так и не было получено. По каким-то причинам список собираются GC и как этого избежать.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |