Programista C# - w jakim pójść kierunku?

0

Cześć. To jest mój pierwszy post na tym forum.
Studiowałem informatykę i zawsze lubiłem programowanie. Od kiedy poznałem C# kilka lat temu na studiach - wiedziałem, że to jest język dla mnie. Programowałem sam dla siebie, pisałem aplikacje w Windows Forms i myślałem, że to mi wystarczy. Wiedziałem, że kiedyś zostanę programistą aplikacji, ale przez kilka lat pracowałem jako programista i serwisant sterowników PLC (automatyka), więc zawodowo nie miałem styczności z żadnym językiem programowania stosowanym w informatyce, dlatego nie wiedziałem, w którym kierunku iść, co jest ważne, czego się uczyć itp. Gdy zdałem sobie sprawę, że nie chcę już dalej robić tego, co robiłem, zwolniłem się z pracy i wyjechałem do dużego miasta. Szukałem pracy jako programista C#, ale dopiero wtedy zobaczyłem, jaki jestem zacofany jeśli chodzi o wiedzę programistyczną. Dobrze znam sam język C#, ale to nie wystarczy. Pozostało mi przyjąć pracę jako serwisant IT, ale po rozmowach kwalifikacyjnych na programistę postanowiłem, że nauczę się HTML, CSS, javascript i ASP.NET i zdobędę w jakiś sposób trochę doświadczenia, wtedy znowu postaram się się o pracę jako programista.
Chciałbym się dowiedzieć, czy w dobrym kierunku idę. Czy ASP.NET to jest przyszłościowa technologia? Czy nie zajmować się HTML 4.01, tylko od razu HTML5? Poznawać ASP.NET Web Forms czy ASP.NET MVC? Uczyć się z książek czy z dokumentacji i kursów w internecie? A może to i to? Spodobał mi się kurs na w3schools.com. Czy takie kursy dadzą mi niezbędną wiedzę i czy jest więcej takich dobrych kursów w internecie? Przyjemnie mi się uczy z książek, ale czy jest sens w tych czasach kupować książki o programowaniu, jeśli w internecie można znaleźć tak dużo wiedzy?
Kiedyś za dużo czasu traciłem na programowanie w czymś, co do niczego mi się nie przydawało (assembler, pascal) i już nie chcę popełniać tego błędu, dlatego chcę skupić się tylko na tym, co będę wykorzystywał w przyszłości. W jaki sposób zdobyć doświadczenie, nie pracując jeszcze jako programista?
Dziękuję za cierpliwość i proszę o kilka porad :)

3
  • Tak, ASP.NET ma przyszłość, a patrząc na obecne posunięcia Microsoftu - także ma przyszłość poza Windows;
  • HTML 5 to HTML 4 z garścią dodatkowych znaczników, możesz spokojnie zacząć od nauki HTML 5. Tylko problemem jest, że HTML 5 to marketingowy termin pod który wpada nie tylko HTML, ale i CSS oraz JavaScript;
  • ASP.NET MVC jest aktualnie lepszym wyborem, bo na niego jest nacisk i w nim są tworzone nowe projekty.
0

Dziękuje za poprzednie rady. Znam już dostatecznie HTML, CSS i JavaScript, a teraz chciałbym zacząć się uczyć ASP.NET MVC. Kiedyś przez jakiś czas programowałem w ASP.NET Web Forms, ale nie do końca wiedziałem, czemu to wygląda tak jak wygląda i działa tak jak działa. Nauka klasycznego ASP pomogła mi rozjaśnić wszystko ;)

Mam jeszcze kilka pytań:

  1. Czy programista ASP.NET musi znać takie rzeczy jak jQuery, ApplML, AngularJS, AJAX, JSON, Bootstrap, Canvas, SVG, Google Maps? Wydaje mi się, że niektóre z tych rzeczy są bardzo przydatne i pewnie znajomość bardzo by pomogła, np. jQuery, a niektóre też są bardzo proste, więc można by było poświęcić "chwilę" na naukę, żeby to zrozumieć i umieć stosować. Ale co z resztą? Czy to jest niezbędne?
  2. Czy programista musi mieć swoje projekty, żeby znaleźć pracę? Tzn. jeśli ma tylko projekty niezwiązane z tym, czym chce się zajmować, np. programował długo w C++, to będzie mu ciężko dostać pracę jako programista ASP.NET?
  3. Gdzie można zdobyć doświadczenie tak dla samego siebie? Czy znacie jakieś konkretne strony, na których można za darmo wykonywać dla ludzi projekty, które im się przydadzą?
    Z góry dziękuję za odpowiedź ;)
