İlginizi Çekebilir
  1. Ana Sayfa
  2. Programlama
  3. Yazılıma Başlamak Mı İstiyorsunuz? Görmeniz Lazım!
Trendlerdeki Yazı

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

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

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ıracaktı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.

Bu yazım bir bakıma yazılımcı olmak için gerekenler diyebilirim ama yazımı sıkılmadan okursanız aslında sadece yazılımcı olmak için gerekenler hakkında olmadığını da göreceksiniz.

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

Unutma: Bu yazı yazılımcı olmanın değil yazılımcı olmadan önce bilmen gerekenler hakkındadır. Bunları bilirsen yazılımcı olmayacaksın. Bunları bilerek yazılıma başlarsan diğer yazılımcılardan çok daha ileride ve temeli sağlam başlayacaksın.!

 

Yazılıma Başlamak Mı İstiyorsunuz? O halde okumaya devam…

 

Madde 1: Araştır, Araştır Ve Araştırmayı Sev

araştır araştırmayı sev

Araştırma yapmadığın sürece kendini geliştirmen imkansız. Hem de 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, kendini geliştirmeyi sev. Kodlarını geliştir, kodlarını geliştirmeyi sev… Yazım tekniğini geliştir. Yeniliklerden haberdar ol, teknolojiyi takip et… Yeni şeyler denemekten korkma. DENE!!!

Yeni şeyler öğrenmeye çalış.

Bak mesela Yapay Zeka konuları revaçta şu sıralar (26.08.2019). Uzmanlık alanının hangi programlama dili olduğu önemli değil. Aç YouTube’yi yada Udemy’i  öğrenmeye başla hemen. Phyton öğren mesela, araştır nerelerde kullanılıyor. Bir dile takılıp kalma. Yeni şeyler öğrenmekten sakın korkma. Bir konuda uzman olmak yetmiyor artık. Şirketlerin seni tercih etmelerini sağlayacak şeyler de gerekli. Yada yeni ufuklara yelken açabilmek için…

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

**Yazılıma Başlamak Mı İstiyorsunuz? O zaman Araştır, Araştır ve Araştırmayı Sev….


Madde 2: Yaz Sil, Yaz Sil, Yaz Sil 

yaz sil yaz sil yaz sil

Hemen hemen tüm yazılımcılar işe çok kod yazarak başlar. Onlara diyecek bir sözümüz yok tabi. Bizde en başta aynı kodu tekrar tekrar ve uzun uzun yazıyorduk. Hangimiz, birçok kez arkada eski projelerimiz açıkken birinden diğerine kopyalamaya yapmadık.

Ancak, örneğin ben hiçbir zaman bir formun içerisinde SqlConnectionString yazmadım. Yani o bilinen sql server bağlantı kodlarını formlar içinde yazmadım. O connectionları, adaptorleri vs.. Üniversitede proje ödevi olarak bir asp.net site yaparken, izlediğim eğitim setinde eğitmen direk bir SqlConnectionClass 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. Bir kere yazıyorsun her yerde kullanıyorsun.

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.

Buradan ilk maddeye atıfta bulunmak istiyorum. İlk madde olmadan buralar ilerlemiyor. Aynı kalıyorsun.

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

Gerçi yakın zamanda, bahsettiğim o projeyi tamamen sildim. Çünkü düzenlenecek gibi değildi. O yüzden projeyi yavaş yavaş “New Project” diyerek yeniden yazmaya başladım.

Silmekten korkma. Sil gitsin. Bu zamana kadar yazdığım ve sildiğim projelerin hesabı yok. Ha bu projeler elbette büyük şeyler değildi. Bazıları saçma sapan şeylerdi. Fantezi şeylerdi. Denemek için yaptığım şeyler. Yapabilir miyim acaba diye düşündüğüm şeylerdi. Ve hepsini de yapmıştım çünkü başladım mı sonunu getirmem gerekiyor. Sonradan zaten gerekli olmadığını düşünüp silmiştim.

Ama bu siteyi açtığımda keşke silmeseydim dedim. En azından yazacak daha çok şeyim olurdu ve o projeleri de sitemde paylaşmış olurdum. 🙂

Ancak burada sizlere tavsiyemdir ki o eski projelerinizi silmeyin. Github’a yükleyin. Elinizin altında olmasa da orada dursun. Github’daki projeleriniz sizin bu işi ne zamandır yaptığınız nerelerden geçtiğiniz ve neler öğrendiğinizin kanıtı niteliğinde olacaktır.

**Yazılıma Başlamak Mı İstiyorsunuz?, Yaz Sil. Yaz Sil. Yaz Sil. Bu işler böyledir.


 

Madde 3: Önce Düşün, Sonra Yaz

önce düşün sonra yaz

