Berapa banyak yang bisa dilakukan oleh seorang programmer sendiri? [Tutup]

13

Dengan produk perangkat lunak yang membuat seluruh tim orang untuk mengembangkan, berapa banyak yang dapat dicapai oleh seorang programmer sendiri? Dengan kata lain, dapatkah satu orang menulis Photoshop, kata MS, dll ...? Dan jika mereka tidak bisa, akankah pengembangan web menjadi area di mana satu programmer bisa melakukan banyak hal?

fender1901
sumber
2
Saya tidak yakin apa yang ditanyakan di sini. Jika Anda memiliki mojo untuk mengembangkan perangkat lunak Anda pasti bisa mencapainya sendiri - web atau tidak. Mungkin butuh waktu, setelah semua facebook tidak dikembangkan dalam sehari oleh MZ.
CoolBeans
Mengintip blitwise.com untuk pekerjaan pengembang tunggal.
Michael K
Produktivitas pembuat kode sangat bervariasi. Beberapa coders kode 10x + lebih cepat dari yang lain ...
Denis de Bernardy
2
Jika itu adalah bangunan devloper tunggal, photoshop, dan kata ms, ukurannya sekitar 1/100. Saya tidak menganggap itu hal yang buruk.
JeffO
1
Tergantung. :-)
richard

Jawaban:

14

Mulai dari yang kecil

Linux saat ini jauh lebih besar daripada iterasi pertama, tetapi yang penting adalah ia mengeluarkan cukup banyak hal di dalamnya untuk mendapatkan daya tarik.

Hanya jika itu sepadan

Saya memiliki aturan pribadi bahwa hal-hal besar hanya layak dilakukan jika secara fundamental berbeda dengan yang lain. Kalau tidak, Anda menyelam ke laut merah .

Bagus untuk memulai, tetapi tidak selalu berkelanjutan

Jika perangkat lunak Anda cukup baik, Anda mungkin ingin serius dengannya. Ambil contoh Markus "Notch" Persson, pencipta Minecraft. IIRC dia memulai permainan sendirian, dan ketika permainan mendapatkan traksi dia mulai mencari kolaborator dan bahkan memulai sebuah perusahaan.

Sementara menghargai untuk mencapai sesuatu sendirian, proyek-proyek besar memenuhi potensi mereka dengan kolaborasi pengembang, bukan genius tunggal, yang membawa saya ke poin saya berikutnya.

Sebuah mitos

Lihat The Myth of the Genius Programmer , ceramah oleh Ben Collins-Sussman dan Brian Fitzpatrick di Google I / O 2009. Anda harus mendapatkan semua harapan palsu di sana. Poin utama yang ingin saya sampaikan di sini adalah bahwa kadang-kadang satu pengembang mendapatkan kredit untuk semuanya, sementara ada lebih banyak orang di belakang.

Itu pasti mungkin

Contoh lain, selain dari Linus Torvalds, adalah John Carmack. Dia mengirim Wolfenstein hanya dalam empat hari ketika EA memperkirakan satu tim penuh selama dua bulan.

Ini bukan jumlah kode, itu pengetahuan arsitektur dan teknis yang memungkinkan Anda mencapai hal-hal besar dengan kode kurang dari yang Anda harapkan.

Mengingat keterampilan dan pengetahuan (di luar tingkat rata-rata) Anda dapat membuat banyak pekerjaan terasa seperti sedikit.

dukeofgaming
sumber
7
+1 IMO, Linus tidak memiliki masalah di Carmack. Barang-barangnya adalah barang legenda.
Steven Evers
1
barang siapa itu barang legenda? Linus atau John. tidak mendapatkan bahasa gaul Anda kembali ke sana
Chani
1
@RYUZAKI: Saya kira komentar @ SnOrfus adalah seluruh pertanyaan untuk pertukaran stackex inggris.
Spoike
1
@RYUZAKI - John memiliki legenda, dalam komentar SnOrfus.
ocodo
1
Apakah Carmack mendapatkan gaji tim penuh 2 bulan untuk pekerjaannya selama 4 hari, atau hanya tepukan di punggung?
Drew
5

Karena sifat pekerjaan yang saya lakukan, saya telah mengembangkan beberapa aplikasi yang cukup besar sendirian. Jadi ya, itu bisa dilakukan. Saya bisa melanjutkan ini selama berjam-jam tetapi tidak punya banyak waktu sekarang jadi di sini ada beberapa pro dan kontra dari pengalaman pribadi.

Pro:

  • Anda dalam kontrol penuh dan tidak ada tim untuk bertarung, sehingga Anda dapat mengikuti apa yang Anda pikir / ketahui adalah yang terbaik. Tidak membuang waktu dalam diskusi tanpa akhir tentang aspek kecil dalam kode.
  • Anda memiliki seluruh arsitektur di kepala Anda, benar-benar tahu segalanya tentang itu, dukungan pelanggan sangat mudah karena Anda tahu semua jawaban sendiri
  • Anda belajar banyak tentang semua aspek pemrograman. Antarmuka pengguna tingkat rendah, tingkat menengah, tingkat tinggi, ...

Cons:

  • tidak ada tim untuk bertarung, jadi terkadang Anda mengambil keputusan buruk tanpa ada yang memberi tahu Anda
  • mudah tersesat di dalamnya, tidak lagi melihat gambaran besarnya. Dan tidak ada yang bisa membantu Anda. (kecuali SO / SA dan sejenisnya:])
  • menghabiskan banyak waktu untuk dukungan pelanggan yang lebih baik Anda habiskan untuk pemrograman
