Bir programcı kendi başına ne yapabilir? [kapalı]


13

Tüm insan takımlarını geliştirmeye yarayan yazılım ürünleri ile, bir programcı kendi başına ne kadar başarabilir? Başka bir deyişle, tek bir kişi Photoshop, MS kelimesi vb. Yazabilir mi? Ve eğer yapamazlarsa, web geliştirme bir programcının çok şey yapabileceği bir alan olabilir mi?


2
Burada ne sorulduğundan emin değilim. Eğer bir yazılım geliştirmek için mojo varsa kesinlikle kendiniz başarabilirsiniz - web ya da değil. Tüm facebook bir günde MZ tarafından geliştirilmedikten sonra biraz zaman alabilir.
CoolBeans

Tek bir geliştirme çalışması için blitwise.com'a göz atın .
Michael K

Kodlayıcı verimliliği çok değişkendir. Bazı kodlayıcılar diğerlerinden 10x + daha hızlı kodlar ...
Denis de Bernardy

2
Tek bir devloper binası, photoshop ve ms kelimesi olsaydı, yaklaşık 1/100 büyüklüğündeydi. Bunu kötü bir şey olarak görmüyorum.
JeffO

1
Değişir. :-)
richard

Yanıtlar:


14

Küçük başla

Linux şu anda ilk iterasyonlarından çok daha büyük, ancak önemli olan, çekiş kazanmak için yeterli şeylerle ortaya çıkması.

Sadece buna değerse

Ben büyük bir şey sadece temelde geri kalanından farklı ise yapmaya değer kişisel kural var. Aksi takdirde kırmızı okyanusa dalarsınız .

Başlamak güzel ama her zaman sürdürülebilir değil

Yazılımınız yeterince iyiyse, yazılımı ciddiye almak isteyebilirsiniz. Örneğin Minecraft'ın yaratıcısı Markus "Notch" Persson'u ele alalım. IIRC oyuna tek başına başladı ve oyun çekiş kazandığında ortak çalışanlar aramaya başladı ve hatta bir şirket kurdu.

Yalnız bir şey başarmaya ödül verirken, büyük projeler potansiyellerini tek bir dahi değil, geliştirici işbirliğiyle yerine getiriyor, bu da beni bir sonraki noktama götürüyor.

Bir efsane

Check out Genius Programcı Mit , tüm yanlış beklentiler var almalısınız Google I / O 2009 at Ben Collins-Sussman'in ve Brian Fitzpatrick tarafından bir konuşma. Burada belirtmek istediğim ana nokta, bazen tek bir geliştiricinin her şey için kredi alması, arkasında daha fazla insan olması.

Kesinlikle mümkün

Linus Torvalds dışında bir başka örnek de John Carmack. EA, iki ay boyunca tam bir takım tahmin ettiği dört gün içinde Wolfenstein'a taşındı.

Kod miktarı değil, beklediğinizden daha az kodla büyük şeylere ulaşmanızı sağlayan mimari ve teknik bilgi.

Beceri ve bilgi göz önüne alındığında (ortalama seviyenin ötesinde) çok fazla işin küçük gibi hissetmesini sağlayabilirsiniz.


7
+1 IMO, Linus'un Carmack'e bir şeyi yok. Onun eşyaları bir efsane.
Steven Evers

1
efsane şeyleri kim? Linus veya John.
Argo'yu

1
@RYUZAKI: Sanırım @ SnOrfus'un yorumu ingilizce stackexchange için tam bir soru.
Spoike

1
@RYUZAKI - John, SnOrfus yorumunda efsane eşyalarına sahip.
ocodo

1
Carmack, 4 günlük çalışması için 2 aylık tam takım maaşını mı, yoksa sadece arkada bir patlamayı mı aldı?
Drew

5

Yaptığım işin doğası gereği, kendi başıma birkaç oldukça büyük uygulama geliştirdim. Yani evet, yapılabilir. Bu konuda saatlerce devam edebilirim ama şimdi fazla zamanım yok, bu yüzden burada kişisel deneyimden bazı artılar ve eksiler var.

Artıları:

  • tam kontroldesiniz ve savaşacak bir ekip yok, böylece en iyi olduğunu düşündüğünüz / bildiğiniz şeylerle gidebilirsiniz. Koddaki küçük ve küçük bir yön hakkında sonsuz tartışmalarda zaman kaybetmeyin.
  • kafanızdaki tüm mimariye sahipsiniz, kelimenin tam anlamıyla her şeyi biliyorsunuz, tüm cevapları kendiniz bildiğiniz için müşteri desteği bir esinti
  • programlamanın tüm yönleri hakkında çok şey öğrenirsiniz . Düşük seviye, orta seviye, yüksek seviye, kullanıcı arayüzü, ...

Eksileri:

  • savaşacak takım yok, bu yüzden bazen kimseye söylemeden kötü kararlar alırsın
  • artık büyük resmi görmemek, içinde kaybolmak kolaydır. Ve sana yardım edebilecek kimse yok. (SO / SA ve benzerleri hariç:])
  • programlama için harcamak isteyeceğiniz müşteri desteğine çok zaman harcamak

