C# developer - podstawy

0

Cześć,
chciałbym się dowiedzieć czego powinienem dalej się uczyć po solidnych podstawach z c#. Zamierzam iść na staż c# i nie wiem jakie są "minimalne umiejętności" lub z jakie technologie powinienem poznać.

Pozdrawiam

2

Znajomość składni języka czy najważniejszych modułów biblioteki standardowej to są podstawy podstaw i absolutny must-have, wiadomo. Przynajmniej w teorii, bo zdarzają się wyjątki - np. zdarzyło mi się aplikować na staż w Javie i dostać się do C#, do dziś nie wiem jakim cudem ;)

Tak czy siak sama znajomość języka to za mało, dobrze by było żebyś choć trochę znał technologie wokół języka

  • jeśli celujesz w web to powinieneś się otrzaskać z technologiami / frameworkami takimi jak ASP.NET Core, Blazor
  • jeśli celujesz w mobile/gamedev powinieneś się otrzaskać z jakimś Unity, Xamarin itp
  • niezależnie od tego w co celujesz, powinieneś wiedzieć coś o bazach danych, potrafić napisać query / insert, użyć LINQ albo jakiegoś innego query DSL albo dowolnego innego ułatwiacza żenienia aplikacji z bazą
  • Git, Git i jeszcze raz Git
  • Wyrób sobie nawyk pisania testów
  • Dobrze by było, jakbyś był w stanie pisać w miarę czysty i czytelny kod. Napisać coś, co po dwóch tygodniach będzie dla Ciebie hieroglifami jest łatwo, trudniej napisać coś, co odgrzebiesz po latach i będziesz w stanie wywnioskować, co robiło bez odwiedzin u wieszcza. Możesz zacząć od puszczenia jakiegoś mocno pedantycznego checkstyle'a na jakichś swoich projektach i zobaczyć, co mu się nie spodoba
  • Jak już masz trochę tego syfiastego kodu, to dopisz testy (jeśli się w ogóle uda bez przepisywania) i zrefaktoruj go tak, żeby checkstyle przestał płakać, a testy nadal przechodziły.
3

Solidne rozumienie obiektowości (interfejsy, klasy abstrakcyjne, partial, problemy wielodziedziczenia, override i overload)
Jakieś pojęcie o wzorcach projektowych
SOLID etc
Delegaty
Kolekcje (złożoność obliczeniowa + kiedy jaką wykorzystać + zrozumienie IEnumerable i ICollection)
Kowariancja/kontrawariancja
native vs managed code
Czym jest sam .NET czym jest CLI a czym CLR
ogólne rozumienie GC
konteksty użycia this
modyfikatory dostępu i scope zmiennych/
funkcje anonimowe i lambdy
podstawy LinQ + teoria o nim
generyki
świadomość tego, że jest coś takiego jak refleksja i metadane
var + dynamic
dospose vs finalize
compile time vs runtime vs JIT
serializacja
podstawy wielowątkowości
Do tego jeszcze git i jakieś podstawy SQLa (proste zapytania + teoria o joinach itd) i frontu.

Jak ogarniesz gdzieś tak 60% tego co wyżej to na staż dostaniesz się z palcem w /dev/null a jak ogarniesz 90% to możesz zacząć startować na juniora.

2

Niezależnie czy trafisz na desktop, konsolówki czy web apki bez tego nie ruszysz:

  1. Linq
  2. async/await
  3. Func, Action
  4. Wszelkiej maści kolekcje IEnumerable, ICollection, IList i operowanie na nich (powiązane z Linq)
  5. Generyki
0

Wiem, że po 4programmers krążyła przybliżona lista rzeczy, które powinien znać junior c#. Niestety nie udało mi się jej odszukać. Może ktoś ma ją zapisaną w zakładkach? e: To była dość długa lista. Prawdopodobnie napisana przez Somekinda.

0

Weź pierwszą lepszą książkę do nauki języka i naucz się tego co tam jest opisane. Do tego poćwicz sobie w docelowej technologii np asp net mvc (core) lub wpf.
No i oczywiście podstawy baz danych

0

Nie jest to na entry level, ale warto:

Ogarnianie baz + SQL + jakaś znajomość NoSQL typu Mongo? RavenDB?

HTTP 1.1 / 2 / 3 soon

OWASP

0

Ciekawy jestem co w twoim przypadku znaczy - solidne podstawy. Dla mnie solidne podstawy to znajomość najnowszej wersji c# 8 ale i wcześniejszych wersji.7, 6, 5 itd.
Jeśli się uczyłeś z kursów wideo bez przeczytania co najmniej 3 rożnych książek i całej specyfikacji to według mnie nie są solidne podstawy.
W prawie każdej książce masz opisane podstawy wszystkich ważniejszych technologii . WPF, WCF, ASP itd. Jakbyś wszedł na stronę Microsoftu MSDN to tam masz wszystkie technologie na platformie NET i dużo więcej. Ambitny programista nie zadaje głupich pytań czego ma się uczyć , tylko uczy się wszystkiego po kolei .

0

Jak już napisał @Grzegorz Kotfis ta lista to podstawy. Potem można uczyć się całej architektury i pierdyliarda klas :-) Zamykam wątek... no nie mogę :-(

1 użytkowników online, w tym zalogowanych: 0, gości: 1