stijn
sumber
3

Dengan dedikasi dan keterampilan, satu orang pasti dapat mencapai banyak hal. Namun itu tidak mudah, menjadi programmer yang baik tidak cukup. Untuk proyek yang sukses, Anda sering harus berpikir tentang kasus penggunaan, desain antarmuka pengguna, dokumentasi, dukungan, dan banyak lagi. Begitu segalanya bergulir dan jumlah pengguna bertambah dengan melakukan semuanya sendirian akan semakin menjadi tidak realistis - itulah titik di mana lebih banyak orang masuk ke proyek (melalui partisipasi masyarakat, mempekerjakan orang atau sebaliknya) atau proyek mati.

Wladimir Palant
sumber
1

Tergantung pada perangkat lunak yang dia coba kembangkan, batasan waktu, dan keterampilan. Jika dia sedang mengembangkan aplikasi SIM sederhana, sangat mungkin dia dapat melakukannya dalam waktu singkat. Mencoba mengembangkan perangkat lunak yang rumit seperti Photoshop, MS Word, Blender, Flash, dan lain-lain, tetapi mungkin membutuhkan waktu lama dan memiliki fungsi paling dasar dan fitur-fiturnya sederhana.

Tom
sumber
1

Itu semua tergantung pada keterampilan, waktu yang dihabiskan, dan kemauan untuk melakukannya. Semakin banyak pengetahuan yang Anda miliki, semakin sedikit waktu yang dibutuhkan untuk mencapai sesuatu. Anda akan mendapatkan pengetahuan yang sangat intim tentang basis kode sebagai pengembang tunggal yang juga dapat mempercepat proses mencari tahu / refactoring / debugging.

Saya pribadi telah mengerjakan aplikasi transfer desktop ke server. Saya telah membuat kode aplikasi server, aplikasi desktop, dan mengujinya sendiri. Saya telah menulis penginstal untuk aplikasi ini. Saya menemukan cara untuk memungkinkan drag dan drop ke ikon system tray di Windows dan bahkan akhirnya menulis perpustakaan Java baru dari awal. Saya melakukan ini selama setahun dan masih dalam pengembangan dan pengujian.

Seluruh proyek ini merupakan satu cobaan berat. Setiap hari sepulang sekolah saya telah mengerjakan proyek dan juga akhir pekan. Apakah ini sebesar MS Word, Photoshop, dll? Nggak. Proyek ini masih besar dan terus berkembang dan mungkin untuk mencapai banyak hal.


sumber
Lihat itu yang saya ingin tahu ... mungkin butuh waktu lebih lama tetapi karena Anda akan tahu apa yang dilakukan oleh semua kode, mungkin akan lebih mudah untuk di-debug. Dan pengalaman belajar yang luar biasa.
fender1901
@ fender1901 Nah pemrograman harus selalu menjadi pengalaman belajar, hari yang tidak tepat adalah ketika Anda mengetahui semuanya atau perlu menemukan tugas yang lebih menantang.
1

Saat ini saya sedang mengerjakan proyek semacam itu di waktu senggang saya (ini adalah aplikasi web, bukan aplikasi desktop, tetapi prinsip-prinsipnya sama). Inilah yang saya temukan sejauh ini:

1) Jangan menemukan kembali roda . Gunakan pustaka / kerangka kerja yang ada, daripada melakukan semuanya dari awal. Satu peringatan di sini: pastikan Anda memperhatikan lisensi karena berlaku untuk distribusi / rilis yang Anda inginkan / model apa pun. Beberapa lisensi copyleft akan mengharuskan Anda membuka "karya turunan" Anda. Beberapa lisensi hanya mengizinkan penggunaan non-komersial. Pantau perpustakaan / kerangka kerja yang Anda gunakan sehingga Anda dapat memberikan atribusi yang sesuai di layar "Kredit" / area / apa pun

2) Bekerja secara iteratif . Ini terkait dengan apa yang dikatakan dukeofgaming dengan "Mulai Kecil" . Anda lebih mungkin bertahan dengan sebuah proyek jika Anda dapat melihat hasilnya. Sampai Anda dapat melihat sesuatu berfungsi, perkembangan apa pun yang Anda lakukan adalah setara dengan melukis di kegelapan.

3) Jangan takut untuk meminta tanggapan / bantuan sejak dini . Kemungkinannya, Anda tidak pandai dalam segala hal. Jika Anda hebat di seluk beluk tingkat yang lebih rendah dari coding, Anda mungkin payah di UI. Kebalikannya juga berlaku. Tidak ada salahnya untuk mendapatkan saran dari mereka yang lebih baik dari Anda di bidang tertentu. Banyak orang akan menghindari ini karena mereka khawatir seseorang mencuri ide mereka. Jangan khawatir tentang ini - jika seseorang mencoba untuk menyalin Anda, itu berarti Anda memiliki sesuatu yang berharga. Gagasan itu murah, implementasi adalah kuncinya. Apple tidak menciptakan MP3 player, Microsoft tidak menciptakan sistem operasi, Facebook tidak menciptakan jaringan sosial, dan Google tidak menciptakan mesin pencari. Apa yang mereka lakukan adalah membuatnya menarik bagi pengguna (dan tidak payah).

Daniel Kitchener
sumber