Düşünce şeklinizi güzel bir düzene sokmanız gerekiyor. Tabi burada bahsettiğim düzen her yerde duyduğunuz analitik düşünmek gibi öyle karizmatik sözler değil. Öyle sağlam bir matematik bilgisine sahip olma gereği de görmüyoruz. Yapmamız gereken işlerde, lazım olan formülleri zaten o işi yaparken mecburen öğreneceksiniz. Bu sebeple kafanızı daha başlamadan bunlarla doldurmaya kesinlikle gerek yok.

Örnek olarak şu sıralar bir sektör için başladığım nacizane projemde onlarca formül kullanmak gerekiyordu. Bu zaman kadar o formüllerin adlarını bile duymamıştım. Ancak bu projeye başladığımda gerekli oldu ve öğrendim. Demek istediğim şeyde tam olarak bu.

Ancak zaten matematiğiniz iyi ise ne ala! Matematik bilmek her zaman kazandırır… Matematiği ne kadar iyi biliyorsanız şöyle 5, 10 sıfır önde başlarsınız ancakkkkk! Matematik bilmeyen programcı olamaz diyenler af edersiniz halt etmiştir. (Yapay zeka konularında bu durum farklıdır. Daha sonra bundan bahsedeceğim.) Yazılım işi gönül işidir arkadaşlar. Matematik profesörü dahi olsanız sevmediğiniz, aşık olmadığınız takdirde sadece eziyet olur.  (Haha! ben daha geçen seneye kadar kerat cetvelini dahi ezbere bilmiyordum. 2016. yıl olmuş 2019 biri sorduğunda hala takılıyorum. Ha bununla övünmüyorum elbette ama “matematik bilmeyenden de yazılımcı olur” sözümü kanıtlamak istiyorum.) Bilmeniz gereken tek şey temel matematik.  Yani toplama, çıkarma, bölme, çarpma, işlem önceliği vs. Bu şimdilik yeter.

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 ki can alıcı nokta burası… İşi size veren kişi ile 1 saat görüştüyseniz projeyi kullanacak kişilerle 100 saat görüşmelisiniz. Bir kerede yazar bitirirsin. Sonra kafan rahat eder.

Algoritma Nedir? Algoritma Nasıl Yazılır? ve Algoritma Nedir? Algoritma Tasarımı Nasıl Yapılır? yazılarıma göz atarak algoritma dediğimiz şeyin nasıl bir şey olduğunu görebilirsiniz.

Peki neden? İşi veren kişi yazılım hakkında neler biliyor olabilir? Ve işletmede çalışan kişi de o değildir. İşi elbette biliyordur ama kendisi sadece görmek istediği şeyleri isteyecektir. “Ben ne dersem onu yapacaklar!” şeklinde yüksekten konuşmalarla proje bitmez arkadaşlar. Elbette işi veren kişini isteklerini dikkate alacaksınız ancak olmayacak bir isteğe de “bu dediğiniz mümkün değil” cümlesini de kurabilmelisiniz.

Yazdığınız projede veri girişini yapacak kişiler işletmedeki kişiler olacaktır. Mesai saatleri boyunca sizin geliştirdiğiniz yazılımı kullanacaklar değil mi? O halde veri giriş ekranları neden patronun istediği gibi olmak zorunda? Bu mantıklı mı? Cevabımız HAYIR! Sipariş ekranını, siparişi girecek kişilerle, üretim ekranını üretimde çalışan kişilerle, kalite ekranını kalite biriminde çalışan kişilerle görüşerek onların iş yükünü azaltmaya dolayısı ile yazılımı kullanmaya istekli olacakları şekilde geliştirmelisiniz. Bunu size işi veren kişinin söylemesi mümkün değildir. Bunu sizin düşünmeniz gerekiyor. Sizin profesyonelliğiniz işte burada ortaya çıkıyor.

Hemen yukarıdaki son iki paragrafı okuduktan sonra sizin de hak vereceğiniz, düşündüğüm bir mottomu daha vermek istiyorum…

Yazılıma Başlamak Mı İstiyorsunuz? Bilmelisiniz ki iş, işte öğrenilir!

Buradan ikinci maddeye atıfta bulunmak istiyorum. İkinci madde sayesinde proje süresinin ne kadar kısa olacağını birazcık düşün isterim.

İşlem Sıralaması;

Sırası ile;

  1. Düşün / Planla
  2. İstekleri incele ve istekler hakkında kafana takılan her şeyi sor. Ama her şeyi… Bir aptal gibi görünmen hiç önemli değil.
  3. Tekrar düşün / Tekrar Planla.
  4.  Kafanda soru işareti kalmayana kadar aklındaki tüm soruları sor.
  5.  Kafanda projeyi tasarla – Gerekirse kağıt üzerinde yaz, çiz.
  6.  Kullanacağın formları kafanda hazırladığın, yazıp çizdiğin tasarıya göre ayarla.
  7. İstenilen yetkilendirme şeklini tasarla. (Bu yeni maddedir ve önemlidir.)
  8.  Kodlarını yazmaya başla. (Database tablolarını hazırlamakta bu aşamada).

