Yazılıma Başlamak Mı İstiyorsunuz? Görmeniz Lazım!

Yazılıma Başlamak Mı İstiyorsunuz? Görmeniz Lazım!

20 Ocak 2018 5 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 454
Yaklaşık okuma süresi : 10 DK
Visual Studio Nedir?
Visual Studio Kısayollarını Biliyor Musunuz?
Yazılıma Başlamak Mı İstiyorsunuz? Görmeniz Lazım!
5 (100%) 4 Oy

Yazılıma Başlamak Mı İstiyorsunuz? Görmeniz Lazım! Yazım ile karşınızdayım.  Yazılıma sıfırdan başlamak istiyorsanız inanıyorum ki sizler için faydalı olacak ve size yeni bir bakış açısı kazandıracakdır. Bu yazıdaki her cümle kendi deneyim ve tecrübelerimden gelmektedir. Yani salt tecrübedir. Daha önce duyduğunuz şeylerde olabilir bu yazıda ilk defa duyacağınız şeylerde. O halde başlayalım. Umarım siz yazılıma merak duyan kardeşlerim için faydalı bir yazı sunabilmişimdir.

Programlama kategorisindeki diğer yazılarım için tıklayınız.

 

Yazılıma Başlamak Mı İstiyorsunuz? 

Araştır, araştır ve araştırmayı sev

yazılıma sıfırdan başlamak

Araştırma yapmadığın sürece kendini geliştirmen imkansız. Hemde her konuda… Yazdığın kod çalışıyor diye sorun yok şeklinde düşünmek çok yanlış bir düşünce. Bol bol araştırma yap, araştırmayı sev…. Kendini geliştir, kodlarını geliştir, yazım tekniğini geliştir. Yeniliklerden haberdar ol. Yeni şeyler denemekten korkma.

Değişmeyen tek şey değişimin kendisidir.

 

Yaz sil, yaz sil, yaz sil 

yazılıma başlamak

Genelde bir yazılımcı işe çok kod yazarak başlar. Onlara diyecek bir sözümüz yok tabi ki bizde en başta aynı kodu tekrar tekrar ve uzun uzun yazıyorduk.

Ancak örneğin ben hiçbir zaman formun içerisinde sql connection string yazmadım. Üniversitede proje ödevi olarak bir asp.net site yaparken izlediğim eğitim setinde eğitmen direk sql connection class ve diğer class hazırlama işlemlerini de göstermişti. Bu yüzden direk classlar ile çalışmaya başladım. Ve inanın proje bitiş süresini inanılmaz etkiliyor.

O ilk sql class yorum satırları ile birlikte 205 satırdı. Şuan da ise yorum satırları dahil 63 satır.

Peki bu nasıl oluyor?. İşte yaz sil, yaz sil, yaz sil burada başlıyor. Yazıyorsun, sonra bakıyorsun işe yaramayan yerler var siliyorsun. Yazıyorsun, sonra bakıyorsun buraları şöyle birleştirsem yine aynı şey olur deyip siliyorsun. Yeni bir şey öğreniyorsun onu eklemek için silip yazıyorsun. Kodları artık ihtiyaçlarını karşılamıyor araştırıp öğreniyorsun silip yazıyorsun. Hatta bazen tamamen silip, yeniden yazıyorsun. Ve kodların daha kısa ve anlaşılır oluyor.

Üç yıl dört yıl sonra ilk projelerine bakıp kendine küfür edebiliyorsun. “Ben burada ne yapmışım yaw” diyorsun kendi kendine. Ara sıra ilk yazdığım projelere geri dönüp bakıyorum “bu ne la” deyip siliyorum, “ne yazmışım la burada” deyip siliyorum. Ve inanın sile sile projedeki kodların yarısından fazlasını silmişim ve hala siliyorum.

Önce düşün sonra yaz

yazılıma başlamak istiyorum

