Что должен знать C# junior для того что бы его взяли работать программистом?
Хочется услышать мнение тех людей, которые принимают на работу. Соответственно и литературу посоветовать, может быть еще дополнительные источники информации, что почитать? А самое главное, не поздновато начинать в 26 лет? Заранее спасибо.
147 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівНадо знать всё ! Феерически всё, смотришь в вакансию там бывает написано типа : проект на WPF вот по этой теме надо знать всё, а если на ASP.NET то вот по АСП драть и будут ! А это всё говорит о том что сам язык C# ты должен знать писец как круто, а не просто if,while,for, спросят обязательно разницу вызова обычного метода и виртуального, а редкостные умники заставят изменить перименную в запакованной структуре не распаковывая её итп ... Троелсен+Рихтер вот что тебе поможет устроится ну ещё пол года времени если ты не дeбил !!!
Для джуниора превосходные знания не ожидаются. Нужно иметь достаточный охват и знать где посмотреть.
2013 год, прошел 3 собеседования на Jun C# Dev. занимало по времени от2-х до 3,5 часов за это время меня успевали спросить от и до проходились по всем технологиям с которыми можно работать в среде .NET в плоть до того : «почему в стеке под поток выделяется всё равно 1мб даже если мы используем параметр maxStackSize ?» Отвечаешь что из-за архитектуры х86, и сразу следующий вопрос: «а на какой архитктуре можно выделить больше мегабайта ?» - та откуда я бл*ть знаю, оно нафиг не надо ! Я ещё могуть понять вопросы типа : «Что собой представляет реализация атрибута на физическом уровне» или «Как получить все возвращаемые значения при вызове цепочки делегатов?» — это ещё ладно и возможно надо знать, но такое как : «... что произошло в этом сегменте памяти при эксепшене в статическом конструкторе» — это извените бред ! А вы мне говорите что от джуна многого не ожидается — «ЩЯС» так бы и подумал если бы не ходил на собесы ... Особенно любят по ASP.NET и WPF пройтись там много где оступится можно ! Короче не знаю как у вас там с Java это всё проходит но по «Шарпу» дерут хорошо и не всякую фигню типа чем отличается абстрактный класс от интерфейса !
О_о
Такое ощущение, что берут на работу техлида/архитектора. Судя по продолжительности, интенсивности и сложности вопросов.
Я вообще был в шоке и долго бился в истерике после такого. Выходные провожу на СтекОверФлоу и с книгами по архитектурам и технологиям .NET что бы хоть как-то ответить на подобные вопросы !
В итоге на собеседование списано куча рабочих часов.
dou.ua/...ic/8819/#404310
меньше эмоций и все будет ок
никто не знает все — а в реальной работе на проекте реально необходима меньшая часть
Вы совершенно правы !
Это жесть жестяная ! Этож надо же ...
Знаю реальные примеры, когда принимали на работу на основе личных предпочтений ... и не кого-то одного.
Афигеть, даже в мыслях не было что такое возможно !
Это признак того, что человек не слишком компетентен — и в компании не все ок.
У них уже просто есть кандидат, которого возьмут без вопросов, а вас нужно было попытаться «слить».
Другого объяснения таким глупым придиркам я не вижу. Как на физическом уровне обрабатывается память при exception-е никакого значения не имеет.
Пытаюсь придумать что такого можно писать на C#, чтобы
и регулировать размер стека ...Пока никаких идей нет. Вот интересно, если у них джуны такое пишут, то что тогда делают мидлы, сеньоры и лиды? А архитектор небось сразу бинарным кодом гадит? — многоплатформенно ...
Архитектор на Win XP не глядя собирает и тут же патчит KDE2 под FreeBSD.
Это не Архитектор а Президент )))
CEO -> Board Chairman (тот же президент)
Адский ад!
Впечатление, что синьера на написание самого ASP.NET в MS собеседуют.
Это особо доставило:
У меня ответ тут только один в голове крутится: «гребаный .net живет только на гребаном виндузе который живет только на х86, так что идите в ж!».Мне нравится ваш ответ, но когда я ответил: «а нах*й оно мне надо знать», меня попросили поддерживать субординацию !
Откуда они знают — может Вы с военки и майор запаса а собеседующий и до сержанта не дослужился? ;)
Короче — не берите в голову. Похоже что у этих слишком большая честь работать для нормального человека.
Ну вообщем да, люди разные незнаешь на кого нарвешся по жизни !
С тем же набором внутренних MS тараканов, про которые спрашивали?
stackoverflow.com/...size-under-mono
stackoverflow.com/...e-in-production
www.atalasoft.com/...ent-part-3.aspx
msdn.microsoft.com/...y/5cykbwz4.aspx
Mono не только на x86 ...
Но и стек у него необязательно 1Мб (по первому же примеру вроде как два по умолчанию).
Строго говоря — mono это другая технология (на других исходниках, чем MS), мимикрирующая .net для портирования и прочих утех.
И вангую что набор багов и фич у нее тоже отличается.
А что имели ввиду собеседующие — вопрос так же непонятный. )
первый пример 64битный
в большинстве случаев стек лучше не трогать
собеседующие не знали чем заняться — ну не могу с ходу придумать каким образом джун дотнетчик будет размер стека в продуктовом коде менять ...
кстати, эта ограниченность дотнета вызывала лютый батхерт у всей нашей группы, когда проходили рекурсивные алгоритмы и постоянно ловили StackOverflow Exception. А препод все равно настаивала на том, чтоб писали рекурсию, никаких циклов
Ограниченность не в размере стека, а в остуствии рабочей реализации хвостовой рекурсии в компиляторе.
Если мне не изменяет память, при сборке под платформу x64 C# умудрялся запилить хвостовую рекурсию (надо только пошаманить в настройках проекта и включить все оптимизации).
ранее это поддержка была просто на уровне IL но не рантайма(мне не известно что бы оно было в рабочем варианте ранее), в новом JIT появилась такая поддержка, но с нюансами.
Хз, пишут что еще в 2007 работало blogs.msdn.microsoft.com/... tail-call-jit-conditions
работало — это слегонца преувеличено.
И сути мало меняет, в С# до сих пор нету стабильно работающего компилятора для того что бы полагаться на хвостовую оптимизацию.
насколько мне известно, в шарпе нет хвостовой рекурсии.. и даже на стек оверфлоу не нашла, как ее включить.. все ответы были: ну нет в шарпе хвостовой, не нравится — пишите на f#
вывсеврети
public static void Hello(int input) { if (input % 1000 == 0) { Console.WriteLine(input); } Hello(input + 1); }Visual Studio 2013
Target Framework: 2.0
Platform target: x64
Language version: 3.0
Запуск в режиме Release, по содержимому консоли очевидно, что работает хвостовая рекурсия.
IL:
.method public hidebysig static void Hello ( int32 input ) cil managed { // Method begins at RVA 0x2074 // Code size 24 (0x18) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldc.i4 1000 IL_0006: rem IL_0007: brtrue.s IL_000f IL_0009: ldarg.0 IL_000a: call void [mscorlib]System.Console::WriteLine(int32) IL_000f: ldarg.0 IL_0010: ldc.i4.1 IL_0011: add IL_0012: call void Tail.Program::Hello(int32) IL_0017: ret } // end of method Program::Helloкогда-то пыталась тот алгоритм запустить в релизной версии, но все равно выхватила StackOverflowException, собственно приняла тогда решение выполнить задачу на плюсах,сдала экзамен и больше к ней не возвращалась
да я в курсе, собственно, половину лаб сделала на плюсах по этой причине... как другие справлялись без понятия
Можно же увеличить размер стека
Фига себе. Я прошёл примерно 20 собеседований, но такого никогда не было.
Welcome to Dnepropetrovsk ... :)
Это все экология.
+100500 :)
От экологии C# девелоперы быстро мигрируют и в итоге спрос превышает предложение на рынке Днепропетровска, поэтому отбирают лучших из лучших и от джунов требуют уже senior-ских знаний.
Всё может быть !
Переезд не?
Вы просто читаете мои мысли, в следующем году планировал свалить !
Удачи и успехов в новом году)
Спасибо, вам так же всего лучшего в2014-м и с Наступающим ...
Ну і як успіхи? Сподіваюся, за 3 роки вдалося пробитися
через тернив дотнет? :)У меня как-то спросили принцип работы Entity Framework под капотом и рекурсивные скл запросы, как применяются, в каких случаях и в чем приимущества. Тоже на джуна...а потом собеседующийся сам признался, что вопросы не на джуна
Не работайте с мудаками
я еще вот о чем задумалась — возможно, они уже нашли идеального кандидата и просто проверяют есть ли кто-то круче. Поскольку, не красиво отменят уже запланированные собеседования, они задают специально такие вопросы, чтоб еще раз убедиться, что тот кандидат — идеально им подходит
Английский надо знать хорошо, школьную программу математики, уметь общаться, уметь писать тексты хоть немного.
www.quizful.net/...sharp-developer
Доброго времени всем ! Не хотелось создавать новую тему по этому решил поднять старую ! Люди сам учу С# после С++ который учил в универе хочу добиться уровня Junior ! Читал здесь подобную ветку только по Java и там было не мало конкретных ответов, например :
«Что должен знать Junior Java Dev что бы пройти собеседование ?»
Ответ «Oksana Chuiko» :
1) Core Java2) JSP, Servlet, JSTL
3) JDBC, SQL
4) TomCat
6) HTML, JavaScript, XML
7) Maven, ANT
8) Subversion, Git
9) Eclipse
10) Patterns
И таких не мало конкретных ответов !
Хотелось бы подобное услышать по .NET специализации ! Тем более что сейчас как я понял в основном нужны Java-разработчики и много вакансий Java Jr. Dev, а на позицию C# меньше людей требуется и по этому требования возможно выше и вакансий junior C# очень мало, тоесть хочется конкретно знать в каких технологиях необходимо разбираться кроме алгоритмов и структур данных данного языка ! Может я что-то упустил в этой ветке форума но всё же ей более3-х лет ! Буду рад вашим ответам и дружескому общению ! Спасибо.
Вот список вопросов для junior C#, там же есть разные тестовые задания.
Огромное спасибо очень признателен за помощь, сам искал но даже подобного не нашел !!!
ASP.NET по любому учить прийдеться ...
Напомни когда буду дома я тебе кое-что дам по .net
IntelliJ IDEA — forever
P.S. знаю одну продуктовую организацию, где одним из главных требований является превосходное знание IDE Eclipse. Почему не Spring, Maven, шаблонов или Javascript спросите вы? Да потому что проект клонируется между разработчиками путем копирования папок из Eclipse в Eclipse со всей тучей спец. файликов и плагинов, билды на CI делаются раз в месяц и неделя уходит на то, чтобы он таки сбилдился.
Вообще если чувак будет компилить из командной строки для себя и заливать в репозиторий исходники, то вообще можно без IDE обойтись (в теории разумеется).
Мой совет — увидите в вакансии или услышите на собесе привязку или хотя бы намек на привязку к IDE — убегайте оттуда как от чумы. Иначе деградируете как разработчик.
По остальным пунктам возражений нет, все по делу.
чувак, ты меня испугал.
я тоже ненавижу эклипс и коммунистов, а мой амер заказчик принуждает на эклипсе кодить.
А как твой заказчик узнает на чем ты кодишь?
Ты же подливаешь только исходный код (я надеюсь) в репозиторий?
Или он следит через вебку за тобой?
та палятся иногда через тимвьюер.
или расслабленный джун лажанёт чегонть, ему-ж не хватает времени код вылизать- то всестороннее развитие, то партеечек 9 в теннис (чтоб не засидеться), ну и обед полтора часика (дел-то много). А на мороз джунов сейчас не выгоняют, целуют в жoпу аж пока не вырастет или не сбежит сеньёром куданть.
а эклипсой я умею но не могу- там надо руки держать в положении словно они из того места куда джунов целуют.
Это да, я когда-то даже выделил Eclipse-е 16 гб рамы и 10 гб JVM, все равно с*ка тормозит. IDEA на 4 гб + JVM 6 гб все летает.
Java — такой язык, сколько бы оперативной памяти у тебя было, она сожрет ВСЁ.
по остаткам: 2 гб зажрала винда, 1 — хлам и 3 гб — браузер. Итого 32 гб под завязку.
Сейчас по потребление памяти редко превышает16-17 гб.
смекалка на самом деле очень полезная штука, когда нужно заниматься чем-то больше чем просто тупым исполением того что говорят... даже взяв баг-фикс которым тут пугают джунов в нем можно проявить кучу мест для смекалки... ведь понять в чем проблема, особенно большой и не очень хорошо написаной системы, да и исправить, а не костыль поставить тоже нужно с умом..., а тут уже и до рефакторнга, оптимизаций, дизайна итд... не далеко и можно хорошо расти даже в среде Украинского аутсорса, если есть желание и голова на плечах...
на синьерские обычно уже приглашают с domain exp или засветившихся в чем-то другом.
2plochish думаю все это слабовато для их требований:)
Знати треба найважливіше — доведеться багато «вкалувати», розбиратись по ходу, а халява (як це часто бувало раніше) вже не пройде.
Всю решту інформацію можна спокійнісінько дізнатись з сайтів по працевлаштуванню.
Осталось узнать, в каких компаниях вообще нужно и если нужно (!), то джуниорам (!) дают это на реализацию. LOL. Я конечно понимаю, что такие задания помогают проверить смекалку человека, но в работе от него потом требуется совсем другое.
Да, помнится в8-ом классе на школьной олимпиаде «длинное» деление реализовать нужно было...
я бы на твоем месте срочно бы отправил в Майкрософт резюмэ
Я плотно занимаюсь программированием около месяца (ну в школьном возрасте еще увлекался), но уже могу решить эти задачи.
Т.е. я не могу понять это шутка или джуниор это такой мизер знаний?
Как говорится — «Когда-то надо начинать», пускай будет багфикс и маленькая зарплата. Для меня, допустим, другого варианта набраться опыта нет. Кстати буду рад выполнить какое-то задание, если дадите оценку качеству кода и уровню знаний.
Сейчас junior — это ресурс, на котором пытаются экономить.
Поэтому зарплата должна поражать работодателя своей скромностью,
Тогда шансы поступить на работу велики.
после полугода работы надо просить «выровнять» зарплату.
Но это для отчаявшихся. Мне искренне жаль начинающих в наше время.
А потом посадят юный талант за обычный багфикс...
спасибо
1. Перемножить 2 длинных числа, которые не помещаются в лонг.
2. Инвертировать строку.
Пример:
Ввод — 1.00
Вывод — one dollar
Ввод — 1234567.89
Вывод — one million two hundred and thirty four thousand five hundred and sixty seven dollars eighty nine cents
Оценивается: скорость написания, качество кода, правильный вывод для всех чисел.
Такое задание было на Cargowise (к сожалению, он закрыл офис в Киеве)
А не у кого нет примера тестового задания для junior?
Отпуск + Командировки + Работа ~ 2, 5 мес.
А что ж вы 3 месяца делали?: -)
Спасибо! Буду пытаться перейти!
С учетом уровня отечественной индустрии — смело переходите.
Если смысл в 35 лет переходить с системного администрирования в программирование на C#?
Якщо ви хочете знайти роботу, то спочатку треба самонавчитись хоча б до такого рівня, щоб вас взяли на курси. Завжди цікавило скільки ви б готові заплатити за місяць за курси 2 рази в тиждень по 2 години?
Ви.NET — чик? Якщо ні то не пхайте сюди свої структури ітд. В дотНеті як раз знання технологій більш важлива ніж розуміння як воно працює, от такий парадокс=)
Для людини рівня trainee.
Это как-то мелко. Можно давать задание по лучше.Например «Придумать способ заработать для нашей фирмы много денег и реализовать его».
Знания лишними не бывают. И лучше один раз увидеть, чем 20 раз прочитать)
P.S. На співбесіді з однією відомою фірмою я почув фразу після того, як вони переглянули резюме: «ти на всьому цьому писав? А навіщо? ». Інший приклад — шукаємо талановитого PHP гуру зі знанням Java та ASP.NET!!!
1. Рівень 1... Знання мови, технології на рівні теорії, синтаксису — з таким співбесіда навіть не почнеться.
2. Рівень 2. Розуміння і знання алгоритмів, складності. Вміння запрограмувати, чи адаптувати знайдений з відкритих джерел.
3. Паралельно з попереднім. Якщо ти не embedder, то ООП, шаблони проектування, вміти реалізувати і розуміння для чого вони.
Ось приблизно після
Але враховуючи теперішні часи цього буде замало і хочеться побачити в людини якісь особливі навики, це не обовязково щось повинне бути ектраординарне, але я хочу бачити що в людини є ширший за одну-дві технології кругозір і вона здатна вийти за межі і не застопориться, коли за 2−3 роки відбудеться зміна технологій.
Особливий плюс при вмінні працювати з голим Win32 API, COM (для теперішніх Junior-ів це зараз буває архіскладна математика, хоча толковій людині досить раз прочитати Ріхтера), розуміння як працює компілятор (Dragon Book), в що буде трансльований код, організація памяті, стек (останні два це взагалі-то must-have, хоча для користувачів VM це тьомний лєс).
Если есть опыт разработки ПО (Делфи, ВБ, с/с++) то я бы посоветовал начинать с сертификации мелкософта. Там много полезной инфы для начинающего. Если опыта разработки нет — тогда надо начинать с начала... Алгоритмы, структуры данных, многопоточность, как построенна современная ОС, базы данных, сети. В общем это скорее набор для человека без ВО в ИТ... Я думаю если у человека есть диплом программиста, то он полюбому что-то должен был писать (лабы, курсовые, диплом) и можно сразу переходить к сертификации, Рихтеру. Если человек с ВО в ИТ, но никогда не писал лабы, курсовые, и вообще не программировал — ему стоит забыть про программирование и идти лучше в тестеры или системные администраторы — там тоже достаточновакансий и неплохо платят.
Мне кажется главное не проект, а программисты, которые над ним работают. Для юниора основное это получение опыта от более опытных коллег. Если в команде одни олени — это повод поменять работу. Насчет стремления согласен — без желания ничего не получится, поэтому книги по программированию должны стать основным чтивом во всех возможных местах:)
1. На собеседовании не стоит задавать глупых вопросов, задавть только то что действительно интересует
2. Нужно доказать, почему компании лучше взять к себе именно тебя, а не твоих конкурентов
3. Нужно усиленно готовиться, повышая технический уровень, что-то постоянно читать, делать, експерементировать, анализировать, создавать себе же кучу вопросов, находить на них ответы.
4. Если C# разработчик, то в первую очередь нужна книга исклютительно «Г. Шилдт — Полный справочник по C#» — и только она ИМХО наилучшая для новичка, когда дойдеш до среднего уровня читай Рихтера
C# и.NET в общем легко даеться изучению
Я впервые взялся за это одной весной изучив основы и создав первый проект, летом уволясь с работы продолжал усиленно изучать.NET, осенью пошел на новую работу, там сразу на средний уровень и на соответственную зарплату. Правда до этого я программировал на Delphi.
Новичку скажу так: если имеються навыки в простом структурном программировании, то за год можно подняться до среднего уровня в C#.NET, если конечно повезет с работой.
И еще очень важный совет из личного опыта: искать нужно НЕ супер-модную фирму чтобы там устроиться, а интересный проект чтобы в нем взять участие, если интересног опроекта нет — уходи с той работы на другую
2 Sergey_P: Я начинал именно с Троэлсена, сложные темы можно пропускать и потом к ним вернуться (или в другой книге вычитать).
Книга — Шилдт Г. Полный справочник по C#
Хочешь изучать C# и.NET, но не знаешь с чего начать? — msug.vn.ua/...2/26/c-net.aspx
Еще посмотри здесь — books.msug.vn.ua/CategoryView category, C.aspx
Я не имею ввиду что Эндрю Троэлсен — С# 2005 тяжелый в чтении, я просто спрашиваю, что читать с буквально нулевыми знаниями C#
2 Sergey_P, Почитайте Рихтера CLR via C#, тогда вы поменяете мнение, что читать Троэлсена тяжело.
Посоветуйте, какую литературу можна почитать по С#, что бы все было написано начиная с елементарных основ (синтаксис, циклы, массивы).Потому что сходу читать Эндрю Троэлсен — С# 2005, тяжеловато для начала. И второй момент, есть ли Standard ECMA-334 C# Language Specification на русском?
Надо хорошо знать core — фундаментальные основы языка, основы алгоритмов, хорошо работать с коллекциями и генериками, понимать многопоточность. Если все это будет — то остальному научишься. Кстати, попробуй посмотреть это — Тесты C#, — там приближенные к практике вопросы
По вашей логике, при любом переходе с повышанием квалификации вам должны отказать, так как у вас нет опыта. Типа: вы хотите работать в Google? А почему у вашей конторы нет такой капиталлизации? Что вам мешает её достичь? Вы плохой, негодный программист, так как в ваши годы Сергей Брин...
junior — это первый кандидат на выполнение работ, которые никто больше не хочет делать, а надо. А такие работы есть практически всегда.
junior это состояние духа — я мало что сделал, но очень хочу научиться. Даже если опыта практически нет, то любой здравомыслящий человек спросит -, а почему ты его нигде не получил. Есть open-source, есть куча сайтов где предлагают сделать что-то мелкое, но нужное, причем за деньги, причем ты сможешь написать в резюме — делал то-то, заказчик остался доволен. Проблема не в том что это невозможно, а в том что только одним желанием ничего не получить.Есть ОЧЕНЬ много возможностей получить заветную строчку в резюме...
Мыслим логически. Ты хотел устроиться работать даже бесплатно, чтобы получить опыт. eugene_n тебе постом выше дал работу, за нее тебе никто не заплатит, ты получишь опыт. Что тебя смущает?
1. Что не дали полное техзадание? Бывает нужно импровизировать.
2. Что не сможешь подтвердить опыт трудовой книжкой? Если устроиться куда-то и уныло просидеть там несколько месяцев и все равно не иметь знаний, но иметь трудовую — это будет не лучше.
И вообще инициатива нравится всем
+100
такое ощущение, что человеку весь мир обязан)
может стоит пойти туда где вам кажеться лучше?
То есть по Вашему прежде чем где-нибудь устроиться джуниором, нужно сначала поработать менеджером проекта и тимлидом, а так же менеджером по анализу рынка ПО, и если это получится то можно и в джуниоры пытаться?
Мне кажется, чтобы выйти из этого замкнутого круга, вам надо создать работу для себя.
Вместо того, чтоб оббивать пороги сядьте и напишите какую-нибудь шароварную программку.
Грамотные рекрутеры ищут спецов именно через сайты фривара/шаровара — там можно посмотреть на реальные скиллы.
А, как я понимаю, времени и упорства вам не занимать.
«готовьтесь тщательнее к собеседованию.»
На собеседование сначала нужно попасть, для этого в резюме должна быть запись: «опыт- n лет».
Готовиться к собеседованию тоже особо не трудно, нужно только правильно ответить на вопрос: «В каких коммерческих проектах учавствовал и что там делал? »
Второе, что хотела сказать, часто сейчас в мелких городах опыт у людей не такой уж и опыт с официальной точки зрения (никаких записей в трудовой и «белого» дохода), поэтому гипотетически можно написать в резюме себе все что угодно. Вот у меня например, полгода опыта в ASP.NET, который я не смогу доказать иначе чем своими знаниями, но тем не менее предложения есть. Так что двойственная ситуация получается.
Что могу посоветовать точно — так это пишите для себя и готовьтесь тщательнее к собеседованию. Удачи!
на одной харьковской фирме так и сказали «поработайте пол года в коммерческом проекте и мы будем рады с вами сотрудничать»)
А Вы спрашиваете, что нужно знать! Не знать нужно, а иметь опыт и стаж (если это не одно и тоже).
Не буду приводить пример Кнута — он определенно не из нашей галактики:)
Linus Torvalds вполне неплохо совмещает разработку ядра ОС и системы контроля версий. Попутно как-то присылал патчи в проект Gnome, причем если я правильно помню — связанные с GUI.
Tom Lane хорошо чувствует себя и как один из основных разработчиков ПО для стандарта JPEG, и как член PostgreSQL core team.
Прошу прощения за пафосные примеры, но просто других специалистов, которых знаю я, наверное не знаете вы, и наоборот.Я знаю одного разработчика, говорящего на 4 языках, свободно ориентирующегося в C, Perl, Javascript, HTML и SQL, который к тому же является инструктором карате, но это слегка офтопик:)
Предполагаю, что по настоящему экспертные знания в какой-либо области нельзя получить не выходя за ее пределы.
Главное, что нужно в первую очередь — уметь попасть на собеседование. Если можете это делать чаще чем я, а у меня это получается раз в 1.5−2 года, то можно развиваться дальше, и начинать учиться проходить собеседования. А языки и технологии можно учить на работе, когда устроитесь.
Это что-то из области фантастики. Может они пошутили?)
Знаю 4 людей, які признавались що не прочитавши жодної книжки стали програмістами, для проходження співбесід прочитали вступні розділи, або з вікіпедії про ООП. Тому хз... як то їх відбирали=))
А почему Гради Буча никто не советует? ^_^
Что-то мне кажется, что в данный момент времени мало будет прочитать все выше указанные книги. Книги — уровень trainee. Без опыта человека не рассматривают как junior’a. Это все ИМХО. Если я не прав, пусть люди, которые принимают решения о принятии человека на работу, меня поправят.
На моїй канторі впринципі найбільше позвільняли.NET-чиків, тому на стадії джуніора я б не радив так строго вибирати хліб.
А щоб стати джуніором.NET треба як мінімум знати С# (.NET 2.0), WinForms чи ASP.NET 2.0 та ADO.NET і бажано SQL, а тоді можна щось думати. Хоча на С-шарпі можна програмувати взагалі не знаючи його, бо «він саме покаже де кому поставити»...))
А поповоду знань типу чи потрібно вчити Кнута ітд, то всьо залежить від твоїх схильностей і бажань. Знаю таких людей які захоплюються «низькорівневим» програмуванням на С-шці, знав одного який взагалі казав що Ассемблер це легко, а.NET йому дається важко бо треба знати які методи є в готових бібліотеках ітд. Ще можу добавити що знання матиматики є звісно хорошим, але в програмуванні під.NET для деяких аплікацій воно взагалі не потрібно, тут часто скоріше треба швидко читати і ловити на льоту бо все впринципі готове -написане, просто треба використати певні методи чужого класу=). А от в задачах на С-шці скорше мабуть прийдеться більше думати башкою, хоча це ще не означає що з нього буде хороший С-шарпіст, або наприклад вїхати в бізнес логіку інколи може бути не так легко, що є не залежним від твого рівня програмування і воно може бути найважливішим.
Плюс не раджу сильно перечитуватись книжками чи получати другу освіту, бо воно нафіг вам скоріш за все вам знадобиться! Придумай собі проект і роби його, або ще краще знайди собі якісь курси.
я не сказал что быть Middle, а быть готовым к собеседованию на уровне так как сейчас ситуация на рынке не в пользу джунов и нужно быть выше конкурентов
Junior це Junior, а Middle це Middle. Щоб стати Middle треба спочатку стати Junior.
В плане технологий вы можете посмотреть вопросы на экзамены сертификации МСа на.NET если сможете отвечать (без читов)
на 50−60% то для собеседования нормально... можно выбрать какой-то по среде, БД и ахитектуре, когда я сдавал это были 229, 300, 316, 316, 320
Книги:
1. Вірт — по алгоритмам;
2. Крістіан Гросс C#2008 самовчитель;
2. Вміння думати.
3. Знання синтаксису.
В принципі все.
З класичних питань на співбесіді:
чим відрізняеться тип-посилання від типу примітиву;
чим відрізняється масив від списку;
які знаєте методи сортування та пошуку;
чим відрізняється об"єкт від класу;
так какие все-таки требования к джуниору?
я не имел ввиду что во всем, что в ряде дисциплин... и кстати тот народ что ядро Гугля пишет в памяти толк знает;) ведь где по вашему хвариться поисковый индекс, а он отнють не гиг весит
2 junior_dev
И хорошо шарят в лингвистике и оптимизации алгоритмов. Сомневаюсь, что разбираются в менеджменте памяти и функциональных языках.
А вот эти безусловно мастера ассемблера., но врядли SQLа.А хорошее знание десятка различных систем контроля версий нужно пожалуй только интегратору. Девелоперу, даже очень хорошему, необходим пяток самых расхожих операций. (Все равно у него админских прав не будет)
Я не верю в спеца, который играючи переходит от баз данных к кэшированию диска, а от него к веб-интерфейсу. Он слишком смахивает на ламера.
Еще раз повторюсь — по моему глубокому убеждению, по достижении некоего хорошего уровня кодирования, гораздо важней уделять внимание специфическим дисциплинам своей предметной области, а не попыткам объять необъяное.
к примеру таже задача распределения памяти в операционной системе, может быть рассотрена как НП задача о складах (или как линейная о назначениях в зависимости от модели) итд...
задачи проектирования микросхем это тоже НП задачи, а их пишут практикующие люди, они же пишут компиляторы итд...
По поводу уровней.
Там определено что означает каждый уровень в каком то наборе знаний.
Не по всем наборам знаний у тебя будет 3 уровень.
Да и не нужно.
Но всегда можно определится что можно подтянуть.
Понятно что можно придумать и 4, 5, 6 уровни для большинства «наборов знаний».
Но мое мнение что не должно быть разрывов больше чем 1−2 уровня если у тебя в одно 0, а в другом 3 то ты не гармонично развит;)
Вот так вот.;) А гармоничность развития позволяет быстрее двигаться в смежных областях.
Извините за сумбур. Мало времени.
Для юниора 0−2.
Кстати насчет этой самой Таблицы Компетентности. Мне кажется что после уровня 2, надо не изучать еще 2 фунциональных языка и выдумывать новые структуры данных, а сосредоточится на доскональном знании своей предметной области — сетевой маршрутизации, финансовом анализе или там шумоподавлении на видеопотоках. Мне кажется что описанный в таблице уровень 3, это скорее не практикующий программист, а университетский балабол.
Извините если не в тему или грубо етс, просто вспомнилось такое.
Это был глюк: (
Фаулер однозначно пишет зачотные книги. Категорически советую прочитать книжки Фаулера по рефакторингу и Архитектуре (чтобы не писать индусский код), правда они рассчитаны на Java, но примеры прозрачные и легко применимые к.NET.
ясно что совершенству предела нет (и программисты с 10+ лет стажем бывают:)).
Ну Кнут это пожалуй слишком жестоко. Честно говоря не уверен даже, что всем подряд нужно. Я б наверное посоветовал по алгоритмам почитать Вирта или Ахо, а Кнута юзать как справочник. БЧ и Фаулера еще бы добавил.
Так что та таблица наверное отображет только отдельно взятый случай, к примеру в НП проблемами, есть люди которые их не только класифицируют, ,
но и решают, а у них тогда какой уровень? тоже самое со структурами даных? когда человек определяет системы координат и продюсирует новые структуры, а не знает сушествующие?
итд... с компиляторами и ядром тоже самое, когда человек знает обходы ядра и тонкости, а не компоненты, когда человек писал свои компиляторы, я не просто разбираеться в линковке
и скрип-настройках... мне кажеться та таблица далеко не полна
Ну если для того, что-бы взяли работать _программистом_, то наверное точно то же, что и любому другому жуниору: СИКП, Кнута, Норвига...
Также есть книга по вопросам на интервью, называется «.NET interview Questions Third Edition» автор «Shivprasad Koirala», правда я ее не читал и ничего сказать по поводу полезности не могу:)
1. Эндрю Троэлсен — С# 2005 и платформа.NET 2.0 (можно и 3.5 найти, но только на английском)
2. Мак-Дональд, Шпушта — Microsoft ASP.NET 2.0 с примерами на C# 2005 для профессионалов (аналогично можно найти 3.5)
3. Рихтер — CLR via C#. Программирование на платформе Microsoft.NET Framework 2.0 на языке C#
Этого должно быть достаточно чтобы начать работу. Все остальное можно научиться в процессе работы от более опытных коллег (или прочитав еще пару десятков книг). Также советую почитать что-либо о SQL Server, например мне очень понравилась книга Пола Нильсена — «Sql Server 2005. Библия пользователя»
а что с возрастом не так? вполне себе нормальный возраст.Правда времени расслабится уже не осталось: -) Первое что надо сделать — не читать форумы, а найти примеры вопросов на собеседовании по C#. Сначала вопросы по зыку (и технологиям), потом рассмотреть и попробывать решить пару десятков вопросов «на подумать». Еще можно найти десяток предложений работы и посмотреть что там хотят — по крайней мере поймете куда рваться. Источник информации — google.com — все что надо для начала и не только.
Programmer Competency Matrix
Хотелось бы услышать общие критерии (без привязки к технологии) потому как меня интересует тот же вопрос, но Junior Python.
26 лет? ты уже опппоздал, твой поезд экспресс на Киев уже ушел...только дворником или таксистом...какой C#
А что вы уже умеете? Расскажите про себя подробнее — тогда мона дискутироватью