Piszę sporo PHP od prawie dwóch lat. Teraz zajmuję się programowaniem .NET (głównie c #). Czasami jednak wracam i robię php.
Moje główne pytanie brzmi: czy mądrze jest nadal to robić, czy powinienem kontynuować rozwój w C #? Czy zaszkodziłoby mi to na dłuższą metę (pamiętajcie, że moim głównym celem nie jest bycie walorem we wszystkich transakcjach), czy też jest to dobra praktyka?
Odpowiedzi:
Używanie dwóch języków jednocześnie jest niczym. Programiści często używają kilku różnych języków każdego dnia. Różne zadania i różne technologie wymagają różnych języków.
Właśnie dzisiaj używałem już czterech lub pięciu różnych języków i jest to interesujące, ponieważ do tej pory nie programowałem. Wszystko, co zrobiłem, to praca nad prezentacją.
Jako dobry programista zasadniczo potrzebujesz znajomości kilku języków, a jedynym sposobem na osiągnięcie (a następnie zachowanie) rozsądnej płynności jest użycie tych języków.
źródło
To doskonała praktyka. Ponadto polecam regularne poszerzanie listy języków, wypróbowując nowy.
Języki i technologie stają się bardzo popularne w ciągu kilku lat. Na przykład Cel C wystartował z niesamowitą siłą po tym, jak był prawie martwy przez dwie i pół dekady - wieczność według standardów tej branży!
Nie ma większego znaczenia, że planujesz „nie być waletem we wszystkich transakcjach”: jeśli planujesz pozostać w branży wystarczająco długo, bardzo bezpiecznie jest założyć, że będziesz musiał zmienić stos technologii przynajmniej raz przez całą karierę. Używanie wielu języków zapewnia teraz gotowość do włączenia w rozsądnym terminie.
źródło
Znajomość dwóch lub więcej języków nigdy cię nie skrzywdzi. Znajomość twojego języka bardzo płytka (bez zrozumienia wewnętrznego działania) może ci zaszkodzić.
Moją osobistą preferencją było zawsze opanowanie najpierw jednego obiektowego języka programowania . Zapewni to dogłębną naukę wszystkich koncepcji programowania i ułatwi naukę następnego, gdy zajdzie taka potrzeba.
Zdecydowanie tak!
Sugeruję zdecydowanie nauczyć się więcej niż jednego i ćwiczyć je, budując niektóre aplikacje. W międzyczasie możesz również nauczyć się języków skryptowych (jQuery, KnockoutJs itp.) I bibliotek, jeśli zajmujesz się tworzeniem stron internetowych lub planujesz.
źródło
Na dłuższą metę nie powinno ci to zaszkodzić, ponieważ biegła znajomość wielu języków sprawia, że jesteś dobrze rozwiniętym programistą. Używanie „odpowiedniego narzędzia do wykonania właściwej pracy” jest ostatecznym celem, a znajomość różnych języków pomaga to osiągnąć, ponieważ wiesz, co jeszcze jest dostępne i możesz podjąć świadomą decyzję o tym, jakiej platformy / struktury / języka użyć do coś zrobić.
źródło
W trakcie swojej kariery będziesz musiał nauczyć się nowych języków i nowych technologii; przemysł po prostu tego wymaga. Podczas mojego pierwszego profesjonalnego zadania musiałem dostarczyć kod napisany w Adzie, C i Fortranie, wraz z niektórymi skryptami SQL i powłoki. W ciągu ostatnich kilku lat musiałem przejść z C ++ na Javę. Pisałem skrypty powłoki w csh, bash i perl.
Poświęcenie czasu na naukę różnych języków, zwłaszcza jeśli są one w różnych domenach (OO, funkcjonalne, logiczne itp.), Pomogą ci na kilka sposobów. Utrzyma twój mózg ostry. Pomoże Ci oddzielić koncepcje od implementacji (np. Skróty i mapy to nie tylko typy danych w danym języku). To da ci lepsze pojęcie o tym, jakie narzędzia są odpowiednie dla danego problemu (na przykład nie zbudowałbym strony internetowej w C, ani nie napisałbym sterownika urządzenia w Haskell). Może ci to ułatwić znalezienie pracy („Hej, on już zna Intercal 1 , nie musimy go szkolić!”). Dzięki niemu dowiesz się, jakie wyzwania stoją przed projektantami języków. Może zainspirować Cię do stworzenia własnego języka programowania.
Przynajmniej nie pozwoli ci się nudzić.
1. Żart. Nie próbuj uczyć się Intercala.
źródło
Osoby odchodzące na emeryturę w tym roku rozpoczęły swoją karierę jeszcze przed utworzeniem C. Można śmiało powiedzieć, że możesz zmienić język programowania raz lub dwa razy w swojej karierze. Nie chcesz pracować dla pracodawców, którzy tego nie rozumieją.
Kiedy jesteś nowy, przełączanie kontekstu między dwoma językami jest o wiele trudniejsze, więc będziesz bardziej produktywny, jeśli będziesz pracował co najmniej 4-8 godzin w jednym języku przed przełączeniem. Później będziesz mógł natychmiast przełączać się bez utraty wydajności. Innymi słowy, używanie dwóch języków stanie się w końcu siłą zamiast spowalniać cię.
źródło
Ma to swoje plusy i minusy.
Oto plus ...
Jak wspomniano inni, umiejętność uczenia się nowego i pracy z wieloma językami i narzędziami programistycznymi jest prawie niezbędna do długiej kariery programistycznej. Z biegiem lat wszystko się zmienia, narzędzia i języki przychodzą i odchodzą. Pewnie, są ludzie, którzy są zadowoleni z programowania w tym samym języku COBOL na komputerze mainframe, którego używali w latach 80., ale jest to stosunkowo rzadka sytuacja. Większość programistów kilkakrotnie zmienia narzędzia / języki w trakcie swojej kariery. Czasami możesz zostać zatrudniony, ponieważ znasz starszą technologię lub znasz wszystkie języki, z którymi współpracuje firma.
Minusem jest ...
Niektórzy pracodawcy uznają cię za „waluta wszystkich zawodów, mistrza braku” i odrzucają twoje zgłoszenie, nie dając ci szansy. Szukają wąskiego eksperta w konkretnej dziedzinie, a nie po prostu dobrego, dobrze zaokrąglonego programisty. Czasami możesz zostać odcięty przez HR, ponieważ nie masz „5 lat ciągłego doświadczenia w [X]”. Możesz tego uniknąć, dostosowując swoje CV do pracy, ale może to nie pomóc w rozmowie technicznej.
Dla mnie ta korzyść jest znacznie lepsza, ale trzeba pamiętać, że mniejszość organizacji postrzega to jako negatywne.
źródło
Czy podczas pisania PHP pisałeś javascript lub SQL? W rozwoju C # nadal możesz używać obu z nich. Nie jest tak wytrawny i suchy jak przy użyciu jednego języka programowania.
Jeśli lubisz to robić, nie przejmuj się tym. Jeśli nie chcesz robić obu (lub jednego z nich), masz problem.
źródło
Nauka nowego języka programowania nauczy Cię różnych rzeczy na temat programowania, które możesz zastosować do języków, które już znasz. Zdecydowanie powinieneś rozważyć przynajmniej grę z innymi językami, nawet jeśli nie używasz ich profesjonalnie, a nie tylko z tak niewielką liczbą.
Idealnie taki, który różni się podejściem do tych, które już znasz.
źródło
Nie, nie ma nic złego w uczeniu się wielu języków i używaniu ich dość często. W mojej codziennej pracy mogę spotkać Ruby, PHP, JavaScript, CoffeeScript, Python i sporadycznie C. Znam wszystkie te języki dość dobrze i przechodzenie od jednego do drugiego po prostu przełącza mój mózg. Jasne, że tęsknię za niektórymi językami, kiedy przechodzę do innego, ale dasz sobie radę.
Staram się zawsze mieć język, którego się uczę dogłębnie, a potem inny jako „rozwijający się”. W ten sposób zawsze masz jasny cel edukacyjny, a następnie coś na horyzoncie. Obecnie Ruby jest moim głównym językiem i eksperymentuję z Go. Prawdopodobnie nigdy nie dostanę pracy jako programista Go, ale nauka nowego języka stała się lepszym programistą.
Kiedy przeprowadzam wywiad z deweloperem, zawsze lubię widzieć kilka różnych języków w ich życiorysie. Jeśli programista ma w swoim CV „C / C ++” lub „PHP i JavaScript”, wygląda o wiele mniej interesująco niż ktoś, kto dobrze zna 4 lub 5 języków. Upewnij się, że czujesz się komfortowo w dowolnym języku, który wymieniasz, wszystko w twoim CV jest uczciwą grą w wywiadzie!
Krótko mówiąc: regularne używanie wielu języków jest oznaką dobrego programisty, który dba o swoje umiejętności. Koduj dalej!
źródło
Podczas przeglądania CV zwykle szukamy kogoś, kto zna wiele języków. Ponadto wraz ze wzrostem doświadczenia danej osoby powinna również wzrosnąć liczba używanych przez nią języków.
W naszym środowisku często musimy zmierzyć się z nowymi i interesującymi problemami i szukamy osób, które chętnie wskoczą i rozwiązują te problemy, niezależnie od tego, czy muszą nauczyć się nowego języka, czy nie. Problem może dotyczyć kodu działającego na pulpicie Windows, serwerze Windows, serwerze Linux lub w przeglądarce.
Znajomość wielu języków jest oznaką dobrej postawy wobec ich rzemiosła. Chcą zawsze uczyć się nowych rzeczy. Brak znajomości wielu języków jest dla mnie znakiem, że dana osoba robi absolutne minimum i nie jest zainteresowana nauką.
źródło
Ludzie zawsze programowali w więcej niż jednym języku. Kiedy ludzie używali asemblera, musieli wprowadzać nowy język asemblera za każdym razem, gdy zmieniali architekturę.
Kiedy ludzie robili COBOL lub Fortran, zwykle robili też RPG i / lub JCL.
W Uniksie ludzie pracowaliby z C, sed, awk, skryptem powłoki i prawie wszystkim w zlewozmywaku kuchennym Unix (prawie każde narzędzie wiersza poleceń w Unixie ma własną, bardzo specjalną DSL).
W DOS ludzie będą programować w Turbo Pascal lub C oprócz skryptów wsadowych. Później, kiedy pojawił się system Windows, był to VB lub coś w rodzaju PowerBuilder w połączeniu z SQL i ewentualnie skryptami instalacyjnymi.
W chwili obecnej de facto ludzie „pracują” w więcej niż dwóch językach każdego dnia (a przez „pracę” mam na myśli faktyczne codzienne kodowanie lub praktyczną wiedzę). Java, C # lub VB zmieszane przynajmniej z JavaScript i SQL. Następnie w grę wchodzą inne języki dla skryptów wsadowych / zadań itp. Następnie, dla każdego języka, masz strukturę, która sama implementuje wewnętrzną DSL, mini-język sam w sobie.
Praca z więcej niż jednym językiem jest nie tylko korzystna, ale jest konieczna. Nie ma sposobu na zbudowanie nowoczesnego, złożonego systemu w jednym języku (a przez „kompilację” nie mam na myśli tylko kodowania bzdur, które się kompilują, ale zbudowanie czegoś o przyzwoitym projekcie).
Cholera, wyjdę z kończyny i powiem, że spodziewałbym się, że dzieci w college'u będą biegle posługiwać się co najmniej dwoma językami, jeśli poważnie podchodzą do tego zawodu.
Jeśli chodzi o twoje pytanie:
Tak więc krótka odpowiedź, nie, używanie lub przełączanie między językami nie da ci kłopotów. Znajomość więcej niż jednego języka nie sprawi, że staniesz się ekspertem od wszystkich transakcji, a programista nie może zostać ekspertem, ponieważ nie będzie w stanie używać więcej niż jednego języka.
źródło
Im więcej musisz porównać w odniesieniu do swojego podstawowego języka (języków), tym lepiej zrozumiesz kompromisy projektowe, które przyczyniły się do uczynienia go szczególnie silnym lub słabym w niektórych rzeczach i wykorzystujesz / kompensujesz te rzeczy. Opanuj co najmniej jednego, ale nie martw się, że będziesz waletem wielu innych. To tylko dobrze wygląda.
Lepiej zapytać, jak wznowić działanie tylko z jednym językiem wymienionym od „starszych” programistów. Odpowiedź na to pytanie brzmi: „Niezbyt zainteresowany tym, co zarabiają na życie”.
źródło
Dwa języki mogą ci pomóc lub nie - to zależy. To na pewno cię nie skrzywdzi. Wielu deweloperów uważa, że używanie czegoś innego niż „główny język” to czysta strata czasu, ale zdecydowanie się nie zgadzam. Nauka innego języka (i używanie go) to czysta korzyść: daje inne spojrzenie na rozwiązywanie problemów. Może się zdarzyć, że zaczniesz używać jednego z języków do określonych zadań przez cały czas (tak jak mi się stało, kiedy miałem okazję nauczyć się i używać Pythona).
źródło
W tej sytuacji nie pytasz o przejście z JAVA na C # i powrót przez cały czas, zamiast tego korzystasz z C # i PHP, co tak naprawdę nie jest wielkim problemem.
Załóżmy, że chcesz zrobić kilka rzeczy opartych na sieci, w których używasz stosu WAMP (Windows / Apache / MySQL / PHP) i C #. Używasz C # do pisania niektórych usług opartych na SOAP, a następnie używasz PHP do ich wykorzystania.
Wydaje mi się to całkowicie do przyjęcia.
W każdym razie znajomość więcej niż jednego języka jest dobra. Im więcej wiesz, tym lepiej. Biblioteki PHP / C # / Java / Python / javascript [na przykład JQuery]. Przydaj się jak największej liczbie osób.
źródło