Fromları tasarladıktan sonra veritabanını açma taraftarıyım. Yaptığım tasarımı kafamda ilişkilendiriyorum. Sonra veritabnını ayarlamaya başlıyorum. İllaki gözden kaçanlar oluyor ama geri dönüş süreci de minimum seviyede oluyor.

SQL Server Nedir? SQL Nedir? T-SQL Nedir? yazıma giderek SQL veri tabanı hakkında bilgi edinebilirsiniz. Yazımın geri kalanında da SQL hakkında notlar olacaktır.

Bu yada buna benzer bir sıralama ile başlamazsan ve devam etmezsen o projenin sonu gelmeyecektir. Gelse bile sizi projeden hatta belki de meslekten tiksindirecektir.

NOT: Yukarıda benim takip ettiğim sıralama vardır. Sizlerde bu sıralama farklı olabilir. Yaptığınız işin şekline göre bu sıralama ve maddeler tamamen değişebilir. Burada vermek istediğim şey proje deadline yani bitiş süresine en kısa sürede ulaşma eşittir paraya en kısa sürede ulaşma, daha çok iş bitirme ve bu işleri temiz ve alnınızın akı ile tamamlamaktır… Daha hızlı iş bitirmek paraya daha hızlı kavuşmak ve daha fazla proje almak ve yine daha fazla para kazanmak… 🙂

“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ı yaptı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 bitirebilirdim. Belki daha kısa da sürebilirdi ve üstelik mevcut halinden belki de 10 kat daha güzel olurdu. Tabi buradaki güzellikte sizin yazdığınız projeden tatmin olmanızdır. Yani sizin tatmin noktanızla bağlantılıdır.

**Yazılıma Başlamak Mı İstiyorsunuz? Önce Düşün, Sonra Yaz. Önce yazar sonra düşünürsen, sıkıntı.


Madde 4: Basit düşün

basit düşün

Şunu bilmelisin ki insanlar 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 yap da bende bakıp öğreneyim” der. Sonra bir bakmışsın herkes o raporu yada o işlemi senden ister, bekler olmuş. Bir yazılım şirketinde çalışıyorsan da sürekli seni arar sorarlar ve hayatı sana zindan ederler.

Bir kere cevap vermediğinde de hemen seni şikayet ederler. Yaptığın projeyi kullanmamaya ve kendi hatalarını sana mal etmeye çalışırlar. Sana göre çok basittir. “Yahu bunda ne var ki?” dersin ama müşteri veya kullanıcı 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 biliyorsun bu yüzden 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 mottolarımdan. 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.

Buradan üçüncü maddeye bir atıfta bulunmak istiyorum. Ne demiştik Önce Düşün Sonra Yaz. Basit Düşün Hızlı Yaz. 😉

**Yazılıma Başlamak Mı İstiyorsunuz?, Basit düşün, hızlı bitsin. Ne kadar kompleks düşünürsen ise o kadar zor biter. Ve aynı zamanda o kadar stres altında kalırsın.


Madde 5: Az kod çok iş

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. Yani işin karizma tarafına ağırlık veriyorlar. Gerçi artık öyleleri fazla kalmadı. 🙂  Fazla kod yazmak sadece kod hammallığıdı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 kod hammalığıdı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 tanımlamam. Örneğin bir seçim listesi yapacaksam gelinen sayfaya göre sadece gösterilecek verileri değiştiririm.

Bu Senaryo Nasıl?

Diyelim ki basit bir ön muhasebe programı yapıyoruz. Böyle bir programda, hemen hemen her yerinde cari seçme, stok seçme, personel seçme vs. gibi seçimler yapılması gerekecektir. Şimdi düşünün, fatura düzenlerken, irsaliye düzenlerken, tahsilat yaparken cari ve personel seçmek gerekir değil mi? 3 yerde cari seçme işlemi yapmak için aynı formdan 3 tane mi açarsınız? Yoksa tek form açıp hepsinde kullanır mısınız? Sizce hangisi daha mantıklı?…

Bunun bir adım ötesi de, aynı form içinde hem cari, hem de stok seçtirebilmektir. Bu seçim formlarında önemli olan şeyler, cari ya da stoğun kodu ve adıdır değil mi? Bu listede sadece stoğun ve carinin kodunu ve adını göstererek tek bir formda proje genelinde hem cari seçim hem stok seçim yaptıramaz mıyım?

Yani diyorum ki, bir tane seçim formumuz olsun. Cari seçme işleminden gelinirse cariler, personel seçme işleminden gelinirse personeller, stok seçme işleminden gelinirse de stoklar listelensin. ama arka planda sadece tek bir form olsun. Nasıl? Üç form açmaktansa tek formda işi bitirmek sizce de mantıklı değil mi? Sizce de bu yöntem bize zaman kazandırmaz mı?

