Yazılım öğrenmek istiyorum

Katılım
14 Şubat 2014
Mesajlar
437
Çözümler
1
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Meslek
Türk Telekom Genel Müdürlüğü / Office Support Specialist
Arkadaşlar hayırlı akşamlar.

Ben yazılımcı olmak, yazılım dilini öğrenmek istiyorum ama nereden nasıl başlayacağımı bilmiyorum.
Örnek veriyorum siber güvenlik ile ilgili vb. gibi branşlara yönelmek istiyorum ancak ne yapmam gerektiğini, nasıl bir yol izlemem gerektiğini bilmiyorum.
Kısacası güvenlik üzerine yazılım öğrenmek istiyorum, sızma uzmanıdır vs. unvanlar var 😂

Ne yapmalıyım?
Nereden başlamalıyım?
 
Arkadaşlar hayırlı akşamlar.

Ben yazılımcı olmak, yazılım dilini öğrenmek istiyorum ama nereden nasıl başlayacağımı bilmiyorum.
Örnek veriyorum siber güvenlik ile ilgili vb. gibi branşlara yönelmek istiyorum ancak ne yapmam gerektiğini, nasıl bir yol izlemem gerektiğini bilmiyorum.
Kısacası güvenlik üzerine yazılım öğrenmek istiyorum, sızma uzmanıdır vs. unvanlar var 😂

Ne yapmalıyım?
Nereden başlamalıyım?

Buyur hocam. Sık sorulan sorular kısmını inceleyebilirsiniz.
 
Forumda artik neredeyse gunde 2 defa "Yazilima nasil baslarim?" konusu acilir oldu. Bu ise bir noktayi koymak gerekiyor gibi dusunuyorum. Bu yazi uzun birikimler ve gozlemler sonucu yazilmistir ama gozden kacirdiklarimi belirtirsiniz. Fazla uzatmak istemiyorum.



"Para icinse olmaz!" Algısı
-Programlamayı ne için öğrenmek istiyorsun?

+Para kazanmak için

-O zaman öğrenemezsin.



Yukarıdaki diyalogu forumda en az 100 defa gormusuzdur. Nedense "Para icinse olmaz." algisi var yazilimda. Arkadaslar, olur. Bir insan para kazanmak icin de olsa oturup hirslanir, bu yonde dogru arastirmalar yapip kendini biraz zorlarsa bal gibi de olur. Hatta belki de zevk icin yapanlardan daha iyi yapar. Sakin ola "Para icin yapiyorsan isinamazsin." diyenleri dinlemeyin. Bu is bu kadar zor degil. İnsanlara bu dayatmayi yapmayin sayin arkadaslar.



"Hangi Dille Baslamaliyim?" Polemigi
Arkadaslar programlamaya dair hicbir sey bilmiyorsaniz ve tek satir kod bile yazmadiysaniz size oncelikli tavsiyem programlama temellerini kavramanizdir. Eger matematik temeliniz (Matematikle alakasi yok yazmayin hemen gidip. 3>2'yi bilmekten bahsediyorum.) iyiyse cok daha rahat ogrenebilirsiniz.



Bu konuda birkac tavsiyem var fakat sanirim reklam olacagindan paylasmayayim. Detayi sorulursa paylasirim.



İlk Dil Seçimi
Tamamdir. Programlama temellerini biliyoruz ve artik "Neden degisken kullaniriz? Neden karar yapilari var? vb." sorulari yanitlayabilir haldeyiz. Yavas yavas tatli pratikler yapmamiz gerekiyor simdi. Bunun icin size weak-typed oldugu icin JavaScript oneririm. Cogu egitmen de genelde programlama temeli anlatirken JavaScript kullanir. Eger ozellikle bir dil ogrenmek istiyorsaniz dogrudan o dille de baslayabilirsiniz ama eger ogrenmek istediginiz dil cok alt seviyeli bir dilse bunu kesinlikle onermem (en azindan kolay dillerle bir pratik yapin).



"Python ile baslayin en kolay dil yahu!" diyecek arkadaslarima sesleniyorum. Python sandiginiz kadar kolay bir degil. Ha tamam ilk basta degisken tanimlamak zevkli, sacma toollar yazmak zevkli. Tkinter falan filan kullanmak zevkli ama class, inheritance olaylarina girdiginizde is bulaniyor birazcik. O yuzden yeni baslayan kisilere Python onermiyorum ama isterseniz o da olur.



Seciminizi yaptiktan sonra o dili anlatan iyi bir hocadan dersinize baslayin. Udemy kursu olabilir, YouTube uzerinden olabilir fark etmez. Eger dil secimiyle ilgili detayli bir rehber isterseniz yazin onu da hallederiz bir sekil.



Sorunlar Yaşamaya Başladım
"Her sey oradan yazdıgın gibi rahatca olmuyor Schettino!" dediginizi duyuyorum sanirim. Bu asamada problemler yasayacaksiniz. Bunlara biraz deginmek isterim acikcasi.



1-) Learning Hell / Sürekli Video İzliyorum Yapamıyorum



