Как новичок в изучении рынка вакансий по C#, я столкнулся с дилеммой в выборе направления развития. Большинство вакансий, связанных с C#, предполагают работу в fullstack разработке, с активным участием во фронтенд разработке. Однако, мне хотелось бы стать специалистом по backend, а не fullstack. Возникает вопрос, возможно ли избежать слияния с фронтендом и сфокусироваться исключительно на backend разработке? Учитывая мою начальную базу и поверхностное понимание программирования (опыт с PHP и Python), какие шаги мне следует предпринять для дальнейшего развития? Я предполагаю, что следующим этапом будет изучение .NET и .NET Framework (включая легаси), и возможно, будет ли полезным изучение WinForms? Благодарю за помощь!
Вот несколько рекомендаций для вашего начала изучения C#: 1. Изучите основы программирования: Прежде чем погружаться в C#, важно иметь хорошее понимание основ программирования. Если ваш опыт с PHP и Python был поверхностным, рекомендуется освежить свои знания в области алгоритмов, структур данных и принципов ООП. 2. Изучите C# и .NET: Начните с изучения основ C# языка и его синтаксиса. Можно найти онлайн-ресурсы и книги, которые помогут вам освоить C#. Затем продолжайте изучать .NET Framework и его основные компоненты. У вас уже есть опыт с PHP и Python, поэтому некоторые концепции, такие как переменные, условные операторы и циклы, будут знакомыми. 3. Практика и создание проектов: После овладения основами C# и .NET, рекомендуется практиковаться и создавать собственные проекты. Это поможет вам применить полученные знания на практике и улучшить свои навыки программирования. 4. Изучение фреймворков и инструментов для backend разработки: Для становления специалистом в области backend разработки на C# важно изучить различные фреймворки и инструменты, используемые в этой области. Некоторые из них включают ASP.NET, ASP.NET Core, Entity Framework и другие. Изучение этих инструментов поможет вам стать уверенным разработчиком backend в C#. 5. Расширение знаний о backend разработке: Для более глубокого понимания backend разработки, изучение баз данных (например, SQL), понимание RESTful API и знакомство с паттернами проектирования также будет полезным. 6. Участие в проектах или получение сертификата: Чтобы подтвердить свои знания и навыки в C# и backend разработке, добровольно участвуйте в проектах или пройдите сертификационные курсы. Это поможет вам улучшить свое портфолио и повысить вашу ценность на рынке труда. 7. Знакомство с WinForms: Изучение WinForms может показаться полезным для вас, если вы планируете работать с легаси-кодом или разрабатывать приложения с графическим интерфейсом на базе Windows. Однако, если ваша цель - стать специалистом по backend разработке, фокусируйтесь главным образом на ASP.NET, ASP.NET Core и других фреймворках, используемых в web-разработке. Надеюсь, эти рекомендации помогут вам начать ваш путь в изучении C# и достижении своих целей в backend разработке. Успехов вам на этом пути!
Как и с любым другим языком, для начала прочитать учебник.
Хотелось бы стать специалистом по backend, а не fullstack.
Так не получится, либо очень мало вероятно.
большинство вакансий по c# это идет fullstack разработка и активная работа с фронтом
Если брать back-end, тогда да. Если брать desktop, то там ситуация другая.
Если хотите работать на веб, тогда вот вам с чего начать (Чисто ключевые моменты для изучения asp.net core MVC):
Client:
1. Html/css
1.1 margin, padding
1.2 !important
1.3 class
1.4 :hover, :active, :focus-visible
1.5 media requests
2. Bootstrap 5
2.1 form-control
2.2 alert, alert-danger
2.3 d-none
2.4 row, col-sm, col-md, col-lg
3. Java Script
3.1 let, dynamic object
3.2 document
3.3 getElementById
3.4 getElementBySelector
3.5 innerHtml
3.6 undefined
3.7 addEventListener()
3.8 JSON
3.9 JSON.stringify()
3.10 JSON.parse()
4 jQuery
4.1 jQuery selectors
4.2 .on()
4.3 .on('click', ... )
4.4 .change()
5 ajax
5.1 ajax HttpGet request
5.2 ajax HttpPost request
5.3 ajax send FormData
Simple C#:
6 OOP
6.1 Data types
6.2 Condition operators (if-else, switch). bool type
6.3 Loops (while, do-while, for, foreach)
6.4 array
6.5 List<>
Classes in C#
7.1 Classes
7.2 Fields
7.3 Properties
7.4 Constructors
7.5 Methods
7.6 Inheritance
7.7 Abstract classes
7.8 Abstract and virtual methods
7.9 Interfaces
7.10 Generics
7.11 Generic Methods
7.12 Generic Interfaces
7.13 Principals of OOP
Server (asp.net):
8.1 MVC architecture in asp.net
8.2 Controllers and Actions
8.3 Routing
8.4 [HttpGet]. [HttpPost]
8.5 [IgnoreAntyforgeryToken]
8.6 IActionResult
8.7 Razor Pages
8.8 Build correct model in asp.net mvc
8.9 View
8.10 Dependency Injections
8.11 asp.net mvc configuration
8.12 AddSingleton, AddScoped, AddTransient
Entity Framework
9.1 DbContext
9.2 DbSet<>
9.3 Connection String Parameters
9.4 IEntityTypeConfigraiton<>
9.5 EF Core one-to-one configuration
9.6 EF Core one-to-many configuration
9.7 EF Core many-to-many configuratio
9.8 .Include()
9.9 Migrations, Database.Migrate()
9.10 asp.net core .AddDbContext()
9.11 Generic Repository Antipattern
9.12 How to build custom services and include them to Dependency Injection
10. Fluent Validation in asp.net mvc
11. Authentication/Authorization
11.1 Different between Authentication and Authorization
11.2 Cookie
11.3 JWT (JSON web token)
11.4 Register authentication (app.UseAuthentication, app.UseAuthorization)
11.5 Claims (Claim, ClaimPlincipal, ClaimIdentity)
11.6 Authentication By Cookie
11.7 services.AddAuthentication()