1

Ad 1) Zazwyczaj pracuje się jako fullstack developer, więc trzeba znać także rzeczy fronendowe. Przede wszystkim JS i jQuery, i różne biblioteczki oraz frameworki frontendowe. To niby nie jest mus, ale trudno znaleźć pracę tylko backendową.
Ad 2) Nie musi, ale tak ponoć łatwiej.
Ad 3) Pomyśl, czego Ci w życiu brakuje i to napisz.

0

Programista C# - w jakim pójść kierunku?

C# to fajny język, ale 90% ogłoszeń o pracę przy C# to różne ASP.NET i inne MVC.
nuuuda.

1

@Burmistrz, aplikacje z portfolio nie mają być wykorzystywane tylko pokazywać, co potrafisz, jak piszesz kod, jak projektujesz aplikację.

@Azarien, czemu nuda?

1
Burmistrz napisał(a):

D

Czy programista ASP.NET musi znać takie rzeczy jak jQuery, ApplML, AngularJS, AJAX, JSON, Bootstrap, Canvas, SVG, Google Maps? Wydaje mi się, że niektóre z tych rzeczy są bardzo przydatne i pewnie znajomość bardzo by pomogła, np. jQuery, a niektóre też są bardzo proste, więc można by było poświęcić "chwilę" na naukę, żeby to zrozumieć i umieć stosować. Ale co z resztą? Czy to jest niezbędne?

Takie technologie jak jQuery, AJAX, JSON, to na pewno trzeba znać, żeby ogarniać trochę frontend, a z tym zapewne będziesz miał styczność - więc, aby zdobyć pracę, to musisz znać. Angular i Bootstrap są często wykorzystywane, ale w ogłoszeniach o pracę z reguły 'mile widziane' - zostaw sobie na później. Canvas, SVG, Mapy i inne pierdoły nauczysz się jak będziesz musiał. Możesz przez 20 lat nigdy tego nie dotknąć albo pracować z tym nonstop - to zależy jak trafisz.

0

Na jakim sposobie dostępu do danych skupić się najbardziej? Uczyć się LINQ to Entities i ADO.NET jednocześnie czy nie ma sensu poznawać obu technologii na raz? Czy jest coś jeszcze, co warto poznać? Nie wiem, czy dobrze rozumiem, ale Entity Framework nie oferuje wszystkich możliwości związanych z bazami danych, np. nie umożliwia modyfikowania struktury bazy, dlatego warto znać też ADO.NET, nawet jeśli niekoniecznie będzie się go używało zbyt często?

2

Najbliżej bazy jest ADO.NET, nad nim znajduje się Entity Framework, a LINQ to Entities to jedna z metod operowania na Entity Frameworku.
Entity Framework jest szeroko rozpowszechniony i będzie używany chyba coraz częściej bo Microsoft go mocno promuje. Masz jakieś 80% szans, że będziesz go potrzebował w pracy programisty .NET, więc trzeba go znać. Na szczęście jest bardzo upośledzony funkcjonalnie, więc dość prosty do nauki.
ADO.NET znać trzeba, żeby rozumieć, jak to wszystko działa pod spodem i czasem móc zrobić coś znacznie wydajniej albo prościej niż poprzez EF. Struktury bazy z programu się raczej nie modyfikuje, więc nie w tym należy szukać zalet ADO.NET.

0

Mam jeszcze jedno pytanie. Myślę, że ważne, ale może się mylę. Czy programista powinien znać wzorzec Dependency Injection? Próbuję tego używać (Ninject), ale nie za bardzo mi się to podoba i wydaje mi się, że nie przestawię się na to. Co wy o tym myślicie? Czy to jest niezbędne w pracy programisty czy może warto znać, ale używanie to kwestia gustu? Jak jest u was w pracy?

2

