Co trzeba umieć aby zostać przyjętym jako programista C#

0

Witam. Mam pytanie odnośnie pracy jako programista C#. Generalnie ten język najbardziej mi pasuje z uwagi na to że najwięcej w nim umiem. Co prawda zrobiłem też już parę rzeczy w c++ ale jednak c# bardziej mi pasuje. Moje pytanie brzmi następująco : czego się uczyć, żeby zostać przyjęty jako początkujący programista. W sensie jakie biblioteki warto poznać, jakie klasy i tego typu wytwory tego języka. Często pytają o wzorce programowe, jakich się nauczyć. Jaka powinna być prawidłowa kolejność uczenia się rzeczy składowych tego języka?

Ogólnie to pytań mam masę ale to lepiej będzie na bieżąco.
Ogólnie to:

umiem wykorzystywać i tworzyć klasy, metody itp

wiem, że określa się także dostęp do pól

są też różne rodzaje klas (abstrakcyjne i takie tam)

jest obsługa wyjątków

używałem bitmap (przerobienie obrazka czarno-białego piksel po pikselu)

wykonywałem operacje na plikach ( program do sortowania plików według ich rozszerzeń )

tablice, łańcuchy , listy

umiem stworzyć aplikację WF

Zrobiłem program, który pracuje na plikach Excela ( służy do notowania wizyt u pacjentów)

Powyżej opisałem z grubsza co mniej więcej robiłem i co umiem.

Bardzo bym prosił jeżeli to możliwe aby ktoś bardziej doświadczony podpowiedział mi co warto się jeszcze nauczyć ( jakieś rzeczy obowiązkowe jeszcze ). Prosił bym tak hasłowo, jakieś dobre stronki, nawet po angielsku, może jakieś książki takie przydatne żeby coś więcej wiedzieć.

Czekam na jakieś porady i z góry dziękuję.

1

Prawie na pewno będzie Ci potrzebna znajomość SQLa.

1

To co wymieniłeś to praktycznie tylko elementy języka, a z tego się nic nie da zrobić. Potrzebne są jeszcze chociażby: operacje na plikach, korzystanie z bazy danych, przetwarzanie XML, wątki, kolekcje, lambdy i LINQ, wzorce projektowe.

0

Zrobiłem właśnie taką małą aplikację , która wykorzystuje bibliotekę EPPlus i pracuje na plikach Excela. Na pewno nie zrobiłem tego profesjonalnie ale działa i osoba, która jej używa nie narzeka ( na razie ). Jeżeli ktoś by zechciał się ją przejrzeć i powiedzieć mi o moich błędach to z chęcią podeślę ją do oceny.

z tego co się orientuję to XML jest językiem opisu, w którym są kontrolki graficzne "napisane", można bardziej rozwinąć temat przetwarzanie XML? I też SQL co konkretnie do tych baz danych, jakieś książki, stronki?

I te wzorce, jakiego się powinienem nauczyć najpierw, czy to co mi podaliście jest konieczne do przejścia na wzorce, czy nie?

1

Przydatne książki:

Pro C# 5.0 & .Net Framework 4.5
C# in Depth

W zasadzie to wymieniłeś tylko ogólnikowo co znasz i w większości to same podstawy języka.

To że wiesz, że są wyjątki i rożne kolekcje to jedno, ale powinieneś też wiedzieć jak obsłużyć wyjątki, kiedy użyć jakiej kolekcji, jakie złożoności mają poszczególne operacje na kolekcjach, czym się charakteryzują.

Na 100% musisz umieć obsługiwać wątki oraz je synchronizować. Delegaty i zdarzenia(eventy). Tak jak już wspomniał somekind lambdy i LINQ.
Asynchroniczne wykonywanie kodu(w C# 5.0 wprowadzono async i await).

0

Dodaję 2 Pliki z kodem mojego projektu. Plików na których operuję nie daję bo są tam prawdziwe dane.

1

Ja tam jakimś znawcą to nie jestem ale ten kod za dużo nie pokazuje, bo jest tylko kilka prostych metod.

Nie wiem po co używasz zmiennych globalnych.
Popracuj nad nazwami zmiennych bo nie wygląda to estetycznie.
Zamiast string[] pesel itd. lepiej użyć listy.
Niektóre komentarze są zbędne bo widać co kod robi(np. komentarz "zmienna" po deklaracji).
Chyba przydałoby się oddzielić logikę od prezentacji.

0

Wiem, po prostu robiłem to jak umiałem, przeglądałem fora w celu zrobienia tego konkretnego programu. Zdaje sobie sprawę, że to nie wygląda ładnie i nie wiele tam jest. Ok, popracuje jeszcze nad tym zgodnie z uwagami.

0
zsefb123 napisał(a):

Dodaję 2 Pliki z kodem mojego projektu. Plików na których operuję nie daję bo są tam prawdziwe dane.

                    pielengniarka = pielegniarki.Cells[numer2].Text;
                    PIELEGNIARKA.Items.Add(pielengniarka); 

what a crap!

0

Mógłbyś rozwinąć **kę ** o jaką bzdurę ci chodzi?

0

Po własnym doświadczeniu z poszukiwania pracy sądzę że to co zaprezentowałeś i to co opisałeś to zdeycdowanie za mało żeby starać się na juniora. O jakości kodu który wrzuciłeś nie będę się wypowiadał bo są tu osoby o większym doświadczniu które wiele rzeczy widzą lepiej( ale na pierwszy rzut oka wygląda to raczej słabo - razi kod "produkcyjny" od razu w event handlerach UI, polskie nazwy itd). Raczej długa droga przed Tobą, ale nie zrażaj się bo wytrwałość przynosi efekty :-)

