Programming blog posts

Kategori: programming (page 1 of 1)

Azure Developer Certification AZ-204 Exam Preparation

In this article I will try to give you tips about preparing yourself for AZ-204 Azure Developer Certification Exam.

Main page of AZ-204 on Microsoft, this page should be your home during your AZ-204 preparation time 😊 You can get detailed information about exam and tips.

Briefly described in this page: “Candidates should have at least 2 years of professional development experience and experience with Azure. They should be able to program in an Azure-supported language, and should be proficient using Azure CLI, Azure PowerShell, and other tools”.

Passing score is 700. You can get information about how score is calculated from here.

In my current company we are member of Enterprise Skills Initiative

You can login with your company mail if your company joined this initiative website. Under Section you will find available certification exams. As you saw below you can schedule exam.

Exam Preparation section gives details about exam. Weighted average of topics covered. Topics group under 5 sections of skills measured. You can watch these videos as starting point. Neil McIsaac is giving high level information about sections. You can reach from here.

From this platform it is possible to do practice tests. If you think you prepared enough both theoretical and practical for exam. There is no limitation on number of practice exam you can take, but questions repeat itself.

I started with Microsoft Learn AZ-204 learning path. I read all documents and I tried the example codes from either provided sandbox or on my local. Microsoft Learn platform is a gamification based platform so that you get XPs, badges, trophies after completing learning path modules.

You can reach all related learning paths for AZ-204 from here You can skip Prepare to teach AZ-204 Developing Solution for Microsoft Azure it is for teaching about exam.

Microsoft Learn also provides Learning Path Labs which has 12 modules. You can gain practical experience on Azure from these labs.

Pluralsight also provides a learning path for AZ-204. I completed this learning path as well. In videos they are giving theoretical information about Azure. This path consists of 19 video courses and 1 guide. There are Exam Alerts that gives you example scenarios which very beneficial for exam. Because in exam you are not asked directly what is what and what is used for what instead of they are giving you example scenario and you will think and try to solve scenario based on giving information in the question.

If you have Pluralsight Premium it also possible to take practice exam provided by CyberVista as well. I took one practice exam from CyberVista. Questions were very similar to original certificate questions. I recommend taking this practical test before exam.

I read Mustafa Erhan Ersoy’s blog post about AZ-204 exam before exam, and I convinced to buy this practice exam set prepared by Scott Duffy from Udemy. If you don’t have Pluralsight account, you can also buy Scott Duffy’s course about AZ-204.

Not just before this exam but in earlier times I completed several courses from LinkedIn Learning.

Azure Microservices with .NET Core for Developers , Azure Event Grid, Azure Administration: Implement and Manage Application Services (2019), Exam Tips: Developing Solutions for Microsoft Azure (AZ-204)

LinkedIn Learning is also providing Learning Path for AZ-204 exam you can reach from here.

My last advice is, schedule your exam when you are not working or any time you have at least half day off. Questions has lots of text in it, and you shouldn’t be tired when reading questions. You can write me if you have any questions.

Winamp to Spotify

I want to tell you about my side project Winamp to Spotify. Digital transformation affected our music listening habits. Before Spotify or any other online music library we used to have mp3 archieves in our hard drives. The aim of this side project is collecting mp3 filenames from harddisk and create Spotify Playlist based on selected folder. So you will be able to listen old songs that you cannot remember.

To use this you need a Spotify Developer Account. To use the Web API, start by creating a Spotify user account (Premium or Free). To do that, simply sign up at After creating a spotify developer account you should register an application through Dashboard.

Creating app on Spotifty Dashboard

After these 3 steps your application should be created successfully.

Dashboard after creating app

After creating you will have ClientID and Client Secret values. After creating app from Edit Settings tab you should set Redirection URLs.

Setting Redirect URLs

By using link you can get your UserID of Spotify User ID.

Getting UserID from Spotify API

To make it work ClientID, SecretID and UserID should be placed in exampleappsettings.config file.

Example appsetting.config file

After setting these config values application is ready to run. You can reach codes from

I learned Access Token based authorization .Net app by github repo. Many thanks to Bart Simons (

Here is GUI of WinampToSpotify windows form app:

GUI of windows form application

First step is getting Access Token. After getting access token select folder to process.To simulate Oauth process with callback I used webbrowser code from post.

Access Token Granted

Example folder I selected Black Eyed Peas.From selected folder path I get the Black Eyed Peas as a playlist name. For creating playlist in Spotify I made a post request to{YourUserId}/playlists endpoint.

Selecting example folder

In project, SpotifyClient.GetTrackUri method created for each track name{trackname}  endpoint called and Returned trackuri stored in dictionary. TrackUri is unique identifier for tracks in Spotify API.

GUI output screen

In project SpotifyClient. AddTrackToPlaylist method created for after getting all trackuri values these tracks added to created playlist. This is done by a post call to{playlist_id}/tracks

Spotify Output

All codes reachable for Windows Form Winamp to Spotify porject

I also created Web application of Winamp to Spotify.First page is below starts with authenticating to Spotify.

After authenticating to Spotify API next page will welcome you. You should enter the path full to search mp3s.

I selected Scorpions folder. And folder processed and created playlist in Spotify.

You can reach Winamp To Spotify web application codes:

Any comments and suggestions are welcome.

Why Python so popular now?

I would like you to tell about why Python programming language is becoming more popular nowadays. Python language is invented by Guido van Rossum in 1991. Its main target was code readability. From 2003 Python programming language entered the most popular programming languages and this popularity increasing linearly. You willl see popularity of a programming language index graph between 2003–2013. This graph is created by Google Trends data which is based on how often language tutorials are searched on Google. Guido van Russom worked at Google between 2005–2012. After Google he started to work in Dropbox now he is working at Dropbox. While he was working at Google, Google became more interested in Python language and started to use in some projects and became an official language. Some of projects listed on Google also has free Python class in

And now in 2019 Popularity of Programming Language chart is below. Python is the first by share nearly %30 and gained +4.2 popularity from previous year.

In this site ( it is shown that Python passed Java and grew by %19 percentage.

Another indicator of popular programming language TIOBE index results showed below. The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written. Python placed 3rd and gain 1 step from previous month.

Up to this point, I showed the increase of Python programming language let’s start to identify why Python becoming more popular. Python is very easy to learn because its syntax very close to English language. Python is a dynamic language that has no strict rules. That’s why it is very enjoyable for who is learning programming for the first time. Fun is a great motivator. There is a fun fact about Python that its name not coming from snake it is coming from an English comedy group Monty Python ( According to research in 2014 July, Python is currently the most popular language for teaching introductory computer science courses at top-ranked U.S. departments. Specifically, eight of the top 10 CS departments (80%), and 27 of the top 39 (69%), teach Python in introductory CS0 or CS1 courses. Another reason is for becoming popular Python programming language is so versatile. Python is a general-purpose language, which means it can be used to build just about anything, which will be made easy with the right tools/libraries. Professionally, Python is great for backend web development, data analysis, artificial intelligence, and scientific computing. Python is second language after R in data mining. Python has 5th most crowded developer community, in GitHub 4th most used programming language. Python has 3rd most crowded group in In Community is another key factor for interest growth.
Large organizations that make use of Python include Wikipedia, Google, Yahoo!, CERN, and some smaller entities like ILM, and ITA. The social news networking site Reddit is written entirely in Python.

Applications for Python
Python is used in many application domains. Here’s a sampling.
The Python Package Index lists thousands of third party modules for Python.

Web and Internet Development
Python offers many choices for web development:
Frameworks such as Django and Pyramid.
Micro-frameworks such as Flask and Bottle.
Advanced content management systems such as Plone and django CMS.

Python’s standard library supports many Internet protocols:
E-mail processing.
Support for FTP, IMAP, and other Internet protocols.
Easy-to-use socket interface.

And the Package Index has yet more libraries:
Requests, a powerful HTTP client library.
BeautifulSoup, an HTML parser that can handle all sorts of oddball HTML.
Feedparser for parsing RSS/Atom feeds.
Paramiko, implementing the SSH2 protocol.
Twisted Python, a framework for asynchronous network programming.

Scientific and Numeric:
Python is widely used in scientific and numeric computing:
SciPy is a collection of packages for mathematics, science, and engineering.
Pandas is a data analysis and modeling library.
IPython is a powerful interactive shell that features easy editing and recording of a work session, and supports visualizations and parallel computing.
The Software Carpentry Course teaches basic skills for scientific computing, running bootcamps and providing open-access teaching materials.

References: python-is- now-the- most-popular-introductory-teaching- language-at- top-u- s-universities/fulltext is-becoming- so-popular/ for-data- mining/

Tasarım Kalıpları Örnekleri (Design Patterns)


Bu yazımda sizlere .Net framework içerisinde yer alan tasarım desenlerinden (design patterns) bahsedeceğim. Farkında olmadan bu tasarım desenlerinden  örneklerini farkında olmadan kullanıyoruz.

Factory Tasarım Deseni

Factory tasarım deseni  aynı abstract sınıfı veya arayüzü uygulayan sınıfların üretiminden sorumludur. En çok bilinen ve kullanılan tasarım desenlerinden olan Factory tasarım deseninin .Net framework içerisinde en güzel örneğini Convert sınfında görebiliriz. İlkel veri tipleri arasında tip değişiklikleri yapmamıza olanak sağlar.

Iterator Tasarım Deseni

Kümelenmiş veri setleri üzerinde dolaşmamıza imkan sağlayan bu tasarım deseni. .Net framework içerisinde IEnumerable sınıfı içerisinde örneklenmiştir. IEnumerable arayüzünü implemente etmiş sınıflar,koleksiyonlar(Collections) içerisinde foreach ile tek tek dolaşmamıza imkan verir.

Örnek olarak bir koleksiyon sınıfı olan ArrayList oluşturup bu sınıfın objelerini foreach kullanarak ekranda gösterdim.

ArrayList sınıfının IEnumerable arayüzünü implemente ettiğini aşağıda görebiliriz. Burada Iterator tasarım deseninin bir örneğini görmüş olduk.

Builder Tasarım Deseni

Birden fazla parçadan oluşan nesnelerin üretilmesinden sorumlu bir tasarım desenidir. Builder tasarım deseni .Net Framework içerisinde birkaç yerde kullanılmıştır. En belirgin örneği veritabanı bağlantı cümleciğinin(connection string) oluşturulmasıdır. Aşağıda DataCatalog,InitialCatalog,IntegratedSecurity,Pooling alanları alarak bir sql veritabanı bağlantısı oluşturulmuştur.

.Net framework içerisinde builder tasarım deseninin bir başka örneği de UriBuilder sınıfıdır.

Observer Tasarım Deseni

Observer tasarım desenindeki objeler arasında 1’e n sayıda ilişki tanımlanır ve bir objede değişiklik olduğunda ona bağlı olan diğer objeler de bilgilendirilir ve otomatik olarak güncellenir. Net framework içerisinde örnek olarak event’ler örnek gösterilebilir. .Net Framework’ün 4.0 versiyonu ile birlikte IObserverable arayüzü ile observer tasarımı deseni desteği direk olarak sağlanmıştır.Bir objedeki değişimin ona bağlı objelere bildirim gönderilmesi ve bu objelerin de otomatik güncellenmesi sağlanır.

Decorator Tasarım Deseni

Objelere dinamik olarak yeni özellikler eklenmesinin sağlayan bir tasarım desenidir. .Net Framework içerisinde bu tasarım deseninin en güzel örneği Stream sınıfı ve ondan türetilmiş sınıflardır.

Her biri Stream sınıfından türetilmiş her biri temelde stream’leri işlemek için kullanılır ancak her biri farklı stream çeşitlerine hizmet eder.

Prototype Pattern

Prototip deseninde referans türünden nesneler bir nesne kopyalama şekli olan derin-kopyalama (deep-copy ) metodu ile kopyalanabilir. Bu methotta yeni referans değişkenine atanması için nesneler kopyalanır. Bu, bellekte aynı türden iki nesnenin oluşturulması anlamına gelmektedir. .Net framework içerisinde örnekleri Cloning ve Serialization’dır.



Python Programlama Dili Neden Giderek Popülaritesini Arttırıyor?

Sizlere dilim döndüğünce 1991 yılında Guido van Rossum tarafından geliştirilen ve ana feslefesi kod okunabilirliği olan Python programlama dilinin artan popülaritesinin nedenlerini açıklamaya çalışacağım. 2003 yılından itibaren en popüler 10 programlama dili arasına giriş yapan programlama dilinin popülaritesi doğrusal bir şekilde artıyor. Aşağıda 2003-2013 yılları arasında PYPL indeksi sonuçlarından oluşturulmuş grafiği göreceksiniz. PYPL (popularity of a programming language index) ilgili programlama dili üzerine ne kadar sıklıkla araştırma yapıldığını ortaya koyuyor. Elde edilen verilerin Google Trends’ten sağlandığı belirtiliyor. Guido van Rossum 2005-2012 yılları arasında Google bünyesinde çalışmış, Google’dan sonra Dropbox firmasında çalışmaya başlamış ve şu an Dropbox firmasında çalışmaya devam ediyor. Van Rossum’un 2005’te Google çalışmaya başlamasıyla birlikte Google’ın yoğun olarak Python programlama dilini kullanması Python programlama diline olan ilgiyi artırmıştır.

2017 Haziran itibariyle durum aşağıdaki gibi: ( adresinden detaylı inceleyebilirsiniz)

Sitede Python’a artan rağbete de değinilmiş. Son 5 yılda Python ile ilgili araştırmalar yüzde 8,2 oranında artış yaşanırken PHP de yüzde 4,8’lik bir azalma meydana gelmiş.

Bir başka programlama dili popülaritesini inceleyen bir başka indeks olan TIOBE in sonuçları da aşağıdaki gibi: Yine değişimin artı yönde olduğunu görüyoruz. TIOBE indeksi de o programlama dilinde çalışan mühendis sayısı, programlama diline yönelik dersler, arama motorlarında aranma sıklığı gibi parametrelerin birleşiminden oluşturuluyor. Burada dikkat edilmesi gereken bu indeks en iyi programlama dili veya programlama diliyle ne kadar çok kod yazıldığını belirlemeye yönelik değildir. Ayrıca stackoverflow sitesinin yaptığı ankette 2013’ten 2017’ye Python programlama dilinin popülerliği %21’lerden %32’lere çıkmış.

Buraya kadar Python programlama dilinin artan popülaritesini ortaya koyduk. Şimdi bu durumun nedenlerinden bahsedelim. Python programlama dili, öğrenmesi oldukça kolay olan, syntax olarak İngilizce diline oldukça yakın, dinamik bir dil olması sebebiyle oldukça esnek bir yapıya sahiptir, katı kuralları yoktur. Programlamaya yeni başlayanlar için alışması oldukça kolay ve eğlencelidir. Bu eğlence de programlama dilini öğrenmek için gerçekten önemli bir motivasyon. Ayrıca Python ismi sanıldığı gibi piton yılanından değil de İngiliz komedi grubu Monty Python’dan gelmektedir. (  2014 Haziran’da yapılan bir araştırmaya göre Amerika’da  Bilgisayar Bilimi bölümlerinde öğrencilere başlangıç programlama dili olarak Python, Java’dan daha fazla tercih edilir hale gelmiş. İlk 10 üniversite içerisinde %80’i, 39 üniversite içerisinde 27’si (%69) Python’u programlamaya giriş dili olarak belirlemişler. Ülkemizde de İTÜ Fizik Mühendisliği bölümünden Berkin Malkoç “Temel Bilimler ve Mühendislik Eğitiminde Programlama Dili Olarak Python” adında bir bildiriye imza atmıştır. Python’un artan popülaritesinin altında kolay öğrenilmesinin yanısıra, geniş bir kullanıcı topluluğuna sahip olması, bilimsel çalışmalara olanak vermesi, çok geniş ölçekte geliştirme yapılabilmesi, veri madenciliği işlemlerini yapabilmesi , derin öğrenme gibi yapay zeka uygulamalarının da geliştirilebilmesi nedeniyle popülaritesini arttırmıştır. Python R programlama dilinden sonra veri madenciliği için en çok kullanılan ikinci yazılım dilidir. Python StackOverflow’da en büyük 5. Topluluğa sahip iken, GitHub’da en çok kullanılan 4. programlama topluluğu olarak en büyük üçüncü kitle sahip programlama dilidir.

Python ile birçok geliştirmeler yapan Google’ın desteği de popülariteyi arttırmıştır. Wikipedia, Yahoo, CERN, NASA Python dilini kullanarak geliştirmeler yapmışlardır. Sosyal medya ağı sitesi Reddit tamamen Python diliyle yazılmıştır.

Python oldukça genel bir programlama dilidir. Web uygulamalarında servis geliştirmeden, veri madenciliğine, yapay zeka uygulamalarına, bilimsel hesaplama uygulamalarına, nesnelerin interneti uygulamalarına (IOT) yönelik geliştirmeler yapılabilir.

Python programlama dilinin kullanım alanları:

Web Uygulamaları Geliştirme

                Django ve Pyramid gibi web frameworkları

                Flask ve Bottle gibi micro-framework’ler

                Plone ve django CMS gibi İleri seviye içeri yönetimi istemleri

Python’un standard kütüphaneleri birçok Internet protokolünü destekler:

                HTML ve XML, JSON, E-mail processing, FTP, IMAP ve diğer Internet protokolleri

                Socket programlama arayüzü oldukça kolaydır.

Ayrıca paketlerde daha kullanışlı kütüphaneler mevcuttur:

                Requests gibi güçlü http istemci kütüphanesi

                BeautifulSoup gibi HTML parse(ayrışımı)

                Feedparser gibi RSS besleme kütüphanesi

                Paramiko gibi SSH2 protokolünü adapte etme

                Twisted Python Asenkron ağ programlama kütüphanesi

Python bilimsel ve numerik hesaplamalarda çokça kullanılır.

                SciPy, NumPy,Matplotlib,SageMath matematik,bilim,mühendislik dallarına yönelik paketler

IPython Paralel progralama ve görselleştirmeye izin veren kolayca düzenlenebilen ve kaydedilebilen bir Shell

Yapay zeka uygulamaları:

                Deepy, Caffe,OpenCV, Theano,TensorFlow, Sci-kit Learn, mlpy(Machine Learning Python), NLTK (Natural Language Toolkit), NeuroLab, PyMC

Nesnelerin İnterneti:

Raspberry Pi için temel programlama dili olarak belirlenmiştir.

MQTT Makineler arası bağlantı protokolü

Zerynth IoT ve Endüstri 4.0 uygulamalarına sahip framework

Veri Madenciliği (Data Mining) Uygulamaları:

Orange Veri analizi ve görselleştirme

PyData Python Veri Analiz Kütüphanesi

Pandas veri analizi ve modelleme