Bunun bir adım daha ilerisinde hem personel seçim, hem departman seçim hem de aklınıza gelebilecek Kodu ve Adı formatında olan tüm seçim işlemlerini tek bir form üzerinden yönetebilmek vardır. Sizce bu şekilde mi daha güzel olur. Yoksa her cari yada stok seçimi yapacağınız yerde ayrı ayrı formlar açmak mı daha güzel olur? Bu sorunun cevabını düşünün.

Cari (Alıcılar, Satıcılar), Stok, Personel (Satış yapan, evrağı düzenleyen), Departman, Kullanıcı, Banka, Depo vs. gibi bu liste uzar gider. En az bir kere de olsa yapmamız gereken seçim listelerine örnektir.

Mesela sql bağlantısı yaparken her yere SqlConnectionString 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. C# Class Nedir? Nasıl Kullanılır? ve  C# Class Hazırlama Yöntemi – C# Kodları Class’a Çekme yazımda bu dediğim olaydan etraflıca bahsetmiştim. Bir değişiklik yapmanız gerektiğinde class’ı değiştirirsiniz ve tüm projede aktif olur. Diğer türlü o kodları kullandığınız her formu tek tek gezmek zorundasınız.

İşin İlerisi De Böyledir. Bak aşağıda tecrübe ile sabit gelişim süreci yer alıyor.

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 böyle. Gereksiz satırları sil. (35 satır)
  3. Kod çalışıyor mu? Evet de bu kodu yazan çocuk kör oldu. Gereksiz tüm satırları sil. (17 satır)
    bkz. Bu Halıyı Dokuyan Çocuk Kör Oldu
  4. Kod çalışıyor mu? Evet de ağa 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. Yani burada tam olarak 1200 satır kod yazmaktan / kopyalamaktan kurtulduk.
  5. C# CheckState İçin Özel Metod Oluşturmak yazımı inceleyerek yukarıda bahsettiğim maddeleri daha net anlayabilirsiniz.

Buradan dördüncü maddeye atıfta bulunmak istiyorum. Ne demiştik Basit Düşün. Basit Düşün, Az Kod Yaz. Az Kod Yaz, Çok İş Yaptır. 😉

**

Buradan ilk maddeye de atıfta bulunmak istiyorum. Aşağıda atıf amacını açıklıyorum. 

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ısmı 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.

**Yazılıma Başlamak Mı İstiyorsunuz?, Az Kod Çok İş,  az bir koda ile maksimum iş yaptır.


Madde 6: Kopyala Yapıştır Hiçbir Şey Çözmez

Kopyala Yapıştır Hiçbir Şey Çözmez

Profesyonel yazılımcılar bile kopyala yapıştır yapar / yapmaları gerekir.

Ancak kopyalayıp yapıştır yaptıktan sonra kodlar çalışmadı diye o kodları paylaşan adama, bazı yazılımcılar gibi küfür yada hakaret etmez. Çünkü profesyonel yazılımcılar bilir ki o kodları kendi projesine uygun hale getirmesi / uyarlaması gerekir. Hatta o kopyaladığı o kodların son hali kopyala/yapıştır yaptığı kodlardan alakasız bir hale gelebilir. Ama o yazılımcı o kodları sindirmiş / öğrenmiş olur.

Kodlar üzerinde çalışacak, uğraşacak ve mantığını anlayacak belki o mantığı kendi yöntemleri ile kendi projesinde kullandığı yazım yöntemime göre yeniden yazacak. Başlıkta dediği gibi kopyala/yapıştır bir şeyi çözmez. O kodları kendi kodlarınıza adapte etmelisiniz.

Buradan ilk maddeye atıfta bulunmak istiyorum. Araştırmayı sevmeyen adam için zaten bu madde hükmen geçersiz olur. Kodları çalışıyor diye araştırmayacağı için yani ilk bulduğu kodları kullanacağı için gereksiz hale geliyor.

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

**Yazılıma Başlamak Mı İstiyorsunuz?, O zaman hep duyduğun Kopyala Yapıştır, Hiçbir Şeyi Çözmez…


Madde 7: Yapmayı SEVECEĞİN alanı belirle Yapmayı SEVECEĞİN alanı belirle

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
  5. Yapay Zeka

olarak beş ana dala 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.

Örnek olarak C# programlama dili, Windows var olduğu sürece tamamen boşa çıkmayacaktır.

Bu linkten Yapay Zeka Nedir? Yapay Zekanın Alanları Nelerdir? tanıtım yazısına ulaşabilirsiniz.

Neler Bilmeliyiz?

