C# разработчик Junior
Платформа .NET уже довольно давно является важной частью рынка разработки программного обеспечения. И одним из самых популярных языков программирования на этой платформе является C#.
Это и хорошо, потому что C# теперь изучается в университетах наряду с такими языками, как C, Pascal и Java.
Junior разработчики C# — это обычно программисты, которые только начали свою карьеру в ИТ и имеют небольшой опыт разработки коммерческих продуктов на C# или не имеют его вовсе.
От младших разработчиков C# обычно не требуется глубокого знания конкретной технологии или фреймворка. Достаточно знать, зачем нужна технология, какие проблемы она может решить, а также ее преимущества и недостатки по сравнению с конкурирующими технологиями.
Для того чтобы добиться успеха в своей должности, сегодняшнему младшему разработчику C# необходимо знать:
- Основы программирования (последовательности чисел, основные алгоритмы, основные структуры данных)
- Язык программирования C# (синтаксис, знание ООП, стандартных библиотек)
- ООП и ООД (парадигмы объектно-ориентированного программирования, шаблоны проектирования)
- ASP.NET (основы создания веб-приложений)
17 вопросов джуну: что должен знать Junior-разработчик
Что должен знать Junior-разработчик и не завышены ли требования? Разобрали популярные вопросы с собеседований, разделив их на hard и soft skills.
Что должен знать Junior-разработчик, чтобы получить должность или удержаться на уже «завоёванной» позиции?
Джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора.
Кто-то говорит, что требования завышены, и в 2020 году младший программист должен знать то, что знал Middle в нулевых. Кто-то парирует аргументами о росте конкуренции, сложности задач и, соответственно, требований.
Что касается технических требований к джунам, то в последние годы они действительно выросли. Профессия программиста стала доступнее из-за курсов, и рынок переполнился начинающими разработчиками. Поэтому компании начали выставлять определённые требования, чтобы найти из общей массы тех, кто лучше других.Например, теперь на позицию начинающего front-end разработчика недостаточно просто знать JavaScript, HTML5/CSS3: нужны базовые знания одного из популярных фреймворков (React, Vue, Angular). Кажется, что со временем требования будут расти ещё сильнее.
Мы разобрались, что должен знать Junior-программист в 2020 году, и собрали общие вопросы с собеседований, по которым работодатели определяют, дотягивает кандидат до нужной планки или нет.
Hard skills
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Soft skills
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Что должен знать Junior-разработчик? Отвечают эксперты
Олег Власенко
заместитель генерального директора SimbirSoft
Говоря о необходимых навыках, сразу важно прочертить границу между джуном и стажёром, поскольку эти роли достаточно часто путают.
Стажёр — человек, который только учится, часто он не имеет опыта разработки. Со стажёрами мы в компании чаще всего имеем дело на наших стажировках, которые мы в разных форматах организовываем с 2012 года. Как правило, значительная часть их аудитории — это студенты без опыта работы. Конечно, если стажёр хорошо себя показывает, мы можем пригласить его на собеседование, а по итогам собеседования даже взять его в компанию, если есть надежда, что он за пару месяцев выйдет на уровень джуна. Но далеко не все стажёры так быстро дорастают до этого.
Тем временем джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора. Соответственно, такой специалист обязан обладать уверенными знаниями как минимум одного языка и фреймворка. Да, его знания, скорее всего, не будут глубокими, но он должен знать основы. Значительная часть сил джуна уходит на освоение нового. Ведь чтобы стать мидлом и выйти на новый уровень оплаты своего труда, джуну придётся освоить несколько фреймворков пусть и поверхностно, глубоко изучить как минимум один фреймворк, возможно, подготовиться и сдать экзамен по сертификации, получить опыт в разных проектах. Соответственно, важнейшими soft skills для джуна (да и для любого ИТ-специалиста вообще) будут навыки самообучения, навыки и опыт решения любых проблем, самодисциплина и мотивация к обучению.
Если рассматривать hard skills, то, наверное, нужно упомянуть такие профессиональные навыки, как умение искать информацию в поисковых системах, знание средств коллективной разработки (Git и другие), знание IDE, языка и фреймворка.
Завышены ли требования к джунам? Уверен, нет. Всё проясняется, если разделить понятия стажёр и джун и рассматривать джунов, как младших специалистов, а не просто тех, кто начал учиться.
София Техажева
руководитель программ «Python-разработчик» и «Алгоритмы для разработчиков» в Яндекс.Практикуме
Junior-разработчику, как в принципе и любому специалисту в сфере ИТ, важны такие качества, как ответственность, стремление к профессиональному росту, умение управлять рабочим временем и работать в команде. Кроме того, от начинающих разработчиков дополнительно ждут умения быстро осваивать новый материал и вникать в суть задач.
Требования к hard skills будут зависеть от направления. Например, мы уже подробно рассказывали, что работодатели ждут от Junior-Python-разработчика. Для таких специалистов это чаще всего знание языка программирования Python, алгоритмов и структур данных, опыт работы с базами данных и фреймворками.
Современные требования к Junior-разработчикам не кажутся мне завышенными. Во-первых, требования очень отличаются от компании к компании. Нужно также иметь в виду, что в описании вакансий обычно пишут портрет идеального соискателя, на деле же готовы брать кандидатов не со всеми перечисленными навыками. Во-вторых, большинство работодателей понимают, что любого джуниор-специалиста придётся учить, поэтому хотят от кандидатов в первую очередь бойкости и заинтересованности.
В технических навыках обычно требуется наличие какого-то (хотя бы учебного) опыта программирования, знакомство с основными инструментами, умение решать типовые задачи. Для получения даже этих навыков придётся постараться. Разработка имеет относительно высокий порог входа по сравнению с другими ИТ-профессиями, но планка по найму в последние годы, скорее, снижалась, чем наоборот.
Александр Махновский
руководитель отдела разработки Аванпост
По нашему опыту в последние годы требования к Junior-разработчикам у нетоповых компаний снизились. Связано это с кадровым голодом, вызванным, с одной стороны, ростом рынка, с другой, демографическим провалом девяностых–начала 2000-х.
В целом для джуна, планирующего работать в прикладной разработке, требования можно определить следующим образом:
- Знать синтаксис языка, на котором предстоит работать.
- Знать основу стандартной библиотеки языка и представлять её структуру в целом.
- Понимать принципы работы технологической платформы и среды исполнения (например jvm).
- Понимать принципы работы реляционных СУБД, иметь навыки работы с ними.
- Знать основы веб-разработки.
- Понимать, как в целом устроен мир: как работает сетевое взаимодействие, какая инфраструктура существует в интернет- и корпоративных сетях, понимать отличия парадигм программирования, скриптовых языков от компилируемых и т. д.
- Уметь решать простые прикладные задачи, т. е. применять знания, перечисленные выше, с пользой.
- Умение слушать, воспринимать постановку задач и пояснения, не упускать детали, но и не зацикливаться на них.
- Способность и желание обучаться в процессе работы.
- Умение задавать вопросы и в целом формулировать мысли.
- Любознательность и стремление к развитию.
- Ответственность.
Как правило, у всех ребят, приходящих к нам на собеседование, всё в порядке с основными хард-скиллами, учитывая, что они предварительно проверяются простейшим тестовым заданием.
Большинство же отклонений по результатам собеседования происходит по причине отсутствия практических навыков или критичных софт-скиллов, таких, как умение слушать.
Это не самые высокие требования: могу с уверенностью сказать, что 10-15 лет назад требования были значительно серьезней. Отрасль была менее лояльной к новичкам, готовность брать на работу, платить не самую низкую зарплату и учить была у единиц компаний. Сейчас же все, даже самые небольшие софтверные и не только компании, готовы вкладываться в обучение вчерашних студентов, несмотря на все сопутствующие риски. Всё, что нужно джуну сегодня, — общая адекватность и минимальные знания технологий.
Выводы
Мнения насчёт того, завышены требования к джунам или нет, очень разнятся. Но практически все эксперты сходятся в том, что Junior-разработчик должен знать о преимуществах и сферах применения выбранного языка или технологии, уметь работать с Git, знать основные алгоритмы, библиотеки и фреймворки в своей сфере, быть в курсе возможностей хотя бы одной IDE, знать английский не ниже уровня Intermediate и уметь работать в команде.
Программа минимум: что должен знать начинающий C# программист
Если вы ищете первую работу в качестве C# разработчика или недавно её получили, эта статья расскажет вам, какие навыки являются необходимыми. Мош Хамедани постарался объединить их в единый «путь», который подойдёт желающим разрабатывать как декстопные, так и веб-приложения.
Рассказывает Мош Хамедани, автор курсов по C# на Udemy
Мои студенты часто задают вопросы такого рода:
Итак, если вы ищете первую работу в качестве C#-разработчика или недавно её получили, эта статья расскажет вам, какие навыки являются необходимыми. Я постарался объединить их в единый «путь», который подойдёт желающим разрабатывать как декстопные, так и веб-приложения.
Прежде чем я углублюсь в детали, я проясню кое-что: вы — джуниор, вам не нужно знать всё на свете! Никто не знает всего, даже матёрые разработчики. Мир программирования огромен и постоянно растёт. Поэтому каждый разработчик силён лишь в определённых областях, в зависимости от тех проектов, над которыми он работал.
Каждый навык будет сопровождаться одной или несколькими ссылками на полезные ресурсы.
Базовые навыки
Вне зависимости от выбранной сферы разработки существует несколько моментов, которые стоит знать.
Структуры данных и алгоритмы
Если у вас нет степени в Computer Science, я очень рекомендую потратить месяц на изучение структур данных и алгоритмов. Это основы программирования. Конечно, вы можете пропустить их и заняться веб-разработкой, но поверьте, разница между изучавшим этот вопрос программистом и пропустившим его заметна.
Вы можете удивиться, но крупные компании наподобие Microsoft, Apple и Amazon уделяют на интервью много времени именно проверке знания структур данных и алгоритмов, а не ASP.NET 5 или WPF! Они просто хотят понять, можете ли вы мыслить, как программист.
Вот неплохая книга для начала изучения: Data Structures and Algorithms Made Easy
Если вы в чём-то не разобрались — не отчаивайтесь! Просто убедитесь, что вы поняли, что такое списки, стеки, очереди, деревья и хеш-таблицы, и умеете их реализовывать на чистом C#. Реализуйте несколько алгоритмов поиска и сортировки.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Базы данных
SQL Server — это наиболее часто используемая реляционная СУБД среди .NET разработчиков. Разберитесь в основах реляционных баз данных и базовых операциях в SQL Server.
T-SQL — это язык запросов, используемый в SQL Server. Освойте функции SELECT, INSERT, UPDATE, DELETE, JOIN и GROUP BY.
Вот полезные материалы:
- Zero to Hero with Microsoft SQL Server 2014;
- T-SQL Step by Step.
O/RM
Когда вы работаете с РСУБД, то часто используете системы объектно-реляционного отображения для работы с объектами в базе данных. Существует много таких систем, но самой популярной является Entity Framework.
Материалы для изучения:
- Getting Started with Entity Framework 7;
- Entity Framework course on Udemy.
Веб-разработка
Создание веб-приложений кардинально отличается от разработки десктопных. Веб-приложение содержит как минимум две части: клиент, запускаемый в браузере пользователя (фронтенд), и сервер, обрабатывающий все действия пользователя в клиенте (бэкенд).
Поэтому все веб-разработчики делятся на 3 группы:
- Фронтенд-разработчики;
- Бэкенд-разработчики;
- Full-stack-разработчики: те, кто занимаются и фронт-, и бэкендом.
В зависимости от ваших предпочтений стоит выбрать один из двух путей. Full-stack-разработчики обычно более востребованы.
Фронтенд
Если вы собрались заняться фронтендом, то вам нужно познакомиться с основами HTML, CSS и Javascript.
HTML — это язык разметки веб-страниц. В отличие от языков программирования (таких как C#), у него нет логики. Для декорации нашей страницы мы используем CSS. И, наконец, JavaScript — язык, отвечающий за поведение веб-страницы.
Материалы для изучения:
- HTML & CSS на Codecademy
- Learn to Code HTML & CSS
- HTML5 & CSS Fundamentals on Channel9
- JavaScript on Code Academy
Бэкенд
ASP.NET MVC — это доминирующий среди C#-разработчиков фреймворк для создания серверных веб-приложений. Для работы с ASP.NET MVC вам всё равно потребуется базовое знание HTML, CSS и Javascript. Поэтому я советую вам начать изучение с фронтенда и затем перейти к бэкенду, изучив весь спектр веб-разработки.
Вот моё руководство, в котором мы создадим простое приложение с использованием ASP.NET MVC5 и Entity Framework 6: A Step-by-Step ASP.NET MVC Tutorial for Beginners
Десктоп-разработка
Если вы хотите заняться разработкой приложений под Windows, вам понадобится отличный от предыдущего набор навыков (хотя и они, как ни странно, могут пригодиться). Большинство заданий потребует от вас знания XAML, WPF или Windows Forms.
Материалы для изучения:
Что нужно знать junior программисту ?
Всем добрый день. Я не нашел такой темы поэтому решил создать. Меня интересует такой вопрос: я планирую стать разработчиком игр. интересует направление с логикой. Поэтому хочу спросить вас что Вы посоветуете для изучения. Темы с С ++, математики и я еще слышал Анриал енджен норм движок. что из него посоветуете прежде всего изучить для позиции junior.
Спасибо за ответы.
#1
16:28, 14 июля 2021
>интересует направление с логикой
Дискретную математику
Можешь потренироваться в олимпиадном программировании — начнёшь решать задачи, постепенно выйдешь на нужные темы.
Язык зависит от движка и типов игр. Если планируешь на Unity игры делать, то C# — работу будет проще найти. Если нет, то C++, но будет сложне и предложений работы, скорее всего, будет меньше, но они могут быть круче.
Если прямо хочется логику разрабатывать, то попробуй сделать собственную roguelike игру — они как раз про логику. Если получится, считай ты гарантировано разработчик игр, может даже повыше джуна.
#2
16:58, 14 июля 2021
Ключевой момент, который должен знать юниор-программист, что юниоры никому не нужны. Некому ставить юниорам задачи и контролировать их исполнение, а самому юниору доверять нельзя, на то он и юниор.
Так что, даже если тебя куда возьмут юниором, требовать будут как с сеньора, а платить как юниору. Работу ты скорее всего завалишь, если действительно юниор.
#3
22:53, 14 июля 2021
В о4..ко олимпиадное программирование — это или для детей, или для тех у кого времени вагон. Идёшь на nnmclub.to и вбиваешь в поиске Unreal или Unity или Godot и скачиваешь видеокурс который тебе приглянулся (обычно там внутри минимально необходимый набор: линейная алгебра, шейдеры, конвееры). Потом никому не говоришь, что ты junior. Никому не говоришь, что ты чего-то не знаешь, а заменяешь это фразой «я с этим ещё разбираюсь». И игноришь все кто тебе говорит «у тебя ничего не получится», «ты никому не нужен», «джуны никому не нужны». Таких будет много — их сразу в сад.
Разница между С++ и C# в том, что с С# проще начинать (считается), но потом тебя ждёт ад: как победить garbage collector, как передавать из managed в unmanaged и не задолбаться, как написать игрулю так, чтобы она не сажала батарею мобилы за минуту/не сжирала память компа. С С++ сложнее начинать (считается, я не согласен), но потом больше контроля за происходящим (если это потом будет).
Если ты что-то не понимаешь, то, скорее всего, ты не знаешь зачем это нужно.
По языкам программирования и математикам есть бесплатные курсы на stepik.org
Не читай Борескова — он ч0рт.
Прежде чем что-то делать и или изучать, подумай как это продавать.
Не работай за еду.
Не делай «три в ряд» — выгоришь
Смотри на стиме список рекомендаций. Для самых говёных из списка смотри (на steamspy) сколько они заработали. Это мотивирует.
Если будешь заниматься анрилом, в Epic Game Store раз в месяц раздают набор бесплатных ассетов, модулей и прочих плюшек. Могут пригодиться, когда будешь делать себе порфолио
#4
0:18, 15 июля 2021
oleg_polishuk
Junior какой кодер?
Много принципиально разных специализация — рендер, физика, серверный и т.д. Надо с этим определиться. Например, для геймплея С++ скорее минус, а для рендера маст хев(если вообще не С)
Seva
> Никому не говоришь, что ты чего-то не знаешь, а заменяешь это фразой «я с этим
> ещё разбираюсь».
Зачот! =)
#5
7:18, 15 июля 2021
Seva
> Никому не говоришь, что ты чего-то не знаешь, а заменяешь это фразой «я с этим ещё разбираюсь».
Правильно! Лох — не мамонт, лох не вымрет.
oleg_polishuk, не слушай старпёров, только запудрят мозги всяикими этиками, культурами производства , контролем качества и этой, как его, ответственностью. Путь к усреху настоящего поцона идёт через копипасту со stackoverflow и развод на деньги.
- oleg_polishuk
- Пользователь
#6
8:50, 15 июля 2021
Спасибо за ответы
- Vlad2001_MFS
- Участник
#7
10:04, 15 июля 2021
Zab
> Некому ставить юниорам задачи и контролировать их исполнение, а самому юниору
> доверять нельзя, на то он и юниор.
А нафига их ставить? Это какой-то стажёр уже блин. Джун пришёл, тимлид дал ему первую ознакомительную задачу. Джун сделал ее, в процессе разбираясь с организацией работы. Все. Дальше джун сам берет задачи из этого же ютрека и делает их, попутно что-то спрашивая в командном чате. Смысл в таком надзирательстве?
#8
19:07, 15 июля 2021
Tiendil
> Путь к усреху настоящего поцона идёт через копипасту со stackoverflow
Вот я слышал про синдром Менхаузена.
Со стака ни разу не копипастил прям код, хотя соблазн был и код вроде хороший тоже (в той же луа глубокое копирование таблицы), так что скоро скопирую, но по факту постоянно с ним советуюсь, иногда по нескольку раз за час.
Не знаю мб свою роль играет, что меняю ЯПы, фреймворки частенько. Но в принципе даже если бы я все это время прокодил в юнити, то и то бы наверно гуглил. Про анрил даже не заикаюсь там вообще без гуглинга никак.
ЗЫ нафиг я все это написал, будем считать что крик души =)
#9
19:10, 15 июля 2021
Vlad2001_MFS
> Смысл в таком надзирательстве?
сейчас всё равно обычно git, так что код в любом случае посмотрят и всё «фи» выскажут
смысл в том чтобы меньше времени занимала задача у человека
- Vlad2001_MFS
- Участник
#10
23:51, 16 июля 2021
#!
> сейчас всё равно обычно git, так что код в любом случае посмотрят и всё «фи»
> выскажут
Ну так код ревью это само собой, без этого никуда.
> смысл в том чтобы меньше времени занимала задача у человека
Так ведь и не будет занимать много времени, так как Джун может непонятности спрашивать у команды.
Я не понимаю именно такого сочетания:
> ставить юниорам задачи и контролировать их исполнение
#11
2:28, 17 июля 2021
от формулировки веет казёнщиной если не армейщиной, но на практике очень хорошо если кто-то, кто знает проект изнутри, построит тебе кратчайший путь и попутно откомментирует разные ляпы которые возникают при реализации
#12
6:39, 17 июля 2021
oleg_polishuk
> Что нужно знать junior программисту ?
С точки зрения HR нужно знать всё (языки программирования от ассемблера до питона, платформы от винды до линукса, желательно на уровне системного программиста и т.д. и т.п.). Но сами HR этого не знают (иначе работали бы программистами) и просто читают заявки тим-лидеров. А те мечтают о чуде. На самом деле джуниору нужно уметь писать программы на C++. Этого достаточно (если мы говорим о джуне-программисте). Пусть он пишет неоптимально, лишь бы мог отлаживать свой код и он бы не падал на старте. Все остальное придет с опытом (года через три). Программирование это на 20% знание (это я учил) и на 80% опыт (это я уже делал). На самом деле все берется задницей. Сидишь, кодишь, запускаешь, оно падает, отлаживаешь, запускаешь опять и так по кругу. Постепенно циклов итерации становится меньше. Писать сразу набело (без ошибок) нереально что бы тебе не втирали. Но чем больше опыта тем меньше уходит времени на поиск багов (они все равно будут).
Но это в идеале. Если тебе просто нужно устроится на первую работу, то сыпь терминами и делай вид что ты профи (тут на форуме половина так делает). HR все равно не проверит. На втором этапе (когда с тимлидером будет митинг) будет сложнее, но иногда наглость и там прокатывает. Но все же желательно сильно не завираться и язык все же знать, хотя бы на базовом уровне.
#13
9:45, 17 июля 2021
Смысл врать то? Работать потом как? В первую же неделю все выяснится и уволят, даже не спросив как зовут.
Впрочем, если не врать, то все равно уволят, когда увидят, что не тянешь. Помнится, проводил собеседование, понравился один паренек, толковым показался. Был готов принять, по результатам разговора, но дал еще задание на дом, перед тем как оформлять. Посмотрев на результаты, схватился за голову. Куда я смотрел? Где тут толковое? Человек понятия не имел, как хранить несколько экземпляров однотипных данных. Вообще не знал, как к этому подступиться, ни о каких массивах, списках и прочих контейнерах даже не слышал. Типа, такой «программист». Среди визардов пытался найти что-то подходящее, не нашел и сидел в растерянности. Удивителен не такой уровень, а что я его с ходу не опознал. Вспомнив процесс собеседования понял, что паренек все время молчал. Очень грамотно молчал, я его молчание за нужные ответы воспринимал 😉
#14
10:08, 17 июля 2021
Zab
> Вспомнив процесс собеседования понял, что паренек все время молчал. Очень
> грамотно молчал, я его молчание за нужные ответы воспринимал 😉
Не в первый раз такое слышу)
Может они гипнотизируют собеседующих?