Raczej nie tworzy się aplikacji nie korzystając z kontenerów DI. Nikt nie ma czasu na takie błędy.

2

Dobrze Ci tu doradzają, MVC jest cały czas w modzie. Główne tematy do przebrnięcia (według mnie oczywiście) to:

Struktura projektu
Widok (Razor)
Kontroler (+ akcje, filtry)
Stan, Cache, Handlers
Identyfikacja, uwierzytelnianie, autoryzacja
Model
Routing
Metody pomocnicze
Debugging, Troubleshooting

Równolegle powinieneś wciągać nosem JavaScript i jQuery. Szybko i bezboleśnie podstaw uczą te tutoriale:
https://www.codecademy.com/learn/javascript
https://www.codeschool.com/courses/try-jquery

Niestety zabawa zaczyna się przy tworzeniu backendu. Entity jest całkiem przyjemne (polecam książkę Step by Step z serii Microsoft Press), ale opanowanie WCF i ASP Web API wymaga czasu i cierpliwości. Tu jest krótkie porównanie obu technologii:
https://msdn.microsoft.com/en-us/library/jj823172.aspx

Warto też wspomnieć o SignalR.

Do aplikacji desktopowych w .Net obecnie liczy się tylko WPF, którego biegłe opanowanie też wymaga poświęcenia i ćwiczeń, ale jest to z reguły fajna zabawa. Dużo ogłoszeń się pojawia, gdzie wymagają jego znajomości. Helion niedawno wydał WPF Księga Eksperta, w której jest mnóstwo przykładów.

0

WPF? Znaczy się, że z WinForms już się nie korzysta? W sumie powiem szczerze nie widziałem wielu appek w WPF....

A co do ofert pracy w C# to pobieżnie przeglądając 80-90% z nich dotyczy Web w ASP MVC.

0

@perotin, dzięki za rady. Temat ma już rok, a ja się przez ten czas dużo nauczyłem. Dużo czasu poświęcałem na sprawy frontendowe, więc myślę, że mam to opanowane bardzo dobrze, a teraz jestem w trakcie poznawania ASP.NET MVC. Myślę, że dam sobie spokój z WPF i WCF.

0

Czy normalnie w pracy korzystacie z programowania sterowanego testami (TDD)? Nigdy nie interesowały mnie testy i nie starałem się nawet ich poznać, bo wydawały mi się nudne, ale TDD wygląda na ciekawą opcję.

1

Ja nigdy nie korzystałam w pracy (prywatnie owszem), bo albo nie było testów w ogóle, albo kiepska jakość kodu to blokowała. TDD fajnie wygląda w literaturze, ale w życiu zawodowym projekty są dużo większe i czasami podejmuje się decyzję, że ważniejsze jest robienie czegoś widocznego dla klienta niż jakieś tam zielone światełka. Niemniej jednak warto umieć pisać testy, nawet jeśli nie przez TDD. We Wrocławiu raczej powinieneś znaleźć firmę, gdzie się je robi z głową.

1

Tak, bardzo często. U nas zawsze pisze się testy, nie zawsze w TDD, ale bardzo często.
Myślę, że odpowiedź jakiej szukasz: to zależy gdzie trafisz. Moim zdaniem testy baaardzo ułatwiają pracę do tego stopnia, że uważam je za niezbędne w prawidłowym procesie (czy to w TDD czy nie). Poszukaj takiego miejsca gdzie się je pisze i sam staraj się je pisać. Możesz od razu oczywiście zaczynać od TDD - jeśli to cię ciekawi to tym lepiej. :-)

0