Masaüstü Programcılığında uzmansanız, Web Programcılığı hakkında da bilginiz illaki olacaktır. Olmalıdır!! Yok ise yine üzülmeyin en kısa zamanda Web Programcılığı alanına giriş yapın. Hiç vakit kaybetmeyin!!.

Yeni başlıyorsanız ve bana sorarsanız size mobil alanına ya da yapay zeka alanlarına yönelin derim. Mobil konusunda ilerlediğiniz zamanlarda oyun alanına da yönelmeniz gerekecek / isteyeceksiniz zaten. Dolayısı ile Web alanında da illaki bilgi sahibi olmaya başlayacaksınız. İhtiyaç dahilinde masaüstü programlama alanına da geçersiniz. Ama şu da bir gerçek ki masaüstü alanında uzmansanız artık farklı bir platforma da başlamalısınız. Geç kaldım demeyin, deneyin.

Ek olarak artık Yapay Zeka konusu da bayağı revaçta… Chatbotlar, resim çizen yapay zekalar, resimleri yorumlayan yapay zekalar gibi bir çok şey türetilmeye başlandı. Yapay zeka’nın alt başlıkları olarak bir sürü meslek dalı da var. Makine öğrenmesi, Derin öğrenme, Veri analizi gibi alt alanlar giderek popülerleşiyor. Yapay zeka konusu mobil, web, masaüstü gibi diğer alanlarında içlerine girebilen bir yapıdır.

Yapay zeka alanına girecekseniz belirli bir matematik bilgisi de gerekmektedir. Tam olarak girmek istediğiniz alanı belirleyip öncelikle minimum gereklilik olan matematik bilgisini öğrenmelisiniz.

Üniversitede iken sınıfımda 41 yaşında biri vardı ve okul birincisi olarak mezun oldu. 

**Yazılıma Başlamak Mı İstiyorsunuz?, O halde bu en mühim konudur. Yapmayı SEVECEĞİN Alanı Belirle…


 

Madde 8: Asla Pes Etme (Aynısı yapmışlar yaaaa offf  deme!)

asla pes etme

Yazılıma Başlamak Mı İstiyorsunuz? O halde hangi alanda ilerliyor olursanız olun farklı olduğunuz sürece başaracaksınız. Benzer bir şeylerin içerisinde de farklı olanlardan olmanız gerekiyor.  1. ve 4. maddelere tekrar göz atarsanız ne demek istediğimi net bir şekilde anlayacağınızı düşünüyorum. Diyelim ki süper bir fikriniz var. Etrafınızdakilere danıştınız ve olumlu cevaplar alıyorsunuz. O fikre büyük umutlar bağladınız. “Kesin tutar bu bende parayı kırarım” diye düşünüyorsunuz. Tam kolları sıvadınız araştırmalara başladı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ülmüş gibi bir hisse kapılırsınız ve büyük bir hayal kırıklığı ile karşılaşırsınız. Bunlar her insanın başına gelecek (bence mutlak, yani %100) düşüncelerdir. Eee ne olacak şimdi? O işe daha başlamadan pes mi edeceksin?

Pes Mi Edeceksin?

TABİKİ DE HAYIR!!!

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

Üstelik düşünün, şu zamanlarda yapılmayan bir şeyler kaldı mı? Ne tür bir şey yapacak olursanız olun, birilerinin onu zaten yapmış olması ihtimali çoook yüksektir. Ancak yine de pes etmemek gerekir.

Herkes aynısının var olduğunu öğrendiğinde aynı hissi yaşamıştır ancak çok azı “Ben daha iyisini yapabilirim!” deyip yola devam etmiş ve başarmıştır.

Belki de biliyorsunuzdur. Zynga Şirketi, bir Türk oyun firması olan Peak Games’i 1.8 Milyar dolara satın almıştı. Neredeyse bir kaç gün sonra yine Zynga, başka bir Türk firması olan Rollic Games’i 168 milyon dolara satın aldı. Birileri bir oyun şirketi kurdu diye, başak birileri oyun şirketi kurmaktan vaz mı geçti?. TABİKİ DE HAYIR!  E o zaman sizin yapmanız gereken nedir? Vaz geçmek mi yoksa devam etmek mi?

O zaman ne diyoruz? Yazılıma Başlamak Mı İstiyorsunuz? Asla Pes Etme! Çünkü fırsatın ne zaman karşına çıkacağı belli olmaz.

Ayrıca yine biliyorsunuz ki son yıllarda StartUp’lar yani girişimcilik konusu artmaya başladı. Birileri bir StartUp başlatıyor biraz büyütüyor ve büyük firmalara satılıyor. Üstelik bu satışlardan sonra satılan şirketin yapısı bozulmuyor. Eski çalışanlar hiçbir şey olmamı gibi çalışmaya da devam edebiliyor. Yani en azından ben satış yapıldıktan sonra personelleri dağıtılan bir StartUp görmedim. Kaldı ki zaten mantıksız bir karar olacaktır.

