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.

Steven Evers
źródło

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.

Nikt
źródło
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).

tcrosley
źródło
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.

gbn
źródło
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?

JB King
źródło
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