Nauka języka: Podręcznik czy dokumentacja? I inne pytania.

0

Hej :) Jestem totalnym newbie jak chodzi o kodowanie. Z czystej ciekawości, naukę kodowania w C# byście polecali zacząć od podręcznika "Albahari J. - C# 6.0 w pigułce" czy od zapoznania się z dokumentacją C#, a może od czegoś innego? I dlaczego? Z góry dzięki za merytoryczne odpowiedzi :)

1

Zależy z czego lubisz się uczyć.

Ja np. lubię mieć wizualizację, co się sprowadza do -> Pluralsight.com i wszelkiej maści tutoriali, które można znaleźć na google.com
Jeśli lubisz czytać to -> helion.pl lub -> google.com
Jak dla mnie MSDN i czytanie dokumentacji to jest raczej taki hardcore bo tam wszystko technicznym językiem napisane i jak nie będziesz miał podstaw to ciężko będzie to zrozumieć, chociaż mają tam również taki tutorial do przeczytania tutaj

0
Wheliee napisał(a):

(...) chociaż mają tam również taki tutorial do przeczytania tutaj

mam ten tutorial na PDF, właśnie zacząłem sobie go przerabiać. choć przyznaję, że do tej chwili myślałem, że to jest dokumentacja, ponieważ wpadłem na niego jak szukałem właśnie jej :D

0

Z mojego doświadczenia, trudno się uczyć z książek programowania, bardziej jako czytanka w łóżku jak nie mogę usnąć. ;)
Jakiś kursik z coursera.org lub podobnej strony oraz dokumentacja jako wsparcie.

4

Gdy zaczynałem programować to kupowałem książki, pomogły bardzo, nawet teraz gdy chce wejść w jakiś język bardziej niż na już to też kupuje i się zapoznaje z całością przez co mam obraz możliwości od razu na tacy. Dokumentacja jak najbardziej, z tego się korzysta na co dzień, ale przynajmniej na początek książka to dobry wybór, byle dobra, bo jest wiele kiepskich pozycji.

0

Jak uczysz się od zera to zacznij od książki. Pomoże ona Ci zrozumieć podstawy oraz samą strukturę języka. Po takiej lekturze będziesz już wiedział i kojarzył pewne fakty i wtedy dokumentacja nie będzie dla Ciebie stanowić problemu.

0

Why not both?

0

Słuszna uwaga, czemu nie uczyć się z obu? :D Zacząłem od książki, ale zdecydowałem się przenieść do dokumentacji/specyfikacji. Jeśli czegoś tam nie rozumiem to wyszukuję zagadnienia w książce, gdzie są one tłumaczone w naszym języku i na innych przykładach. Choć uważam, że specyfikacja jest napisana trochę przyjaźniejszym stylem niż w/w książka, przynajmniej na początku. Ale to moje subiektywne odczucie.

0

Siema. Jako niuba uderzyła mnie ilość klas w .NET i rozbudowane drzewa klas wewnątrz systemów, do tego można tworzyć własne klasy. W podręcznikach, jak wnioskuję, poznajemy niewielki ułamek klas .NET Framework.

Ciekaw jestem czy w praktyce należy znać większość metod i klas z MSDN: https://msdn.microsoft.com/en-us/library/gg145045(v=vs.110).aspx , czy każdy się specjalizuje i w pracy korzysta z niewielkiej części opisanej wiedzy? Jak to u Was wygląda?

0

Nie znam tej pozycji, więc się nie wypowiem, ale zazwyczaj dobrze mieć i dobrą książke i dokumentację. Książka - jeśli jest dobra - kieruje, oraz uczy poza językiem pewnych zasad, przydatnych, natomiast dokumentacja pozwala poznać konstrukcje i funkcje języka i szybciej znaleźć pewne rzeczy

0
kaczus napisał(a):

Nie znam tej pozycji, więc się nie wypowiem, ale zazwyczaj dobrze mieć i dobrą książkę i dokumentację. Książka - jeśli jest dobra - kieruje, oraz uczy poza językiem pewnych zasad, przydatnych, natomiast dokumentacja pozwala poznać konstrukcje i funkcje języka i szybciej znaleźć pewne rzeczy

Dzięki za odpowiedź, ale temat literatury już mam ogarnięty. Skończyłem przerabiać "Wstęp do programowania w C#" A.Kempa, T.Staś, którą polecam wszystkim początkującym. Teraz jadę dalej z "C# 6.0 w pigułce".

Natomiast zaintrygowało mnie rozbudowane drzewo klas w specyfikacji na stronie MSDN. Ciekaw jestem czy w praktyce należy się zapoznać ze wszystkimi, czy lepiej się uczyć ich na bieżąco w razie potrzeby?

2

Jakbyś wszystkie chciał poznać to życia może ci nie starczy. Te podstawowe wykorzystywane w programach powinno się znać, a w pracy to przecież nie jesteś na jakimś odludziu i internet jest, można do dokumentacji zawsze skoczyć i doczytać/przerobić przykład kodu na swoje potrzeby.

