Notice: Undefined index: host in /home/atahanc2/public_html/wp-includes/canonical.php on line 717

Notice: Undefined index: host in /home/atahanc2/public_html/wp-includes/canonical.php on line 728

Notice: Undefined index: host in /home/atahanc2/public_html/wp-includes/canonical.php on line 731

Notice: Undefined index: scheme in /home/atahanc2/public_html/wp-includes/canonical.php on line 752

Notice: Undefined index: host in /home/atahanc2/public_html/wp-includes/canonical.php on line 717

Notice: Undefined index: host in /home/atahanc2/public_html/wp-includes/canonical.php on line 728

Notice: Undefined index: host in /home/atahanc2/public_html/wp-includes/canonical.php on line 731

Notice: Undefined index: scheme in /home/atahanc2/public_html/wp-includes/canonical.php on line 752
Atahan Ceylan Web Diary – Programming blog posts

Atahan Ceylan Web Diary

Programming blog posts

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 https://esi.microsoft.com/.

You can login with your company mail if your company joined this initiative website. Under https://esi.microsoft.com/getcertification 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 http://www.spotify.com 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 https://developer.spotify.com/console/get-current-user/ 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 https://github.com/atahanceylan/winamptospotifyforms

I learned Access Token based authorization .Net app by https://github.com/bmsimons/dotnet-core-spotify-authentication github repo. Many thanks to Bart Simons (https://bartsimons.me/)

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 https://adndevblog.typepad.com/cloud_and_mobile/2016/10/3-legged-oauth-on-desktop-apps-c-winform.html 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 https://api.spotify.com/v1/users/{YourUserId}/playlists endpoint.

Selecting example folder

In project, SpotifyClient.GetTrackUri method created for each track name https://api.spotify.com/v1/search?q={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 https://api.spotify.com/v1/playlists/{playlist_id}/tracks

Spotify Output

All codes reachable for Windows Form Winamp to Spotify porject https://github.com/atahanceylan/winamptospotifyforms

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: https://github.com/atahanceylan/winamptospotifyweb

Any comments and suggestions are welcome.

Common Challenges when Adapting Agile Project Management

In today’s software development environment, requirements has been changing during the product development cycle so that they can respond to changes from customers. Therefore, software development becomes a challenge, adapting changed requirements when development is going on. In the mid 90’s, agile development techniques for software became available. This discipline was strongly influenced by the Japanese industry best practices, mainly the lean manufacturing principles implemented by Honda and Toyota as well as the Knowledge Management strategies suggested by Takeuchi and Nonaka (2004) and Senge (1990).

Agile software development bases itself on an iterative and incremental approach. Software developers work on small modules, and respond to users’ changed requirements rather than follow a specific or predetermined plan of action. The basic design is simple, and changes are made as work progresses. Agile methods stress two concepts: the unforgiving honesty of working code and the effectiveness of people working together with goodwill. Working code tells the developers and sponsors what they really have in front of them—as opposed to promises as to what they will have in front of them. The working code can be shipped, modified, or scrapped, but it is always real.

Agile software management methodologies are gaining popularity rapidly nowadays. This popularity comes from its flexibility to change. This approach has proved to be effective at solving many problems and at forging attractive work environments in many organizations. While it is not suited for everyone, it is suited for many. If your company will use Agile methodologies adopting to it another problem. This article will give you information about difficulties, challenges, issues with a categorical manner and how to avoid them.

Getting an organization to switch to agile processes takes a lot of time and patience. How to adapt Agile methodology it is with the education. Experienced people bring practical knowledge from other situations and environments that can be helpful in avoiding pitfalls, in recommending tips and techniques for executing the project, and in coaching or supporting individual team members.

There is more to going agile than adopting an agile methodology for a project. You and your organization should consider carefully why you need to be agile, how agile you really need to be, and what kind of projects need to be agile. If adopting an agile methodology is not right for all projects or for the organization, then individual agile practices should be adopted in projects to reach experience and management buy-in can help management remove the negative impact of any issues, problems or challenges. Going agile requires executive, senior management, and middle management awareness and buy-in that something will change in the project management practices. They need to understand the benefits of the change as well as the details of how the change will affect operational aspects of the business. Furthermore, they need to understand what will be expected from them and what should change in their behavior. Many cultural and communication problems can be avoided or at least mitigated by aligning with all levels of management before adopting an agile methodology. Of failed Agile implementations, 63% of respondents in one study blamed the clash between their business’s culture and Agile’s business philosophy.

Here are the type of challenges:
The problems include issues with (1) communicating; (2) managing
day-to-day operational problems; (3) gaining buy-in from management, customers, and team
members; (4) changing culture and mindset; and (5) gaining experience and making it work. Of course, some of the issues and challenges are unique and occur due to differences and idiosyncrasies in the organization or the project.

