Ben Programcı Olabilir Miyim?

Bu sorunun cevabı sizin beklentilerinizle doğrudan alakalıdır.

Programlama yaparak para kazanmak mı istiyorsunuz? Yoksa zaten bir işiniz var ve biraz eğlenmek mi istiyorsunuz? İki durum için de bir cevap var elbette, ikisi de birbirinden zor olan…

Programlama gerçekten kolay bir iş değildir. En zor iş bile çok eğlencelidir aslında ama aynı zamanda en kolay iş bile çok zordur.

Bir amatör olarak programcılık

Amatör bir programcı olmak istiyorsanız, amacınız kendinizi tatmin etmek, vakit geçirmek, belki işinize yarayabilecek ufak tefek uygulamalar ortaya çıkarmak ise cevap “neden olmasın” olabilir. Sonuçta biz çok üstün yaratıklar değiliz. Yapacağınız uygulamayı da zaten çok yüksek ihtimalle sizden başkası kullanmayacaktır, bu durumda ne zaman ne olabileceğini bilirseniz uygulamanızın ne zaman çökebileceğini biliyorsanız, çok da büyük bir sorun değildir bu. Yine birkaç şeye ihtiyacınız olacak ama amatörlüğün ruhunda bunlar zaten kendiliğinden gelecektir.

  • Meraklı olmalısınız. Amatör olarak bu işle ilgilenmek istiyorsanız zaten meraklısınızdır.
  • Okumalısınız. “Resimli / videolu anlatım” ibareli dökümanlardan uzak durup gerçekten normal metinleri sabırla okuyabilmelisiniz.
  • Bıkmamalısınız. İnsansınız, elbette bir şeyden sıkılacaksınız. Sıkılırsanız bırakın, başka şeylerle ilgilenin. Meraklıysanız programlama isteği dönüp dolaşıp yine sizi bulacaktır.

Biraz zaman geçtikten sonra yapabildikleriniz sizi bile şaşırtabilir.

 

Bir profesyonel olarak programcılık

Eğer bu işi profesyonel olarak yapmak istiyorsanız cevap “zor” olacaktır. Öncelikle bunu kabul etmelisiniz. Sizin programcı olmanız zordur. Neden zor olsun? Ben her şeyi başarırım gibi şeyleri unutun, kimse her şeyi başaramaz. Her alanda çok yetenekli olursunuz, ama programcı olamazsınız. Bunun çok örnekleri vardır. Bilgisayarı çok iyi kullanıyor olabilirsiniz, bilgisayardaki her türlü sorunu çözüyor olabilirsiniz, proje yöneticisi olup altınızda çalışan *gerçek* programcılara emirler yağdırabilirsiniz, çok yetenekli bir tasarımcı olabilirsiniz, ama programcı olamazsınız. Daha doğrusu olamayabilirsiniz.

Ne Gereklidir?

Öncelikle neden programcı olamayabileceğiniz sorusunun cevabını bulmalısınız, ki ne yapmamanız gerektiğini bilesiniz. Programcı olmak için;

  • zeki olmalısınız. Hiçbir yetenekli programcıdan mütevazılık için olsa bile “estağfurullah, benim de herkes gibi normal bir beynim var işte” gibi bir şey duyamazsınız. Duymanız da gerekmez zaten, onlar zekidirler.
  • sabırlı olmalısınız. Gerçekten sabırlı olmalısınız, belki en önemli şey budur. Çok zeki olmasanız bile sabır ile okuyarak, deneyerek, çalışarak bir seviyeye gelebilirsiniz. Ama sabırsızsanız zeka küpü de olsanız programcı olamazsınız, çünkü ne olursanız olun hiçbir şey 3 günde öğrenilmez.
  • zevk almalısınız. Yaptığı işten zevk almayan programcı olmaz. Ortaya bir şey koyabilmenin verdiği hazzı hissetmelisiniz, bunu yaptığınız takdirde çok fazla şeye ihtiyacınız kalmaz. Zaten alacağınız zevk ile sabır ve çalışma aşkı kendiliğinden gelecektir.
  • çalışmalısınız. Çok çalışmalısınız. Programlama dünyası çok değişkendir. Bir şeyi öğrenip onda takılı kalmanın size kazandıracağı tek şey “dinazor” lakabı olabilir. Yeni şeylere açık olmalısınız. Öğrenmeye karşı sürekli bir açlık hissetmelisiniz.
  • okumalısınız. İster amatör ister profesyonel olun, okuyun, çok okuyun. Video izleyerek programcı olunmaz, bu, ancak bazı şeyleri ezberlemenizi sağlar. Evet, programcılık bilgisayara belli durumlarda belli şeyleri yapmasını söylemek demektir, ama bunların hiç biri ezberleyerek yapılabilecek şeyler değildir.
  • uygulamalısınız. Mümkün olan her şeyi uygulayın. Yeni bir şey öğrendiğinizde, “bu böyle oluyormuş” demekle “bu ”’bu gerçekten böyle oluyormuş”’ demek arasında çok fark vardır.