Yazılımcı olmak istiyorsanız düşünce şeklinizi bir düzene sokmalısınız. Analitik düşünmek gibi şeylerden bahsetmeyeceğim. Öyle üstün matematik bilmenize de gerek yok. Size lazım olan formülleri ihtiyacınız olduğunda zaten mecburen öğreneceksiniz. Bu yüzden kasenizi şimdiden bunlarla doldurmanıza gerek yok. Elbette mevcutta biliyorsanız ala! Matematik bilmenin hiçbir zaman kötüsü olmaz. Ne kadar çok biliyorsanız bilmem kaç sıfır önce başlarsınız ama matematik bilmeyen programcı olamaz diyenleri zerre takmayın. Yazılım işi gönül işidir. Matematik profesörü olsanız da sevmediğiniz takdirde yapamazsınız.  (Yalan söylemiyorum ben daha geçen seneye kadar çarpım tablosunu bile ezbere bilmiyordum.) Bilmeniz gereken ilk şey işlem önceliği. Bunu öğrendiyseniz şimdilik yeter. Kaldı ki bu sadece matematik sorularında değil bu sektörün kendisinde vardır.

Kaliteli yazılımın en önemli kısmı aslında burasıdır. İşin başladığı yer burasıdır. Önce yazacağın programı iyice düşünürsün. Tasarlarsın. Algoritmasını çıkarırsın. Yazarsın. Çizersin. Projeyi kullanacak kişilerle görüşürsün. Bir kerede yazar bitirirsin. Sonra kafan rahat eder.

Sırası ile;

  1. Düşün.
  2. Soru sor.
  3. Tekrar düşün.
  4.  Kafanda soru işareti kalmayana kadar soru sor.
  5.  Kafanda projeyi (mümkünse son haline kadar) tasarla – Gerekirse kağıt kalem al yaz, çiz.
  6.  Kullanacağın formları kafanda hazırladığın tasarıya göre ayarla.
  7.  Kodlarını yazmaya başla. (Database tablolarını hazırlamakta bu aşamada).

Ben from tasarımlarını yaptıktan sonra tabloları açma taraftarıyım. Çünkü yaptığım tasarımı kafamda ilgili yerlere bağlıyorum. İlişkilendirmelerini ayarlıyorum. Sonra tablolarını açmaya başlıyorum. Elbette gözden kaçan şeyler oluyor ama en azından geri dönüş süreci minimum seviyede oluyor.

Şimdi böyle bir sıralama ile başlamazsan ve devam etmezsen o projenin büyük ihtimalle sonu gelmeyecektir. “Yaw hele bir başla sen, aklımıza geldikçe söyleriz eklersin” diyerek işe başlamanı isteyen bir müşteri üç beş kuruşa kendi kafasındaki mükemmel programı sana yazdırmaya çalışacaktır. Tecrübe ile sabittir. Üç yılda zar zor bitirebildiğim bir proje var. Tahmini altı yedi ay gibi bir sürede bitebilirdim.

 

Basit düşün

yazılıma 0 dan başlamak

İnsanlar basit şeyleri severler. Bir formdan gir ona tıkla, oradan çık şuraya gir şunu tıkla, şuradan da şuna tıklarsan istediğin olur dersen bir adama, adam mala bağlar “yaw bu seferlik sen yapta bende bakıp öğreneyim” der. Sonra bir bakmışsın herkes o raporu senden ister olmuş. Sana göre çok basittir. “Yahu bunda ne var ki?” dersin ama müşteri anlamayabilir. O yüzden yapabildiğin en basit halinde yapman gerekir.

Unutma, o projeyi sen yazdığın için ve neyin nerede olduğunu çok iyi bildiğin için sana çok basit gelmesi gayet normaldir.

“Dünya üzerindeki en düşük IQ ya sahip bir insanın bile anlayacağı şekilde yap.”

bu benim bu konudaki felsefemdir. Yardım dosyalarını hazırlarken, kullanım kılavuzu hazırlarken ve programı yazarken hep bu felsefe ile yazarım. En temel anlamı da “Basit Düşün” dür.

 

Az kod çok iş