Durma! Yola devam et.

Rakiplerini araştır güçlü ve zayıf yönlerini bul ve her zaman daha iyisi için çabala. Hiçbir başarısızlık kayıp değildir aksine kazançtır. Deneyip kaybetmek, bir açıdan nasıl başarısız olunacağının yeni bir şeklini öğretirken diğer bir açıdan başarmaya giden yolda bir kaç adım daha atmak demektir.

Her ne kadar çok tasvip etmesem de bizde şöyle bir motivasyon cümlesi vardır, “O salak yaptıysa bende yaparım!”. Evet!  Sende yaparsın! Tabi azmin o yapan kişiden fazlaysa ya da en azından o kişi kadar varsa…

İnsanlar tek olan şeylere kolay kolay yönelmezler. Eğer kendilerine lazım olan şeylerin muadilleri ya da aynı işi, bazı farklarla yapan birileri varsa kendilerini daha rahat hissederler. Çünkü, bir sorun yaşadıklarında birinden vazgeçme ve diğerlerini deneme şansları çok yüksektir. Sektörde tek olan bir işin kalitesi, mudaili çıkana kadar pek anlaşılmaz değil mi? Sonuçta kalite dediğimiz kavram aslında rakiplerin arasından sıyrılabilme gücüdür.

Örnek olarak arabaları ele alalım. Lüks araç üreten kaç firma var? Çok değil mi? Diyelim siz bir Mercedes aldınız ama servislerini beğenmiyorsunuz. Ama lüks araçta sizin için bir gereklilik olsun. Piyasa da başka lüks araç olmasa ne kadar rahatsız hissedersiniz? Ancak lüks araç satan tek firma olmadığından servisleri daha iyi olan başka bir firmadan araç alabilir ve rahat edebilirsiniz. Umarım yeterince açık olmuştur.

**Yazılıma Başlamak Mı İstiyorsunuz?, Yok, hayır, bu başlık yaptığın her şey için çok mühim. Asla Pes Etme


 

Madde 9: Paylaşmayı Unutma

Paylaşmayı Unutma bilgini paylaş

Yazılıma Başlamak Mı İstiyorsunuz? O halde yazdığınız kodları kendinize saklamanız sizi asla ilerletmez. Asla ve asla bir profesyonel olamazsınız. Ne kadar çok şey bildiğiniz, neler paylaştığınızla ölçülebilir. Hiçbir şey paylaşmayan bir insanın profesyonel olduğunu nereden anlayacaksınız? Yazdığı kodları çeyizine saklayan insanlar benim gözümde hiçbir zaman profesyonel değil ve olamaz.

Elbette herkesin sakladığı bir takım şeyler vardır. Ve, evet benimde var. Hiçbir şeyi saklamayacaksın diye elbette bir şey demiyorum, diyemem de. Yazdığım bazı sql sorgularını ve bazı class’larımı elbette paylaşmıyorum çünkü o paylaşmadığım şeyler benim yıllarca verdiğim emeğin karşılığında elde ettiğim bilgiler. Elbette o bilgileri öylece paylaşamam. Ancak sitemde biraz gezindiyseniz göreceksiniz. Şuanda C# eğitim setimde tam olarak 93 160 302 tane dersim var.

Bu dersleri inceleyenler bu maddeye istinaden yazım altına yorum atabilirlerse çok memnun kalırım.

Bir çok siteye göre benim anlatımım deneyimlerinden gelen şeyler. Yazdığım yazılarda deneyimlerimden elde ettiğim püf noktalar ve çoğu kişini anlatmadığı şeyler bulunmaktadır. Paylaşmak güzeldir arkadaşlar. İnsanların size teşekkür etmesi, bir yerde birilerine faydanız olması güzel şeylerdir. Zaten bir yazılımcıysanız herhangi bir platformda bildiklerinizi paylaşmalısınız ki, bir işe başvurduğunuzda sizin bilgili biri olduğunuzu paylaşımlarınızdan anlayabilsinler. Bilgilerinizi ve deneyimlerinizi çeyizinize saklıyorsanız insanlar sizi nasıl bulacaklar?

Yada direk şöyle söyleyeyim. Google’a ad ve soyadınızı yazdığınızda çıkan şeyler aslında sizi temsil eder. Mustafa BÜKÜLMEZ, Türkiye’de tek olan bir isim değil. En baştan dedemin adı da Mustafa BÜKÜLMEZ. Ayrıca Mustafa BÜKÜLMEZ adında 3, 4 kişi daha var. Siteme ilk başladığımda Google’nin ilk sayfasında benimle ilgili bir tane link vardı. Ama şimdi İlk sayfayı resmen ele geçirdim. 😀 Bu da benim sanal CV’im değil de nedir?  Bu site bir CV’dir, Github profilim bir CV’dir. Hazıradığınız bir CV’ye ileri düzey C# yazabilirsiniz belki de gerçekten o düzeydesinizdir ama Google’de adınız yazıldığında ” ileri düzey C#” bilginiz hakkında bir sonuç çıkmıyorsa CV’nize yazdıklarınız hava cıva kalmaz mı?

