Jakie są znane / popularne specjalizacje programistyczne? [Zamknięte]


10

W odpowiedzi, którą zamieściłem na inne pytanie, zauważyłem, że prawdopodobnie będzie coraz więcej specjalizacji w tworzeniu oprogramowania: są eksperci lub specjaliści dla danego rodzaju programowania.

Zastanawiam się, jakie specjalizacje są obecnie znane w branży w rozsądnych ilościach (nie w środowisku akademickim), które nie są specyficzne dla technologii (np. Dla tej dyskusji winforms nie jest specjalnością)? Interesuje mnie również branża, w której taki specjalista musiałby pracować w razie potrzeby.

Odpowiedzi:


18

Według mnie są dwie kategorie specjalizacji:

  1. specjalizacja w określonej dziedzinie programowania;
  2. lub specjalizacja w dziedzinie problemowej.

Przykładami tematu programowania mogą być:

  • Osadzone
  • GUI
  • Wyobrażanie sobie
  • Testowanie

Następnie jest specjalizacja w określonej dziedzinie problemowej, takiej jak

  • Budżetowy
  • Naukowy
  • Medyczny
  • Prawie każda duża branża może być uważana za domenę problemową

Myślę, że to ważne rozróżnienie.


4

Programowanie systemów wbudowanych (w które jestem zaangażowany od ponad 30 lat) wymaga zupełnie innego sposobu myślenia niż większość innych programów. Zakres mocy obliczeniowej jest bardzo zróżnicowany, od 8-bitowych mikrokontrolerów, które kosztują 30 centów w ilości, do 32-bitowych mikroprocesorów z systemem Linux lub innym popularnym systemem operacyjnym. Obecnie realizuję projekty na obu końcach tej skali. Pamięć kodu na najmniejszych mikrach może wynosić tylko kilka KB, a pamięć RAM ma tylko kilkaset bajtów. 16-bitowa mikroprocesor średniego zasięgu, kosztujący 3 USD w ilości, może mieć 256 KB pamięci do przechowywania programów i 16 KB pamięci RAM.

Oprócz ograniczonych zasobów pamięci, jednym z aspektów programowania wbudowanego, który jest inny niż w innych obszarach rozwoju oprogramowania, jest to, że programista często ma do czynienia bezpośrednio ze sprzętem na poziomie rejestru - albo na samym mikroprocesorze, albo na urządzeniu peryferyjnym podłączonym do mikro poprzez magistrale szeregowe, takie jak UART, SPI lub I2C. Z tego powodu wbudowane mikroskopy niskiej jakości są zwykle programowane w języku C lub asemblerze.

Systemy osadzone często radzą sobie ze zdarzeniami w czasie rzeczywistym, więc wbudowany program układowy zwykle ma wiele procedur przerwań i może mieć mały RTOS (system operacyjny w czasie rzeczywistym). Debugowanie takich systemów często wymaga pomocy sprzętowej przy użyciu kilku dedykowanych linii do mikro, dzięki czemu punkty przerwania można ustawić zdalnie z komputera. Analizatory logiczne, analizatory magistrali i oscyloskopy to dodatkowe narzędzia używane do debugowania tych systemów.

Ze względu na sprzętowe aspekty programowania wbudowanego, programiści często mają doświadczenie w dziedzinie elektroniki. (Mam stopnie w EE i CS).


1

Rola / zespół programisty DBA istnieje, ale nie jest wystarczająco powszechny ani doceniany.

Mówiąc o większych sklepach, zespół produkcyjny DBA może mieć kilka 1000 wystąpień SQL Server do zarządzania i monitorowania, zapewniania odzyskiwania po awarii, współpracy z SAN, sieciami i zespołami systemów operacyjnych itp.

Kto jest dla zespołów programistycznych? Strojenie? Indeksy? Projekt? Standardy kodowania?

Mówiąc, że jako programista DBA poznałem wielu programistów klientów, którzy wiedzą więcej o bazach danych niż ja ... :-)

Oczywiście przydatna jest również znajomość biznesu. jeśli jesteś zatrudniony do poprawy kodu, który wycenia złożone instrumenty pochodne w bankowości inwestycyjnej, to wiedza specjalistyczna w zakresie zagadnień jest prawie tak samo ważna jak umiejętności kodowania.


0

Istnieje również rozróżnienie na znajomość określonego rodzaju oprogramowania, na przykład:

  • Planowanie zasobów przedsiębiorstwa
  • Menedżer ds. relacji z klientami
  • System zarządzania zawartością

Są prawdopodobnie inne, ale są to inne formy specjalizacji, w których można pracować dla prawie każdego rodzaju firmy, potencjalnie dostosowując powyższe. W moim przypadku od kilku lat pracuję nad systemem zarządzania treścią, który powiedziałbym, że jest w pewnym sensie specjalnością.

Coś takiego jak Web Development może nie być wystarczająco szczegółowe, ponieważ może istnieć wiele specjalizacji w tym obszarze, czy może liczyłby się na to, czego chcesz?


Hmm, mam nadzieję na specjalizacje, które różnią się od ich umiejętności wdrażania. Na przykład specjalista AI nie musi używać C ++ / Prolog / jakiegokolwiek języka. Tworzenie stron internetowych, jakie widzę obecnie, silnie łączy wdrażanie z technologiami (asp.net mvc! = RoR - wiedza podlegająca tłumaczeniu to głównie ogólna znajomość programowania i platformy)
Steven Evers
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.