Learning Hell'den çıkamayıp bu işi bırakanlara zaten beceremeyecekti bıraktı derler ama aslında olay farklıdır. Kişi çalışmayı aslında doğru yapamadığı için bu işi bırakır. Belki de çalışmayı bilse çok başarılı olacaktır. Yani size onerim bu islere bir dahil olmaniz. Kodu siz yazin. Takildiginizda videoyu izleyin. Bir de not alayim isine girmeyin arkadaslar. Biyoloji mi bu?



2-) Kodları Aklımda Tutamıyorum



Eger bu sorunla karşılaştıysanız önce yapmak istediginiz seyi bir kagıt uzerine aktarıp mantıgına uyarak yazmayı deneyin. Eger bunu da yapamıyorsanız temellerde eksiginiz olabilir. Ona dikkat edin.



3-) Bu Dilden Cok Sıkıldım



Bu yuzden biraz kendinizi sıkıp bu isin mantıgını kavramaya calısın. Eger o kadar bile sabredemiyorsanız bu is size gore olmayabilir.



4,5,6,7,8,9,...-) Sizin Sorunlarınız

Evet! Bu konunun altına yasadıgınız sorunları yazın sayın geliştiriciler ve geliştirici adayları. Boylelikle herkes faydalanir ve sorunlar cozume kavusur.



Pratik, Pratik, Pratik...
Kendi dilinizde iyice pratik yapin. Hatta kucukten projelere de baslayin. Ornegin hastane yonetim sistemi, banka yonetim sistemi, oto kiralama sistemi vs. Bunlar sacma seyler gibi gorunebilir ama karsilasacaginiz sorunlari cozmek size tecrube katacaktir. Tabii her sorunda "Hay ben böyle kodun da böyle programın da..." diye başlamazsanız.



İyi Programcılık Yolunda
Artik iyi kotu bir seyler ogrendiniz. Kendinizi daha da gelistirme vakfi. Bu sahilde bir kum tanesi olmaktan kurtulmanız gerekiyor oyle degil mi? Sizi one cikaracak sey urununuzun (yazdıgınız kodun) kalitesidir.



"Ne demek istiyorsun kardesim hicbir sey anlamadim ya!" diyorsaniz size basit bir ornekle aciklamama izin verin. Elimizde A ve B kodlari olsun. Sizce hangisi daha hos duruyor?

C#:
public class ProgramA{

    public int a = 2005;

    public List<insan> c = new List<insan>();

  

    public static void Run(string[] args){

        runSth();

    }

  

    public static void runSth(){

        insan b = new insan();

        b.year = a;

        c.Add(b);

    }

}

C#:
public class ProgramB{

    public int personYear = 2005;

    public List<Person> Persons = new List<Person>();

  

    public static void Run(string[] args){

        AddPerson();

    }

  

    public static void AddPerson(){

        Person person = new Person();

        person.Year = personYear;

        Persons.Add(person);

    }

}

Sizce de alttaki kod daha hos durmuyor mu? Kodunuzu daha okunakli ve performansli yazmaniz gerekiyor. Bunun icin size cogu dil icin gecerli bazi seyleri soylemek istiyorum.

İsimlendirmeleri İngilizce yapın. (insan değil Person)
Kullandığınız dilin isimlendirme biçimine uyun.
Çok fazla karar yapısı kullanmayın.
Bir şeyin daha pratiği için Google'da araştırma yapın.
Daha detaylı Clean Code rehberi için yine istekte bulunabilirsiniz. Müsait olduğumda yazarım. Tabii C# için.