Şimdi hemen bir deneme yapın. Açın Google’yi ve kendi adınızı yazıp aratın. Hakkınızda neler çıktığı, sizi kişisel olarak tanımayan kişilerin sizin hakkındaki ilk izlenimlerinin nasıl olacağını bir düşünün.

Şahsen, Google’de Mustafa BÜKÜLMEZ yazdığımda çıkan sonuçlardan memnunum. Benim bir yazılımcı olduğum ve bu konuda bilgili olduğum açık ve nettir. Gerçi birden fazla Mustafa BÜKÜLMEZ olması aramalarda diğerlerinin çıkmasına da neden oluyor ama sorun değil. En azından ilk sayfanın neredeyse tamamı bana ait 😀

Kendimden Örnek Vereyim;

Sitemi açmadan önce blogspot sitemde ve sanalkurs.net üzerinde yüzün üzerinde ders yayınladım. Sonra madem yazıyorum ve yazmayı da seviyorum o zaman neden kendi sitemi açmayayım dedim. Sitemi açtığımda ise bu yazılarım üzerine daha fazla bilgi ekleyerek ve yenileri ile birlikte sitemde topladım. Şimdi ben, bir iş başvurusuna gittiğimde bir kağıt olarak cv vermek yerine sitemi CV olarak gösteremez miyim?

Forum sitelerinde sorulan sorulara cevap verin, eğitim sitelerinde yazılar paylaşın, size mail atarak ulaşan insanlara yardımcı olun. Sadece birilerinin sorduğu sorulara yardımcı olmanız bile sizi geliştirecektir.

Paylaşın, paylaşmak güzeldir. Sizi insan yapar…

“Bir mum başka bir mumu yakmakla ışığından bir şey kaybetmez” demiş Mevlânâ Celâleddîn-i Rûmî ne de güzel demiş. Bende bu söze nacizane bir cümle daha eklemek istiyorum. “Aksine çevremiz daha aydınlık olur”

**Yazılıma Başlamak Mı İstiyorsunuz?, O halde sakın ha Paylaşmayı Unutma


 

Madde 10 : Bildiğinle Yetinme, Bir Yerde Çakılı Kalma

Bildiğinle Yetinme, Bir Yerde Çakılı Kalma

Yazılıma Başlamak Mı İstiyorsunuz? o zaman, ne kadar çok şey bilirsen bil. Asla o kadarı ile yetinme. C# biliyorsun diye C# ile yetinme. ASP.Net biliyorsun diye ASP.Net ile yetinme. Yeni teknolojileri, yeni programlama dillerini öğren.  Bildiğin şeyler zamanla değişebilir. Sende değiştirmelisin. Bir yerde çakılıp kalmamalısın.

Hiçbirimiz ağaç değiliz. Beynimiz bir ağaç değil. O halde neden kendimizi bir yere çakıp orada bekleyelim. Zaman geçerken, yeni şeyler sürekli ortaya çıkarken biz neden eskilerde kalalım. Hangi işi yaparsak yapalım bildiğimizle asla yetinmemeliyiz. Sektördeki bu işi yapan kişilerle konuşun, okul zamanlarında öğrendiklerinin hangilerini şu anda aktif kullanıyorlar?

Özellikle yazılım sektöründe bir kişi çıkıp da ben C#’ta uzmanım diyemez. Çünkü programlama dillerinde kütüphaneler vardır. Her kütüphane yeni bir boyut gibidir. En basitinden C#’ta DATA ile uğraşacaksanız System.Data kütüphanesi gereklidir. Bu System.Data kütüphanesi içerisinde de bir sürü kütüphane vardır ve onların içlerinde de kütüphaneler olabilir.

Bu şekilde belki de binlerce kütüphanesi olan bir programlama dilinde kim nasıl uzman olabilir? Mümkün değil. Sadece kendi alanında uzman olabilir. Örneğin bir kişi Görüntü İşleme konusunda uzman olabilir. DATA konusunda uzman olabilir ama her kütüphanede uzman olamaz.

“Ben artık bu programlama dilinde uzman oldum!” cümlesi, senden bulunduğun yere bir kök salar. Bu cümleyi her kullandığında bir kök daha salarsın. Artık bilinç altına da işlediğinde o noktadan ayrılman çok zordur. İnanın çok zordur. Ben bu hatayı yaptım. Benden atılan kökleri kurutan şey bu cümleyi her kurduğumda yüzüme yediğim “Nah biliyorsun!” tokadı oldu. Elbette bu tokat sektörde çalışmaya devam ettikçe geldi. Zamanla daha büyük ve kapsamlı projelere giriştikçe aslında ne kadarda bilgisiz olduğumu fark ettim. İşte bu yediğim manevi tokatlar, benden salınan kökleri teker teker kuruttu. İyi ki de kuruttu.

