Другие языки программирования и технологии

Собеседование C# Junior.

Господа в связи с тем что я относительный краб в программировании, а работа нужна, появился довольно странный вопрос, а именно какие у меня шансы пройти на вакансии джуниоров C#, с моим багажом знаний и написанных программ, собственно на руках имею следующие вещи:

Диплом колледжа - оценки не отличные по предметам, но хорошие оценки за курсовые, сложные темы (писал пару игрушек и БД + писал дипломную игрушку на UE4).

В портфолио кроме этих мелких курсачей, есть одна большая работа на шарпе - транслятор/интерпретатор (по факту собственная маленькая IDE, транслирует код близкий к шарпу (это не шарп, синтаксис придуман мной, но близко к шарпу), реализована проверка семантики, синтаксиса и интерпретация введенного пользователем кода, работа с файлами (загрузка/сохранение). Из того каким макаром писал, юзал много вещей, дженерики, делегаты (из особо сложных), проверки написаны по алгоритмам магазинного автомата, совмещенного со схемами Тьюринга. Есть реализация RPN. Каждую строку писал сам и могу объяснить почему так, что от этого зависит и как это работает.

Ко всему этому счастью прикручен модуль маленькой БД, работающей с сервером SQL, задачи мелкие в основном работает с DATETIME, немного работы с LINQ.

Умею работать с WinForms, .Net изучаю начиная с 4.0, SQL - T-SQL, знаю схемы O(n), оптимизацию баз данных, ADO.Net.

На базовом уровне знаю HTML, CSS. Знаю синтаксис Delphi, C++(чуть выше базового).

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

Еще порой не знаю что ответить по знаниям, MVC и прочих паттернов вроде SIngleton, в общих чертах что это и как этим пользоваться знаю и представляю, работать с модулями и прочими ооп ништяками вроде умею и т. д. Но на практике под паттерны никогда не писал, чтобы специально.

Собственно поскольку требования к вакансиям порой звучат довольно стремно, у меня вопрос, я с таким багажом могу претендовать на джуниора? Или что еще нужно выучить или зазубрить на время?
Можно претендовать. Но лучше доучить.

Вплоть до того, что написать реализации паттернов и садиться самому листочком писать код. Хотя меня еще никто на листочках писать не заставлял.

git - не прикладная чепуха, а очень важный инструмент. Но джуну хватит знать десяток основных комманд.
Юрий Гнатовский
Юрий Гнатовский
2 687
Лучший ответ
Рома Сапожников что конкретно доучить, паттерны - какие именно учить?
Их до чертиков, например не так давно столкнулся с реализацией хаскеловского maybe через шарп, паттерн монад, удобная вещь, хоть и криво выглядит на шарпе.

Меня заставляли относительно изичную чепуху вроде списков (их легко писать, но я обычно использую дженерики (для моих задач их хватает)), поскольку подобные просьбы не то чтобы ставят в тупик. а у меня просто хаос в мозгах на собеседовании, стремность мешает сосредоточится, я пишу правильно общее направление, но не идеально. Про методы сортировки я давно уже не помню например, ибо их не использую.

Собственно - какие паттерны главным образом учить?
Когда я устраивался джуниором, то знал только синтаксис C# и то посредственно (к примеру, LINQ и ADO я вообще не знал). Всё остальное по ходу работы узнавал. Зависит от конторы, конечно, но мне кажется, что вам просто уверенности не хватает. Багаж более чем достаточный. А правильно кодить и применять паттерны с разными технологиями - это уже дело практики.
Vitalij Rot
Vitalij Rot
14 410
Рома Сапожников В большинстве вакансия сейчас пишут минимумом C#, MVC, ASP - frontend. и C#, MVC, ADO, SQL-TSQL + знание алгоритмов в backend. Первого куда больше но мне идти во фронтенд не хочется совершенно, кажется мне довольно скучной вещью ._о

Если не секрет то примерно в какие конторы пытались устроится? Гос. конторы, частные? Какого уровня фирмы?
То что спрашиваю я на собеседованиях:

1. Структуры и алгоритмы. Реализовывать не надо, но надо понимать какие алгоритмы где применяются и какие у них преимущества. Например вопрос, какой алгоритм используется внутри Dictionary или List? Что быстрее сортируется LinkedList или List и почему. Какие недостатки у быстрой сортировки.

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

2. Умение написать программу FizzBuzz с нуля на бумажке (https://habrahabr.ru/post/298134/). Это просто тест, что хоть что-то умеет человек самостоятельно.

3. В качестве тестового задания сделать небольшой сайт на ASP.NET MVC и небольшой бд на EntityFramework. Типа гостевой книги что-то. Если человек с этими технологиями не сталкивался, то даже лучше. Покажет сможет ли он за вечер два овладеть основами.

Как правило если это все более менее успешно проходит человек, то значит с ним можно работать и учить дальше.