Programlama

SoloDolo
18-11-2017, 13:36   |  #1  
SoloDolo avatarı
OP Taze Üye
Teşekkür Sayısı: 0
2 mesaj
Kayıt Tarihi:Kayıt: Kas 2017

 

Merhabalar dostlar. Ben SoloDolo. Programlama işine merakı olan,
aslında meraktan fazlası olan bir kardeşinizim. Öncelikle, dakikada
kelime sayım 147'dir. (WPM, Q klavye) Neyse, gereksizdi bu. Olaya
girelim. Benim bir arkadaşım vardı ve bu arkadaşımdan etkilenerek birkaç şeyi araştırdım.
Mesela;


  • Çok yüksek seviyeli diller : VisualBasic, VB.NET, Acces , Foxpro ...
  • Yüksek seviyeli diller: Pascal ,Basic ,Fortran...
  • Orta seviyeli diller: C ,C++, C# , Java ,ADA...
  • Düşük seviyeli diller: Assembly...
  • Makina dilleri: Bilgisayarın çalışma dilleri 1 ve 0'lardan oluşur...

    Bildiğim/duyduğum programlama dilleri;



  • C++
  • C#
  • C
  • Java

    Ben başlangıç için C++ düşünüyordum. Fakat birkaç kişi C++ yerine C başlayıp sonrasında C++ geçmemi söyledi.

Bahsettiğimarkadaş C++ ustasıydı. Bana C++'dan değil de Java gibi basit dillerden başlamamı söyledi.

Başka bir şey söyleyen arkadaşlar da C++ öğrenmek istiyorsan C'den başla dediler. Kafam karıştı artık.


Java orta seviyeli dillerde yer alıyor, bu da benim kafamı karıştırdı
tabii... Bu konu yoruma açık bir konu olacağından sizin de
düşüncelerinizi almak istedim. Teşekkürler.

NOT: Intermediate seviyede İngilizce
bilgim var. Bunun bana katkısı olacağını sanıyorum. Üstüne üstlük,
dediğim gibi 147 WPM'in de buna katkı sağlayacağını düşünüyorum.

sessiz12
12-01-2018, 00:58   |  #2  
Taze Üye
Teşekkür Sayısı: 0
2 mesaj
Kayıt Tarihi:Kayıt: Haz 2014

