Dla mnie jestem osobą C # i Java. Uważam, że te 2 języki są dość podobne, więc łatwiej mi się krzyżować. Nie jestem pewien, czy dobrym pomysłem jest wybranie innych języków. jakieś pomysły?
programming-languages
Cyfrowy koleś
źródło
źródło
Odpowiedzi:
Mogę wymyślić co najmniej pięć powodów, dla których warto nauczyć się języka, i wydaje się, że ostatecznie powinieneś nauczyć się jednego z nich.
źródło
Nie chodzi o to, ile języków się uczysz. Chodzi o naukę nowych koncepcji. Niektóre języki mogą nauczyć Cię wielu pojęć, podczas gdy inne mogą nauczyć tylko jednego.
Jeśli znasz język C #, prawdopodobnie nie nauczyłbyś się niczego nowego, ucząc się języka Java. Ale zrobiłbyś to, gdybyś nauczył się Haskell.
Kiedy więc wybierasz nowy język do nauki, wybierz coś, co nauczy Cię pojęć, których jeszcze nie znasz.
źródło
Powiedziałbym, że najważniejszą rzeczą jest umiejętność szybkiego uczenia się. To powiedziawszy, ważne jest, aby znać różne języki używane do różnych celów. Na przykład wiem:
1) Python i Perl dla kategorii języków skryptowych
2) C ++ jako język „framework”
3) Java dla aplikacji mobilnej
4) C dla ogromnej ilości starszego kodu
5) Niektóre przestarzałe języki, które znałem, gdy byłem młody (Basic, Pascal, Clipper itp.)
Powiedziałbym, że potrzebujesz przynajmniej głównego języka i skryptu. Znając C # powiedziałbym, że musisz nauczyć się języka Python, Perl lub Ruby. (Wybrałbym Python, ale to tylko kwestia preferencji).
źródło
Dobrze jest uczyć się jednego nowego języka programowania każdego roku. Ale zamiast uczyć się czegoś podobnego do tego, co już wiesz, radzę ci nauczyć się czegoś zupełnie innego, jak Scala lub F #. Pokażą ci nowe sposoby robienia rzeczy i ostatecznie wzbogacą twoje umiejętności programistyczne.
źródło
Powinieneś skoncentrować się na językach, których potrzebujesz i których używasz do tego, co robisz . Naprawdę nauka języka pochodzi z praktyki, więc możesz czerpać z niego korzyści, kiedy go ćwiczysz. Jeśli masz zamiar nauczyć się nowego języka w wolnym czasie, zrób to, wdrażając go w zadaniach o coraz większej złożoności, aby naprawdę go opanować.
źródło
skoncentruj się na żadnym. skoncentruj się na nauce i pisaniu czystego kodu; jasne, wyraziste, proste i, co najważniejsze, nie powielane.
zapoznaj się z zasadami tego rodzaju programowania, podstawami (na przykład enkapsulacją dla OOP; co to znaczy i co to oznacza) i naucz się kilku zasad
te rzeczy ułatwią ci pracę. ułatwi to nawet osobom pracującym z tobą lub po tobie.
tak, musisz też całkiem dobrze znać składnię. ale to nie jest coś, co zajmuje twoją uwagę przez długi czas
i musisz całkiem dobrze zrozumieć, jakich technologii używasz. ale można nadać im priorytety zgodnie z poziomem złożoności wymaganym przez firmę.
dwa ostatnie nie są w centrum uwagi, ale w pewnym stopniu
źródło
Programista musi skoncentrować się na programowaniu, a nie na specjalnym języku / językach.
źródło
Tyle, ile potrzeba do wykonania pracy.
Ale C # i Java są tak podobne jak angielski w Wielkiej Brytanii i angielski w USA. Możesz nauczyć się czegoś nowego , wybierając fiński lub Navajo.
źródło
Nie sądzę, żebyś mógł opanować język bez wystarczającej znajomości innych języków, aby widzieć ten język „z zewnątrz”. Każdy inny język przedstawia coś innego, a wprowadzane przez nich pojęcia to rzeczy, które możesz przywrócić do głównych języków, z którymi pracujesz.
Czas spędzony na nauce używania innych języków nigdy się nie marnuje, nawet jeśli nie planujesz ich używać w celach komercyjnych.
Stare powiedzenie mówi, że każdego roku uczy się języka i z pewnością powiedziałbym, że przez pierwsze dziesięć lat trzeba to robić. Może poza tym możesz wybierać między bardziej dogłębnym poznaniem tych, które już znasz (być może aktualizowaniem wiedzy o tych, których nauczyłeś się kilka lat temu) lub pracą z konkretnymi bibliotekami, zamiast gromadzić nowe języki bez końca, ale pilnować zapoznanie się z praktyką programowania poprzez pracę z różnymi językami z pewnością pomoże ci w rozwoju jako programista.
źródło
Popularne języki programowania, takie jak C # i Java, zapewnią ci zarobkowe zatrudnienie w większości miejsc, ale żadne z nich nie różni się wystarczająco od siebie, aby nauczyć się nowych sposobów rozwiązywania problemów. Sądzę, że istnieje kilka języków, w których jesz (tych, których używasz do wykonywania swojej pracy) i innych, z którymi się bawisz. Oba mają swoje cele.
Odkryłem, że ucząc się nowych języków programowania, nauczyłem się także nowych i bardziej eleganckich sposobów rozwiązywania problemów. Nie chodzi o liczbę języków ani o to, jak często je odbierasz. Każdy język programowania, którego warto się nauczyć, ma unikalny punkt widzenia, który zmusza cię do podejścia do swoich problemów z nowym nastawieniem. Wiele razy wartość pochodzi z uczenia się tego sposobu myślenia.
Grałem z Smalltalk i bardzo mi się podobało. Język był przyjemnością do rozwijania. Gdy już przyzwyczaisz się do idiomów, pomogły ci one bardziej wyrazić swój kod. W ogóle nie brakowało mi pisania statycznego w Javie / C ++ / C #. Ogólne, z którymi żyjemy w naszych językach o typie statycznym, są naprawdę konstrukcjami, które omijają ograniczenia, które narzuca statyczne typowanie.
Używam Ruby i Ruby na szynach regularnie, choć nie teraz do płacenia za pracę. Zasadą projektowania Ruby było „zwiększenie szczęścia programisty”. Musisz pokochać ten sentyment i w większości myślę, że to przynosi.
W końcu Java pójdzie drogą seplenienia i Smalltalk, a C # pójdzie w ich ślady. To, co będzie tam, aby zająć ich miejsce, dopiero się okaże. Na koniec dnia, jeśli umiesz rozwiązywać problemy i masz wiele sposobów, aby pokroić problem i pokroić go w kostkę, będziesz w stanie znaleźć pracę i wybrać język, którego potrzebujesz.
źródło
Jeśli chodzi o aktualizowanie umiejętności i elastyczność, myślę, że powinieneś próbować nauczyć się co najmniej jednego całkowicie nowego języka programowania co około 6 miesięcy. Mam na myśli język, który jest bardzo, bardzo inny.
Tak więc podczas uczenia się więcej o frameworku .net podczas korzystania z języka C # lub frameworku Java pomaga utrzymać równowagę, nauka Haskell, Smalltalk, Scala, Clojure lub Ruby poszerzy Twoją technikę i pomoże Ci myśleć na różne sposoby, z których niektóre możesz wykorzystać wróć do swojego głównego języka, a niektóre z nich mogą pomóc ci przejść dalej, jeśli Java przestanie być królem wzgórza.
Jeśli nigdy nie nauczyłeś się C, to mimo że jego składnia została przeniesiona do Javy, sposób myślenia może być zupełnie inny. Warto go dogłębnie, a jeszcze lepiej zrozumieć, w jaki sposób kod OO można napisać w tym języku, który wydaje się jedynie proceduralny.
Polecam przeczytać książkę Bruce'a Tate'a „Beyond Java”, która zbyt dobrze podkreśla niebezpieczeństwa bycia tylko w jednym języku, zwracając uwagę na wzrost i upadek C ++. Chociaż C ++ jest jeszcze daleki od śmierci i pozostało dziesięciolecia, staje się coraz bardziej ograniczony do używania tylko w sytuacjach, w których nie można skorzystać ze wzrostu wydajności w innych językach. Dla kontrastu, platforma Rubat, Sinatra, pozwala zbudować prostą usługę internetową w około 6/7 liniach kodu, ekwiwalent C ++ może być o rząd wielkości większy niż ten.
źródło
Jeśli nie jesteś rodzimym językiem angielskim, musisz przynajmniej skoncentrować się na doskonaleniu języka angielskiego . Mówię to na podstawie mojego doświadczenia. Zrozumienie tego języka bardzo mi pomogło.
Wszystkie dobre materiały (książki, artykuły, kod itp.) Do nauki języków programowania, technologii i nowych koncepcji są napisane w języku angielskim.
źródło
Języki to narzędzia do wykonywania pracy. Niektóre języki są odpowiednie dla niektórych rodzajów problemów, inne są na ogół dobre we wszelkiego rodzaju rozwiązywaniu problemów. Polecam naukę nowych języków, gdy tylko się pojawią. Nie miej obsesji na punkcie tego, co jest modne w tym miesiącu, ale dowiedz się, co potrafią, w czym są dobrzy. Moja rada to 1 nowy język rocznie. Pojawiają się szybciej, ale chcesz umieścić nowe narzędzia w swoim zestawie narzędzi, a nie być modnym nowym dzieckiem na bloku.
Jednym z esejów mówiących o różnicach językowych jest „Beating the Averages” Paula Grahama. Polecam ją przeczytać, ale jest tu jedna ważna część (używa „Blub” jako języka hipotetycznego, abyś nie kłócił się o to, co może zrobić Twój ulubiony język):
{fantastyczna okazja}
http://www.paulgraham.com/avg.html
Większość aplikacji, które wysyłamy, jest napisanych w języku C # lub VB. Kiedy potrzebowaliśmy dodać skrypt do aplikacji, wybraliśmy Python (Lua była drugim wyborem). Uczymy się języka F #, ponieważ może to zrobić kilka nowych, owłosionych rzeczy, które trudno wytłumaczyć i zrozumieć, jeśli wszystko, co wiemy, to C # / Java / VB.
źródło
Cóż, przede wszystkim istnieje wiele języków, których bardzo trudno jest uniknąć dla większości programistów: javascript, sql, c itp., więc równie dobrze możesz się z nimi zapoznać, nie znikną.
dobrym pomysłem jest także znajomość języka skryptowego typu kaczka ... np. perl, python, ruby, lua itp. są one niezwykle przydatne w przypadku wielu problemów, w tym automatyzacji wielu codziennych kryminałów
na lepsze lub gorsze, w pewnym momencie prawdopodobnie również natkniesz się na c # i / lub java, są one dość wszechobecne.
w każdym razie nie ograniczaj się sztucznie. ci znani koderzy, którzy wyraźnie unikają wybierania interesujących narzędzi, wydają się mieć skryte światopoglądy i mieć ograniczony wpływ.
źródło
W pewnym sensie może to stać się kolejną debatą między specjalistami a generalistami. Niektórzy ludzie mogą spędzać dużo czasu, znając jeden język na głębokich głębokościach, co jest dla nich dobre. Inni ludzie mogą chcieć dowiedzieć się trochę o wielu różnych językach, które działają dobrze dla nich. Większość ludzi jest pomiędzy tymi dwoma skrajnościami.
Jeśli chcesz poznać propozycje języków, oto kilka pomysłów:
Programowanie funkcjonalne - przykładem mogą tu być Haskell lub Lisp, a zmiana paradygmatu może być do pewnego stopnia oszałamiająca.
Specyficzne dla bazy danych - PL / SQL lub T-SQL przychodzą na myśl jako coś, co może być przydatne, jeśli chcesz wykonać więcej zadań zaplecza z systemami, które wymagają bazy danych dla niektórych jej funkcji.
Języki sieciowe interfejsu użytkownika - ActionScript lub Javascript byłyby tutaj przykładami języków używanych w bogatych aplikacjach internetowych, chociaż AIR może powodować, że niektóre aplikacje komputerowe używają wywołań internetowych w niektórych przypadkach, takich jak Twhirl, używając interfejsu API Twittera.
Są to tylko pomysły i w zależności od tego, gdzie chcesz się znaleźć, mogą być dla Ciebie przydatne lub bezużyteczne. Powodzenia w podejmowaniu jakichkolwiek wyborów.
źródło
Programista musi znać trzy języki: C, angielski i coś innego.
C jest bardzo podstawowym językiem, jest blisko komputera i ma reguły składniowe, które są wspólne dla kilku języków wysokiego poziomu. C zmusza Cię do myślenia o strukturach danych w zupełnie inny sposób niż Java. Ponadto vms w języku Python i Ruby są wbudowane w C, a C można wstawić do obu języków, gdy chcesz zwiększyć swoją szybkość.
Angielski jest wspólnym językiem programowania. Większość książek, raportów technicznych, technicznych stron internetowych i artykułów w czasopismach pojawia się najpierw w języku angielskim, a czasem wyłącznie w języku angielskim. Ponadto, jeśli angielski nie jest twoim pierwszym językiem, nauka angielskiego rozszerzy zestaw narzędzi do manipulowania pojęciami (dotyczy to również osób mówiących po angielsku, które uczą się również innego języka).
Coś innego powinno być językiem, który nie jest proceduralny, nie jest wpisany statycznie lub jest silnie zorientowany obiektowo, lub w jakiś sposób zasadniczo różni się od C. Haskell, Scala, Python, Ruby, jakiś dialekt Lisp, cokolwiek .
Następnie możesz dowiedzieć się, czego wymaga konkretna sytuacja, na przykład C # lub Java.
źródło