Jestem bardzo zainteresowany teoriami języków programowania i zamierzam zrobić doktorat w tym temacie, ale chcę dowiedzieć się więcej o karierze po ukończeniu studiów. oprócz tego, że jestem profesorem, ale także jaki zawód mogę uzyskać?
programming-languages
career-development
language-design
compiler
użytkownik16854
źródło
źródło
Odpowiedzi:
Jeśli jesteś profesjonalistą w językach programowania i teorii automatów, powinieneś mieć wystarczająco dużo możliwości branżowych jako programista kompilatora lub specjalista od optymalizacji zaplecza.
Ciągle pojawiają się nowe języki, a istniejące języki są ulepszane lub kierowane na nowsze platformy. Na przykład C ++ przechodzi na C ++ 0x, faceci od sprzętu przechodzą z Verilog do SystemVerilog, a ARM jest coraz częściej wykorzystywany w urządzeniach konsumenckich. Wszystkie te stanowią dobre możliwości dla programistów kompilatorów.
Na koniec programiści kompilatorów, którzy mogą korzystać z architektur wielordzeniowych, będą rządzić luką w nadchodzących latach.
Tutaj znajdziesz zadania kompilatora .
źródło
Michael Feathers napisał kiedyś, że odkrył, że większość osób zaangażowanych w programowanie należała do różnych dziedzin - od naukowców po inżynierów.
Naukowcy czerpią z wiedzy i zrozumienia, a inżynierowie lubią budować i oglądać, jak działa.
Na skraju inżyniera ludzie ciągle wyrzucają nowy kod lub hacki, aby wszystko działało. Zwykle ignorują duży obraz. Ekstremalni naukowcy stają się architektami-astronautami z głowami w dużych, pochmurnych ramach i nigdy nie dostarczyli działającego kodu przez całe życie. Najlepsi programiści są gdzieś pośrodku.
Kiedyś myślałem, że jestem programistą, ponieważ uwielbiałem czytać o tym i spędziłem nad tym godziny. Kilka prac później zdałem sobie sprawę, że faktycznie mam problem z dostarczeniem, ponieważ zawsze szukam lepszego sposobu lub „właściwej drogi” do zrobienia rzeczy. Okazuje się, że jestem zbyt po stronie naukowca, aby być skutecznym, przynajmniej w „normalnej” pracy programisty.
Tak czy inaczej, myślę, że urodziłeś się z preferencją dla jednego lub drugiego (ostatnio dużo czytałem o typach osobowości, szczególnie Myers-Briggs Type Indicator , i mam przeczucie, że może to być związane z S / N funkcja dla tych, którzy są tym zainteresowani). Próbowałem zmusić się do bycia bardziej praktycznym i bardziej „wykonawcą”, ale po prostu się wypaliłem.
Chodzi mi o pierwotne pytanie: jeśli idziesz ścieżką doktorską, prawdopodobnie bardziej lubisz rzeczy teoretyczne niż „budowanie rzeczy praktycznych”. Nie ma w tym nic złego, ale myślę, że taki wybór kariery często zablokuje cię w karierze naukowej / edukacyjnej. Nie możesz oczekiwać, że będziesz mógł przejść bezpośrednio od doktora do wysoko płatnej pracy konsultanta. Rzeczy, których uczysz się ćwicząc w „prawdziwym świecie”, znacznie różnią się od najlepszych praktyk wyniesionych z książek.
Alternatywą jest oczywiście założenie własnej firmy po doktoracie i opracowanie (lub zatrudnienie kogoś do opracowania) aplikacji opartej na fantastycznych teoriach odkrytych podczas badań.
źródło
Od kilku lat zastanawiam się nad zrobieniem doktoratu (obecnie pracuję nad utworem magisterskim), a najważniejszą rzeczą, którą powiedzieli mi doktoranci ze środowisk akademickich i przemysłowych, jest:
Fanantic23 dość dobrze poradził sobie z kwestiami związanymi z karierą zawodową, ale nie ma tylu miejsc pracy dla doktora, więc musisz się upewnić, że chcesz zainwestować czas w naukę czegoś z powodów innych niż pieniądze przed przystąpieniem do programu doktoratu .
źródło
NIE chodź na doktorat, jeśli liczysz na zdobycie pracy naukowej lub jeśli nie masz nic przeciwko marnowaniu wielu lat, by zostać inżynierem, tak jak wcześniej.
Nie zniechęcając cię, ale ogromna większość ludzi z doktoratami w CS, a konkretnie w takich tematach, jak języki programowania NIE kończą jako profesorowie. Po prostu nie ma wystarczającej liczby prac badawczych do obejrzenia.
Praca naukowa w przemyśle jest jeszcze mniej powszechna i dostępna niż praca naukowa w środowisku akademickim, ponieważ płacą lepiej i nie wymagają nauczania.
Pomyśl o tym w ten sposób: jeśli spojrzysz na liczbę artykułów naukowych PL publikowanych rocznie i założysz jednego doktoranta na artykuł, nie wszyscy z nich będą profesorami.
Zrobiłem doktorat z inżynierii oprogramowania na CMU, gdzie PL jest jedną z najsilniejszych dziedzin (jesteśmy programem 3 najlepszych w PL). Według mojej najlepszej wiedzy, od wszystkich, którzy ukończyli doktorat z PL, tylko dwóch skończyło na stanowiskach akademickich. Wszyscy inni są zatrudnieni jako inżynierowie oprogramowania. Znam taki, który działa na rzecz PL związanych z PL, ale inni są generalistami.
Skontaktuj się ze mną prywatnie, jeśli chcesz, żebym skontaktował się z ludźmi, którzy przeprowadzili badania PL, którzy mogą powiedzieć ci więcej o tym doświadczeniu.
źródło
Spodziewałbym się, że możesz pracować dla jednego z laboratoriów badawczych, które pracują nad językami programowania, Microsoft i IBM mają je, podobnie jak wiele innych firm. Nie wspominając o żadnym sklepie, który rozwija lub implementuje języki.
źródło
Przed rozpoczęciem doktoratu powinieneś porozmawiać ze swoimi profesorami z Alma Mater.
Zazwyczaj doktorat albo pracuje w laboratorium badawczym, albo zostaje profesorem. Dożywotnie zarobki są zazwyczaj znacznie poniżej stopnia MS.
Teoria programowania w języku programowania prawdopodobnie umieściłaby cię w dziedzinie pisania kompilatorów.
Te rzeczy nie są trudne do znalezienia przez czytanie - wyrażam wątpliwości, czy jesteś gotowy na doktorat, jeśli zadajesz to pytanie.
źródło
Byłem zainteresowany studiowaniem tej samej kariery / kursu (moja praca dyplomowa jest związana z projektowaniem kompilatorów, a także prowadzę zajęcia na temat „Porównanie języków programowania”, obie te koncepcje odnoszą się do „teorii języków programowania”).
Ale bardziej hobby było karierę „płacenia rachunków”.
Istnieje również problem polegający na tym, że teoria programowania języków ma wiele zastosowań matematycznych, ale trudno ją zastosować w praktyce.
Jeśli masz już ten kurs, jak się zgłosiłeś?
Przykład: stwórz własny kompilator Java, uczyń go szybszym niż oryginał, dodaj kilka rzeczy i sprzedaj go. Przykład: „HotSpot”
Lub coś w rodzaju kompilatora „Java / C # działającego w tosterze” i sprzedaj go ;-)
Nauczanie pokrewnych klas pojęć w Collegue / University, takich jak Automaty, Projektowanie kompilatorów, Porównanie języków programowania i tak dalej.
Możesz również stworzyć swój własny mały start, pełny etat lub wolny / niepełny etat, mając standardowe zadanie programisty, które płaci rachunki (Wypróbowane i nieudane). : -s
Istnieje kilka firm, które mogą produkować oprogramowanie, które faktycznie wymaga tych konkretnych umiejętności.
(Głównie projektowanie języka programowania i pasującego kompilatora dla konkretnej maszyny wirtualnej / fizycznej, własnego parsera XML itp.).
Wygląda jednak na to, że większość z nich woli zatrudnić zwykłego taniego programistę niż programistę o specjalizacji ...
źródło
Doktorat z CS z naciskiem na teorię języków programowania może dać ci pracę poza środowiskiem akademickim, ale najprawdopodobniej nadal w dziedzinie badań. Microsoft (za pośrednictwem MS Research lub Microsoft), Google, Amazon, Ericsson, HP, IBM Research, Oracle będą potencjalnymi pracodawcami.
Jeśli poszerzysz swoje możliwości pracy poza swoją przyszłą rozprawą, doktorat. grupy zatrudniające również rozważą Cię w związku z dogłębnością studiów.
I to tylko w sektorze komercyjnym. Jeśli spojrzysz na DoE i jego liczne laboratoria (Laurence Livermole, Sandia itp.) Lub DoD lub wykonawców wojskowych, takich jak Raytheon, General Dynamics (mój pracodawca) lub Lockheed Martin, dostępne są stanowiska dla naukowców i badaczy. NSA też chciałby cię zatrudnić.
Możliwości pozaakademickie dla osób posiadających stopień naukowy doktora są mniejsze (o wiele mniejsze) niż te, które wymagają dyplomu licencjata lub stwardnienia rozsianego, ale wciąż są dostatecznie wynagradzane i satysfakcjonujące.
Powodzenia.
źródło
Wiele dostępnych miejsc pracy:
C # / .NET w Microsoft
Java w Oracle
Perl6 (myślę, że nie dostanie dużo zapłaty)
ActionScript w Adobe
źródło