Що таке .NET?

Іван Барчук
Senior .NET розробник в Intellias.
.NET Framework у 2002-му випустила і досі займається його підтримкою та оновленням компанія Microsoft. Цей фреймворк дозволяє писати на різних мовах програмування, найбільш зручна з них – це C#. Наразі C# – одна з 5 найрозповсюдженіших мов програмування. Якщо раніше .NET була обмежена Windows платформою, то з появою .NET Core вона стала крос-платформною і почала набувати ще більшої популярності. Остання версія .NET 6 (приставка CORE вже не використовується) і найзручніша мова C# (10 версія).
Що пишуть на С#/.NET:
- Вебаплікації (сайти, інтернет-магазини)
- Сервіси (до прикладу, ви робите систему бронювання квитків або сервіс прогнозу погоди і продаєте цю розробку іншим сайтам)
- Мобільні додатки (Xamarin)
- Комп’ютерні ігри та VR (Unity3D)
- IOT
Довгий час С#/.NET користувались великі компанії та державні установи. Це вплинуло на розвиток як мови, так і існуючих бібліотек. Бібліотеки зазвичай важкі і цілісні, вони мають в собі багато зручних і готових рішень для тої задачі, для якої її створили.
.NET доволі структурована платформа і має чіткі правила користування. Молодим спеціалістам це створювало певну проблему, адже потребувало від них не часткових, а доволі цілісних знань. Для початку роботи мало було розібратися в самій мові, потрібно було знати ще й роботу з базами даних, вебкомпоненту (знати верстку, розуміти як працює http/ або www), а також знати Cloud Tools (зазвичай – це Azure).
Що повинен знати .NET розробник
- Hard та Soft Skills Trainee .NET Engineer
Уявіть собі, якого вчителя ви як Trainee хотіли би для себе знайти..Скоріш за все вам нададуть Ментора, який буде допомагати у навчанні. І наголос саме на допомагати. Він не відкриє за вас книжку чи не напише рядок коду, поки ви не попросите його про це чи когось з колег.
Що потрібно знати та вміти, щоб стати Trainee .NET Engineer
- Базова Англійська (майже вся документація і технічні уроки створені на англійській мові)
- Користуватись головними інструментами Visual Studio Code та Visual Studio
- Розуміти математичні алгоритми
- Розуміти, що таке структура даних
- Математика шкільного рівня
- Абстрактне мислення (до прикладу, щоб уявляти, як відбуваються бізнес-процеси, які етапи перевірки вони проходять)
- Написання простої програми на інструментах .NET розробки
- БАЖАННЯ ЗАПИТУВАТИ і НАВЧАТИСЯ. Найбільш неправильне питання – те, яке не було задане.
На що звернути увагу Trainee .NET Engineer:
- Книга “Чистий код” – Роберт С. Мартін
- “Мова програмування C# 7 і платформи.NET і .NET Core” – Ендрю Троелсен Філіп Джепікс
- https://metanit.com/
- https://itvdn.com/ru/video/csharp-essential
- Правила написання C# Coding Conventions
- Hard та Soft Skills Junior .NET Engineer
Junior .NET. – це вже робоча позиція. Спеціаліст повноцінно входить у процес роботи і в нього чи в неї з’являється безпосередня робоча відповідальність. Зазвичай хтось в команді продовжує вести і підтримувати джунів. Це особливо важливо, адже, окрім робочих задач, з’являться різні технічні процеси типу: заповнення Jira тікетів для тасок, спілкування з іншими розробниками. Головний софт скіл Junior – це комунікація і взаємодія з командою та іншими учасниками процесу розробки (QA, проджект менеджери, розробними з інших команд). Junior повинен вимагати для себе чітких критеріїв для завдань, які йому дають виконувати. Тільки тоді він може отримати релевантний досвід, а проєкт бізнес-вигоду.
Для того, щоб стати Junior .NET розробником, потрібно:
- Знати мову програмування С# і всіх базових команд .NET
- Впевнено користуватися інструментами контролю версій GIT
- Розуміти принципи SCRUM
- Вміти користуватися Jira або іншими подібними інструментами
Також на Junior рівні розробник стикається з тим, що просто писати код – це уже замало. Важлива його довжина, складність, гнучкість, аби в подальшому цей код могли використовувати та розширювати колеги.
На що звернути увагу Junior .NET Engineer:
- Книга “Чиста архітектура” – Роберт С. Мартін
- Книга “CLR via C#” – Джеффрі Ріхтер
- Програмування в ASP.NET Ajax – Крістіан Венц
- Відео курс C# (поглиблений)
- Бази даних SQL
- ADO.NET/Entity Framework
- HTML/CSS
- ASP.NET Core
- Hard та Soft Skills Middle .NET Engineer
Middle позиція – це самостійний розробник, який може легко розібратися в існуючому проєкті і дотримуватися його правил і архітектури. Він вже не потребує постійної підтримки від колег. Основна відмінність Middle розробника від Junior – Middle спеціаліст не просто розуміє рядок коду, а й весь проєкт загалом. Бачить, що саме, навіщо і для кого робить команда. Він починає розуміти і відчувати ціль проєкту. Спеціалісту такого рівня вже можна ставити завдання без конкретних технічних обмежень. Він сам буде розуміти їх в контексті проєкту.
Для того, щоб стати Middle .NET розробником, потрібно:
- Знати як комбінувати код під певну його структуру
- Використовувати додаткові інструменти розробки (mssql management studio, resharper)
- Вміти створювати та підтримувати unit-тести
- Слухати, сприймати нові технічні ідеї і пропонувати свої
- Тісно співпрацювати з колегами по команді і за її межами (з клієнтами, бізнес-аналітиками, маркетологами)
На що звернути увагу Middle .NET розробнику:
- Solid Principles
- Робота з базами даних (mssql, cosmosdb та інші.)
- Додаткова мова програмування JavaScript, Python,…… etc
- Unit tests in .NET
- Build an app with ASPNET Core and Angular from scratch
- Книга Design Patterns: Elements of Reusable Object-Oriented Software
- Hard та Soft Skills Senior .NET Engineer
Senior розробник – це та людина, яка більш глибоко залучена в розробку всього проєкту загалом. Такий спеціаліст може з потреб бізнесу/клієнта перекласти ідею на мову спочатку блок-схем, а після – на мову програмування. Це та людина, яка приймає технічні і організаційні рішення на базі власного досвіду і надбання “світу” в цій темі. Окрім того, зазвичай на плечі сіньйора лягає відповідальність за Junior колегу одного чи декількох.
Для того, щоб стати Senior .NET розробником, потрібно:
Доцільно використовувати ті чи інші інструменти розробки
Мати досвід роботи з найпоширенішими бібліотеками і знати тонкощі їх використання (Newtonsoft, AutoMapper, Polly, Swashbuckle, Dapper, Entity Framework, NHibernate та інші)
Пропонувати і відстоювати технічні рішення для конкретної задачі
Вміти онбордити нових спеціалістів як початкового рівня, так і сеньйорного. Тому важливо мати вміння вчити і надихати. І найголовніше – це продовжувати розвиватися та вчитися самому.
На що звернути увагу Senior .NET Engineer:
- Cloud Technology and Tools (Azure, AWS)
- Книга "Design Patterns via C#" Олександра Шевчука
- Відеокурс по шаблонах проєктування
- Патерни проєктування
- Курс, який допоможе вам зрозуміти, що таке бути ментором
- Hard та Soft Skills Principal .NET Engineer
Це той розробник, який досконало знає С#/.Net і має величезний досвід його використання. Він залюбки приймає участь як в технічному розвитку окремих співробітників, так і компанії в цілому. Це ті люди, які рухають С#/.Net платформу вперед і розвивають її.
.NET спеціалістів та спеціалісток в Intellias