Witam ponownie.
Przez ostatnie półtora roku bardzo dużo się nauczyłem. Korzystając z metody Kanban ustaliłem sobie, co muszę zrobić, ile czasu mi to zajmie i do kiedy musi to być zrobione. Myślę, że w ciągu około 2 miesięcy dojdę do końca moich postanowień, bo pozostało mi jeszcze doszlifowanie wiedzy i dokończenie aplikacji, które tworzę.
Pod koniec tego okresu będę mógł powiedzieć, że na w miarę dobrym poziomie (według mnie) znam jezyk C#, ASP.NET MVC, ASP.NET Web Api, EntityFramework, MS SQL, HTML, CSS, JS, Ajax, jQuery, Bootstrap. Poznałem Git, poznałem lepiej środowisko Visual Studio, nauczyłem się tworzyć testy jednostkowe.
Będę miał ukończone dwie aplikacje: system ticketowy Help Desk i system magazynowy do zarządzania sprzętem komputerowym, tworzenia i obsługi requestów wysyłanych przez użytkowników itp. Skupiam siębardziej na backendzie, bo nie mam zdolności artystycznych.
W czasie, gdy pracowałem nad wyżej wymienionymi rzeczami, nie szukałem pracy, bo chciałem się dobrze przygotować.
Często w ogłoszeniach o pracę widzę dodatkowe wymagania. Domyślam się, że to, co już znam, to wymagane podstawy. Czy moglibyście doradzić mi, czego oprócz wyżej wymienionych rzeczy warto się nauczyć, żeby nie mieć problemu ze znalezieniem pracy jako programista? Oczywiście nie chodzi mi o takie podstawy, które każdy musi poznać na studiach informatycznych, np. algorytmy, wzorce projektowe itp, ani też o język angielski i matematykę, bo z tym nie mam problemu. Czy znajomość Scrum jest wymagana, czy można to poznać dopiero w pracy?
Może się wydawać, że półtora roku to bardzo dużo czasu i już dawno powinienem zostać programistą, ale mam pracę, która również wymaga ode mnie dużo myślenia i nauki, więc mnie trochę spowalnia.

0

Jak jesteś burmistrzem, to dobrze wiesz, że najbardziej opłaca się iść "na lewo". Największa kasa. ;)

A jak chcesz pracować uczciwie, no cóż, kasa kiepska, wtedy może web-dev ? albo mobile w xamarin ?

0

WPF. Dużo ogłoszeń się pojawia, gdzie wymagają jego znajomości.

Ja bardzo rzadko, sporadycznie widzę takie oferty. Jeśli chodzi technologie Mikroshita, to rządzi ASP MVC.

0

Nie zacząłem jeszcze szukać pracy jako programista, bo w mojej obecnej pracy zaproponowali mi większą stawkę i bardzo nie chcą, żebym odchodził. O zmianie pomyślę za kilka miesięcy, a ten czas wykorzystam na douczenie się dodatkowych rzeczy i wykorzystanie ich w jakimś nowym projekcie.

Mam jeszcze takie pytania:

Jakie frameworki do testów jednostkowych są najbardziej popularne u programistów .NET? Poznałem NUnit i NSubstitute, ale nie w aż takim stopniu, żeby trzymać się już tylko nich, więc mógłbym nauczyć się czegoś, co z największym prawdopodobieństwem będzie używane w mojej przyszłej pracy (interesuje mnie tylko Polska). Do tej pory nie skupiałem się bardzo na testach, ale jeśli mam okazję, to to zmienię,

Jaki framework oprócz Knockout.js powinienem poznać? W tym przypadku też chodzi mi o najpopularniejszy na polskim rynku.

Czy jeśli mam nowe pomysły z nową wiedzą, to powinienem usprawnić moje poprzednie projekty, czy nie zajmować się już nimi, tylko od podstaw stworzyć coś nowego? Bardziej chodzi mi o wnętrze niż zmiana działania i wyglądu.

1

Jeśli chodzi o testowanie, to w upośledzonych firmach często zdarza się MSTest (ten wbudowany w Visual Studio).
Co do mockowania to chyba Moq jest najpopularniejszy, ale w stosunku do NSubstitute to krok wstecz. Poza tym, wszystkie te narzędzia są do siebie dość podobne, więc przestawienie się z jednego na drugi w nowej pracy to kwestia kilku godzin.
Jeśli chodzi o web to pewno Angular i React.

0

Od momentu napisania pierwszego posta w tym temacie minęło dużo czasu. W tym czasie nie szukałem pracy, a dopiero niedawno zacząłem wysyłać podania do firm i poszedłem na kilka spotkań rekrutacyjnych. Było różnie - po niektórych rozmowach czułem się jak szmata (ale raczej ogłoszenie nie było konkretnie na juniora), po innych miałem wrażenie, że nie było takiej rzeczy, na której by mnie kompletnie zagięli. Dostałem pracę jako junior full-stack .NET developer (zarobki wyższe niż mam obecnie jako nie-junior).