0
zsefb123 napisał(a):

z tego co się orientuję to XML jest językiem opisu, w którym są kontrolki graficzne "napisane", można bardziej rozwinąć temat przetwarzanie XML?

Nie, XML to uniwersalny język opisu danych. Bardzo często dane między różnymi aplikacjami czy systemami są wymieniane za pomocą tego formatu, wiec brak wiedzy na temat tego czym on w ogóle jest, dyskwalifikuje nawet na juniora.

0
        public string noweimie, nowenazwisko, nowypesel, nowybartel, nowadata;
        public string[] pesele = new string[300];
        public string[] bartel = new string[300];
        public string[] daty_opieki = new string[300];
        public string[] imie = new string[300];
        public string[] nazwisko = new string[300];

Wracamy do czasów asemblera? Tożto juz w C były struktury i dało sie upakować związane ze sobą dane w ładną strukturę np. o nazwie Osoba. Dalej do kodu nawet nie zaglądam bo potem nie zasnę. Jeszcze daleko ci do zostania programistą.

0

@Shalom
Z jego pierwszej wypowiedzi zrozumiałem, że zna podstawy OOP.
Ale wychodzi na to że niepraktykujący :).

0

Pomijając kwestie czysto merytoryczne to masz bardzo mętne nazewnictwo.

  1. exellll, exell_, paczkaa - po co te powtórzone literki?
  2. stosuj camelCase, czyli żadne exell_Click
  3. kod tylko i wyłącznie po angielsku, a już na pewno żadnego mieszania języków, bo to wygląda kuriozalnie: pacjent_out_Click
  4. komentarze też staraj się po angielsku, i tylko sensowne. Komentarz typu zmienna nie jest sensowny. Tak samo otwieranie pliku tuż obok instrukcji, która jasno to pokazuje.
  5. nazwy zmiennych powinny mówić do czego są. Czym się różni PIELEGNIARKA od pielegniarka? Albo do czego są li i o?
0

co do notacji nie będę się wypowiadał bo są różne np. kiedyś była modna "węgierska". Rzuca się jednak w oczy brak doświadczenia - PESEL - string 300 ? jak PESEL zawsze ma 11, zakres dat w jednym polu string !? bo o to chyba chodzi w daty_opieki to dla mnie jak samobójstwo,

0

Slabo. Zacznij od nauki podstaw programwoania ogolnie i poznania dobrych praktyk. Z ksiazek, moze Code Complete?

Lista issues jakei bys dostal do kodu, zanim by nawet doszlo do review:

  • magic numbers
  • hardcoded strings
  • lack of exception handling
  • mixing languages
  • "pielengniarka" - you make my day?
  • non meaningfull names
  • hard to read

Przyklad, bierzesz taki kawalek kodu i nic nie mowi co znacza poszczegolne literki:

 wizyty.Cells["A" + li.ToString()].Value = pesele[li];
                    wizyty.Cells["B" + li.ToString()].Value = nazwisko[li];
                    wizyty.Cells["K" + li.ToString()].Value = imie[li];
                    wizyty.Cells["E" + li.ToString()].Value = data_wej;

Przejrzysz sobie dzialy programistyczne tutaj na forum, oceny innego kodu, prjekty ktore sa dobrze napisane. Samego jezyka douczysz sie pozniej/rownolegle.

0

Nie musi być wszystko idealnie, żeby zaczynać jako junior. Jednakże jeżeli ktoś zobaczy program z takimi tablicami jak masz w kodzie, to od razu odrzuci kandydaturę. Pracodawca nie zamierza tracić czasu na uczenie podstaw.

0

im więcej umiesz tym więcej będziesz zarabiać proste :)

0

Zdecydowanie polecam ten temat http://goo.gl/JN1i9D :) Idealny

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