Yazılıma Başlamak Mı İstiyorsunuz? O halde egolarınızı söndürüp, bilgilerinizi çoğaltın. 🙂

 

Bu sebeple bildiğimizde asla yetinmemeliyiz. Hep daha fazlasını öğrenmeyi arzulamalıyız. Yeni programlama dilleri öğrenmeyi arzulamalıyız. Yeni teknolojileri öğrenmeyi arzulamalıyız. Yeni metotları öğrenmeyi arzulamalıyız.

Şu zamanda bir aşçının bile kendisini geliştirmesi gerektiğini göz önüne alırsak; teknoloji ile uğraşan bizlerin, kendimizi geliştirememesi nasıl bir saçmalık olurdu?

Kök salmamız sadece içinde olduğumuz sektörde kabul edilebilir. O sektöre kök salıp o sektörde bir iz bırakmak, o sektöre yeni girenlere yardımcı olup gölgemizden ve meyvelerimizden faydalanmalarını sağlayabilmek… Bana sorarsınız asıl tatmin işte burada…

**Yazılıma Başlamak Mı İstiyorsunuz?, heh, o zaman bu konu hayat kurtarır. Aslında hayatını devam ettirir. Bildiğinle Yetinme, Bir Yerde Çakılı Kalma

Son olarak da buraya bir video bırakayım. Stres konusuna bakış açınızı biraz değiştirecek bir video olduğuna inanıyorum. Konu stres ama bu başlığa da uyduğunu düşünüyorum.


Yazılıma Başlamak Mı İstiyorsunuz? O halde, Son Sözlerim

Yazılıma Başlamak Mı İstiyorsunuz? O halde bu 10 maddeye dikkat etmelisiniz. Unutmayın bu maddeler sizi yazılımcı yapmayacak. Yani bu yazının sonunda bir yazılımcı olmayacaksınız. Sadece yazılımcı olmanın temellerini göreceksiniz. Bu temeller ile başladığınızda ise sağlam temeller ile başlayacaksanız.

 


 

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

Yazılıma Başlamak Mı İstiyorsunuz? Görmeniz Lazım! yazımda bu kadar dostlarım. Bu yazımı zamanla güncelleyeceğim. Bu sebeple bu yazıyı özellikle takip edebilirsiniz. Sağlıcakla ve takipte kalın. 😉

Bu yazımı buraya kadar okuma azmi gösterdiyseniz ve gerçekten faydalı olduğunu düşündüyseniz, yazımı yazılıma 0 dan başlamak isteyenlere paylaşarak bana hem de çevrenize yardımcı olabilirsiniz. Yazılıma Başlamak Mı İstiyorsunuz? yazım sürekli olarak güncellenmektedir. Aşağıda güncelleme geçmişini görebilirsiniz.


Güncelleme Geçmişi

  • İlk Yazım: 27.12.2017
  • Yayınlama: 20.01.2018
  • Güncelleme 1: 12.11.2018
  • Güncelleme 2: 26.08.2019
  • Güncelleme 3: 28.08.2019
    • 10. Madde ve Son Sözlerim eklendi
  • Güncelleme 4: 22.09.2020
    • Tüm başlıkların açıklamalarına  yeni notlar ve bilgiler eklendi. Sitedeki diğer yazıların linkleri verilerek anlatımlar güçlendirilmeye çalışıldı.
Yorum Yap

Yazar Hakkında

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.

Yorum Yap

Yorumlar (2)

  1. _avatar

    Emek verip zaman ayırıp bu yazıyı yazdığın için com tesekkurler mustafa kardeşim inan okadar makale ve yazı okudum senin yazın kadar samimi bulmadım . çok iyi geldi bana yazılım konusuna kafa yoralı 2 gün oldu , 30 yaşındayım henüz yola çıkmış değilim senin sayende o yola cıkmaya buyuk bir azimle hazırlanıyorum hayatında başarılar diliyorum kardeşim çok tesekkürler sayfanı favorilerime ekliyorum sanırım artık buralarda olacağım sağlıcakla kalman dilekleri ile .

    • _avatar

      Bu harika ve motive edici yorumun için bende çok teşekkür ederim. Bu yorumundan bu yazının amacına ulaştığımı anlıyorum. Yardımcı olabildiğime çok sevindim. Takıldığın noktalarda gmail adresime mail atmaktan çekinme. Takıldığın yerde yardımcı olmak olsun, akıl danışmak olsun elimden geldiğinde yardımcı olmaya çalışacağım.
      Yazılım hayatında başarılar dilerim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir