49.Hafta: Bir Yazılımcının Yolu
Haftalığımızın(yeri gelir fanzin olarakta adlandırabilirim.Tek nedeni bu kelimeyi seviyor olmam.) 2.kısmıyla 49. hafta olarak devam ediyoruz. 48.haftaki yazıdan aldığım olumlu eleştiriler beni bu seriyi sürdürmeye daha da motive etti, umuyorum planladığım gibi uzun bir seri olacaktır. Tekrardan tüm okuyanlara teşekkürlerimi sunuyorum.
Yukarıda ki kısa girişten sonra, geçen hafta söz verdiğimiz gibi basitleştirilmiş kitabi bir dille biraz Python’dan bahsedeceğim.Nasıl kurulur? Ben hangi arayüzü kullanıyorum? İçeriğinde ne gibi komutlar var? Birkaç egzersiz sorusu. Buna ek olarak, diğer alanlarda çalışan geliştiricilerden olan ‘Front-end’ yazılımcılar hangi programları kullanıyor kısaca onlardan bahsedeceğim. Son olaraksa, yazının uzunluğuna ve sıkıcılığına göre işletim sistemlerinden bahsedeceğim.
48.haftada tarihi bilgiler verdiğimiz Python programı hakkında bu hafta daha işlevsel bilgiler verelim. Öncelikle kendi bilgisayarımıza nasıl Python yükleriz? Resmi web sitelerinden (https://www.python.org/) kendi işletim sisteminize uygun olanı indirebilirsiniz. Akabinde arayüz olarak kullandığım ve çok işlevsel bulduğum PyCharm’ı şu linkten indirip, programımızı kullanıma hazır hale getirebiliriz. (https://www.jetbrains.com/pycharm/). Bu indirme aşamasıyla ilgili bir video çekmem belki daha yardımcı olacaktır. Muhakkak yazıyı paylaştığım platformların yorum kısmına bu videonun linki ekleyeceğim. Şu an fotoğraflarla yetinebiliriz.
Python’ın içeriğinde neler olduğuna geçmeden önce bir ufak not eklemek istiyorum. Programla yapabilmek için fazlasıyla matematik gerekli midir? Kendim de matematik okumuş ve bu konuda dersler veren biri olarak, çoğu insan için matematik eşittir kabus olduğunu gördüm. Ama aslında, birçok programlama dili veya işi için basit aritmetik dışında matematik gerekmiyor. Bunu, Sudoku çözmek için matematik bilgisi gerekliliğine benzetebiliriz.
Şimdi gelelim Python’ın içinde neler var? Bu programlama dilinle neler yapabiliriz? Avantajlarımız, dezavantajlarımız nelerdir?
Python’un en önemli özelliklerinden biri okunabilirliği ve kullanım kolaylığıdır. Python dilini kullanıp, programlamaya yeni başlayanlar için bile anlamayı ve yazmayı kolaylaştıran basit, İngilizce benzeri bir sözdizimi kullanır. Bu, programcıların dilin karmaşıklığı konusunda endişelenmek yerine kodlarının mantığına odaklanmalarını sağlar.Python sadeliğinin yanı sıra çok yönlü bir programlama dilidir. Web sunucuları ve veri analiz araçlarından oyunlara ve mobil uygulamalara kadar çok çeşitli uygulamalar oluşturmak için kullanılabilir. Bu çok yönlülük, onu birçok farklı proje türü için popüler bir seçim haline getirir.Python’un bir diğer önemli özelliği de geniş, aktif topluluğudur. Bu geliştirici ve kullanıcı topluluğu, programcıların karmaşık uygulamaları hızlı ve verimli bir şekilde oluşturmasını kolaylaştıran kitaplıklar dahil olmak üzere çok sayıda kaynak sağlar. Bu topluluk aynı zamanda Python’un düzenli olarak yayınlanan yeni özellikler ve güncellemelerle gelişmeye ve gelişmeye devam etmesini sağlamaya yardımcı olur. Birçok avantajına rağmen Python’un bazı sınırlamaları vardır. Örneğin, yüksek performanslı bilgi işlem için en hızlı dil değildir ve donanımın son derece düşük düzeyde denetimini gerektiren uygulamalar için en iyi seçim olmayabilir. Bununla birlikte, çoğu uygulama için Python’un sadeliği, çok yönlülüğü ve güçlü topluluk desteği, onu programcılar arasında en iyi seçim haline getirir.Genel olarak Python, basitlik, çok yönlülük ve güçlü topluluk desteği sunan güçlü ve popüler bir programlama dilidir. Birçok özelliği, web geliştirmeden veri analizine kadar geniş bir uygulama yelpazesi için mükemmel bir seçimdir. İster programlamaya başlamak isteyen bir acemi olun, ister çok yönlü bir dil arayan deneyimli bir geliştirici olun, Python’la programlamaya başlamak hem benim gibi C++ dilinde programlar yazmış biri olarak hem de yeni başlayanlar için harikulade bir seçim olacaktır. Bu yazı dizisine başlarken dediğim gibi bu benim kişisel bir haftalığım, belki de okuyucular için küçük bir yol gösterici, bu sebeple programlama dilini bu yazıdan öğrenemeyecekseniz ama daha önemli olan programlama dilini nasıl öğrenebileceğinizi öğretme vaadim geçerli olacaktır. Bu büyük cümleyi de yazdıktan sonra genel ve sade bir şekilde eğer Python dersi (Kaynak kısmını konrol etmeyi unutmayın!) takip ettiğinizde hangi konu başlıklarını göreceğinizi yazmak isterim;
- Sayılar, dizeler ve booleanlar gibi temel sözdizimi ve veri türlerini,
- Döngüler başlığı altında if ifadeleri ve while döngüleri gibi kontrol yapılarını
- İşlevlerin nasıl tanımlanacağı ve çağrılacağı ve yerleşik ve kullanıcı tanımlı işlevlerin nasıl kullanılacağı dahil olmak üzere işlevler konusunu
- Listeler, kümeler ve sözlükler gibi veri koleksiyonlarıyla nasıl çalışılacağını
- Sınıfların ve nesnelerin nasıl tanımlanacağı ve kullanılacağı da dahil olmak üzere nesne yönelimli programlama konusunu
- Kodunuzdaki hataları ve istisnaları işlemenize olanak tanıyan istisna işleme konusunu
- Kodunuzu düzenlemenize ve yeniden kullanmanıza olanak tanıyan modüller ve paketler konusunu
- Dosyalardan okuma ve dosyalara yazma da dahil olmak üzere dosyalar ve dosya sistemi ile çalışma konusunu
- Ağ bağlantılarının nasıl yapılacağı ve ağ üzerinden veri gönderilip alınacağı dahil olmak üzere ağ oluşturma konuları
gibi başlıkları en temelde öğreneceksiniz. Tabiki geri kalan her şey sizin parmaklarınızın ucunda olacaktır.
** Yukarıda bahsettiğim kurulum ve Python dilinin detaylı anlatımını ve derslerini ancak video yardımıyla yapabilirim. Eğer ayarlayabilirsem, youtube hesabım için ilerleyen zamanlarda video çekebilirim.
Bu kısımda temel düzeyde programlama dili bilenler için birkaç egzersiz bırakacağım.
Egzersiz 1) Bir araba oyunu için arayüz yazdığınızı düşünün, kullanıcıdan almanızı istediğim 3 komut olacaktır. Çalıştır, Durdur ve Yardım. Kullanıcı bu yazılandan başka bir şey girdiğinde program bunu anlamasın. ‘Çalıştır’ dediğimizde ‘araba çalışıyor’ , ‘durdur’ dediğimizde ‘araba durdu’ ve ‘yardım’ dediğimizde ise ‘çalıştır- arabayı çalıştırır.’ ‘durdur-arabayı durdurur.’ ‘çıkış- oyundan çıkar’ komutlarını alan bir program yazabilir misiniz? Daha da ileri götürsek eğer araba çalışıyorsa tekrar çalıştır komutunu girdiğimizde zaten araba çalışıyor şeklinde programı yapılandırabilir misiniz?
Egzersiz 2) Belirli bir listenin ilk ve son sayısı aynıysa, True. Farklıysa, False sonucu veren bir program yazabilir misiniz?
** Çözümlerini ayrı bir yazıda veya önümüzdeki haftaki yazıda paylaşacağım. Meraklı olup çözüm yapanlar bana sosyal medya ve mail adresimden ulaşabilirler. Uzantıları kaynaklar kısmına bıracağım.
49. haftada bahsetmek istediğim diğer önemli bir konu başka alanları bilmenin ne kadar önemli olacağının temelini atacaktır. Buna karşı çıkanlar muhakkak olacaktır ama bu benim tamamen kişisel görüşüm. Bunun doğru veya yanlış olduğunu önümüzdeki zamanlar gösterecektir diyebilirim.
Temel olarak 3 konu başlığım olacaktır. HTML, CSS ve JavaScript. Detaylarına girmeyip ne oldukları hakkında bilgiler yazacağım.
HTML nedir? Ansiklopedik bilgiler verelim. Detayları önümüzdeki haftalarda vereceğim veya ayrı bir yazı dizisi olarak ekleyeceğim. Şimdilik planım bu şekildedir. Ayrıca tekrar hatırlatma kaynaklar kısmını kontrol etmeyi unutmayınız.
Hypertext Markup Language olarak isimlendirilen HTML, World Wide Web’deki içeriği oluşturmak ve yapılandırmak için kullanılan bir programlama dilidir. HTML, web sayfaları oluşturmak ve yapılandırmak için yaygın olarak kullanılanılır. HTML, etiketler kullanılarak yazılmış metin tabanlı bir dildir. Bu etiketler, bir web sayfasının başlıklar, paragraflar ve bağlantılar gibi farklı öğelerini işaretlemek için kullanılır. Etiketler, web tarayıcısına bir web sayfasının içeriğinin nasıl görüntüleneceğini söyler.(Örnek arayüz için görsele bakınız.) HTML, web’in temel bir yapı taşıdır ve web sayfalarının yapısını ve düzenini oluşturmak için kullanılır. Basit metin tabanlı sayfalardan karmaşık etkileşimli uygulamalara kadar çok çeşitli web içeriği oluşturmak için kullanılabilecek çok yönlü bir dildir. Html’nin temel özelliklerinden biri, web’deki farklı sayfalar arasında bağlantılar veya köprüler oluşturma yeteneğidir. Bu bağlantılar, kullanıcıların sayfalar arasında kolayca gezinmelerini sağlar. Genel olarak HTML, web’in hayati bir bileşenidir ve tüm web içeriğinin üzerine inşa edildiği temeldir. Geliştiricilerin çok çeşitli web tabanlı içerik oluşturmasını sağlayan güçlü ve esnek bir dildir ve web siteleri veya web uygulamaları oluşturmak isteyen herkes için önemli bir araçtır demiş ansiklopedi hazretleri. Kısaca, şu an bu sayfayı görebilmenizin bir sebebi HTML’dir.
CSS veya Cascading Style Sheets, HTML gibi bir biçimlendirme dilinde yazılmış bir belgenin sunumunu tanımlamak için kullanılan bir stil sayfası dilidir. CSS, web sayfalarının görünümünü ve düzenini kontrol etmek için kullanılır ve web tasarım ve geliştirmenin önemli bir parçasıdır.CSS, bir web sayfasının içeriğinin nasıl görüntülenmesi gerektiğini belirleyen kurallar veya “stiller” kullanılarak yazılmış metin tabanlı bir dildir. Bu stiller genellikle daha sonra HTML sayfasına bağlanan ayrı bir CSS dosyasında tanımlanır. Bu içerik ve sunum ayrımı, tasarımcıların temel HTML kodunu değiştirmek zorunda kalmadan bir web sitesinin görünümünü ve hissini kolayca değiştirmelerine olanak tanır.Css’nin en önemli özelliklerinden biri, bir web sayfasının düzenini kontrol etme yeteneğidir. Tasarımcılar CSS kullanarak bir sayfadaki öğelerin boyutunu, konumunu ve düzenini belirleyebilir ve hatta yüksek derecede hassasiyetle karmaşık grid tabanlı düzenler oluşturabilir. Bu, bir web sitesinin tasarımı üzerinde daha fazla esneklik ve kontrol sağlar ve çok çeşitli farklı düzenler ve stiller oluşturmayı mümkün kılar.CSS, mizanpaj ve stil yeteneklerine ek olarak, tasarımcıların web sayfalarına etkileşim ve dinamik efektler eklemelerine de olanak tanır. Tasarımcılar CSS kullanarak, kullanıcı deneyimini geliştirebilecek ve bir web sitesini daha ilgi çekici ve etkileşimli hale getirebilecek vurgulu durumlar, animasyonlar ve diğer görsel efektler oluşturabilir.genel olarak CSS, web tasarım ve geliştirmenin önemli bir parçasıdır ve tasarımcıların görsel olarak çekici ve kullanıcı dostu web siteleri oluşturmasını sağlayan güçlü ve esnek bir dildir. Web siteleri veya web uygulamaları oluşturmakla ilgilenen herkes için hayati bir araçtır ve modern web geliştirme ortamının önemli bir parçasıdır diyerek CSS hakkında ansiklopedik bilgilerimizi burada sonlandıralım.
Web tasarlama araçlarında son olarak bilgi vermek istediğim dil JavaScript olacaktır. Yazı pazar gününe hazır hale getirmekle de uğraşacağım için işletim sistemleri konusunu önümüzdeki haftaya sarkıtmayı planlıyorum. Sonuçta, benim de konu hakkında çalışmam ve kaynak taraması yapmam lazım. O yüzden henüz yayına eklemek için hazır olamayacağım. Pekala, bilgilendirmeden sonra sıra geldi. JavaScript nedir?
JavaScript, web sitelerine etkileşim ve dinamik işlevsellik eklemek için yaygın olarak kullanılan bir programlama dilidir. Basit etkileşimli formlardan ve menülerden karmaşık web tabanlı oyunlara ve uygulamalara kadar çok çeşitli web tabanlı uygulamalar oluşturmak için kullanılan çok yönlü ve güçlü bir dildir. JavaScript, diğer programlama dillerine benzer bir sözdizimi kullanılarak yazılmış metin tabanlı bir dildir. Yani diğer diller gibi vaktinden önce derlenmek yerine çalışma zamanında web tarayıcısı tarafından yürütülür. Bu, JavaScript’in kullanıcı girişine yanıt verebilecek ve gerçek zamanlı olarak değişebilecek dinamik ve etkileşimli web sayfaları oluşturmak için kullanılmasına olanak tanır.(Bu konuya ayrıca değinmek isterim. Yeniden başka yazıya veya başabilirsem Youtube videolarına saklıyorum.). JavaScript’in temel özelliklerinden biri, Belge Nesne Modelini veya DOM’u çalıştırabilme yeteneğidir. DOM, bir web sayfasındaki öğelerin ağaç benzeri bir temsilidir ve bir web sayfasının görünümünü ve davranışını değiştirmek için DOM’a erişmek ve değiştirmek için JavaScript kullanılabilir. Bu, geliştiricilerin kullanıcı girişine yanıt verebilecek ve gerçek zamanlı olarak değişebilecek dinamik ve etkileşimli web sayfaları oluşturmasına olanak tanır. JavaScript, zengin kütüphane ve çerçeve ekosistemi sayesinde web tabanlı uygulamalar oluşturmak için de popüler bir dildir. Bu kütüphaneler ve çerçeveler, karmaşık web tabanlı uygulamalar oluşturmayı kolaylaştıran ve geliştirme sürecini hızlandırmaya yardımcı olabilecek çok çeşitli önceden oluşturulmuş işlevler ve araçlar sağlar. JavaScript, web’de kullanımına ek olarak, Node.js gibi teknolojileri kullanarak sunucu tarafında çalışan uygulamalar oluşturmak için de popüler bir dildir. Bu, JavaScript’in bir uygulamanın ‘Full-Stack’ işleyebilen web uygulamaları oluşturmak için kullanılmasına izin verir.Genel olarak JavaScript, dinamik ve etkileşimli web siteleri ve web tabanlı uygulamalar oluşturmak için gerekli olan çok yönlü ve güçlü bir dildir. Geliştiriciler arasında popüler bir dildir ve modern web geliştirme ortamının önemli bir parçasıdır.
Ne uzun ne kısa tam kararında 49.hafta notlarımında sonuna geldiğimi hissediyorum. Genel olarak bu hafta yazım daha sıkıcı geldi bana. Bence yeni kuşağın da hiç sevmeyeceği bir yazı oldu, çünkü video yok. Ama bu haftalığımı yazarken eğlenceli bir gelişme oldu.(Blokta bulunan bir önceki yazıya bakabilirler.) Openai adlı şirket yeni versiyon bir chatbot tanıttılar. Kendisiyle uğraşma fırsatım oldu ve etkilendim. Kafasını karıştırmak istiyorsanız linkini kaynaklar kısmına bırakıyorum. 50. hafta da bizi ne bekliyor kısmına gelelim. Bu sefer yazının girişini işletim sistemleriyle yapacağım ve devamında Python diliyle ilerleyeceğiz. Ekstra konular aklımda mevcut ama kesin olmadığı için buraya eklemiyorum. Yeniden son cümlem, meraklılar lütfen kaynak kısmını kontrol etsinler.
KAYNAKLAR;
Python Hakkında:
- https://www.python.org/
- https://www.freecodecamp.org/news/how-to-learn-python/
- https://pythonprinciples.com/
- https://youtu.be/_uQrJ0TkZlc
HTML Hakkında:
CSS Hakkında:
- https://www.youtube.com/watch?v=yfoY53QXEnI
- https://www.youtube.com/watch?v=FqmB-Zj2-PA
- https://flexbox.io/
JavaScript Hakkında:
- https://www.youtube.com/watch?v=hdI2bqOjy3c&t=2s
- https://www.youtube.com/watch?v=P7t13SGytRk&t=22s
- https://exploringjs.com/
OpenAI Hakkında: