Apa saja spesialisasi pengembangan yang dikenal / umum? [Tutup]

10

Dalam jawaban yang saya posting ke pertanyaan lain, saya mencatat bahwa ada kemungkinan akan semakin banyak spesialisasi dalam pengembangan perangkat lunak: ada ahli atau spesialis untuk jenis pemrograman tertentu.

Saya bertanya-tanya, spesialisasi apa yang diketahui ada dalam jumlah yang wajar di industri sekarang (bukan akademisi), yang tidak spesifik teknologi (mis. Untuk diskusi ini winform bukan spesialisasi)? Saya juga tertarik dengan industri dimana spesialis seperti itu harus bekerja jika perlu.

Steven Evers
sumber

Jawaban:

18

Cara saya melihatnya ada dua kategori spesialisasi:

  1. spesialisasi dalam bidang pemrograman tertentu;
  2. atau spesialisasi dalam domain masalah.

Contoh topik pemrograman adalah:

  • Tertanam
  • GUI
  • Visualisasi
  • Pengujian

Lalu ada spesialisasi dalam domain masalah tertentu seperti

  • Keuangan
  • Ilmiah
  • Medis
  • Hampir semua industri besar dapat dianggap sebagai domain masalah

Saya pikir itu perbedaan penting.

Tak seorangpun
sumber
4

Pemrograman sistem tertanam (yang telah saya ikuti selama lebih dari 30 tahun) membutuhkan pola pikir yang sangat berbeda dari kebanyakan jenis pengembangan perangkat lunak lainnya. Kisaran daya komputasi sangat bervariasi, dari mikrokontroler 8-bit yang harganya 30 sen secara kuantitas hingga mikroprosesor 32-bit yang menjalankan Linux atau OS umum lainnya. Saat ini saya sedang mengerjakan proyek di kedua ujung skala ini. Memori kode pada micros terkecil mungkin hanya beberapa KB, dengan hanya beberapa ratus byte RAM. Mikro kelas menengah 16-bit seharga $ 3 mungkin memiliki 256KB penyimpanan program dan 16KB RAM.

Selain sumber daya memori yang terbatas, salah satu aspek dari pemrograman tertanam yang tidak seperti bidang pengembangan perangkat lunak lainnya adalah bahwa programmer sering berhadapan langsung dengan perangkat keras pada tingkat register - baik pada mikro itu sendiri, atau dalam perangkat yang melekat pada mikro melalui bus serial seperti UART, SPI atau I2C. Untuk alasan ini, micros tertanam low-end biasanya diprogram dalam bahasa C atau bahasa assembly.

Sistem tertanam sering berurusan dengan peristiwa waktu nyata, sehingga program firmware yang tertanam biasanya memiliki banyak rutinitas interupsi dan kemungkinan RTOS kecil (OS waktu nyata). Debugging sistem seperti itu sering membutuhkan bantuan perangkat keras menggunakan beberapa jalur khusus ke dalam mikro sehingga breakpoint dapat diatur dari jarak jauh dari PC. Penganalisis logika, penganalisa bus dan osiloskop adalah alat tambahan yang digunakan untuk debugging sistem ini.

Karena aspek perangkat keras pengembangan tertanam, pengembang sering memiliki beberapa latar belakang elektronik. (Saya memiliki gelar di EE dan CS).

tcrosley
sumber
1

Peran / tim "Pengembang DBA" ada tetapi tidak cukup umum atau dihargai.

Berbicara tentang toko yang lebih besar, tim DBA Produksi mungkin memiliki beberapa contoh SQL Server 1000 untuk mengelola dan memantau, menyediakan pemulihan bencana, berhubungan dengan SAN, jaringan dan tim OS dll

Siapa yang ada untuk tim pengembangan? Tuning? Indeks? Rancangan? Standar pengkodean?

Mengatakan itu, sebagai DBA Pengembang sendiri, saya telah bertemu banyak pengembang klien yang tahu lebih banyak tentang database daripada saya ... :-)

Tentu saja, pengetahuan bisnis juga bermanfaat. jika Anda direkrut untuk memperbaiki beberapa kode yang memberi harga turunan kompleks dalam perbankan investasi, maka beberapa keahlian materi pelajaran hampir sama pentingnya dengan keterampilan penyandian jagoan.

gbn
sumber
0

Ada juga perbedaan dalam mengetahui jenis solusi perangkat lunak tertentu seperti yang berikut ini:

  • Perencanaan Sumberdaya Perusahaan
  • Pengelolaan hubungan pelanggan
  • Sistem Manajemen Konten

Ada kemungkinan yang lain tetapi ini adalah bentuk khusus di mana seseorang dapat bekerja untuk hampir semua jenis perusahaan melakukan kustomisasi di atas secara potensial. Dalam kasus saya, saya telah bekerja pada Sistem Manajemen Konten selama beberapa tahun sekarang yang akan saya katakan adalah spesialisasi dalam arti tertentu.

Sesuatu seperti Pengembangan Web mungkin tidak cukup spesifik karena mungkin ada banyak spesialisasi dalam bidang ini, atau apakah ini akan sesuai dengan yang Anda inginkan?

JB King
sumber
Hmm, saya berharap untuk spesialisasi yang berbeda dari keterampilan implementasi mereka. Misalnya, spesialis AI tidak perlu menggunakan C ++ / Prolog / bahasa apa pun. Pengembangan web seperti yang saya lihat belakangan ini sangat erat kaitannya dengan penerapan teknologi (asp.net mvc! = RoR - pengetahuan yang dapat diterjemahkan sebagian besar adalah pemrograman umum dan pengetahuan platform)
Steven Evers