Artık Orta Seviyedesiniz
Artık başlangıçtan kurtuldunuz. Programlama temellerini bilen, temiz kod yazmasını bilen, SOLID kurallarını bilen bir yazılımcısınız. Siz artık 1-2 tutorial videosu izleyerek yeni bir dil öğrenebilecek kapasitedesiniz. Hatta tutorial izlemeyi geçin, İngilizceniz iyiyse dokümantasyon okuyarak bile dil öğrenebilirsiniz.



"Ben bir alanda uzman olacağım!" derseniz o alana ait yapmanız gereken şeylere yönelebilirsiniz artık. Eğer en başında bu alana yönelseydiniz "sıradan" Discord botu yapabilen biri olacaktınız. Ama şimdi istediğiniz her alanda rahatça uzmanlığa gidebilirsiniz. Tabii bu süreç de zorlu bir süreç fakat temeliniz sağlam.



Veda
Arkadaşlar, eger bu isi yapmak istiyorsaniz gayret gostereceksiniz. Baska yolu yok. Gayret gosteren her kim olursa bunu basarabilir. Yazilim ozel muthis zeka falan istemiyor. Eger istese emin olun ki ben bu isi hic yapamazdim.



Bu iste sizin ilerlemenizi en cok engelleyecek sey egodur. Eger egoya kapilirsaniz kendinizi ogrenmeye durdurursunuz. Yazilimda da ego cok gereksiz bir seydir cunku her seyi kusursuz bilmeniz mumkun degil. Bir sistem gelir ertesi gun her sey degisir. Bilginizin bir onemi kalmaz.



Umarim derdimi anlatabilmisimdir. Sadece kendinize guvenin ve sıkı calısın. Gerisi gercekten kolay olacaktir. Ayrica beni actıgınız her yazılım yardım konusuna rahatlıkla etiketleyebilirsiniz. Size yardim etmek beni gercekten mutlu eder.

Güzel anlatmış.

Bir tık uzun.
 
Arkadaşlar hayırlı akşamlar.

Ben yazılımcı olmak, yazılım dilini öğrenmek istiyorum ama nereden nasıl başlayacağımı bilmiyorum.
Örnek veriyorum siber güvenlik ile ilgili vb. gibi branşlara yönelmek istiyorum ancak ne yapmam gerektiğini, nasıl bir yol izlemem gerektiğini bilmiyorum.
Kısacası güvenlik üzerine yazılım öğrenmek istiyorum, sızma uzmanıdır vs. unvanlar var 😂

Ne yapmalıyım?
Nereden başlamalıyım?
Başladınmı.
 
Öncelikle bir dil öğrenmeye başlamanız tavsiyemdir. Kendinizi siber güvenlik vb. konularla kısıtlamadan bir dili güzelce öğrenmek üzerine eğitimler alabilirsiniz. Yazılım bir ağaç gibi dili öğrendikten sonra istediğiniz dala yogunlasabilirsiniz. Tavsiyem ikamet ettiğiniz yerde var ise yüz yüze eğitim sınıflarına dahil olarak eğitim almaya başlamanız. Online eğitimleri destekleyici olarak kullanmanızda da fayda var. Yüz yüze eğitimlerde anlik eğitmene soru sorabilme konforu yazılım öğrenirken çok rahatlatıcı. Diğer öğrencilerin katkıları soruları anlamada boşlukları çoklu doldurmanıza fayda sağlar hemde çoklu ortamda kendinizi ve eğitimdeki durumunuzu diğer kişilere göre değerlendirebilme imkanı olur.

Online eğitimlerin en büyük avantajı ve dezavantajı her an elimizin altında olması, bu sizi bir süre sonra iş ötelemeye yitebilir. Ancak yuzyuze egitimlerde mecburi itici kuvvetin etkileri egitimin 6-7. Haftalarinda cok rahatlatiyor. Bırakmak daha az mümkün oluyor.

Ama herşey bir yana tek gerçek, başlamak. Başlayın gerisi gelecektir.
 

Geri
Yukarı