Notes
Notes - notes.io |
Öncelikle işe programlama dillerini genel olarak bir gruplandırma yaparak başlamak istiyorum;
Programlama dillerini genel olarak makine diline yakın olup olmadığına şu şekilde gruplara ayırabiliriz. Bu noktada şunu belirteyim düşük ve yüksek seviyeli olarak 2 şekilde gruplandırılır şeklinde bir görüş olduğu gibi, düşük, orta, yüksek ve en yüksek seviyeli 4 şekilde gruplandırılır şeklinde bir görüşte mevcuttur. Ben ikinci şıkkı tercih ediyorum.
Önce şunu belirtelim, makine dili nedir?
Makine dili; 0 ve 1’ler den oluşan ve bilgisayar sisteminin içyapısında bilgisayarı oluşturan bileşenlerin birbiri ile iletişiminde kullanılan dildir.
1) Düşük Seviye Programlama Dilleri
Makine diline en yakın olan dil Assembly dilidir. Kısa komutlardan ve tanımlamalardan oluşur.
2) Orta Seviyeli Programlama Dilleri
Bu tür dillerde artık komutlar daha anlaşılır hale gelmiştir. Örneğin C Dili gibi.
3) Yüksek Seviye Programlama Dilleri
Komutların daha anlaşılır olduğu, ancak bilgisayar tarafından daha az anlaşılır olduğu ve yazılan programların daha yavaş çalıştığı dillerdir. Örneğin Pascal ve Basic dilleri gibi.
4) En Yüksek Seviye Programlama Dilleri
Artık yazılan programların daha anlaşılır olmasının yanında programcının görsel ortamı da kullanarak hazır bileşen ve kontrollerle program yazmasının kolaylaştırıldığı programlama dilleridir. Örneğin Visual Basic, C#, Delphi gibi.
Buradan sonuç olarak şu çıkarımı yapabiliriz:
Düşük seviyeli dillerin kaynak kodları uzundur, programcı tarafından daha zor anlaşılırlar ancak bilgisayar sistemi tarafından daha hızlı anlaşılırlar, bu dillerle yazılan programlar daha hızlı çalışırlar.
Yüksek seviyeli dillerin kaynak kodları kısadır, programcı tarafından daha kolay anlaşılırlar ancak bilgisayar sistemi tarafından daha geç anlaşılırlar, bu dillerle yazılan programlar daha yavaş çalışırlar.
Programlama dillerinin türlerinden sonra sıra en çok sorulan sorulardan birine geldi.
“Programlamaya nereden başlamalıyız?” Bence bundan önce şunu sormak gereklidir. Ben programlarımı hangi platform ya da platformlar için yazmak istiyorum. Ya da platform bağımsız programlar mı yazmak istiyorum.
Eğer Linux tabanlı programlamayı tercih edecekseniz, C, C++ dillerini tercih edebilirsiniz. Bu noktada bir iki alternatif daha var;
-MONO: .NET programlama dillerinin Linux altında çalışması için geliştirilmiş bir platformdur. Halen geliştirilmekte olan bir platformdur. Bu nedenle bu platform ile yazacağınız programların Linux ile %100 uyumlu olacağının söylemek henüz erken olur.
-KYLIX: Delphi dilinde yazılan uygulamaları Linux ortamına taşıyabilmek ve Linux ortamı için program üretebilmek için Delphi programlama dilinin linux’a uyarlanmış halidir.
-PYTHON: Hem Linux hem de Windows platformlarda program yazabileceğiniz bir programlama dilidir. Ancak ağırlıklı olarak Linux sistemlerde kullanılmaktadır. Örneğin pardus işletim sistemini meydana getiren birçok bileşen python ile yazılmıştır.
Bundan sonraki aşamada programcılığın hangi alt dalları ile ilgileneceğimize karar vermeliyiz.
Sistem programcısı mı, veri tabanı programcısı mı, grafik ve oyun programlama mı, web programcılığı mı?
Sistem programcılığından kast ettiğim cihaz sürücüsü yazmak, işletim sistemi bileşenleri, eklentileri gibi programlardır. Bu tip işlemlerin en güzel şekilde yapılabileceği diller C, C++, Visual C++, C#, Assembly gibi dillerdir. Çünkü bu diller sistem erişiminde kullanabileceğiniz gerekli bileşenler ya da kütüphanelere sahiptir.
Veri tabanı programcılığında ise piyasada çokça kullanılan muhasebe, müşteri takip, stok takip programları gibi programları kast etmekteyim. Belki de en kolay yazılabilen ve buna rağmen en çok tercih edilen programcılık dallarından biri budur. Çünkü müşteri kitlesi geniştir. Burada ise Visual Basic, Visual Basic.NET ve Delphi gibi dilleri tavsiye ederim. Çünkü bu dillerde bu tip programlar yazabilmeniz için gerekli string komutları, veri tabanı komutları ve bileşenleri mevcuttur ve bu dillerin öğrenimi diğer dillere göre daha kolaydır.
Grafik ve oyun programlamada ise yine sistem programlamadaki gibi C, C++, Visual C++, C# dillerini tavsiye ederim. Çünkü bu diller grafik ve oyun programlama için gerekli olan DirecX, OpenGL, XNA gibi gerekli olan kütüphanelere ve komut setlerine sahiptirler.
Web programcılığında ASP, ASP.NET, Java ve JavaScript, PHP gibi dillerle web siteleri programlanır. Web programlama, grafik ve tasarım ile iç içedir. Kullanıcı menüleri, butonları, arayüzü tasarlar ve bunların arka planında çalışacak olan kodları yazar.
Platform bağımsız programlar yazmak için ise JAVA düşünülebilir. JAVA özellikle mobil uygulamalar için tasarlanmış ve geliştirilmeye başlanmış bir dildir.
Evet şimdi hangi platform ya da platformlar için program yazacağımıza karar verdikten sonra sıra geldi öğrenme aşamasında ne tür bir yol izlememiz gerektiğine. İlk olarak şunu söylemek istiyorum;
Yukarıda programlama dillerinden bir kısmının avantaj ve dezavantajlarını sıraladık. Şu soruyu kendimize sormalıyız: “Ben tek bir programlama dilini öğrenip bütün programlarımı onunla mı yapmalıyım, yoksa birden fazla programlama dili öğrenip projeleri onlarla mı yazmalıyım?” Ben burada ikinci şıkkı yani birden fazla programlama dili öğrenmeyi seçiyorum. Bu şekilde istenen projenin niteliğine göre en uygun programlama dilini seçip projeyi o dille gerçekleştiriyorum. Bir veri tabanı projesini VB. NET ile yapmak bana daha elverişli geliyor. VB.NET’in string komut imkânları daha geniş ve veri tabanı erişimi için sağladığı imkânlar da yeterli iken örneğin C dilini burada kullanmak işimizi ziyadesi ile uzatacaktır. Hız gerektiren bir internet uygulamasında ise Perl ya da python gibi bir dil kullanmak yerine VB. NET ile gerçekleştirmeye kalkmak ise programın yavaş ve hantal çalışmasına neden olacaktır. Sonuç olarak fanatik olup da bir tek dili takım tutar gibi tutmaya gerek yok.
Öğretim yöntemine gelince bence bir dili ya da o dilin komutlarını tamamıyla öğrenmeden önce başlangıç aşamasında algoritmayı öğrenmeli ve algoritmayı bize kavratacak örnekler ve sorular çözmeliyiz. Örneğin bir web browser programı yapmaktan çok daha fazla bize programlama mantığı ve algoritmasını kavratacak olan örnek klavyeden girilen bir sayının faktöriyelini ya da karekökünü bulan program olacaktır. İkincisi kod olarak belki birincisinden çok daha kısa olacaktır ancak bize kazandıracağı çok daha fazla olacaktır. Program yazmanın başlangıç aşamasında çözeceğimiz bu tür problemler bizim kavramlar arasında ilişki kurma, program yapısını kurma, mantıksal bağlantılar ve çıkarımlar yapma gibi becerilerimizi geliştirmeyi sağlayacaktır. Bana göre bir programın algoritmasını kurmak programın % 90’ını, kodlamasını yapmak ise % 10’unu oluşturur. Bu aşamayı bitirip programcılık mantığını kavradıktan sonra artık yukarıda belirlediğimiz kriterler uygun olan dil ya da dillerin öğrenimine geçilebilir.
|
Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 12 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team