Neden herkes programcı değil?

Hemen hemen herkes, hemen hemen her yaşta veya IQ düzeyinde, kod yazma kavramlarını öğrenebilirken, herhangi bir uzun vadeli başarı umuduyla istihdam edilebilir, profesyonel bir yazılım geliştiricisi olmak için, bir kişinin aşağıdakilere ihtiyacı vardır:
  • Mantıksal düşünme becerileri.
  • Mükemmel problem çözme becerileri.
  • Sorunları çözmek için metodik bir yaklaşım.
  • Yazılım geliştirme tutkusu.
  • Tüm kariyerleri boyunca yeni şeyler (örneğin, diller, paradigmalar, tasarım kalıpları, kütüphaneler, çerçeveler, veri yapıları, algoritmalar vb.) öğrenmeye devam etme istekliliği ve yeteneği. Bu işte öğrenme asla durmaz. Öğrenmeyi bırakırsanız, geride kalırsınız ve fırsatlarınızı sınırlarsınız.
  • Mükemmel yazım ve sözlü iletişim yetenekleri. Dokümantasyon veya kod yorumları yazmaktan kod incelemelerinde geri bildirim sağlamaya, sunum yapmaya ve tasarım kararlarınızı savunmaya kadar, iletişim bu işin anahtarıdır.
  • Sabır. Buna çok ihtiyacınız var. Sabrınızı deneyecek kişilerin ve durumların listesi burada listelemeye bile başlamak için çok uzun.
  • Sebat. Özellikle saatlerce veya günlerce zor bir hatayı kovaladıktan sonra buna çok ihtiyacınız var.
  • En küçük ayrıntıya bile dikkat edin. Bir ikili rakam (bit), bir şeyin nasıl çalıştığı veya çalışmadığı üzerinde büyük bir etkiye sahip olabilir.
  • Kaliteye dikkat etme.
  • Müşteri/kullanıcı ihtiyaçlarını, terminolojiyi, kavramları vb. daha iyi anlamak için, kod yazdığınız alana dalma ve hakkında bilgi edinme istekliliği ve becerisi. Örneğin, finansal sistemleri programlıyorsanız, finansal kavramlar hakkında bilgi edinin. İstatistiksel yazılım geliştiriyorsanız, ayrıntılı bilgi edinmeniz ve istatistikler hakkında bilgi edinmeniz gerekir. Simülasyon geliştiriyorsanız, kolları sıvamanız ve astrofizik, sicim teorisi, ekolojik sistemler vb. hakkında bilgi edinmeniz gerekebilir. Ağ yazılımı yazıyorsanız, ağ oluşturma hakkında bilgi edinmeniz gerekir. Endüstriyel kimyasal süreçleri yürütmek için yazılım yazıyorsanız, üzerinde çalıştığınız kimyasallar ve süreçler hakkında bilgi edinmeniz gerekir. Aygıt sürücüleri, donanım aygıtları hakkında bilgi sahibi olmayı gerektirir. İşlem kontrol yazılımı, kimyasal reaksiyonların öğrenilmesini gerektirebilir. Liste uzayıp gider.

    (Yazılım geliştirmeyle ilgili sevdiğim pek çok şeyden biri, tipik bilgisayar bilimi ve yazılım mühendisliği alanlarına ek olarak, on yıllar boyunca öğrenme şansı bulduğum diğer tüm alanlar.)
  • Kodunuzu okuması/sürdürmesi gereken bir sonraki geliştiriciye şefkat ve empati.
  • Geliştirmekte olduğunuz yazılımın kullanıcıları için şefkat ve empati.
  • Teknik bilgileri hızlı bir şekilde okuma ve yorumlama ve bunları eldeki göreve uygulama becerisi (Örneğin: Donanım veri sayfaları, algoritma açıklamaları, en iyi uygulamalar, vb.).
Bu, kapsamlı bir liste değildir, ancak size yazılım geliştirmede uzun vadeli başarı için ihtiyacınız olan nitelikler hakkında genel bir fikir verir.

Açıkçası, herkes bu özelliklerin tümüne sahip değildir. Bazıları öğrenilebilir/edinilebilir olsa da, bazıları bireyin kişiliği ve yaşam deneyimi için daha temeldir.

Tıpkı herkesin profesyonel bir beyin cerrahı, astronot, asker, havacılık mühendisi, hemşire, öğretmen, itfaiyeci, avukat, konser piyanisti, rock yıldızı, oyuncu, görüntü yönetmeni, marangoz, tesisatçı, mimar, heykeltıraş, roket bilimcisi, pilot vb. olamayacağı gibi herkes profesyonel bir yazılım geliştiricisi olamaz.

Bununla birlikte, hayatın her kesiminden insanlara yeni beceriler öğrenme, kendilerini geliştirme, kariyer değiştirme, kendilerini daha istihdam edilebilir hale getirme ve hayallerinin peşinden gitme fırsatına sahip olduklarına şiddetle inanıyorum. Bir yazılım geliştiricisi olmanın yanı sıra, pek çok hevesli yazılım geliştiricisine, pek çok çağ, ırk, ekonomik geçmiş, din, önceki kariyer vb. alanlarda yazılım mühendisliği ve bilgisayar bilimi dersleri verdim. Bazıları bu alanda başarılı oldu. Diğerleri, yazılım geliştirmenin kendileri için olmadığını keşfetme fırsatını kullandı. Yine de herkesin öğrenme fırsatı olması gerekir. ~Ken Gregg, 1977'den beri yazılım geliştirici.
Hocam ben 8 9 senedir her gün saatlerce televizyon, bilgisayar vs. ile vakit öldürüyorum her ne kadar istemesem de hala öldürüyorum. Bu geçirdiğim vakitlerde saatlerce oyun oynardım zihnimi hep yorardım. Bu olanlar benim gerek mantıksal düşünme becerilerimi gerek mükemmel problem çözme becerisini genel olarak yapabileceklerimi, zihnimi, beynimi etkilemiş midir? Ailem ve yakınlar sürekli bu konuda yorum yaparlardı bu yüzden sormak istedim.
 
hemen hemen herkes, hemen hemen her yaşta veya IQ düzeyinde, kod yazma kavramlarını öğrenebilirken, herhangi bir uzun vadeli başarı umuduyla istihdam edilebilir, profesyonel bir yazılım geliştiricisi olmak için, bir kişinin aşağıdakilere ihtiyacı vardır:
  • mantıksal düşünme becerileri.
  • mükemmel problem çözme becerileri.
  • sorunları çözmek için metodik bir yaklaşım.
  • yazılım geliştirme tutkusu.
  • tüm kariyerleri boyunca yeni şeyler (örneğin, diller, paradigmalar, tasarım kalıpları, kütüphaneler, çerçeveler, veri yapıları, algoritmalar vb.) öğrenmeye devam etme istekliliği ve yeteneği. Bu işte öğrenme asla durmaz. Öğrenmeyi bırakırsanız, geride kalırsınız ve fırsatlarınızı sınırlarsınız.
  • mükemmel yazım ve sözlü iletişim yetenekleri. Dokümantasyon veya kod yorumları yazmaktan kod incelemelerinde geri bildirim sağlamaya, sunum yapmaya ve tasarım kararlarınızı savunmaya kadar, iletişim bu işin anahtarıdır.
  • sabır. Buna çok ihtiyacınız var. Sabrınızı deneyecek kişilerin ve durumların listesi burada listelemeye bile başlamak için çok uzun.
  • sebat. Özellikle saatlerce veya günlerce zor bir hatayı kovaladıktan sonra buna çok ihtiyacınız var.
  • en küçük ayrıntıya bile dikkat edin. Bir ikili rakam (Bit), bir şeyin nasıl çalıştığı veya çalışmadığı üzerinde büyük bir etkiye sahip olabilir.
  • kaliteye dikkat etme.
  • Müşteri/kullanıcı ihtiyaçlarını, terminolojiyi, kavramları vb. daha iyi anlamak için, kod yazdığınız alana dalma ve hakkında bilgi edinme istekliliği ve becerisi. Örneğin, finansal sistemleri programlıyorsanız, finansal kavramlar hakkında bilgi edinin. İstatistiksel yazılım geliştiriyorsanız, ayrıntılı bilgi edinmeniz ve istatistikler hakkında bilgi edinmeniz gerekir. Simülasyon geliştiriyorsanız, kolları sıvamanız ve astrofizik, sicim teorisi, ekolojik sistemler vb. hakkında bilgi edinmeniz gerekebilir. Ağ yazılımı yazıyorsanız, ağ oluşturma hakkında bilgi edinmeniz gerekir. Endüstriyel kimyasal süreçleri yürütmek için yazılım yazıyorsanız, üzerinde çalıştığınız kimyasallar ve süreçler hakkında bilgi edinmeniz gerekir. Aygıt sürücüleri, donanım aygıtları hakkında bilgi sahibi olmayı gerektirir. İşlem kontrol yazılımı, kimyasal reaksiyonların öğrenilmesini gerektirebilir. Liste uzayıp gider.

    (Yazılım geliştirmeyle ilgili sevdiğim pek çok şeyden biri, tipik bilgisayar bilimi ve yazılım mühendisliği alanlarına ek olarak, on yıllar boyunca öğrenme şansı bulduğum diğer tüm alanlar.)
  • kodunuzu okuması/sürdürmesi gereken bir sonraki geliştiriciye şefkat ve empati.
  • geliştirmekte olduğunuz yazılımın kullanıcıları için şefkat ve empati.
  • teknik bilgileri hızlı bir şekilde okuma ve yorumlama ve bunları eldeki göreve uygulama becerisi (örneğin: Donanım veri sayfaları, algoritma açıklamaları, en iyi uygulamalar, vb.).