Bu maddeleri biraz açalım.

Neden zeki olmalısınız?

Çünkü hangi durumda ne yapmanız gerektiğini hızlıca kavrayıp, bunu uygulanabilir hale getirip, uygulamalısınız. Bu temel noktalardan biridir. Yapmak istediğinizi ne kadar hızlı yapabilirseniz o kadar yeteneklisinizdir. Çünkü programlamada ortaya koyacağınız ürünün kalitesini etkileyen çok değişken vardır. Bunları birleştirip en hızlı şekilde ortaya koymak için de elinizdeki tek şey beyninizdir. Bazı programcıların yazdığı kodu okuyamazsınız, okusanız da anlamazsınız. Çok karmaşıktır, düzensizdir, standart dışıdır, yazdığınız kodu bir çok şey etkiler.

Neden sabırlı olmalısınız?

Çünkü programlamayı kısa zamanda öğrenemeyeceksiniz. Bunu unutun, mümkün değildir. Ben 6 ay önce pazarlama işi yapıyordum, şimdi program yazıyorum diyen birini göremezsiniz. Çünkü zahmetli bir iştir, çok emek harcamanız gereken bir iştir. Temel noktaları kavradığınızda 1 hafta harcayarak yeni bir programlama dili öğrenebilirsiniz. Ama bu alışkanlığı kazanabilmek için altyapınızı iyi oluşturmanız gerekecektir. Dikkatinizi dağıtan çok fazla etken olacaktır. Programlama çok geniş bir dünyadır, bir saat önce başka bir şey okurken, kendinizi bağlantıdan bağlantıya geçerek çok farklı bir yazıyı okurken bulabilirsiniz. Bazen bu durum günler alabilir. Hele biraz fazla meraklıysanız, “Android ne acaba” diye bir an düşünüp bir alışveriş sitesinden Android destekleyen bir telefon ararken kendinize şaşıracaksınız.

Neden zevk almalısınız?

Genel olarak programlama sektörlere ayrılır, ve bir sektörde rakiplerinizle aynı işi yaparsınız, hep aynı işi yaparsınız. Şirketler için internet sitesi hazırlayacaksanız, yapabileceğiniz çok fazla şey yoktur. Bir internet sitesinde olabilecek şeyler bellidir. Sürekli bunları yapacaksınız. Çok uzun soluklu projelerde çalışacaksanız, yaparken ilginç gelecek, daha sonra geliştirme veya hata ayıklama aşamalarında çalışacaksınız. Yine aynı işleri yapacaksınız. Bir yazılım ofisinde sektörel programlar hazırlıyorsanız, her uygulamada “Müşteri Listesi” yaparken sıkılacaksınız. Bu yüzden zevk almalısınız, zevk almak için işinizi kendinize göre daha eğlenceli, daha ilginç hale getirmelisiniz. Mesela her 3 işinizden birinde farklı yöntemler uygulayın, sürekli basma kalıp teknikleri kullanmaktan vazgeçin.

Çalışmadan olmaz mı?