Dzięki za wszystkie rady - były pomocne.

0
Burmistrz napisał(a):

Od momentu napisania pierwszego posta w tym temacie minęło dużo czasu. W tym czasie nie szukałem pracy, a dopiero niedawno zacząłem wysyłać podania do firm i poszedłem na kilka spotkań rekrutacyjnych. Było różnie - po niektórych rozmowach czułem się jak szmata (ale raczej ogłoszenie nie było konkretnie na juniora), po innych miałem wrażenie, że nie było takiej rzeczy, na której by mnie kompletnie zagięli. Dostałem pracę jako junior full-stack .NET developer (zarobki wyższe niż mam obecnie jako nie-junior).

Dzięki za wszystkie rady - były pomocne.

Takie mam pytanie. Oczywiście jeśli to zbyt osobistę to proszę nie odpowiadać. Jak kształtuję się rynek programistów PLC ? Studiuję AiR dodatkowo programuję sobie w C# po zajęciach. Na jakie wynagrodzenie można liczyć tak jak Pan po kilku latach doświadczenia?Z Automatykami trochę inaczej niż z Programistami... Mniej informacji w internecie na temat zawodu,wynagrodzeń itp - to zdecydowanie domena programistów.

0
Automatyk/Programista napisał(a):
Burmistrz napisał(a):

Od momentu napisania pierwszego posta w tym temacie minęło dużo czasu. W tym czasie nie szukałem pracy, a dopiero niedawno zacząłem wysyłać podania do firm i poszedłem na kilka spotkań rekrutacyjnych. Było różnie - po niektórych rozmowach czułem się jak szmata (ale raczej ogłoszenie nie było konkretnie na juniora), po innych miałem wrażenie, że nie było takiej rzeczy, na której by mnie kompletnie zagięli. Dostałem pracę jako junior full-stack .NET developer (zarobki wyższe niż mam obecnie jako nie-junior).

Dzięki za wszystkie rady - były pomocne.

Takie mam pytanie. Oczywiście jeśli to zbyt osobistę to proszę nie odpowiadać. Jak kształtuję się rynek programistów PLC ? Studiuję AiR dodatkowo programuję sobie w C# po zajęciach. Na jakie wynagrodzenie można liczyć tak jak Pan po kilku latach doświadczenia?Z Automatykami trochę inaczej niż z Programistami... Mniej informacji w internecie na temat zawodu,wynagrodzeń itp - to zdecydowanie domena programistów.

AiR to obecnie w Polsce nie istnieje na rynku pracy. Chyba, że jakieś utrzymanie ruchu, no chyba, że jesteś turbo uber koksem. Niskie zarobki nieadekwatne do formy pracy.

0
Zakręcony Szewc napisał(a):

AiR to obecnie w Polsce nie istnieje na rynku pracy. Chyba, że jakieś utrzymanie ruchu, no chyba, że jesteś turbo uber koksem. Niskie zarobki nieadekwatne do formy pracy.

Mówisz z doświadczenia czy z usłyszanych historii? Słyszałem ,że utrzymanie ruchu w dużych firmach z możliwością awansu jest ok. Krążą też takie głosy że jak chcesz "dobrze" zarobić jako automatyk to właśnie poprzez awans z dala od typowej automatyki - kierownik działu itp. No ale to jak w każdej branży. Wysokim stopniem programiści w firmach w pewnym momencie też przestają kodować albo jest to jakiś mały procent ich obowiązków - raczej papierkowa robota , kontakt z klientami itp.

0
Automatyk/Programista napisał(a):
Zakręcony Szewc napisał(a):

AiR to obecnie w Polsce nie istnieje na rynku pracy. Chyba, że jakieś utrzymanie ruchu, no chyba, że jesteś turbo uber koksem. Niskie zarobki nieadekwatne do formy pracy.

Mówisz z doświadczenia czy z usłyszanych historii? Słyszałem ,że utrzymanie ruchu w dużych firmach z możliwością awansu jest ok. Krążą też takie głosy że jak chcesz "dobrze" zarobić jako automatyk to właśnie poprzez awans z dala od typowej automatyki - kierownik działu itp. No ale to jak w każdej branży. Wysokim stopniem programiści w firmach w pewnym momencie też przestają kodować albo jest to jakiś mały procent ich obowiązków - raczej papierkowa robota , kontakt z klientami itp.