Yazılımcıların bazıları yazdıkları kod satırı sayısı ile hava atarlar. “Çok iyi yaa bugün 10.000 satır kod yazdım. Var mı benden hızlısı?” diyen bir tanıdığım vardı. Benim gözümde onlar yazılımcı değildir. O hava atan insanlar bu işi hava atmak için yapıyorlardır. Fazla kod yazmak sadece hammalıktır. Bende kopyala yapıştır ile günde bir proje bitirebilirim. Benim mantığıma göre bir kodu / kod bloğunu iki kere yazmak da hammallıktır ve o işte bir sıkıntı vardır. Hatta bırakın kodu, benzer işleri yapacak bir formu bile iki kere kullanmam. Örneğin bir seçim listesi yapacaksam gelinen sayfaya göre sadece gösterilecek verileri değiştiririm.

Mesela sql bağlantısı yaparken her yere connection string yazmak, bağlantı açmak / kapatmak ve daha bir sürü kod yazmak yanlıştır.  Bunları bir class içerisine çekip genel bir hale getirdiğinizde bir kere yazar tüm projede kullanırsınız. Bir değişiklik yapmanız gerektiğinde class’ı değiştirirsiniz ve tüm proje güncel olur. Diğer türlü her formu tek tek gezmek zorundasınız.

Tabi ki bu biraz tecrübeye bağlıdır. Ancak 1. maddeden buraya geldiyseniz direk aşağıdaki 4. sorudan başlamanız hiçte zor olmaz.

  1. Kod çalışıyor mu? Evet. Tamam elleme (50 satır)
  2. Kod çalışıyor mu? Evet de bu kodlar ne la. Gereksiz satırları sil. (35 satır)
  3. Kod çalışıyor mu? Evet de bu kodu yazan çocuk kör oldu. Gereksiz satırları sil. (17 satır)
    bkz. Bu Halıyı Dokuyan Çocuk Kör Oldu
  4. Kod çalışıyor mu? Evet de aga her yerde bu kod var. Kodları bir class’ a çek. (25 kullanım 25 * 17 satır)
    Son hali class içi 25 satır ve 1 satırda çağırma ( 25 * 1 ) + 25 satır = proje genelinde toplam 50 satır. Proje genelinde  25 * 50(ilk hali) = 1250 satırdan 25 + 25 = 50 satıra düşürdük.

Hiç araştırma yapmayan kişi kendinden çok iyi yazılımcıların yazılarını hiç göremeyecek ve kendi yazdığı kodların on numara olduğunu düşünecek. Kodlar çalıştığı için kendini geliştirmeyecek ve böylece devam edecek. Düşünün bu kodda bir değişiklik yapmanız gerekirse? 50 yerde kullandınız tek tek oralara gidip tek tek düzelttiniz. Kaç saatinizi alacak?. Proje ilerledikçe değişiklik yapmaktan korkacaksınız ve giderek meslekten uzaklaşacaksınız.

C# Class Nedir? Nasıl Kullanılır? yazımda bu kısımı ayrıntılı bir şekilde anlattım. Görmek isterseniz tıklayabilirsiniz. Ancak önce bu yazımı okuyup bitirin daha sonra ilgili yazıya gidin. Daha faydalı olacaktır.

 

Kopyala yapıştır hiçbir şeyi çözmez

Yazılıma başlamak mı istiyorsunuz

En iyi yazılımcılar bile yeri geldiğinde kopyala yapıştır yapar. Ancak kopyalayıp yapıştırdıktan sonra geri dönüp o kodları paylaşan adama küfür veya hakaret etmez. Çünkü bilir ki o kodları kendi kodlarına uyarlaması gerekir. Hatta bazen kodların son hali kopyala/yapıştır yaptığı kodlardan alakasız bir hale gelir ama o yazılımcı o işi öğrenmiş olur. Çünkü kodlar üzerinde çalışacak mantığını anlayacak belki o mantığı kendi yöntemleri ile bambaşka bir şekilde sıfırdan yapacak. Dediğim gibi kopyala yapıştır hiçbir şeyi çözmez. O kodları önce sindirmelisiniz. Kendi kodlarınıza adapte etmelisiniz. Ve yine dediğimiz gibi belki de son hali alakasız olacak ama istediğiniz işi de başarmış olacaksınız.