Olmaz! Dünya değişiyor, programlama dünyası belki 5 katı hızla değişiyor. 50 yıl önce bilgisayar yokken, 30 yıl önce bilgisayar daha da küçülemez denirken, 10 yıl önce herkesin cebinde bilgisayar olmaya başlamışken, otomobiller 100 yıldır hala bir motor ile döndürülen 4 tekerlek üzerinde giden araçlar. Kullandığınız dil, araç, uygulama, işletim sistemi ne olursa olsun en kötü ihtimalle 2 yılda, ortalama her yıl yeni bir sürüm piyasaya sürülüyor, bu sürümlerde bize yeni özellikler sunuluyor. Bunlar da bizim işlerimizi, dolaylı olarak da bizim yaptığımız uygulamaları kolaylaştırıyor, zenginleştiriyor, daha güçlü, daha hızlı, daha kapsamlı hale getiriyor. Bu yenilikleri araştırmadan, bir defa öğrenip beynimize kazıdığımız şeyleri daha ne kadar süreyle kullanabiliriz ki? 1 yıl mı? 2 yıl mı? Daha fazla devam edemez, ve geride kalırız. Bu da programlama maceramızın sonu demek olabilir.

Neden okumalıyım?

Bunun birçok nedeni var. Bir neden, video izlediğiniz zaman kendinizi kaybedersiniz, konsantrasyonunuz dağılır. İlginiz yöntemden çok yapılan işe kayar ve esas amacınızdan uzaklaşırsınız. Başka bir neden okuduğunuz zaman kopyala yapıştır ile anlatılan şeyi anında deneyebilirsiniz. Başka bir neden bu tür videoların neredeyse tamamı işe yaramaz şeylerdir, yazıda hızlıca göz gezdirip işinize yarayan bölümü aradan çıkarabilirsiniz. 10 dakikalık bir videodan 10 saniye almak için 10 dakikanızı verirsiniz ama 10 dakikalık bir yazıdan 10 saniye almak için 30 saniyenizi verirsiniz.Başka bir neden bağlantı hızınız düşükse zaten verimsiz bir yöntem olan videoyu daha da verimsiz hale getirirsiniz, ortak kullanılan bir internet bağlantısıysa başkalarını rahatsız edersiniz. Başka bir neden arama motorları metin tabanlı çalıştığından internette aradığınız şeyi bir metin içinde bulmanız, bir video içinde bulmanızdan daha olasıdır. Bunlara daha çok eklenebilir. Son olarak okumak izlemekten daha iyidir.

Neden uygulamalıyım?

Programlamada, pratik yapmak çok ama çok önemlidir. Kullandığınız programlama dilini iyi bilmeniz, fonksiyon adlarını baştan aşağı ezberlemenizi gerektirmez. Zaten modern geliştirme ortamlarının tümü kod tamamlama özelliği barındırır. Bir string fonksiyonu kullanacaksanız str yazdığınızda kullanmanız gereken fonksiyon, tüm parametreleriyle birlikte önünüze gelecektir. Ezberlemenin gerekli bir şey olmadığını en başından kabullenin. Kafanızı fonksiyon adlarıyla doldurmayın, ki hangi fonksiyonu değil, hangi yöntemi takip etmeniz gerektiğini en kısa zamanda çözebilesiniz, akıcı olarak kod yazabilesiniz. Tek noktaya odaklanıp “evet bu bitti, diğer bölüme geçeyim artık” demek yerine kafanızda basit bir taslak oluşturup kodlamaya girişin. Unutmayın, şu anda yazdığınız kod büyük bir projenin parçası değil, yalnızca alışkanlık ve akıcılık kazanmanız için yazdığınız bir kod. Başlarda yazdığınız kodları saklayacaksınız, daha sonra bunlardan yeteri kadar yazdığınızda, elinizdeki kodların ne işe yaradığını anlayıp sileceksiniz.

Nasıl Başlayabilirim?