bu, kapsamlı bir liste değildir, ancak size yazılım geliştirmede uzun vadeli başarı için ihtiyacınız olan nitelikler hakkında genel bir fikir verir.

Açıkçası, herkes bu özelliklerin tümüne sahip değildir. Bazıları öğrenilebilir/edinilebilir olsa da, bazıları bireyin kişiliği ve yaşam deneyimi için daha temeldir.

Tıpkı herkesin profesyonel bir beyin cerrahı, astronot, asker, havacılık mühendisi, hemşire, öğretmen, itfaiyeci, avukat, konser piyanisti, rock yıldızı, oyuncu, görüntü yönetmeni, marangoz, tesisatçı, mimar, heykeltıraş, roket bilimcisi, pilot vb. olamayacağı gibi herkes profesyonel bir yazılım geliştiricisi olamaz.

Bununla birlikte, hayatın her kesiminden insanlara yeni beceriler öğrenme, kendilerini geliştirme, kariyer değiştirme, kendilerini daha istihdam edilebilir hale getirme ve hayallerinin peşinden gitme fırsatına sahip olduklarına şiddetle inanıyorum. Bir yazılım geliştiricisi olmanın yanı sıra, pek çok hevesli yazılım geliştiricisine, pek çok çağ, ırk, ekonomik geçmiş, din, önceki kariyer vb. alanlarda yazılım mühendisliği ve bilgisayar bilimi dersleri verdim. Bazıları bu alanda başarılı oldu. Diğerleri, yazılım geliştirmenin kendileri için olmadığını keşfetme fırsatını kullandı. Yine de herkesin öğrenme fırsatı olması gerekir. ~Ken Gregg, 1977'den beri yazılım geliştirici.

Her maddeye uygunum. Yaş hariç.
 
Teknoloji tasarım dersinde yatmak dışında başka hiçbir şey yapmadığımız için bu ülkede kodlama adına adam gibi bir şey çıkmaz.
Teknoloji tasarım dersini kodlama ile bağdaştıranlar oldukları sürece bu ülkede kodlama adına adam gibi bir şey çıkmaz.
 
@Recep Baltaş Türkiye özelinde konuşursak, İngilizce'yi çok iyi seviyede bilmek bir avantaj sağlar mı?
Datasheet okuyorsun. Referance Manual okuyorsun. Yetmiyor, yabancı forumlarda sorununa çözüm bulmak için araştırma yapıyor, oradakilerle iletişime geçiyorsun. Çok iyi değil ama iyi derecede bilmek şart.
 
"Kolay iş api yağ tak tak tak -klavyeye vurdu- işte yağ" kafasında olanlar.
1607070339013.png
 

Yeni konular

Geri
Yukarı