Kopyala yapıştır mantığı ile ilgili ayrıntılı yazıma buradan ulaşabilirsiniz.

 

Yapmayı SEVECEĞİN alanı belirle 

kaliteli yazılım

Bir yazılımcı olmak istediğinizde artık hangi alanda yazılımcı olmak istediğinize karar vermek zorundasınız. Bir başlayalım da gerisi gelir dediğinizde o “gerisi” gelmeyecektir. Sayıp sövüp başka işlere yönelirsiniz. Genel anlamda sektöre bir bakarsak;

  1. Masaüstü
  2. Web
  3. Mobil
  4. Oyun

olarak dörde bölünmüş olduğunu görürüz ancak bu genel alanlarda kendi dallarına ayrılmaktadır. Şu sıralarda Masaüstü Programcılığı geri plana düştü. Çünkü insanlar artık mobil ve web alanına yönelmeye başladı. Ancak sakın üzülmeyin. Bunu artık herkes biliyor ki benzer şeylerden çok farklı şeyler üretilmeli ki tutulsun. Burada sizin hayal gücünüz devreye giriyor. Masaüstü uzun bir süre daha kaybolmayacak. Hala bir şeyler başarabilirsiniz.

Masaüstü Programcılığında uzmansanız zaten Web Programcılığı hakkında da bilginiz mutlaka vardır. Olmalıdır!! Yok ise yine üzülmeyin bir an önce Web Programcılığı alanına da giriş yapın. Hiç vakit kaybetmeyin!!. Yeni başlıyorsanız ise önce mobil alanına yönelin derim. İlerleyen zamanlarda oyun alanına da yöneleceksiniz zaten ve dolayısı ile Web alanında da bilgi sahibi olmaya başlayacaksınız. İhtiyaç dahilinde masaüstü alanına geçersiniz. Ama şu da bir gerçek ki masaüstü alanında uzmansanız artık mobile de başlamalısınız. Geç kaldım demeyin deneyin.

Üniversitede iken sınıfımda 40+ yaşında bir abimiz vardı ve okul birincisi olarak mezun oldu. Evli ve iki çocuk babası idi.

 

Aynısı yapmışlar yaaaa offf 

yazılıma sıfırdan başlamak

Hangi alanda ilerliyor olursanız olun farklı olduğunuz sürece başaracaksınız. 1. ve 4. maddelere tekrar göz atarsanız ne demek istediğimi anlayacağınızı düşünüyorum. Diyelim ki size göre süper bir fikriniz var. Etrafınıza sorduğunuzda da olumlu cevaplar alıyorsunuz ki offf!! O fikre büyük umutlar bağladınız. “Kesin tutar la bu” diye düşünüyorsunuz. Tam kolları sıvadınız bir baktınız ki “aynısı yapmışlar yaaaa offf” dediniz. Onu gördüğünüz anda başınızdan aşağı kaynar sular dökülür. Umutların kırılma sesleri beyninizde yankılanır. Bunlar her insanın başına gelecek (bence mutlak, yani %100) düşüncelerdir. Eee ne olacak şimdi? O işi yapmaktan vaz mı geçeceksin?.

TABİKİ DE HAYIR!!!

  • Şuan kaç farklı işletim sistemi var?.
  • Şuan kaç farklı akıllı telefon var?.
  • Şuan kaç farklı araba var?.

Herkes aynısının var olduğunu öğrendiğinde aynı hissi yaşamıştır ancak çok azı “Olm ben daha iyisini yaparım bunun!!” deyip yola devam etmiş ve başarmıştır. Yola devam et. Rakiplerini araştır ve her zaman daha iyisi için çabala. Hiçbir başarısızlık kayıp değildir aksine kazançtır.


Programlama kategorisindeki diğer yazılarım için tıklayınız.

Bu yazımda bu kadar dostlarım. Bu yazımı zamanda güncelleyeceğim. Bu sebeple bu yazıyı özellikle takip edebilirsiniz. Sağlıcakla ve takipte kalın. 😉

Visual Studio Nedir?
Visual Studio Kısayollarını Biliyor Musunuz?

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım.

Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir.

Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.