The problems include issues with communicating, managing day-to-day operational problems, gaining buy-in from management, customers, and team members, changing culture and mindset, and gaining experience and making it work. Of course, some of the issues and challenges are unique and occur due to differences and idiosyncrasies in the organization or the project.

Imposing agile principles on process-centric, non-collaborative, optimizing organizations is likely to fail. Imposing a change embracing process on sedate project teams may not be reasonable. Attempting to get close user collaboration with organizations that have little time to spend with developers won’t work. The biggest limitation of agile methodologies is how they handle larger teams. Agile methodologies rely heavily on communication, so large teams make it difficult to use agile methods. There is a clear inverse relationship between agile techniques and project complexity. Agile development is more difficult with larger teams. The average project has only nine people, well within the reach of the most basic agile processes.

Nevertheless, it is interesting to occasionally find successful agile projects with 120 or even 250 people. Agile development excels in exploratory problem domains— extreme, complex, high-change projects—and operates best in a people-centered, collaborative, organizational culture. This approach has proved to be effective at solving many problems and at forging attractive work environments in many organizations. While it is not suited for everyone, it is suited for many. They state that “project success is measured not just by completion of the scope of work to time, cost, and quality, but also by performance of the projects outputs, outcomes, and impacts.

 Inadequate experience with agile methods

  • Little understanding of the required broader organizational change
  • Company philosophy or culture at odds with agile values

To build an effective team, Agile project managers must constantly practice and reinforce effective communication. Getting feedback early and often is a cornerstone of Agile project management, so being an effective communicator is important for management and individuals to ensure the customer is getting exactly what is needed – nothing more and nothing less. Getting a deliverable in front of a customer early helps teams learn more about purpose behind what they are developing so they can do it better.

•             Educate and Align with the Management Team

•             How to adapt Agile methodology it is with the education.

Going agile requires executive, senior management, and middle management awareness and buy-in that something will change in the project management practices. They need to understand the benefits of the change as well as the details of how the change will affect operational aspects of the business. Furthermore, they need to understand what will be expected from them and what should change in their behavior. Many cultural and communication problems can be avoided or at least mitigated by aligning with all levels of management before adopting an agile methodology.

  • Hire external consultants:

Experienced people bring practical knowledge from other situations and environments that can be helpful in avoiding pitfalls, in recommending tips and techniques for executing the project, and in coaching or supporting individual team members. While having many team members with experience is ideal, the Agile Coach, Product Owner, and Agile Tester are three roles where experience is most appreciated, as those are the topics where the most issues surface.

There is more to “going agile” than adopting an agile methodology for a project. You and your organization should consider carefully why you need to be agile, how agile you really need to be, and what kind of projects need to be agile. After answering these questions, you can start discussion and planning to decide the right agile methodology. If adopting an agile methodology is not right for all projects or for the organization, then individual agile practices should be adopted in projects to reach a desirable level of agility. Day-to-day operational problems will occur. Having team members with experience and management buy-in can help management mitigate the negative impact of any issues, problems, or challenges.

This is a literature review. I mentioned my references below:

References:

  1. https://www.researchgate.net/publication/230634624_Scrum_agile_product_development_method_-literature_review_analysis_and_classification
  2. https://www.academia.edu/7999605/Agile_Software_Development_The_People_Factor
  3. http://www.umsl.edu/~sauterv/analysis/challenges_of_migrating_to_agile_methodologies.pdf
  4. https://www.altexsoft.com/whitepapers/agile-project-management-best-practices-and-methodologies/
  5. http://www.dsc.ufcg.edu.br/~garcia/cursos/ger_processos/seminarios/Crystal/Agile%20Software%20Development%202%20The%20People%20Factor.htm
  6. https://www.pmi.org/learning/library/agile-problems-challenges-failures-5869
  7. https://www.business2community.com/marketing/15-incredible-agile-project-management-statistics-2018-01939694

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 https://quintagroup.com/cms/python/google. Google also has free Python class in https://developers.google.com/edu/python.

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 (http://pypl.github.io/PYPL.html) 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 (http://www.montypython.com/pythons). 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 Meetup.com. 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:
HTML and XML
JSON
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:
https://cacm.acm.org/blogs/blog-cacm/176450- python-is- now-the- most-popular-introductory-teaching- language-at- top-u- s-universities/fulltext
http://pypl.github.io/PYPL.html
https://www.tiobe.com/tiobe-index/
https://www.monitis.com/blog/why-python- is-becoming- so-popular/
http://dataconomy.com/2015/01/python-packages- for-data- mining/

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

Merhabalar,

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.

Referanslar

  1. https://stackoverflow.com/questions/3252499/what-design-patterns-are-used-throughout-the-net-framework
  2. http://naveensanks.blogspot.com.tr/2011/07/examples-of-design-patterns-used-in-net.html

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: (http://pypl.github.io/PYPL.html 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. (http://www.montypython.com/pythons)  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 dilidir.Meetup.com 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

Referanslar