3

Biraz özveri ve beceriyle, tek bir kişi kesinlikle çok şey başarabilir. Ancak bu kolay değil, sadece iyi bir programcı olmak yeterli değil. Başarılı bir proje için genellikle kullanım durumları, kullanıcı arayüzü tasarımı, dokümantasyon, destek ve çok daha fazlasını düşünmeniz gerekir. İşler ilerledikçe ve kullanıcı sayıları her şeyi tek başına yaparak büyüdükçe daha gerçekçi olmayacak - ya daha fazla insanın projeye girdiği (topluluk katılımı, insanları işe alma ya da başka bir şekilde) ya da projenin öldüğü nokta.


1

Geliştirmeye çalıştığı yazılıma, zaman kısıtlamasına ve becerilere bağlıdır. Basit bir MIS uygulaması geliştiriyorsa, bunu kısa zamanda yapabilmesi mümkündür. Photoshop, MS Word, Blender, Flash ve benzeri kadar karmaşık bir yazılım geliştirmeye çalışmak mümkün ama uzun zaman alıyor ve en temel fonksiyona sahip ve özellikleri basit.


1

Her şey beceriye, harcanan zamana ve bunu yapmaya istekliliğine bağlıdır. Ne kadar çok bilgi sahibi olursanız, bir şeyi başarmak için daha az zamanınız olur. Tek geliştirici olarak kod tabanını son derece samimi bir şekilde öğreneceksiniz, bu da çözme / yeniden düzenleme / hata ayıklama işlemini de hızlandırabilir.

Şahsen bir masaüstü-sunucu aktarım uygulaması üzerinde çalışıyorum. Sunucu uygulamasını, masaüstü uygulamasını kodladım ve hepsini kendim test ettim. Uygulama için yükleyiciyi bile yazdım. Windows'ta sistem tepsisi simgelerine sürükleyip bırakmaya izin vermenin ve hatta sıfırdan yeni bir Java kitaplığı yazmanın bir yolunu buldum. Bunu bir yıl boyunca yaptım ve hala geliştirme ve test aşamasındayım.

Bu projenin tamamı tek ana sorun oldu. Okuldan sonra her gün hem hafta sonları hem de proje üzerinde çalıştım. MS Word, Photoshop vb. Kadar büyük mü? Hayır! Proje hala büyük ve sürekli büyüyor ve çok şey başarmak mümkün.


Merak ettiğim şeye bakın ... daha uzun sürebilir, ancak tüm kodun ne yaptığını bildiğiniz için hata ayıklamak daha kolay olurdu. Ve harika bir öğrenme deneyimi.
fender1901

@ fender1901 İyi programlama sürekli bir öğrenme deneyimi olmalı, ya hepsini bildiğiniz ya da daha zorlayıcı bir görev bulmanız gereken gün değil.

1

Şu anda boş zamanlarımda böyle bir proje üzerinde çalışıyorum (bir web uygulaması, bir masaüstü uygulaması değil, ancak ilkeler aynı). Şimdiye kadar bulduğum şey:

1) Tekerleği yeniden icat etmeyin . Her şeyi sıfırdan yapmak yerine mevcut kütüphaneleri / çerçeveleri kullanın. Burada bir uyarı: Lisanslara istediğiniz dağıtım / sürüm / herhangi bir model için geçerli olduğundan emin olun. Bazı copyleft lisansları, "türetilmiş çalışmanızı" açık kaynaklamanızı gerektirir. Bazı lisanslar yalnızca ticari olmayan kullanıma izin verir. "Krediler" ekranınızda / alanında / herhangi bir şekilde uygun ilişkilendirmeyi sağlayabilmeniz için kullandığınız kütüphaneleri / çerçeveleri takip edin

2) Yinelemeli olarak çalışın . Bu, dukeofgaming'in "Start Small" ile söylediklerine bağlıdır . Sonuçları görebiliyorsanız bir projeye bağlı kalmanız daha olasıdır. Bir şeyin işe yaradığını görene kadar, yaptığınız herhangi bir gelişme karanlıkta resim yapmaya eşdeğerdir.

3) Erken geri bildirim / yardım istemekten korkmayın . Şansınız, her şeyde iyi değilsiniz. Alt düzey nitty kodlama konusunda harikaysanız, muhtemelen kullanıcı arayüzüne emilirsiniz. Bunun tersi de geçerlidir. Belli bir alanda senden daha iyi olanlardan tavsiye almak asla acıtmaz. Birçok insan bundan kaçınacaktır, çünkü birinin fikrini çalmasından endişe ediyorlar. Bu konuda endişelenmeyin - birisi sizi kopyalamaya çalışırsa, değerli bir şeyin peşindesiniz demektir. Fikirler ucuz, uygulama anahtar. Apple MP3 çaları icat etmedi, Microsoft işletim sistemini icat etmedi, Facebook sosyal ağı icat etmedi ve Google arama motorunu icat etmedi. Yaptıkları şey kullanıcılar için zorlayıcıydı (emmek değil).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.