Kod yazmak mektup yazmaya benzemez. Yani hızlı yazıyor olman iyi bir programcı olduğun/olacağın anlamına gelmez. Programlamanın temeli algoritmadır. Eğer algoritma yeteneğin yoksa bir yere kadar gelir tıkanırsın. Çünkü neyi nereye koyacağını bilemezsin. Zaten kod yazmak işin en son kısmıdır. Önce kafanda bir plan olması gerek, bir fikrin olması gerek. Programlama yapboz gibidir, doğru parçaları bir araya getirerek büyük resmi ortaya çıkarırsın. Ve hiçbirşey birden bire olmaz. Mesela günümüzdeki teknolojilerin ham maddesi binlerce yıl öncesinde de vardı yeryüzünde. Peki neden o zamanlarda böyle bir teknoloji yoktu? Sana dünyanın en harika makinesini yapmak için gerekli parçaları verseler, sen o parçaları nasıl bir araya getireceğini bilmedikten sonra ne işe yarar. Programlama gerçektir. Yani gerçek hayattan alıntıdır. Gerçek hayatta ise herşey birbiriyle bağlantılıdır, herşey başka birşeylerle ilişkilidir. Allah'tan başka hiçbir şey tek başına birşey değildir. Denizler dalga dalga, ağaçlar yaprak yaprak, Kuran ayet ayet. Bunların bir anlamı olmalı. İnsan neden tek parça yaratılmadı? Birbirinden bağımsız, ama birbiriyle bağlantılı ve uyum içinde çalışan iç organlarımız var. Beyin bir orkestra şefi gibi vucudun dengesini ve uyumunu denetleyen ve gerekli müdahaleleri yapan, sınırlarını henüz keşfedemediğimiz bir yönetmen. Sahip olduğumuz bu karmaşık sistemi yaratan Allah isteseydi bizi tek parça da yaratabilirdi, bu daha kolay olurdu. Ama öyle değil. Herşey içiçe. Bu yüzden bir problemi anlamak için bazen bakış açını genişletirsin, bazen de daraltırsın. Tıpkı bir resme zoom yapmak gibi. Resme bakarken genel olarak tamamına bakarsın, ama resimde ilgini çeken bir şey görürsen dikkatini o noktaya verirsin. Programlama dillerinin yaptığı şey de budur işte. Düşük seviyeli dillerde detaya inersin, yüksek seviyeli dillerde probleme daha geniş bir açıdan, detaya inmeden bakarsın. Günümüzün en popüler programlama paradigması nesne yönelimli programlama tekniğidir. Java ve C# tamamen nesne tabanlı dillerdir. Bu dillerde herşey bir nesnedir, nesnenin dışında bir değişken tanımlamanın imkanı yoktur, ve aslına bakarsan gereği de yoktur. Çünkü bu bakış açısı gerçeğe daha yatkındır, gerçek hayatta da herşey bir nesnedir. Sen hiç hayatında kırmızı olan, ama nesne olmayan bir şey gördün mü? Mantıken, bir özellik bir şeye atfedilir. Yani bir özellikten bahsederken önce o özelliğin neyde olduğunun bilinci vardır. Hiçbir şeye ait olmayan bir özellikten bahsedilemez. Peki nesne kullanmayan diller ne yapıyor? Mesela C dili. C dilinde herşey fonksiyonlarla yapılıyor. Aslında nesne tabanlı dillerde de herşey fonksiyonlarla yapılıyor. Aradaki fark, biri fonksiyonları nesnelerin bir işlevi olarak nesnenin içinde tanımlarken, diğeri bağımsız tanımlıyor. Bağımsız tanımlıyor ama tamamen de bağımsız değil. C dilinde birbiriyle alakalı fonksiyonlar aynı modül içinde tanımlanır. Aslına bakarsan bu da bir parça nesnedir. Ama yine de gerçek hayat problemlerini soyutlamaya pek yardımcı olmaz. Bunun yerine makine problemlerini soyutlar. Bu yüzden C dile çoğu kaynakta düşük seviyeli bir programlama dili olarak anılır. C++ ise bu iki tür programlama dilinin tam ortasındadır. Hem C gibi çalışır, hem de nesne tanımlayabilir. C++ için makine ile nesne arasında bir köprüdür diyebiliriz. Nesne tabanlı dillerle yaptığın herşeyi ve daha fazlasını C++ ile yapabilirsin. C ile yaptığın herşeyi ve çok daha fazlasını da C++ ile yapabilirsin. Zaten java ve C#, C++'ı temel alır. C++ ise C'i temel alır. Bu dört dil en temel seviyede birbirinin aynısıdır. C dilini temel seviyede çok iyi öğrenirsen diğer dilleri öğrenmek çok kolaydır. C ile temel programlama bilgisini edineceksin(en sıkı şekilde). C++'a geçince aradaki farklılıkları çok çabuk görüp anlayacaksın ve C++'ta daha çok nesneyi tanıyacaksın. Sonra C#'la uçuşa geçeceksin. Eğer Android programlamayacaksan java ile hiç işin olmaz. Java dili, kaplumbağa gibi ilerleyen, zamanın ihtiyaçlarına çok geç atapte olabilen, kendisine en çok sövdüğüm programlama dilidir. Ama yine de seviyorum. C# ilk çıktığı zamanlarda java'nın birebir kopyasıydı. Zaten C#, java'ya inat çıkarıldı. C# zaman içinde kendini geliştirirken java çok gerilerde kaldı. Ama şuan bile bir çok yazım farklılıkları olsa da yapı olarak ikisi de aynı. Yani C, C++, C# sonrasında java kabak çekirdeği gibi gelir sana. Ama yine de hiç bir dili hafife alma, her dilin kendine özgü bir karakteri vardır. Birinde çok sevdiğin bir özelliği diğerinde bulamayabilirsin, veya çok daha iyisini de bulabilirsin. Ama en önemli şey, başta söylediğim gibi algoritmadır. Algoritma yeteneğin yoksa bir yere kadar gelir tıkanırsın. Okullarda kağıt üzerine şekiller çizdirilerek öğretilen algoritmanın ta anasını......
Algoritma yeteneği kazandıracak olan tek dil assembly dilidir. Madem programlama meraklısısın, o halde sana bu dili şiddetle tavsiye ederim. Piyasada bir sürü assembly dili var, benim kastettiğim intel'in x86 tabanlı işlemci ailesine özgü olan, söz dizimi en temiz ve en mantıklı olan assembly dilidir. Windows işletim sistemi üzerinde rahatlıkla kullanabilirsin. Derleyici olarak masm kullan.
İlk adımı atmak için internet üzerinde yığınla kaynak bulabilirsin. Ama önce biraz C. Ama iyi bir C. Harcadığın zamandan, verdiğin emekten asla pişman olmazsın.