Z doświadczenia swojego i innych po tym kierunku. Trzeba trafić na naprawdę dobrą firmę. Jeżeli widzą Ci się dobre zarobki to licz się z masą wyjazdów i pracą jako wdrożeniowiec. Trzeba lubić takie życie, albo właściwie jego brak.

0

Z doświadczenia swojego i innych po tym kierunku. Trzeba trafić na naprawdę dobrą firmę. Jeżeli widzą Ci się dobre zarobki to licz się z masą wyjazdów i pracą jako wdrożeniowiec. Trzeba lubić takie życie, albo właściwie jego brak.

No właśnie głównie to skłoniło mnie to rozpoczęcia przygody z programowaniem na poważnie. Cel , by na przyszłoroczne obowiązkowe praktyki składać nie tylko aplikacje na staże dla automatyków ale także dla programistów. Jestem typem osoby , która wolałaby stabilną pracę na miejscu niż częste wyjazdy i tylko weekendy w domu. A Pan pracuje jako programista czy "w zawodzie" jako automatyk? Jak wyglądała Pana edukacja na studiach jeśli można wiedzieć(drugi stopień?)?. Byłbym wdzięczny za przybliżenie Pana historii edukacji i ewentualnej pracy, nie często trafiam w internecie na osoby po AiRze , które się przebranżowiły ( bo to zakładam ) mimo , że jest to podobno jeden z najpopularniejszych kierunków przebranżowienia jeśli chodzi o programistów.

0
Automatyk/Programista napisał(a):

Z doświadczenia swojego i innych po tym kierunku. Trzeba trafić na naprawdę dobrą firmę. Jeżeli widzą Ci się dobre zarobki to licz się z masą wyjazdów i pracą jako wdrożeniowiec. Trzeba lubić takie życie, albo właściwie jego brak.

No właśnie głównie to skłoniło mnie to rozpoczęcia przygody z programowaniem na poważnie. Cel , by na przyszłoroczne obowiązkowe praktyki składać nie tylko aplikacje na staże dla automatyków ale także dla programistów. Jestem typem osoby , która wolałaby stabilną pracę na miejscu niż częste wyjazdy i tylko weekendy w domu. A Pan pracuje jako programista czy "w zawodzie" jako automatyk? Jak wyglądała Pana edukacja na studiach jeśli można wiedzieć(drugi stopień?)?. Byłbym wdzięczny za przybliżenie Pana historii edukacji i ewentualnej pracy, nie często trafiam w internecie na osoby po AiRze , które się przebranżowiły ( bo to zakładam ) mimo , że jest to podobno jeden z najpopularniejszych kierunków przebranżowienia jeśli chodzi o programistów.

AiR, Politechnika Poznańska - nie polecam. Jedyne co mnie zatrzymało to świetny promotor i ciekawa praca inżynierska i magisterska (OpenCV). Koledzy również poprzebranżawiani i sporo z nich właśnie poszło w .NET, w tym ja. Osobiście przygodę z C# zacząłem sam w domu: Udemy, Pluralsight, taki wstępik wystarczył do sklejenia prostych programików. Obecnie piszę w ASP i trochę Angular.

0
Zakręcony Szewc napisał(a):

AiR, Politechnika Poznańska - nie polecam. Jedyne co mnie zatrzymało to świetny promotor i ciekawa praca inżynierska i magisterska (OpenCV). Koledzy również poprzebranżawiani i sporo z nich właśnie poszło w .NET, w tym ja. Osobiście przygodę z C# zacząłem sam w domu: Udemy, Pluralsight, taki wstępik wystarczył do sklejenia prostych programików. Obecnie piszę w ASP i trochę Angular.

A kiedy rozpoczął Pan tę przygodę? I po jakim okresie nauki zdecydował Pan ,że to już czas na pierwszy staż/pracę w tej dziedzinie . Od razu po studiach poszedł Pan w IT czy przez jakiś okres czasu pracował Pan w zawodzie ?

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