Edytować:
Jak zarządzasz poszczególnymi zadaniami podczas pracy w wielu językach
Z jakimi różnymi językami programowania współpracujesz w codziennej obsłudze zadań?
- Czy zmieniasz umysł podczas pracy nad każdym językiem?
- Czy traktujesz je priorytetowo i zachowujesz każde zadanie osobno dla każdego języka?
- Czy kodujesz etapami w oparciu o postępy każdego zadania płynnie przełączając się między językami / IDE / Środowiskiem
- Czy stosujesz ten sam styl / konwencje kodowania we wszystkich językach (bez składni)?
Związane z:
Czy programista może jednocześnie pracować nad wieloma projektami
.equals
javascript. Przynajmniej zawsze mylę się w ten sposób, zamiast używać==
w Javie.Odpowiedzi:
Dzisiaj napisałem Java, Python, C ++ i SQL (jeśli się liczy). Byłem w pracy krócej niż 2 godziny.
Jeśli robisz to regularnie, zmiana mentalna staje się znikoma. Nie ma to nic wspólnego z wielozadaniowością. To tak, jakby przez chwilę chodzić, potem prowadzić samochód, potem jeździć na rowerze, a potem pływać. Nie ma problemu, ponieważ są to rzeczy sekwencyjne.
Niezależnie od tego, chodzi o wykonanie jednego zadania przed przejściem do następnego. Zazwyczaj definiuję zadania w kategoriach konkretnej funkcjonalności, poprawki lub takiej. Często to zadanie jest realizowane tylko w jednym języku, ale może wymagać kilku z nich. Na przykład, pracując z JNI , zwykle równolegle wprowadzasz zmiany zarówno po stronie Java, jak i natywnej.
Niektóre odpowiedzi:
Ważne jest, aby móc płynnie przełączać się między IDE, edytorami, środowiskami. Zazwyczaj cały czas je otwieram.
Jeśli jest to interfejs, nad którym rozmawiają dwa języki, to tak - nazwy zmiennych i takie muszą być podobne. W przeciwnym razie staram się zastosować typowy styl kodowania tego języka.
źródło
Tworzy się tutaj wzór:
Więc dla mnie jest to: javascript, HTML i CSS, C #, Transact-SQL i Windows Powershell.
Czy stosujesz ten sam styl / konwencje kodowania we wszystkich językach (bez składni)?
Nie, programuję zgodnie z konwencją języka. Prosty przykład:
Stosowanie wizualnie różnych konwencji kodowania pomaga mi dokonać mentalnej zmiany języka. I odwrotnie, jeśli mój kod wyglądałby tak samo w każdym języku, popełniam błędy składniowe, zapominając, w którym języku koduję.
źródło
Jak wskazuje SK-logika, zmiana mentalna nie powinna stanowić problemu, jeśli używasz dobrze wybranych języków specyficznych dla domeny. Ale często nie możesz wybrać języka, więc czasami zmiana zajmuje trochę czasu. Z mojego doświadczenia wynika, że trudność polega bardziej na przełączaniu składni niż na przełączaniu stylu programowania. Jedyną irytującą zmianą, której zawsze doświadczam, jest zmiana stylu komentarzy : jeśli po prostu otworzę plik, aby szybko zmienić wiersz kodu, często wygląda to tak:
źródło
W mojej ostatniej pracy: Java, C ++, C #, JavaScript i VBScript.
Ale na szczęście wszystkie powyższe były w bardzo różnych kontekstach (i w kilku produktach) - więc kiedy znałeś wystarczająco dobrze każdą bazę kodu, przejście mentalne do różnych kontekstów było w rzeczywistości dość łatwe i logiczne.
Prawdę mówiąc, bardziej przeszkadzały mi przerwy w obsłudze klienta. Wewnętrzne przejście na zadanie w innym języku nigdy nie było samo w sobie problemem.
źródło
Pracuję w 2 językach: c # i python.
Używam ich obu w tym samym projekcie, ale oczywiście do różnych zadań.
Kiedy pracuję nad zadaniem, pracuję nad nim, dopóki nie będzie w stanie kompletnym lub dopóki nie będę mógł się na nim skoncentrować. Oznacza to, że jeśli muszę przełączać się między językami, dysonans poznawczy jest niewielki lub nie ma go wcale, ponieważ już wyszedłem z myślenia w obu językach, kiedy skończyłem ostatnie zadanie.
Wprawdzie zrobię sobie krótką przerwę, kiedy wyjdę z zadania, co prawdopodobnie bardzo pomaga.
źródło
Jak najmniej. Zazwyczaj obejmuje to 1. Python oraz 2. Szablony HTML, 3. HTML + CSS, a czasem 4. JavaScript. Przejście z Pythona na JS zdecydowanie wymaga zmiany mentalnej, również dlatego, że muszę korzystać z różnych narzędzi.
Dodam HTML + CSS jako niezależny od szablonów HTML, nawet jeśli nie są to języki jako takie (lub mogą, zależnie od twojej religii), ponieważ wymaga to również zmiany mentalnej i użycia innych narzędzi, choć nie jest tak złe, jak przejście na JavaScript. Fiddling z HTML + CSS z perspektywy projektowania, aby strona wyglądała jak wymagana makieta, jest innym sposobem myślenia niż tworzenie szablonów HTML. Ale jest bardziej ortogonalny w stosunku do Pythona niż JavaScript, co oznacza, że muszę zmienić sposób myślenia na programowanie na inny. :)
źródło
Codziennie używam:
Od czasu do czasu używam również Python, Java i XML (czy to się liczy?). Moja praca polega na edytowaniu różnych stron internetowych, które mogą być zbudowane w dowolnym języku internetowym (nawet kiedyś miał Perla) i używać bardzo różnych paradygmatów / szablonów (proceduralne, MVC, OOP itp.).
Aby odpowiedzieć na pytanie - używam głównie Notepad ++ jako mojego IDE dla pierwszych 5 wymienionych na liście, a następnie Visual Studio for Asp.Net.
Może to być ból szybko przełączający się między poszczególnymi językami - pamiętając, czy potrzebujesz średników na końcu linii, czy pętle mają nawiasy klamrowe, czy nie. Przejście z VBScript na JScript jest absolutnie najgorsze z tego powodu - oba pliki kończą się na .asp i na pierwszy rzut oka wyglądają dość podobnie, więc zastanawianie się, dlaczego dostaję błędy, zajmuje trochę czasu.
źródło
W tej chwili piszę w Ruby, PHP, Javie, C i JavaScript i będę pisać przez co najmniej 1 godzinę każdego z nich każdego dnia. Głównym problemem jest tak naprawdę znalezienie czasu, ponieważ wszystkie dotyczą niepowiązanych projektów.
Przesunięcie mentalne
Mój styl pracy jest taki, że lubię pracować przez dłuższy czas. Niestety, oznacza to, że jeśli mam tylko jedną rzecz, gdy napotkam blok myślowy z fragmentem kodu, zajmie mi to dużo czasu, aby go pokonać. Nie uważam też, że przerwa pomaga. Dysponując innymi projektami, a zwłaszcza innymi językami, aby przejść do trybu utknięcia, gdy wrócę do oryginalnego języka, natychmiast mam rozwiązanie.
Dlatego tak, nastąpiła zmiana mentalna i myślę, że dzięki temu jestem znacznie bardziej produktywny.
Priorytetyzacja zadań
Używam menedżera zadań (gTasks dla Androida) i mam osobną listę rzeczy do zrobienia dla każdego projektu. Jeśli projekt wymaga wielu języków, nie rozdzielam ich. Dzieje się tak zwykle dlatego, że będą w jakiś sposób silnie powiązane. Na przykład JavaScript i Ruby do robienia rzeczy AJAX. Jeśli języki są technicznie dla tego samego projektu, ale projekt jest tak duży, że zasadniczo nie są ze sobą powiązane, prawdopodobnie liczę je jako osobne projekty.
Ogólnie rzecz biorąc, moim priorytetem jest „dowolna lista, która ma najwięcej zadań”, ale zawsze się przełączam, jeśli utknę na problemie.
Konwencje kodowania
To trochę mieszanka:
Poza tym: Największym wyzwaniem jest dla mnie zmiana języków stylów. Bardzo trudno jest ścigać się razem, kodując SASS razem z Ruby, a następnie zmuszając się do powrotu do CSS dla całej reszty. W mniejszym stopniu mam ten sam problem z HAML / HTML i JSON / XML.
źródło
Piszę aplikacje po stronie ISP, jest też kultura „rób to, co czujesz się komfortowo”, często napisana przez wielu inżynierów sieciowych, którzy zajmują się programowaniem. Mam do czynienia z cotygodniowymi programami, które są dość dobrze napisane, co jest naprawdę przerażające. Co często spotykam i pracuję nad ...
W firmie są też inne języki (.net, VB, Phyton, Rails itp.), Ale nie musiałem nad nimi pracować ... jeszcze.
Edytuj, do edycji ...
Podczas pracy między językami musisz się mentalnie zmieniać. Najczęściej tracę orientację w składni. Przygotowuję kolekcję podręczników. Przekonam się, że powrót do sposobu myślenia w innym języku zajmuje około pół godziny. Im bardziej tępa jest składnia języka, tym dłuższe jest przesunięcie. Uważam, że przejście z robienia Javy na robienie Perla prawdopodobnie trwa najdłużej, jeśli nie dotykam Perla przez jakiś czas. Im więcej to zrobisz, tym łatwiej będzie.
źródło
Często używam sześciu lub więcej języków w ramach jednego projektu. Większość z nich jest zazwyczaj specyficzna tylko dla tego projektu.
Zmiana mentalna jest wymagana tylko wtedy, gdy używasz języka, który nie jest odpowiedni do zadania. W przeciwnym razie naturalne jest użycie najlepszego dopasowania. Różne zestawy języków są używane na różnych etapach projektu.
źródło
Często używam C (embedded), C ++ (desktop), Python, Matlab i VHDL (rodzaj sprzętowego języka programowania), często tego samego dnia. W moim środowisku taka zręczność językowa jest moim zdaniem niezbędna.
Często nie mogę efektywnie uzyskać wszystkiego, czego potrzebuję przy danym projekcie w jednym języku. Na przykład zarówno osadzone C, jak i VHDL są dość niskiego poziomu, więc często używam Pythona do analizowania ich wyników (lub nawet generowania kodu).
Szybkie przełączanie się między nimi nie jest problemem po chwili, jest jak zamiana młotka na śrubokręt - odpowiednie narzędzie do pracy.
źródło
To zależy od tego, jak zdefiniowane jest działanie ... Używam C # do tworzenia aplikacji Microsoft Surface każdego dnia. Java Używam również każdego dnia w aplikacjach na Androida. Ale staram się kształcić i zacząłem używać R, Ruby i Objective-C. Czasami potrzebuję także trochę SQL, a jeśli do pytania włączasz języki skryptowe i inne, to także JavaScipt, SPARQL i BeanShell.
Czy stosujesz ten sam styl / konwencje kodowania we wszystkich językach (brak składni)?
Staram się przestrzegać konwencji kodowania każdego języka, ale zwłaszcza między Javą a C # Mam pewne trudności z powodu nawiasów klamrowych i nazewnictwa metod wielkimi literami w C #:
vs.
źródło
Tworzę aplikacje internetowe. Więc obecnie jest to:
Redakcja: Sublime Text (z wyboru), Visual Studio 2010 (nie ma innego możliwego wyboru, jeśli chodzi o ASP.Net)
źródło
W swojej pracy używam Java, C, Python, Django i małych kawałków PHP. Pracowałem również nad naprawdę małym projektem w Microsoft C ++.
Nie używam ich wszystkich codziennie, ale czasami używam ich wszystkich bez problemu. W typowy dzień używam tylko jednego lub dwóch. Programowanie, które wykonuję w domu, zwykle wymaga pracy z technologiami innymi niż te, z których korzystam w pracy, takimi jak Qt lub Ruby on Rails.
źródło