1

Warto zapoznać się przede wszystkimi z tymi przestrzeniami nazw, bo ich używa się najczęściej i stanowią pewne podstawy wszystkiego:

System.IO
System.Xml
System.Collections
System.Data
System.Linq
System.Threading
System.Text

Reszta zależy od technologii i firmy, w której pracujesz.

1
bakunet napisał(a):
kaczus napisał(a):

Nie znam tej pozycji, więc się nie wypowiem, ale zazwyczaj dobrze mieć i dobrą książkę i dokumentację. Książka - jeśli jest dobra - kieruje, oraz uczy poza językiem pewnych zasad, przydatnych, natomiast dokumentacja pozwala poznać konstrukcje i funkcje języka i szybciej znaleźć pewne rzeczy

Dzięki za odpowiedź, ale temat literatury już mam ogarnięty. Skończyłem przerabiać "Wstęp do programowania w C#" A.Kempa, T.Staś, którą polecam wszystkim początkującym. Teraz jadę dalej z "C# 6.0 w pigułce".

Natomiast zaintrygowało mnie rozbudowane drzewo klas w specyfikacji na stronie MSDN. Ciekaw jestem czy w praktyce należy się zapoznać ze wszystkimi, czy lepiej się uczyć ich na bieżąco w razie potrzeby?

Po prostu szukasz tego co potrzebujesz w danym momencie i tyle

0

W czasie nauki pojawiła mi się refleksja. A mianowicie, różne typy zajmują różną ilość pamięci. Tak samo każdą metodę/blok można napisać na kilka równoznacznych sposobów, stosując inne pętle, wpisując je w siebie lub korzystając z metod, klas, produkując stałych i zmiennych na potęgę.

Zastanawiam się, czy w pracy zawodowej zwraca się uwagę na "kulturę" programowania, optymalizując kod, czy po prostu ma działać i tyle? Jak to wygląda w praktyce? Jak na to patrzy pracodawca, leader?

1

title

0

Ciekaw jestem, w C# piszecie aplikacje windowsowe? Korzystacie z System.Windows.? Warto od tego zaczynać? czy lepiej na początek się zapoznać z innymi przestrzeniami nazw? tzn IO, Collections, Data, Linq, Xml, Text, jak radził @somekind ?

0
bakunet napisał(a):

Ciekaw jestem, w C# piszecie aplikacje windowsowe? Korzystacie z System.Windows.? Warto od tego zaczynać? czy lepiej na początek się zapoznać z innymi przestrzeniami nazw? tzn IO, Collections, Data, Linq, Xml, Text, jak radził @somekind ?

Oczywiście, bo w C# najszybciej się napisze apki na windowsa. Po raz kolejny nie wiem na co się zapoznawać z przestrzeniami nazw. One są tak wielkie, ze choćbyś siedział pare miesięcy nie zapamiętasz co tam w nich siedzi. Siadasz i robisz. Jak czegoś potrzebujesz to szukasz w dokumentacji i googlu. Po jakimś czasie już będziesz wiedział gdzie coś się może znajdować i intuicyjnie to łapał.

0
mr_jaro napisał(a):

Oczywiście, bo w C# najszybciej się napisze apki na windowsa. Po raz kolejny nie wiem na co się zapoznawać z przestrzeniami nazw. One są tak wielkie, ze choćbyś siedział pare miesięcy nie zapamiętasz co tam w nich siedzi. Siadasz i robisz. Jak czegoś potrzebujesz to szukasz w dokumentacji i googlu. Po jakimś czasie już będziesz wiedział gdzie coś się może znajdować i intuicyjnie to łapał.

Pewnie masz rację. Choć znając jedynie semantykę C#, po przerobieniu podstaw, osobiście chcę przejrzeć przestrzenie nazw, poznać ich klasy, metody, przykłady zastosowań, przerobić przykłady z MSDN, poczytać o rzeczach które wciąż budzą moje wątpliwości. Nie znam lepszego sposobu na to, by poznać potencjał C# nim zabiorę się za swoje pierwsze demo.

Zacząłem przerabiać "C# 6.0 w pigułce", podręcznik 1000str, czyta się całkiem spoko, ale jest tam mało przykładów i po 1/10 doszedłem do wniosku, że bez żywego materiału na którym będę mógł testować teorię nic mi nie zostanie w głowie.

1

Szczerze? Nie lubię takiego podejścia ale jak kto woli. Ja po prostu jak chce napisać w czymś nowym to po prostu siadam i zaczynam pisać. chce napisać fora w nieznanym języku? Wpisuje w google widzę jak wygląda i to wpisuje i tak z każdą kolejną rzeczą, pozwala mi to oszczędzić czasu i szybciej coś napisać niż najpierw parę tygodni czytania żeby napisać 2 linijki i wracać z powrotem do czytania bo już zapominałem to co przeczytałem. Jak zaczynałem z C# to po prostu stworzyłem nowy czysty projekt i zacząłem od zabawy z gui proste rzeczy proste wywołania aż w końcu napisałem pierwszą apkę, a drugą w tym języku było pierwsze w życiu zlecenie.