Temel şey internettir. İnternet üzerinde bulamayacağınız hiç bir şey yoktur. Aradığınızı bulabilmelisiniz, bulamıyorsanız programlamadan önce arama motorlarının nasıl çalıştığını öğrenmelisiniz. C# öğrenmek istiyorsanız internette “c#” aramayın, “c# tutorial” arayın. Türkçe değil İngilizce arayın, İngilizce bilmiyorsanız da öğrenin. İnternette elle tutulur Türkçe kaynak sayısı gerçekten çok az. Teknik yazılar okumakla İngilizce roman okumak aynı şey değil. Cümleleri yarım yamalak anlayın yeter. Zaten gerisini sizin çalışan beyniniz dolduracaktır. Yukarıda sayılan “Ne gereklidir” başlıklı bölümdekileri tam anlamıyla yerine getirdikten sonra öğrenememeniz için bir sebep yok, kendinize güvenin, okuyun, okuyun, biraz daha okuyun. Sonra uygulayın, olmadıysa tekrar uygulayın. Editörünüz ve derleyiciniz size hatalarınızı söyleyecektir. Bu hataları okuyun, bir hatayla karşılaştığınızda panik yapmayın. Hatayı internette arayın, çözümü bulacaksınız. Emin olun sizden önce binlerce insan bu hataları onlarca defa gördüler. Bunların binde biri internette hatadan bahsetseler bile çözümü bulacaksınız. Yazıyı baştan beri okuyorsanız farketmişsinizdir, artık “programcı olamazsınız”dan “artık programcısınız”a atladınız. Varsa yakınınızdaki tecrübeli programcılarla sürekli irtibat halinde olun. Onları dinleyin, tavsiyelerine kulak verin. On cümlelerinden birini cımbızla çekerseniz, her gün on şey öğrenebilirsiniz. Ama bu insanlara her şeyi sorarak kendinizden soğutmayın, arayıp da bulamadığınız şeyleri elbette soracaksınız ama unutmayın, onlar sizin bilgi bankanız değil. Bu insanların muhtemelen hepsi sizin geçtiğiniz yollardan geçerek bu noktaya geldiler. Sizin de zahmet çekmenizi isterler. Onlardan özel ders alabileceğinizi zannetmeyin. Yalnızca tecrübelilerle değil, sizin gibi yeni başlayan insanlarla da konuşun, onlardan bir şey öğrenemem demeyin, konuştukça farkında olmadan belki siz onlara bir şey öğretirsiniz, belki kendinize bir şey öğretirsiniz, belki onlardan bir şey öğrenirsiniz.

Başlangıç hedefi olarak kendinize işletim sistemi yapacağım gibi uçuk kaçık, çok zor işler belirlemeyin. Web tabanlı bir proje belirleyin, mesela bir blog, not defteri gibi basit, bir işe yaramayacak uygulamalarla, veya masaüstü programcılığına yönelmek istiyorsanız, hesap makinesi, adres defteri gibi hiç kullanmayacağınız, yalnızca öğrenmek ve alışkanlık kazanmak için, yapmış olmak için yapacağınız uygulamalarla başlayın. Hiç programlama dili bilmiyorsanız, gerçekten sıfırdan başlayacaksanız, Windows için C# veya Java kullanın, Linux kullanıyorsanız, yine Java kullanabilirsiniz. Web için ilk aşamada ASP.NET kullanmaya başlamayın, sizi hazıra alıştırır, HTML’in ne olduğunu bile öğrenemeden Türkiye’deki 10 milyon webmaster olduğunu iddia eden güruh arasında yerinizi alırsınız. C++ daha hızlıymış, C ile oyun yapılıyormuş gibi laflara inanmayın. Kolay olanıyla başlayın, daha sonra piştikçe kendinize meydan okursunuz. Şimdilik yalnızca öğrenebileceğiniz kadar öğrenin. Öncelikle mümkün olduğunca basit editörler kullanın, kodu daha rahat okumak için kod renklendirme, belki kod tamamlama gibi birkaç özelliği olan editörler seçin. Sakın ama sakın başlangıçta her şeyi hazır olarak elinize verebilecek şeylerle uğraşmayın. Java için Eclipse kullanın, HTML için notepad++, PHP için PHPStorm, Zend Studio gibi araçlar kullanın. Web ile ilgileniyorsanız, Dreamweaver’dan uzak durun. Dreamweaver gibi sürükle bırak uygulamalarla bir şey öğrenemezsiniz. Evet, C# için Visual Studio kullanmaya mecbursunuz, ama diğer dillerde böyle bir zorunluluğunuz yok. Önce temeli iyice öğrenin, daha sonra bu tip araçlar kullanacaksınız. Zaten gerçek bir iş yaparken bunları kullanmazsanız kendinize eziyet edersiniz.

Sanırım artık bir programcısınız, en azından adaysınız. Çok çalışın, kimseden bir takdir beklemeyin, ama çalışmalarınızı yayınlayın. Bir kişi bile çıkıp çalışmanızı beğenirse bunun sizde çok büyük etkisi olacaktır.

“Ben Programcı Olabilir Miyim?” için 7 yanıt

  1. Allah sizden razi olsun. Cox xosuma geldi, her seyi detallari ile soylemissiniz. Beynimde olan onemli suphelere bu meqalede cavab tapdim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.