Programlamaya Yeni Başlayanlar İçin Tavsiyeler

Hakan Dmr

Hectopat
Katılım
13 Ağustos 2016
Mesajlar
24
Yer
Earth
Daha fazla  
Cinsiyet
Erkek
Meslek
Sr. Software Architect
Merhaba,

10 yıldan fazla süredir bu iş ile uğraşan biri olarak yıllardır internet ortamında dolaşan, defalarca cevaplanmasına rağmen yine de kimseyi tatmin etmeyen soruya 1001.'ci kez tekrar kısaca cevap vereyim.

  • Bilgisayar, tekrarlı işleri yazılımlar aracılığı ile mantık kapıları ve karar kontrol mekanizmalarıyla yönlendirerek insan hatasından (human error) arandıran bir makinadır.
  • Program, bu bilgisayar üzerindeki girdi/çıktı (input/output) kontrollerinden veri alarak ve/veya almayarak kendi üzerindeki donanımların (hardware) yardımıyla da çıktı (result) üreten bir iletişim sistemidir.
  • Bilgisayar denen yüksek hesaplama kapasitesi olan bu makinaya bir program aracılığı ile yapması gereken işi anlattığımız yapıya algoritma diyoruz. Algoritmalar, gerçek hayat problemlerine dijital ortamda bulunmuş verimli (veya verimsiz) çözümlerin bir programlama dili ile veya diagramlar ile ifade edilme şeklidir.

Şimdi bu tanımlardan yola çıkarak şu sonuçlara ulaşabiliriz;

  1. Uluslararası standartlara uyan her compiler (programlama dili aslında) ile benzer programlar üretebiliriz. Bazıları bize daha kolay imkanlar sunarken, diğerleri yapmak istediğimiz iş için daha kompleks yapılar kurmamızı gerektirebilir.
  2. Bir dilin değil, her dilin programcısı olmak istiyorsanız algoritmanız ve temelinizin sağlam olması gerekmekte.
  3. Bilgisayardaki bütün alanlarda (imkansıza yakın) veya 3-5 tanesinde uzman olmanız çok zordur. Her alanı yaklaşık 5 yıl zamanınızı alır. Yani 5 alanda (Web, Desktop, Embedded, Real-Time, Network) uzmanlaşmanız 25 yılınızı alır. Ona göre hesabınızı yapın. (Ekrana HELLo World yazdırmanız uzman olduğunuz anlamına gelmiyor!)
Yukarıdakilerden bağımsız önerilerim;

  • Bütün sektör web tabanlı SaaS çözümlerine kayıyor ve kaymaya da devam edecek. Masaüstünde kalacaksanız Big Data'ya yönelmenizi öneririm. Parallel processing'de bir alternatif tabii.
  • Database kısmınız mutlaka çok güçlü olmalı. (Geliştirdiğimiz kaç tane uygulamanın veri tabanı yok?)
  • Sektörde 5 yılınızı doldurmuş ve hala "Design Patterns nedir?" diye Google'da aratıyorsanız, mesleğinizi bir daha gözden geçirin ya da "AzicikAsimKaygisizBasim.exe is working..."
  • Security alanına yönelin ama hacking'den uzak durun. Hacker dediğiniz insanlar saçma sapan lamer'lerin kurduğu forumlarda takılan insanlar değil ciddi software, hardware, network bilgisi olan mühendisler. Akıllı olmak ile zeki olmak arasındaki fark gibi. Hacker'lar akıllıdır ama bilgilerini yasa dışı yollar ile para kazanmak için kullandıkları için zeki değillerdir. Çünkü, yakalanmaları durumunda uzun yıllar parmaklıklar arkasında kalacaklar.

Hızlı Soru&Cevap bölümü;
  • Hangi dil ile başlamalıyım?
> Algoritma ile başlamalısın ama Web için PHP olabilir. Desktop için C# güzel bir başlangıç noktası olacaktır. (Hepsinin nedeni var ama şimdi burada yazması uzun sürer.)

  • Ne zaman çok para kazanacağım?
> Muhtemelen hiç bir zaman. Yazılımı bir iş olarak değil de hobi olarak yapmayı öğrenmelisiniz. Para kazanma hırsı ile değil, yeni bir şeyler öğrenme ve ortaya çıkartma azmi ile ilerlemenizi öneririm.

  • Aklıma gelen her soruyu sorabilir miyim?
> Mutlaka ama cevap almanız biraz zor. Computer science diğer bilimler gibi bol araştırmaya ve denemeye dayalıdır. Araştırın, test edin, sonuçları analiz edin, yeni bilgiler ile tekrar deneyin. (Mümkünse, sonuçları dünyadaki diğer insanlarla da paylaşın ki Amerika 1 milyonuncu kez tekrardan keşfedilmesin.)

  • Yazılımda en iyi öğrenme yöntemi nedir?
> Kişiden kişiye değişmekle beraber, gözlemlenmiş en verimli yöntem; denemektir.

Herkese başarılar diliyorum.
Saygılarımla.
 
Hocam çok güzel özetlemişsiniz durumu.. Ancak şöyle bir sorum var.. "Bilgisayardaki bütün alanlarda (imkansıza yakın) veya 3-5 tanesinde uzman olmanız çok zordur." demişsiniz.. Hangi alana yöneleceğimize karar veremiyorsak ne yapabiliriz? Bir yandan security alanı da çok ilgimi çekiyor, bir yandan sistem programcılığı da bir yandan Big Data tarzı şeyler de.. Üçünde de bir şeyler öğrenesim geliyor ama karar veremiyorum...
 
Hocam ben normalde web tasarımcıyım ama acayip bir şekilde linux'a daldım ve terminali bırakamıyorum. Gelecek meslek olarak server güvenliği alanında uzmanlaşmak istiyorum sizce web mi yoksa linux server güvenliği ve python mu?
 
Hocam çok güzel özetlemişsiniz durumu.. Ancak şöyle bir sorum var.. "Bilgisayardaki bütün alanlarda (imkansıza yakın) veya 3-5 tanesinde uzman olmanız çok zordur." demişsiniz.. Hangi alana yöneleceğimize karar veremiyorsak ne yapabiliriz? Bir yandan security alanı da çok ilgimi çekiyor, bir yandan sistem programcılığı da bir yandan Big Data tarzı şeyler de.. Üçünde de bir şeyler öğrenesim geliyor ama karar veremiyorum...

Bu alanların hepsini yarım bilmek bence işe yaramaz. Uzmanlaşmaya başladıktan sonra diğer alana yönelebilirsin. Hobi amaçlı öğrenebilirsin. Bence bir alanın uzmanı olmak daha iyi. Bunun için senin kararın çok önemli. Bütün alanları araştır. Sana en yakın olanı seç.
 
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı