12 września 2011

Statystyczny programista .NET - A.D. 2011

Co powinien umieć programista .NET w 2011 roku?


Skupiając się w ostatnich dwóch latach na poznawaniu arkanów SharePoint'a i rozwijaniu własnych zainteresowań, prawie kompletnie zaniedbałem wgryzanie się w coraz to nowe technologie pojawiające się na platformie .NET. Ostatni raz poszukiwałem pracy 4 lata temu, z czystej ludzkiej ciekawości postanowiłem sprawdzić na jakie  umiejętności w obrębie technlogii .NET teraz jest zapotrzebowanie na polskim rynku pracy. Oczywiście w tym poście dopuszczę się wszelakich nadużyć i uogólnień, zatem   z góry proszę o wybaczenie.  Moim celem jest ustalenie jakie umiejętności definiują statystycznego "polskiego" programistę .NET.

Do analizy rynku pracy dla programistów .NET wybrałem mało naukową metodę. Postanowiłem przeglądać ogłoszenia o pracę (jobpilot.pl, pracuj.pl) w liczbie 40-stu i wypisywać (oraz zliczać) nazwy technologii, które pojawiają się w treści ogłoszenia.


Statystyczny koder powinien 


  • Programować w C# z zamkniętymi oczami
  • Równie dobrze posługiwać się T-SQL'em
  • Biegle operować ASP.NET WebFoms
  • i w sumie tyle  



Opcja "Nice to have"
  • XML (XSLT, XML)  
  • Web Services 
  • WCF 
  • JavaScript
  • ASP.NET MVC
  • SharePoint
  • Design Patterns
  • UML  (tutaj byłem zaskoczony) 
  • Source control (SVN, TFS)


 Jeśli chcemy być bardziej niszowi to 

  • WPF/Silverlight
  • SCRUM (trochę słabo, że to jest nisza)
  • Reporting Services
  • Oracle
  • Workflow Foundation 
  • Domain Driven Design 

Zaskoczył mnie prawie kompletny brak wymagań dotyczących TDD, Agile (SCRUM, Kanban), technologii okienkowych (WinForms, WPF).   Certyfikacje Microsoft też nie wydają się, żeby miały jakiekolwiek znaczenie dla przyszłych pracodawców (1/40). Ogólnie Web rządzi na całego, muszę się zacząć uczyć JavaScript'u :)



Moje pierwsze dwa lata pracy zawodowej to było programowanie w VB.NET, ale w Polsce na szczęście ten język jest równie popularny jak Esperanto.  A tutaj bardziej tabelkowe ujęcie zagadnienia.


Excel file.  Interaktywną wersja raportu można znaleźć tutaj.


IMHO, dobry programista .NET powinien znać/umieć/rozumieć
  1. C# (.NET 4.0, LINQ)
  2. Design patterns
  3. Domain Driven Design
  4. TDD, (x)Unit, Mocking frameworks
  5. Visual Studio (zaawansowany)
  6. Programowanie SQL Server  
  7. Metodologia  Agile (chociaż jedno Scrum, Kanban, XP)   
  8. SOA
  9. XML stack (XSL, XSD, XML)
  10. Jedno repozytorium kodu np. SVN, Git, Team Foundation System
  11. Być WEB (JavaScript, CSS, HTML basics,   Accessibility e.g. WCAG) lub Windows Client  (WPF)
IMHO, "Nice to have"
  1. Algorytmy  w ramach zainteresowań 
  2. User Interface Design
  3. HTML/CSS 

Podsumowując, polski rynek pracy dla programistów .NET jest dosyć spolaryzowany. Dominują aplikacje web'owe z backend-em opartym na Microsoft SQL Server . W sumie nic nowego, tylko okienek żal.


Hope this helps.

1 komentarz:

  1. A mi żal:
    1) ASP.NET WebFoms a nie MVC
    2) zawsze trzeba umieć tworzyć jakieś GUI i TSQL - a gdzie miejsce dla logiki biznesowej? Czyżby większość aplikacji to proste CRUD i raporty?

    OdpowiedzUsuń

Uwaga: tylko uczestnik tego bloga może przesyłać komentarze.