Was sind einige bekannte / gemeinsame Entwicklungsspezialitäten? [geschlossen]

10

In einer Antwort, die ich auf eine andere Frage gestellt habe, habe ich festgestellt, dass es wahrscheinlich immer mehr Spezialisierungen in der Softwareentwicklung geben wird: Es gibt Experten oder Spezialisten für bestimmte Arten der Programmierung.

Ich frage mich, welche Spezialitäten in der Branche derzeit in angemessenen Mengen bekannt sind (nicht im akademischen Bereich), die nicht technologiespezifisch sind (z. B. für diese Diskussion sind Winforms keine Spezialität). Ich interessiere mich auch für die Branche, in der ein solcher Spezialist bei Bedarf arbeiten müsste.

Steven Evers
quelle

Antworten:

18

So wie ich das sehe, gibt es zwei Kategorien von Spezialisierungen:

  1. Spezialisierung auf ein bestimmtes Programmiergebiet;
  2. oder Spezialisierung auf eine Problemdomäne.

Beispiele für ein Programmierthema wären:

  • Eingebettet
  • GUI
  • Visualisierung
  • Testen

Dann gibt es Spezialisierung auf eine bestimmte Problemdomäne wie

  • Finanziell
  • Wissenschaftlich
  • Medizinisch
  • Fast jede große Branche kann als Problemdomäne angesehen werden

Ich denke, das ist eine wichtige Unterscheidung.

Niemand
quelle
4

Die Programmierung eingebetteter Systeme (mit der ich mich seit über 30 Jahren beschäftige) erfordert eine ganz andere Denkweise als die meisten anderen Arten der Softwareentwicklung. Der Bereich der Rechenleistung variiert stark, von 8-Bit-Mikrocontrollern, deren Menge 30 Cent kostet, bis zu 32-Bit-Mikroprozessoren, auf denen Linux oder ein anderes gängiges Betriebssystem ausgeführt wird. Ich mache derzeit Projekte an beiden Enden dieser Skala. Der Codespeicher auf den kleinsten Mikros beträgt möglicherweise nur wenige KB mit nur wenigen hundert Byte RAM. Ein 16-Bit-Mikro im mittleren Bereich, dessen Menge 3 US-Dollar kostet, verfügt möglicherweise über 256 KB Programmspeicher und 16 KB RAM.

Neben den begrenzten Speicherressourcen besteht einer der Aspekte der eingebetteten Programmierung im Gegensatz zu anderen Bereichen der Softwareentwicklung darin, dass der Programmierer häufig direkt mit der Hardware auf Registerebene umgeht - entweder auf dem Mikro selbst oder in einem angeschlossenen Peripheriegerät das Mikro über serielle Busse wie UART, SPI oder I2C. Aus diesem Grund werden eingebettete Low-End-Mikros normalerweise in C oder Assemblersprache programmiert.

Eingebettete Systeme haben häufig mit Echtzeitereignissen zu tun, daher verfügt ein eingebettetes Firmware-Programm normalerweise über viele Interrupt-Routinen und möglicherweise ein kleines RTOS (Echtzeit-Betriebssystem). Das Debuggen solcher Systeme erfordert häufig Hardware-Unterstützung mithilfe einiger dedizierter Leitungen im Mikro, sodass Haltepunkte von einem PC aus remote festgelegt werden können. Logikanalysatoren, Busanalysatoren und Oszilloskope sind zusätzliche Werkzeuge zum Debuggen dieser Systeme.

Aufgrund der Hardwareaspekte der Embedded-Entwicklung verfügen Entwickler häufig über einen elektronischen Hintergrund. (Ich habe Abschlüsse in EE und CS).

tcrosley
quelle
1

Die Rolle / das Team "Developer DBA" existiert, ist aber nicht häufig genug oder wird nicht geschätzt.

In Bezug auf größere Shops verfügt ein Production DBA-Team möglicherweise über einige 1000 SQL Server-Instanzen, die verwaltet und überwacht werden müssen, die Notfallwiederherstellung ermöglichen, mit SAN-, Netzwerk- und Betriebssystemteams zusammenarbeiten usw.

Wer ist für die Entwicklungsteams da? Tuning? Indizes? Design? Codierungsstandards?

Als Entwickler-DBA habe ich viele Kundenentwickler getroffen, die mehr über Datenbanken wissen als ich ... :-)

Natürlich ist auch die Kenntnis des Geschäfts nützlich. Wenn Sie beauftragt sind, einen Code zu verbessern, der komplexe Derivate im Investment Banking bewertet, ist eine gewisse Fachkompetenz fast genauso wichtig wie eine ausgeklügelte Codierung.

gbn
quelle
0

Es gibt auch den Unterschied, eine bestimmte Art von Softwarelösung zu kennen, wie eine der folgenden:

  • Enterprise Resource Planning
  • Kundenbeziehungsmanagement
  • Content Management System

Es gibt wahrscheinlich andere, aber dies ist eine andere Form der Spezialität, bei der man für fast jede Art von Unternehmen arbeiten könnte, die möglicherweise eine Anpassung der oben genannten vornehmen. In meinem Fall arbeite ich seit einigen Jahren an einem Content-Management-System, von dem ich sagen würde, dass es in gewissem Sinne eine Spezialität ist.

So etwas wie Webentwicklung ist möglicherweise nicht spezifisch genug, da es in diesem Bereich viele Spezialitäten geben kann, oder würde es für das zählen, was Sie wollen?

JB King
quelle
Hmm, ich hoffe auf Spezialitäten, die sich von ihren Implementierungsfähigkeiten unterscheiden. Zum Beispiel muss ein KI-Spezialist nicht C ++ / Prolog / welche Sprache auch immer verwenden. Die Webentwicklung, wie ich sie heutzutage sehe, verbindet die Implementierung stark mit den Technologien (asp.net mvc! = RoR - das übersetzbare Wissen ist hauptsächlich allgemeines Programmier- und Plattformwissen)
Steven Evers