Dopiero mając takie przećwiczenie w praktyce można zacząć myśleć o poprawie jakości kodu.

0

Rozumiem, że budować GUI można jedynie w VisualStudio? Obecnie korzystam z SharpDevelop - darmowy kompilator. Posłucham Twojej rady, kto wie, może oszczędziłeś mi sporo czasu :) Pierwszym krokiem będzie instalacja VS.

1

VS też jest darmowe jeśli nie masz zespołu bodajże większego niż 5 ludzi.

0
mr_jaro napisał(a):

(...) aż w końcu napisałem pierwszą apkę, a drugą w tym języku było pierwsze w życiu zlecenie.

W którym to było roku, jeśli mogę spytać?

0
bakunet napisał(a):
mr_jaro napisał(a):

(...) aż w końcu napisałem pierwszą apkę, a drugą w tym języku było pierwsze w życiu zlecenie.

W którym to było roku, jeśli mogę spytać?

2013

0
mr_jaro napisał(a):

Po raz kolejny nie wiem na co się zapoznawać z przestrzeniami nazw. One są tak wielkie, ze choćbyś siedział pare miesięcy nie zapamiętasz co tam w nich siedzi. Siadasz i robisz. Jak czegoś potrzebujesz to szukasz w dokumentacji i googlu.

Czyli jak chcesz odczytać plik tekstowy, zmienić kodowanie w pliku, zserializować dane do XML, wczytać konfigurację, użyć jakiejś kolekcji albo ją przeszukać, to za każdym razem sięgasz do dokumentacji?
Sorry, ale to są takie podstawy, że trzeba być w stanie to zrobić w dowolnym momencie z pamięci.

1

@mr_jaro napisał:

Po raz kolejny nie wiem na co się zapoznawać z przestrzeniami nazw. One są tak wielkie, ze choćbyś siedział pare miesięcy nie zapamiętasz co tam w nich siedzi.

Jest chyba różnica między "zapoznać", a "zapamiętać". Później jednak trochę wstyd, że implementuje się samemu jakąś kolekcję co już jest w FCL, lub nie ma pojęcia co to są strumienie i jak się z nimi obchodzić.

1
somekind napisał(a):
mr_jaro napisał(a):

Po raz kolejny nie wiem na co się zapoznawać z przestrzeniami nazw. One są tak wielkie, ze choćbyś siedział pare miesięcy nie zapamiętasz co tam w nich siedzi. Siadasz i robisz. Jak czegoś potrzebujesz to szukasz w dokumentacji i googlu.

Czyli jak chcesz odczytać plik tekstowy, zmienić kodowanie w pliku, zserializować dane do XML, wczytać konfigurację, użyć jakiejś kolekcji albo ją przeszukać, to za każdym razem sięgasz do dokumentacji?
Sorry, ale to są takie podstawy, że trzeba być w stanie to zrobić w dowolnym momencie z pamięci.

Być może, ale mój sposób jest dla mnie najbardziej efektywny, tak robię od zawsze (oprócz php i c++ które najpierw na szybko przeczytałem książkę) i jak na razie dobrze na tym wychodzę.

0

Ok, może u Ciebie to działa... Ale większości osób brak wiedzy podstawowej uniemożliwi przejście jakiejkolwiek rozmowy kwalifikacyjnej.

0

Ja do dzisiaj nie posiadam wiedzy podstawowej o JavaScript i muszę często patrzeć na MDN, ale winię za to kiepski design języka (np. w stringach są trzy metody do wycinania tekstu: slice, substr i substring - każda metoda niby robi to samo, ale inaczej interpretuje parametry, np. jedna interpretuje parametr jako długość, druga metoda jako indeks itp. Np. o ile slice kojarzę, to nie pamiętam, czym się różni substr od substring).

Podobnie mi się mylą funkcje JS do obsługi regexpów, bo to też w JS jest strasznie niespójnie zrobione. Falsy values czy wyników porównań w JS też specjalnie nie pamiętam, często muszę sprawdzić coś w konsoli.

Z drugiej strony nie przejmuję się, bo sprawdzić coś to jest chwila.

Gorzej z nieznajomością samych mechanizmów rządzących językiem, to faktycznie wpływa negatywnie albo na produktywność albo na jakość rozwiązań.

0

Mam Kolegę, który od 8 lat koduje i dostałem od niego podobne rady jak od @somekind.

Jako, że nie mam doświadczenia w programowaniu, ostatecznie postanowiłem posłuchać tych rad. Przy dużej ilości wolnego czasu w kilka tygodni powinienem się uporać z przejrzeniem podstawowych przestrzeni nazw, sporządzając własne notatki na przyszłość i testując na przykładach z MSDN. Wiele metod się sprowadza do wprowadzenia lub sprawdzenia wartości logicznych, więc nie powinno to zająć tyle czasu ile z pozoru mogłoby się wydawać.

W każdym razie dzięki wszystkim za sugestie :)

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