Wiem, że są tutaj podobne pytania, które przeczytałem, ale ostatnio przeczytałem ten post Joela Spolsky'ego:
Jak mogę nauczyć jasną osobę, bez doświadczenia w programowaniu, jak programować?
I sprawiło, że pomyślałem o moim sposobie uczenia się i czy na dłuższą metę może to być szkodliwe.
Zajmowałem się różnymi językami, ale C # jest moim pierwszym poważnym, przeczytałem „Head First C #” i stworzyłem kilka projektów. Ale po przeczytaniu powyższego postu stwierdziłem, że jest to trochę przygnębiające, że mogę się mylić z tym wszystkim źle, oczywiście szanuję opinię Joela, co mnie trochę rzuciło.
Zacząłem czytać „Kod” zgodnie z zaleceniami na liście lektur i jest to dla mnie dość trudne, choć przyjemne. Wydaje mi się, że nabrało blasku po moim „noobistycznym hackowaniu” w Visual Studio.
Więc teraz nie jestem pewien, którą ścieżkę powinienem obrać? Czy powinienem zrobić krok do tyłu i postępować zgodnie z radą Joela i zacząć czytać?
Wydaje mi się, że moim głównym celem jest zostać dobrym programistą, tak jak wszyscy inni, ale nie chcę popadać w złą praktykę, ucząc się języka .NET, gdy ktoś, kogo szanuję, uważa, że jest szkodliwy.
Myśli?
Odpowiedzi:
Szanuję także opinie Joela, ale są one po prostu: opiniami . Nie ma absolutnie nic złego w używaniu C # jako języka początkowego.
Największym rada, jaką mogę dać, czy ktoś robi żadnego programowania (nawet jeśli zaczynasz w waniliowym! C) ma nie być w stagnacji, a nie być religijnym . Nie obchodzi mnie, od jakiego języka programowania zaczniesz, ani od tego, jak czysty lub prawy jest ten język - w dzisiejszych czasach nie możesz sobie pozwolić na siedzenie tylko w świecie programowania.
Na przykład programowanie zacząłem od PHP3, gdy byłem nastolatkiem. Zbudowałem z nim kilka małych aplikacji internetowych i kilka stron internetowych; Myślałem, że jestem genialnym programistą i że mogę zrobić wszystko z PHP3, i zmarszczyłem brwi na ludziach, którzy zajmowali się ASP lub BASIC. Chłopie, myliłem się.
Nie zacząłem naprawdę rozkwitać jako programista, dopóki nie zacząłem poszerzać swoich horyzontów i studiować innych języków programowania i pojęć. Podczas liceum nauczyłem się trochę RealBASIC, a później Visual Basic. Po szkole biznesu, kiedy zostałem profesjonalnym programistą, zacząłem poważnie uczyć się języka C # i Javascript.
Nie zrozumcie mnie źle - nie zalecam, abyś starał się być waletem wszystkich zawodów. W sercu i w handlu nadal jestem programistą PHP. PHP to mój chleb powszedni i wiem to od wewnątrz i na zewnątrz. Jednak moje umiejętności PHP nie stały się tym, czym się zajmowali. Oto kilka bardzo ważnych koncepcji, których nie zrozumiałem z PHP, mimo że pracowałem w nim profesjonalnie.
Mógłbym kontynuować, podobnie jak wielu innych na tej stronie, przez wiele dni. Mimo że jestem programistą PHP, udało mi się przywrócić mi te wszystkie wspaniałe pomysły do pracy, którą wykonuję każdego dnia.
O co mi chodzi? Dowiedz się C #. Zostań mistrzem C # - będziesz mieć długą, udaną karierę i prawdopodobnie osiągniesz niesamowite rzeczy. Ale nie szufladkuj siebie. Podróżuj i próbuj innych języków, środowisk i koncepcji.
źródło
To przypomina mi historię z udziałem Richarda Feynmana. Student z Caltech zapytał wybitnego kosmologa Michaela Turnera o jego „uprzedzenie” na korzyść rodzaju cząstki jako kandydata do złożenia ciemnej materii, a Feynman warknął i powiedział: „Dlaczego chcesz poznać jego uprzedzenie? Utwórz własne! ... Nie zwracaj uwagi na władze, pomyśl sam ”.
Programiści pochodzą z różnych środowisk. Javy uczy się dzisiaj w wielu szkołach średnich i wyższych, ale nie została nawet wynaleziona, gdy Joel Spolsky był w szkole. Nie ma „jednej prawdziwej ścieżki”, jeśli chodzi o to, aby zostać dobrym programistą. Z pewnością istnieją klasyki, takie jak SICP, na które natrafia większość programistów, ale nie ma twardego i szybkiego standardu. Najważniejsze jest, aby gdzieś zacząć i skupić się na budowaniu koncepcji. Świetny programista powiedział kiedyś:
Myślę, że C # to dobry język na początek, ale ostrzegam cię, abyś uważał na Visual Studio. Jest to ogromne IDE, ale jeśli przeciągniesz a
DropDownList
i przypiszeszGridView
do aObjectDataSource
i użyjeszButton
kontrolki, aby przeprowadzićDropDownList
wyszukiwanie oparte, wówczas większość pracy jest wykonywana przez IDE i tak naprawdę nie programujesz. Skorzystaj z narzędzi IDE, ale zawsze staraj się budować koncepcje i rozwijać wiedzę.źródło
Jestem tylko młodszym dzieckiem, ale z całą pokorą i szacunkiem dla tych, którzy są nieskończenie bardziej doświadczeni, muszę wyznać, że nie mam takiego nastawienia.
Jeden programista skomentował poniżej odpowiedź Joela: " jako ktoś, kto miał uderzać głową o biurko nad«programistów», który był bardzo polecany dla swoich C # zdolności, ale nie mógł zrobić prostych rzeczy jak wdrożyć bardzo dobrze udokumentowany klasę bazową, find wycieki pamięci w programach c i c ++ " ...
Ale dlaczego wykrywanie wycieków pamięci w aplikacjach C ++ musi być proste dla kogoś, kto nigdy nie twierdził, że zna C ++? :) Nie rozumiem. To jak krytykowanie psychologa za brak umiejętności dentystycznych. I na pewno nie jestem dobrym programistą, ale czuję, że to nie dlatego, że nie wiem, C ++ - to dlatego, że nie wiem, na tyle dobrze, ramy i języków, które ja jestem przy użyciu.
„nie mógł zrobić prostych rzeczy, takich jak zaimplementowanie bardzo dobrze udokumentowanej klasy podstawowej (...) lub po prostu samodzielnie rozwiązać problem lub nauczyć się nowego pomysłu nawet w umiarkowanym tempie”
OK, ale - korelacja nie oznacza związku przyczynowego i co sprawia, że zakładamy, że brak ogólnych umiejętności programistycznych - co nie mam wątpliwości - jest wynikiem ich wyboru języka?
A może efekt, że C # jest ich pierwszym wybranym językiem?
Widzę innych prawdopodobnych wyjaśnień (być może C # jest po prostu modne, a tym samym przyciąga dużo nowicjuszy ... większość ludzi, dla których C # jest pierwszym językiem nie zostały programowania bardzo długo w ogóle , a to jest więcej handicapu w ma swoje własne prawa niż nigdy nie programuje w innym języku ... itd. itp.).
źródło
free
wpatrzeniem się w ciebie, to jak rozpoznasz ją w programie napisanym w języku, który nie daje takich wskazówek?using
,IDisposable
, obsługi zdarzeń przedstawieniu swoich słuchaczy), ale nie mogłem nawet poważnie próbę zdiagnozowania pamięci wyciek w aplikacji C ++, ponieważ nie znam nawet składni! Nie wiem, co oznacza gwiazdka.Powiedziałbym, że uczenie się jednego języka i trzymanie się go jest bardziej błędem niż decydowanie, od którego języka powinieneś zacząć. Jest kilka języków, których możesz się nauczyć, ale są one łatwiejsze, ale lepiej jest zacząć naukę tego, z którego będziesz dużo korzystać (w ustawieniach szkolnych wybór języka jest już dokonywany przez szkołę). Po prawidłowym nauczeniu się języka i aktywnym używaniu go po kilku miesiącach powinieneś porozmawiać z innym językiem programowania i porównać.
W .NET możesz łatwo korzystać z dwóch (w pewnym sensie ) różnych języków programowania, ponieważ możesz przełączać się między Visual Basic i C #. Możesz więc nauczyć się języka Visual Basic i zobaczyć, jakie są różnice. Na tym poziomie powinieneś biegle posługiwać się podstawowym kodowaniem proceduralnym z trzema podstawowymi strukturami programowania, jeśli możesz być kreatywny z nimi wszystkimi (i umiesz używać zmiennych), to jesteś na najlepszej drodze, aby zostać świetnym programistą:
Nie ma znaczenia, czy Twój dodatkowy język programowania będzie najbardziej aktywny, czy nie, po prostu wiedząc, że języki programowania (szczególnie jeśli postępują zgodnie z tym samym paradygmatem) są do siebie bardzo podobne i istnieją niewielkie niuanse abyś zrozumiał, jak działa programowanie.
Od tego, przynajmniej raz w roku, spróbuj nauczyć się nowego języka programowania, który jest zgodny z innym paradygmatem programowania . Nie musisz całkowicie nadążać za nowym językiem, ale poznanie innych paradygmatów przynosi pewne korzyści. Istnieje kilka paradygmatów, a niektóre języki programowania łączą się między wieloma (zauważ, że C # faktycznie ma podzestawy następujących trzech):
Najważniejsze rzeczy, których powinieneś nauczyć się, że wiele języków programowania stosuje własny zestaw idiomów i podstawowy interfejs API. Więc kiedy nauczysz się nowego języka, spróbuj nauczyć się dobrze tych idiomów i API, a będziesz dobrze, gdy będziesz budował różne rzeczy. Jednym z dobrych powodów jest to, że staniesz się lepszy w projektowaniu i rozwiązywaniu problemów programistycznych. Niektóre idiomy w jednym języku mogą dać ci wgląd w to, jak rozwiązać problem w swoim głównym.
Wiedz również, że istnieje jeszcze jeden bardzo dobry powód, dla którego powinieneś uczyć się innych języków programowania, innych niż główny język, którego będziesz używać najczęściej: Twoje szanse na zatrudnienie są znacznie większe.
źródło
W centrum twojego pytania i wielu odpowiedzi tutaj jest C #. Z Wikipedii :
Opierając się na tym samym, wydaje się bezpiecznie powiedzieć, że możesz nauczyć się języka C # jako pierwszego języka bez powodowania długoterminowego uszkodzenia mózgu. Nie sądzę jednak, by Joel potępiał cały język, gdy pisał :
Problemem nie jest język, wymaga skrótów. Zbyt często ludzie próbują szybko dotrzeć do celu, postępując zgodnie z samouczkami lub książkami „Dowiedz się wszystkiego w ciągu 24 godzin”. Nie musisz poświęcać zbyt wiele czasu na przepełnienie stosu, zanim zaczniesz zauważać, że jest wiele pytań w stylu: „Nigdy w życiu nie napisałem linii kodu, ale wchodzę w iPhone'a programowanie! Czy ktoś może podać mi instrukcje krok po kroku, jak robić dokładnie to, co chcę? Dzięki! ” Nie twierdzę, że przyjmujesz takie podejście, ale musisz się przed tym bronić.
Jeśli chcesz rozwinąć solidne umiejętności programowania, powinieneś zacząć od nauki podstawowych umiejętności. Jeśli spróbujesz przejść bezpośrednio do aplikacji OOP i GUI, prawdopodobnie ominiesz te podstawy. Książki, na które wskazał Joel, są naprawdę bardzo dobre. Przejrzałem tylko C # Yellow Book (PDF), ale wygląda na to, że jest to prawdopodobnie lepsze wprowadzenie do programowania niż większość książek C #, które widzę w sklepach.
źródło
Dla mnie te rzeczy w tym innym artykule trochę się upodobały do elitarnych bzdur. Tak, często polecam SICP poważnym programistom, którzy naprawdę chcą być lepsi, ale tylko tym, którzy chcą wyjść poza „normę” i nauczyć się głębokiej magii. Rzeczywiście, przez lata SICP był standardowym tekstem programowania dla początkujących MIT; ale wielu solidnych programistów nigdy nie miało okazji uczęszczać do tej pięknej, ale drogiej i wysoce selektywnej instytucji.
Więc co nie polecam, w odpowiedzi na swoje pytanie? Zacznij od tego, co masz i naucz się myśleć jak programista, a nie tylko uczyć się określonego języka.
Jeśli akurat masz dostępną implementację C #, cóż, mogę ci powiedzieć, że jest to w pełni idealny język dla sztywnego jak ja - podobnie jak Java, JavaScript, Python, Ruby, Scala, Scheme i wiele innych języków, które mam uczyłem się przez lata. Na koniec staram się wybrać odpowiednie języki i narzędzia do konkretnej pracy, a to oznacza zmianę języków, takich jak czapki.
Nie ma nic złego w korzystaniu z zabawnych sposobów uczenia się, takich jak podejście do Ruby za pośrednictwem Poignant Guide and Shoes Dlaczego (tak jak zaleciłem w innym niedawnym poście ). Istnieją tajemnicze i mistyczne ścieżki, takie jak uderzanie głową w The Little Schemer i The Seasoned Schemer w drodze do SICP . Wielu współczesnych myślicieli chciałoby pominąć wszystkie te starsze akademickie i „przedsiębiorcze” rzeczy i zanurzyć się bezpośrednio w JavaScript, JQuery i HTML5. Istnieje wiele sposobów na rozpoczęcie, więc nie marnuj zbyt wiele czasu. Wystarczy wybrać jeden i dostać kodowania!
Realistycznie uważam, że niewielu pracujących profesjonalistów wysłałoby cię w przeszłość, aby najpierw nauczyć się asemblera lub C / C ++. Szczerze mówiąc, gdyby tak zrobili, nie sądzę, aby wyświadczyliby wam wiele usług.
Aby więc nieco upiększyć „zacznij od tego, co masz”, mam jeszcze trzy rady:
Zacząłem od FORTRAN IV i QBASIC i jeśli te mnie nie zrujnują, C # też cię nie skrzywdzi! Powodzenia i upewnij się, że dobrze się bawisz podczas nauki!
źródło
Myślę, że najlepsza porada, jaką kiedykolwiek widziałem, jeśli chodzi o ludzi pytających „Jakiego języka powinienem się nauczyć?” jest po prostu: dobry programista może pracować w dowolnym języku.
Są argumenty przeciwko temu stwierdzeniu, jestem pewien, ale chodzi o to: najpierw naucz się być dobrym programistą, a nie ekspertem językowym. Budowniczowie nie specjalizują się w budowaniu na dokładnie jednej działce, uczą się umiejętności handlu i stosują je na dowolnej działce, na której są wymagane.
źródło
Czasami podejrzewam, że wybrane języki mają znacznie więcej wspólnego z naszymi osobowościami, a ich sposób, w jaki jesteśmy połączeni, a jeszcze mniej z względami praktycznymi lub akademickimi, niż chcielibyśmy przyznać.
To powiedziawszy, uczenie się nowych rzeczy nigdy nie jest szkodliwe. Dowiesz się o dniu, w którym przekroczyłeś próg ewolucji lub być może złamanego mózgu (wydaje mi się, że to kwestia perspektywy), kiedy zaczniesz zdawać sobie sprawę, że wszystko ma instrukcję. Możesz ostatecznie naprawdę zrobić wszystko, co chcesz, jeśli masz talent i jesteś zainteresowany pracą, a nie aspektem programisty.
Przynajmniej zadzieraj z Pythonem i JavaScript. Zdecydowaną zaletą uczenia się jest możliwość pisania kodu i obserwowania, jak wykonuje się natychmiast w środowisku konsoli dostępnym we / wy, takim jak IDLE, lub w środowisku piaskownicy, takim jak przeglądarka. Nie podoba mi się w C # i Javie, że chcą, aby wszystko było ograniczone do klas, nawet jeśli tak naprawdę piszesz prostą funkcję z bezsensownymi opakowaniami wokół niej, aby zadowolić swoich rówieśników lub zbyt restrykcyjny kompilator. Inną rzeczą, którą lubię w JS i Python, jest to, że naprawdę pozwalają ci ustalić własny paradygmat. Trochę zbyt elastyczna przez wiele preferencji programistów. Nadal nie jestem pewien, co sądzić o mądrości przeładowywania podstawowych operatorów, ale jestem pewien, że uwielbiam Python za umożliwienie tej opcji.
Nie daj się też zwieść okrutnemu kłamstwu wyboru języka podstawowego z największą liczbą ofert pracy. Lepiej być dużą rybą na średnich wodach, robiąc to, co lubisz, niż członkiem hordy w większości okropnych, nieznośnych ryb, które zamieniają każde poszukiwanie pracy w coś więcej niż loterię.
źródło
C # nie jest tak zły jak Java w znacznym stopniu. Mają lepszą obsługę wielu koncepcji, takich jak programowanie funkcjonalne, programowanie ogólne, deterministyczne typy zniszczenia i typy wartości, przeciążenie operatora itp. Ich obsługa tych funkcji może oczywiście wymagać dużo pracy, ale jest znacznie lepsza niż Java, nawet jeśli to nie jest C ++.
Po drugie, myślę, że źle rozumiesz, co powiedział Joel. Jeśli można opanować wskaźników i rekurencji, to nie ma znaczenia, jakiego języka używasz teraz. Najważniejszą rzeczą byłoby użycie małego
unsafe
kodu, opanowanie sięunsafe quicksort
czy coś, a następnie powrót do reszty normalnego C #.Aha i zacznij czytać :)
źródło
Pierwszym produktywnym językiem dla mnie był C #. Chociaż ćwiczyłem z Foxpro w szkole i trochę C w college'u. C # jest całkiem dobrym i bardzo dobrym punktem wyjścia dla każdego. Podąża za ogólnymi podstawami programowania, takimi jak mocne pisanie na klawiaturze, enkapsulacja, dziedziczenie itp., Które moim zdaniem zawsze należy się uczyć, bez względu na to, czy się z nich korzysta, czy nie. Później zawsze możesz przejść do innych języków, takich jak Python, które nie są zgodne ze standaryzacją programowania podstawowego.
Innym czynnikiem dodającym, którego ludzie tak naprawdę nie dodają do aspektu uczenia się C #, jest dostępność najlepszego IDE dla dowolnego języka, który widziałem. Eclipse IDE też jest dobry, ale kiedy użyjesz Visual Studio, podziękujesz Microsoft.
C # jest ulepszone w stosunku do C, dzięki czemu nie musisz wcześniej uczyć się innych języków. Wszystkie języki na przestrzeni dekady ewoluowały od natury C, nawet JAVA.
Zatem werdykt jest taki, że C # to świetny punkt wyjścia, który umożliwia szybką naukę innych języków w przyszłości
źródło
Nauka języka C # jako pierwszego języka nie jest błędem, o ile wcześniej czy później przejdziesz dalej i zaczniesz uczyć się drugiego języka. To o wiele ważniejsze. Nawet lepiej, jeśli ten drugi język jest nieco inny niż C # (javascript lub ruby byłoby pod tym względem lepsze niż java). Każdy język ma swoje zalety i wady, a różnice sprawią, że na dłuższą metę będziesz lepszym programistą.
źródło
O ile radzę uczyć się wielu języków (jak sugerują inni), upewnij się, że znasz (kilka) języków, których uczysz się bardzo dobrze.
Ryzyko znajomości wielu języków polega na tym, że nigdy nie nauczysz się języka całkowicie powodującego frustrację, gdy faktycznie chcesz rozwiązać problem.
Znajomość konstrukcji for-loop w wielu językach jest fajna, ale bezużyteczna, jeśli nie wiesz, jak radzić sobie z błędami w żadnym z nich.
źródło
Nie martw się tym, że najpierw nauczyłeś się języka C #. To podobne do obawy, że pierwszy krok został zrobiony lewą lub prawą stopą. Jedyną różnicą między nauką najpierw języka zarządzanego jest opóźnienie, gdy trzeba nauczyć się wskaźników i szczegółowego zarządzania pamięcią. Może to faktycznie działać na twoją korzyść, ponieważ kiedy nadszedł czas na naukę C, jedyne nowe rzeczy, o które będziesz się martwić, to zarządzanie pamięcią - nie będziesz też żonglować próbą poznania struktur kontrolnych, koncepcji funkcji itp. I będziesz być w stanie całkowicie skoncentrować się na wskaźnikach i zarządzaniu pamięcią.
Stereotyp istnieje, ponieważ istnieją programiści zarządzający językiem, którzy nigdy nie zrobili tej drugiej części i nie nauczyli się C i C ++, a następnie zastosowali się do zadań C i C ++.
To jest jak nauka gry na instrumencie muzycznym - pierwszy jest trudny, ponieważ próbujesz nauczyć się mechaniki czytania muzyki pisanej ORAZ mechaniki fizycznej artykulacji instrumentu, aby robić to, co chcesz. Na drugim i kolejnych instrumentach, których się uczysz, możesz skoncentrować się wyłącznie na tym, co odróżnia ten instrument od tego, co już znasz.
źródło
Bez wątpienia jest to trudne dla nowicjusza. Zrobiłem vb, javascript, PL / SQL, T-SQL, Uniface i trochę C #, żeby wymienić tylko kilka.
Ktoś wcześniej wspomniał o języku Visual Basic jako miejscu, w którym dowiedział się o programowaniu obiektowym, i szczerze mówiąc, VB.NET ma najłatwiejszą do zrozumienia składnię dowolnego języka, jaki kiedykolwiek widziałem. Najlepszą cechą jest to, że słowa kluczowe odpowiadają ściśle opisanym pojęciom.
np. Funkcja myHandler () obsługuje myButton.click
lub Klasa Human Extends ssak wdraża inteligentny formularz LifeLife
Poważnie, dla czytelności, kiedy jesteś nowicjuszem, jak inaczej wyglądałaby składnia?
Kiedy szukasz właściwości i metod (i rozróżniasz sub-funkcje i funkcje), dużo łatwiej jest czytać w VB.
Podobnie przy deklarowaniu zmiennych
Dim myString As string - oczywiste, który typ i instancja
Rozróżnianie wielkości liter w języku C # zachęca mnie do poważnego złego nawyku - o tej samej nazwie dla klasy i instancji, z których jedna jest wielka, a druga mała.
na przykład
Ludzki człowiek
jeśli nazywasz human.think, łatwo byłoby pomylić instancję z klasą i pomyśleć, że wywołujesz metodę statyczną na pierwszy rzut oka. I często spoglądamy na to, jak postrzegamy kod, nie mamy czasu, aby najechać myszką na każdy element, aby pozwolić redaktorowi powiedzieć nam, co się dzieje.
C # może mieć pewne zalety, ale jest o wiele trudniej zacząć - nawet jeśli oszczędza pisania. Dlatego zdecydowanie powinno być miejsce dla obu języków.
źródło
Dim myHuman as Human
o wiele lepiej? : DNajwiększym minusem, jaki widzę, jest to, że Visual Studio i powiązane narzędzia są bardzo, bardzo miłe - takie rzeczy jak inteligencja i uzupełnianie kodu mogą łatwo stać się kulami. Generalnie twierdzę, że środowisko może być tak ładne i wspierające, że masz tendencję do zagubienia się, gdy musisz, powiedzmy, włamać się do kodu ruby w edytorze tekstu. Aha, i zwykle tęsknisz za takimi rzeczami jak linq.
źródło
C # jest całkowicie w porządku, aby rozpocząć programowanie.
Od tego mi kazano zacząć, nawet bez szansy na pogadanie w czymkolwiek innym (oprócz Hello World w Javie, kilku podstawowych rzeczy z LOGO i kilku rzeczy w Scratch, ale nic „poważnego”).
Ogólnie rzecz biorąc, może to być trudne - jest wiele rzeczy, które nie wydają się intuicyjne i mają swoje ograniczenia, ale myślę, że zachęca to do dobrego kodowania i jest świetne, gdy tylko się zorientujesz. To znaczy, daje ci więcej mocy i jest nieco bardziej profesjonalny niż Python (co zwykle sugeruje się), a to by zmieniło świat - wypróbowanie C ++ po C # nie było zbyt bolesne, ale gdybym zaczął od Pythona byłoby to bardzo dużą przeszkodą, nawet na poziomie składni.
Ponadto ma dobrą obsługę wielu platform w postaci Mono (dla tych, którzy uważają, że Mono nie jest wielką rzeczą - silnik gry Unity pozwala na kodowanie w jego wersji). Jest to również bardzo przydatne w większości rzeczy, niezależnie od tego, czy jest to skrypt gry, projektowanie stron internetowych, czy aplikacje Windows. Oczywiście niektóre języki będą lepsze dla niektórych linii, więc będzie to zależeć od ogólnego kierunku, w którym planujesz pójść - na przykład, jeśli idziesz w kierunku internetowym, wtedy C # (ASP.NET) na pewno byłby dobry pomysł. Jeśli planujesz wejść w gry, powinieneś pomyśleć o C ++.
W końcu warto się go nauczyć, nawet jeśli nie używasz go na rzecz prostoty Pythona lub archaicznej natury Javy (ponieważ cykl wydawania Javy jest NAPRAWDĘ powolny) - uczysz się dobrego kodowania praktyki, nie będąc zbyt skomplikowanym dla początkującego.
źródło
Aby zostać programistą, musisz mieć pasję. Programiści, których znam, starają się uczyć i zauważać zmiany w branży. Zacząłem programować od podstaw na Commodore Vic 20 (Tak, to stare) i przestawiałem się na inne nowe języki. Część moich lat programowania obejmowała nawet COBOL. Zacząłem również zauważać, że niektóre języki działały najlepiej w niektórych procesach w porównaniu do innych. Radzę ci nauczyć się dowolnego języka i zrozumieć podstawowe pojęcia programowania, takie jak pętle, metody, porównania. Większość języków obsługuje te trzy pojęcia. Nigdy nie powinieneś mówić „To jest najlepszy sposób”, a raczej „Jak mogę to poprawić”. Najgorsze w tym ostatnim zdaniu jest to, że możesz złapać się na inżynierii. Programowanie jest fajne, spraw, by było fajnie! Internet otworzył zupełnie nowy sposób na programowanie, ponieważ poziom dostępu do informacji, jaki mamy dzisiaj, jest oszałamiający. Dla mnie przed internetem musiałem pójść na półkę i ściągnąć szare książki programistyczne IBM i uczyć się. Dzisiaj możesz po prostu wpisać coś w Google i Whammo.
źródło
Wow, wiele odpowiedzi. Oto mój punkt widzenia:
C # nie jest miejscem do nauki informatyki. Uważam to za wyjątkowo zły pomysł. Poniżej wymienię niektóre z moich obaw.
Zbyt zmęczony, aby kontynuować, więc szybko wybierz inny język.
źródło
Poleciłbym C # lub dowolny język, który oferuje te trzy rzeczy w ich rdzeniu:
W pełni wpisany Kompilowany i zorientowany obiektowo ..
Pierwszy język, który oferuje te trzy podstawowe elementy, nauczy wiele o przebiegu programu, składni i sposobie rozwiązywania problemów w bardziej uporządkowany sposób. Mieszkam i oddycham w wielu świetnych językach, które nie mają tych atrybutów, ale gdybym uczył kogoś języka, wybrałbym taki, który miałby te trzy wymagania.
źródło
Nie, ta odpowiedź jest okropna. Czemu? Cóż, przepisuje kilka dobrych książek, które powinieneś przeczytać, ale bez pracy w klasie i pracy w laboratorium (komputerowym) będziesz zagubiony i sfrustrowany. Musisz eksperymentować z grupą nowych programistów, ponieważ jest tak wiele do nauczenia się poza tym, co jest w tych książkach. Nie mówię, że musisz wybrać BSCS, ale potrzebujesz również dostępu do kompetentnego instruktora, gdy cała masa rzeczy może się nie udać w dowolnym momencie, takich jak problemy z kompilatorem, środowiska kompilacyjne ... nazwij to. Nie będziesz programistą pracującym w próżni. Wszystkie książki, których wymagają twoje kursy, będą wystarczająco dobre, dopóki wybierzesz porządną szkołę.
Zapisz się na niektóre zajęcia, a będzie o wiele więcej zabawy! Dodatkowo, jeśli planujesz dostać pracę jako programista, potrzebujesz połączeń, a usłyszysz szum o firmach rekrutujących się na kampusie itp.
Wreszcie, edukacja formalna jest bardzo ważna, ponieważ programowanie wymaga dużej wiedzy teoretycznej, aby zrozumieć, jak rzeczy powinny działać na wszystkich poziomach (hw / sw), abyś mógł dowiedzieć się, jak to naprawić. Prawie wszystko jest czarną skrzynką, więc musisz być w stanie dowiedzieć się, dlaczego coś się tak zachowuje, abyś mógł wziąć kolejny logiczny cios w ciemność. Bez co najmniej 2-letniego stopnia programowania (jakkolwiek to nazwiesz) będziesz w niekorzystnej sytuacji.
PS Nie zbliżyłbym się do .Net lub C #, dopóki nie poznasz Java. C # nie jest przyjemny dla oka. Jest to nieporządny i zagracony kod. .Net IDE jest do kitu. Jest w mrocznych czasach standardów IDE. Java: C # ~ Data: Lore
źródło