Python'la ilg olumsuz deneyim yaşadığımı anlatmama bakarak bir tutorial'ı yarısına kadar okumadığımı iddia ederek komedide yeni bir kulvar açtın seyfi84. Ya sen sorunlar ve deneyimler ile insanları ayrı tutma özürlü müsün? Dünyanın en iyi tecrübeli programcısı bile bazı dillerde platformlarda veya bazı projelerde sorun yaşayabilir bilmiyor musun? Ben polyglot'um (al sana bir buzzword daha!) Yani bir projede hangi dil daha cok modül içeriyorsa, hangi dil projedeki sorunları daha pratik çözebileceği izlenimi veriyorsa o dili seçen bir polyglot'um. "Web Scraping" alanında, aç Google'ı bak araştır. Python Web Scraping alanında bir şekilde en çok kullanılan ve en etkili modül ve kütüphaneleri içeren dil. Python'u zamanında (2003) kullandım ancak pek ısınmadım ve bir daha kullanmadım. 2008'de Google App Engine yaygınlaştığı sırada bir kitabını alıp öğrensem mi şu Python'u diye düşündüm ancak yine olmadı ve sonra Ruby ve PHP'ye bir daldım ve yıllarca öyle devam ettim. Geçen yaz ufak bir Web Scraping işi için favori dilim Ruby 'yi kullandım ancak Ruby'nin HTML/XML parselleme /parsing NOKOGIRI 'de ciddi sorun yaşadım. Sorun da neydi, parsellenen web sayfalarında bazı etiketler sonlandırılmamıştı, yani mesela <dt> ile başlayan satırın sonunda </dt> yok! Firefox ta düzgün görüntüleniyor ancak NOKOGIRI'de patlıyordu! Ne yapsaydım NOKOGIRI'ye yama mı atsaydım yoksa gelişticilerine değişiklik isteği mesajı gönderip çözülmesini mi bekleseydim. Hemen arayışlara başladım ve Python 'un BeautifulSoup kütüphanesine denk geldim hemen denedim, ve aha süper çalıştı. Cunku bozuk HTML satırlarının doğrusunu tahmin edip düzeltiyordu! Kütüphane ne için vardıriİşte bunun gibi durumla için vardır zaten nitekim Python BeautifulSoup ile projeyi bitirdim ve Python hanesine artı yazdım. Ve geçen ay cok daha kapsamlı bir WS projesi alınca yine Python la hallederim diye düşndüm ancak yukarda bahsettiğim sorunları yaşayınca bir anda rüzgar tersine döndü ve başta artı yazdığım dile iki eksi yazdım. Çok zor anımda istediğim gibi çalışmadığı için eksisini biraz fazla hissettim. Ve PyCharm isimli IDE'yi de ilk kez bu projede kullandım ve onda da çeşitli sorunlar yaşadım ancak dikkar ederseniz onları iletmedim. Aklıma gelenleri şimdi ileteyim: Bir kere IDE açılırken 30sn boyunca CPU tavan yapıo, herhalde bir yığın dosya işlio ve Jetbrains sitesi ile veri alışverişi yapıo, bir yığın gereksiz güncellik ve ne olduğu belirsiz kontroller yapıo fakat onların hiçbirisine ihtiyacım yok, talebim de yok. ZoneAlarm'dan o bağlantıları engelleyeyim dedim bu sefer Java JRE hata verdi cunku PyCharm Java nın soket / IO yordamlarını yanlış ve uygunsuz kullanıyordu, başka bir deyişle PyCharm temelde düzgün tasarlanmamıştı. Ancak asıl sorun editör sayfası sağında kod büyüteci gibi çeşitli fuzuli bir özellik vardı ve CPU dan herşeyden yediği gibi gereksiz yer işgal ediyordu 1920*1200 monitörüm yetmio, 4k monitör mü alayım, o özellikleri kapatayım dedim kapatamadım, PowerSave modu demişler o modu devreye alıp kapatabildim ancak bu sefer IntelliSense özelliği de gitti! Yani PyCharm yapımcıları "kullanıcı bunu böyle kullanmalı" diyerek kendi kendilerine çok şey yapmışlar ama bana hiç uymadı, zor projede onlar bana fren etksiiz gösterdi ve onları da PyCharm tarafında eksiler olarak yazdım. Bir dahaki sefere Python'da IDE olarak ne kullanırım tabi ki Emacs! Tüm bu süreçte deneyimler son sözü söyler. Sen öyle ona buna laf atacağına deneyimlerini iletsene yok herkes bilir öyle laf atmayı. Kolayı değil zoru seç biraz. |
|
Pythonda zaman işlemleri için aşağıdaki modüle bakabilirsiniz. http://arrow.readthedocs.io/en/latest/ |
| Arkadaşlar bayağı birbirine girmişler de herkes üstün körü bişeyler söylemiş, bütün yorumları okumadım fakat gördüğüm kadarıyla herkes anketlere göre konuşmuş. Python hiç kullanmadım yaklaşık olarak 5 senedir asp.net kullanıyorum ama diğer dilleri kullanmamış olmam elbette bilgi sahibi olmadığım anlamına gelmiyor. Şimdi kullandığım dili savunarak başlayayım önce bazı arkadaşlar neden büyük projelerde büyük şirketlerde c# kullanılmıyor, şundan dolayı 3-4 yazılımcısı olan şirkette sen kaçak yazılım kullanabilirsin belki ama binlerce yazılımcısı olan şirketlerde bunu yapamazsın lisans ücretlerinden dolayı c# tarafından tercih edilmez, durum basittir tamamen bundan ibaret Türkiye de böyle büyük ölçekli yazılım şirketi olmadığı için, kursların yaygın olup kaynakların bol bulunmasından ve harika bir ide si ne olduğu için c# daha çok tercih ediliyor. Telefondan yazdığım için daha detaya inemiyorum neyse devam edelim. Python a gelince gerçekten güçlü bir dil ve benimde öğrenmek istediğim dillerden bitanesi,şimdi bu dil önümüzdeki yıllarda daha çok kullanım oranı artacak doğrudur ama şundan dolayı, gelecek yapay zeka da ve Python bunun için çok elverişli bir dil, şuan o anketlere bakarsanız R diye bir dil de görürsünüz yükselmekte olan R da yapay zeka alanında çok kullanılan bir dil ve Türkiye de yapay zeka alanında birşey yapılmadığı için bu diller daha çok yurt dışında popüler ve hızla da artıyor. Yapay zeka alanında yazılan kitaplara bakarsanız ya Python yada R görürsünüz c# göremezsiniz yada çok nadir görürsünüz ki sanmıyorum. Durum bundan ibaret geleceğe yatırım yapacağım dersen yapay zekaya bak derim tabi bunun için ileri seviyede matematik gerekli bunun yanında da bitane dil öğren, bir tane de yetmez farklı tiplere 2-3 dil bilmek gerekli en azından yazılan kodu okumak gerekli yoksa ufak şirketlerde birkaç şey bilip yıllarını geçiren insanlar var, ingilizce bu işin bel kemiği ingilizcen yoksa ilk önce onu hallet yoksa böyle derya deniz bir alana yüzme bilmeden girmek gibi bişey olur |
|
Fırat Özgül ün kitabını tavsiye ederim.İstihza.com un sahibidir ve forumunda istediğin soruları sorabilirsin Ve öğrenirken zorlandığın bir konu olursa banada sorabilirsin Benimde Python Dersleri verdiğin sitem: www.python.imzali.net İstihza.com www.istihza.com |
Programlamaya başlamak için 1 dönem okullarda gösterilir sonra hiç bi yerde kullanılmaz. Gir kariyer.netden iş ilanlarına bak bakalım kaç kişi python bilen mühendis arıyor. Ben pyhton biliyorum diyip iş bulman imkansız. Pythonda direk siyah ekranda işlem yaparsın altında sonucu görürsün >>>printf "deneme" deneme gibi. Döngüleri falan öğrenirsin işler nasıl yapılıyor diye ufak fikrin olur. Ondan sonra ister istemez zaten farklı bi dile geçeceksin. Ki geçeceğin dil büyük ihtimal c# olacak. Bi piyasa araştırması yap bak bakalım hangi dil çok kullanılıyor, istanbulda programlama dillerinde hangi dil daha çok öğretiliyor. Karşına hep c#, java, asp.net falan çıkacak. Java başta zor geleceği için en iyisi c# öğrenmek. Ben olsam c#la başlardım. Gerçi kontrol mühendisliği hangi programları kullanır ne yapar bilmiyorum ilanlarda aranan şartlara göre bi kabataslak kafanda oluşturabilirsin. En kötü git c#, python, c++ dilleriyle ilgili bi dünya video var youtubeda. 10-20dk izle nasıl kod yazılıyor ne yapılıyor diye. Hangisi hoşuna giderse onu seçersin. Ben görseli severim giderim sen siyah ekranı falan filan... Hep söylediğim birşey var insan siyah ekrandan 1 ayda sıkılır. Ama c#da yapabileceklerinin sınırı yok. Siyah ekranda loto programı yaparsın rastgele 6 sayı yazdırırsın 1-60 arasında direk yanyana yazar. C#da kutular koyarsın renk verirsin, efekt falan koyabilirsin. Arayüzü olduğu için devamlı tasarım yaparsın. Ve not defteri, hesap makinesi, mayın tarlası vb. şeylerin çok basit olduğunu zamanla görünce daha çok zevk almaya başlayıp komplike programlar yapmaya başlarsın. Bİlet satış programı falan |
|
Python programlama dilini ilk defa duyduysanız öncelikle şu yazıyı okumanızı tafsiye ederimhttp://www.pythontr.com/makale/python-nedir-235 Python programlama ilgili örnekler içindehttp://www.pythontr.com/makalelerkategori.py?kid=1 bu adresi takip edebilirsiniz. |
Ne alaka |
|
Bence bi işine yaramaz. C# en çok kullanılan programa dili. Phyton çoğu okullarda bile gösterilmiyor artık. |
@seyfi84 herkese öyle yazıyor, gerçekleri çok iyi bildiğini zannediyor ancak alakası yok. Müşterim elindeki bir yazılımın güncellenmesi için neden beni tercih ettiğini dahi bilmeden lafa dalmış. Müşterimin beni tercih sebebini söylüyorum:
Müşterim elindeki Web Scraping yazılımını bir yazılımcıya zamanında 1000TL'ye yaptırmış. Geçen zaman zarfında yazılıma bir ek özellik eklemek gerekince eski yazılımcı bunun için 1000TL daha istemiş. Ben ek özellik dahil aynı yazılımı sıfırdan yapacağım şekilde 750TL teklif ettim yani eski yazılımcıda toplamda 2000TL malolacak yazılım 750TL'ye gelecekti. Şimdi şu herşeyi süper iyi bilen seyfi efendiye sormak lazım: Aynı yazılımı 2000TL ye mi 750TL ye mi alır kendisi?
Eski yazılımcı .NET 4.5 kullanmış, benim de .NET kullanmışlığım var ve bayağı da biliyorum ancak daha önce kendim Python'la basit bir web scraping uygulaması yaparken Python'un pratikliğini gördüğüm için ve .NET ile hiç ws uygulaması yapmadığım için ve maksimum Windows bilgisayarım Vista olduğu için (normalde Mac kullanıyorum) bu uygulamayı Python'la yapmaya karar verdim.
Bu uygulama İngiltere'deki bir siteden veri cekecekti ve verileri JSON'layıp kaydetmek gerekecekti o yüzden datetime/tarih-zaman'ları GMT+03 'e cevirmek ve Python nesneleri üzerinde calışmak isteyince zorluk yaşadım. datetime daki zorluğu şekille ifade edeyim. İngiltere'deki datetime'ları alıp Türkiye datetime'ına ancak şöyle cevirebildim:
< Resime gitmek için tıklayın >
Karışıklık ortada. Tabi ki kulağımı uzak taraftan tutuyor olabilirim ve daha kısa yolu yok mudur, vardır ancak o uğraştığım anca o kısa yolu bulamadım ki Python için denilen birşeyi yapmanın sadece bir ve en iyi yolu vardır söylemine de ters birşey oldu bu o yüzden bir kafamdan Python'a bir eksi yazdım. Dictionary'da verilerin sırasının karışması konusuna gelince Python'da sequence types veya başka veri tipi o sorunu halledebiyor olabilir, ancak uygulamamda gereken basit veri yapısı için alelacele veri tipi ararken varsayılan tip olarak dictionary ı buldum ve baktım uyuyor onu kullandım, fakat içindeki verilerin sıralamasını Python'un kafasına göre yaptığını ve sıralamaya müdahele edemediğimi fark edince sorunu ancak uygulamamı Python'un dictionary'deki sırasına göre düzenleyerek çözdüm ancak o zor anımda bu sorun gözümde büyüdüğü için Python'a bir eksi daha yazdım.
Bundan sonra aynı türde (web scraping) uygulama işi alırsam Python kullanır mıyım, zor. Ruby'ye bakarım. Hatta Java ve hatta PHP'ye bakarım. Bir de
< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 4 Ocak 2017; 18:40:44 >
Bu mesajda bahsedilenler: @seyfi84