Python ve Django'nun bir Java / .NET web geliştiricisi alması ne kadar zordur? [kapalı]


19

Birkaç ay önce şu anda ve gelecekteki tüm geliştirme çabalarına liderlik ettiğim küçük bir şirkette yeni bir işe başladım. Şahsen yazılım tasarımı ve geliştirmesinde çoğunlukla Java'dan değil aynı zamanda bir .NET perspektifinden uzun yıllara dayanan deneyime sahibim. Daha sonra kariyerimde .NET'i çok kolay bir şekilde aldım ve tam anlamıyla yere koşmak için hiçbir eğitim gerektirmedim ve bunun üzerine iki farklı perspektif görerek birçok en iyi uygulamanın ve ortak temanın evrenselliğini gerçekten kavramamı ve takdir etmeme yardımcı oldu. aynı sorunu çözmek için.

Patronumun yanında bir başlangıç ​​şirketi var ve çok fazla bilgi vermeden, rota oluşturmak için Google Haritalar'a entegre olan orta derecede karmaşık bir web uygulamasına ihtiyacı vardı.

Aşırı ödeme yaptıkları, büyük ölçüde yetersiz teslim ettikleri ve son teslim tarihini aştıkları web uygulamasını kapattı, şu anda yatırım yaptığı paranın en azından bir kısmını geri kazanmaya çalışmak için mücadele veriyor. Şu anda olduğu gibi sitenin kaynak koduna sahip, ancak yayınlanmadan önce düzeltmesini ve eklemesini istediği şeylerin bir çamaşır listesi var.

Bana biraz ekstra para için bu tarafında yapmak isteyip istemediğinizi sordu ama sorun site Python içinde ne olursa olsun hiçbir deneyimim yok Django kullanılarak yazılmış olmasıdır. Ona bunun için en iyi kişi olmadığımı söyledim çünkü Python veya Django hakkında neredeyse hiçbir şey bilmiyorum ve bunu sıfırdan öğrenmek zorunda kalacaktım. Eğer bir dil ve platform öğreniyorsam onu ​​saat başı faturalandırmamın adil olmayacağını düşünüyorum.

Deneyim seviyemin özetine dayanarak, bunu almamın ne kadar zor veya ne kadar zaman alacağını tahmin edersiniz? Eğer onun zaman kaybı olduğunu düşünüyorsanız kimse deneyimli Python web geliştiricileri bulmak için bir öneri tavsiye edebilir? Para şu an onun için bir endişe kaynağıdır, bu yüzden artık en büyük bütçeye sahip değil.


10
Neden sordun? .Net seni aptal yaptı çünkü zor olacağını düşünüyor musun? Sadece kod. Ne kadar zor olabilir?
S.Lott

1
@ S.Lott, Yetenekli olmak ya da olmama meselesi değil, sadece bana ödeme yapan kişi sınırlı bir bütçeye sahip olduğunda ve PRIMARY gelir kaynağım için doğrudan yöneticim olduğunda kalifiye olmadığım bir işi almak istemiyorum . Kesinlikle ona yapışmak istemem.
maple_shaft

1
Gerçekten bir parça yapmayı denemek ve işe yarayıp yaramadığını görmek zorunda olmayacak mısınız? Burada kimse zamanınıza değer katamaz.
JeffO

2
Bence kendine bir kötülük yapıyorsun. Son deneyimleri göz önüne alındığında, müdürünüzün gerçeği söylemek için güvenebileceği birisinin olmasını isterim, gerçek şu ki "bu çerçeveye aşina değilim ama bir şeyler yapmaya hazırım" olsa bile. En azından, kurtardığı kaynağın herhangi bir değere değip değmediğini söyleyebilmelisin.
Benjol

2
@Benjol, "En azından kurtardığı kaynağın herhangi bir değere değip değmediğini söyleyebilmelisin" Ve tam da bundan korkuyorum. Birkaç saat içinde bir Django Hello World eğitimini anlayabilmem, doğru tahminler yapmak ve hatta kodun kalitesini değerlendirmek için deneyim ve bilgiye sahip olduğum anlamına gelmiyor. Bildiğim kadarıyla, spagetti kodu ve 8.000 satır işlevi, Python'da yapılması gerekenlerin yoludur.
maple_shaft

Yanıtlar:


15

Python, dilin ana satış noktalarından biri olan dil olabileceği kadar öğrenmesi kolaydır. OO dillerinde çok deneyimli biri olarak, başlamak için harika bir konumdasınız. Python ve Java / C # arasındaki temel farklar

  1. Ördek yazma / tip güvenliği eksikliği.
  2. Birinci sınıf fonksiyonlar.

Neden iş için en iyi adam olmadığınızı düşündüğünüzü anlıyorum ve ilk haftanızda diğerleri kadar fazla ilerleme kaydedemeyebilirsiniz. Öte yandan, patronunuz size güveniyor ve Python'u sizden daha iyi tanıyan bazı güvenilmez insanlar tarafından yakıldı.

Eğer patronlarınızın güvenini kötüye kullanmaktan endişe ediyorsanız, ona Nsaatlerce pro bono vermeyi teklif edin . (Ne olduğuna siz karar verirsiniz N.) Bu sürenin sonunda saatlik ücrete değip değmeyeceğinize karar verebilirsiniz. En kötü durumda, o zamanın sonunda çok daha iyi bir Python / Django hissine sahip olacaksınız.


Bu, hem faydalarımız için ona biraz boş zaman vermek için ilginç bir düşünce. Belki sadece bir taahhütten korkuyorum?
maple_shaft

Bunlar temel farklılıklarsa, JavaScript'in çok fazla zorluk çekmesi gerektiğini bilen C # dev ... doğru muyum?
Konrad Morawski

3
C # birinci sınıf fonksiyonları sadece çoğu devs onları kullanmayın #justsaying
sa93

@Morawski Evet, Java, C # veya C ++ ve Perl, Ruby veya JavaScript'ten birini biliyorsanız, Python öğrenmek bir esinti.
Eric Wilson

@ Sa93 ne dedi. Ayrıca (lanet olsun, ben ve benim konu dışı yorumlar ..), ben gerçekten Microsoft hayranı türü değilim (aslında bir Pythonista'yım), ancak kaç işlevsel özellik eklediklerini oldukça etkileyici çeşitli sürümlerde. C # 5.0 oldukça kullanışlı bir dil haline geldi (diğer ilgili dillerle karşılaştırıldığında * öksürük * java * öksürük * VB * öksürük *)
Nadir Sampaoli

8

Bir Python / Django web uygulaması üzerinde kokarca bir çalışma projesi olarak çalışan gömülü bir C programcısı olarak, temel bilgilerin alınmasının kolay olduğunu doğrulayabilirim.

Python genellikle kavramak için çok basittir. Şahsen python belgelerinin kendisini çok yararlı bulamadım - her zaman zaten python bilen biri için bir yardımcı anı gibi görünüyor - ama web yararlı örneklerle dolu. Bir akşam The Python Challenge'ı denemek ve nasıl ilerlediğini görmek isteyebilirsiniz .

İyice Django tavsiye ederim. Veritabanı erişimini soyutlamak için çok iyi bir iş çıkarır ve daha sonra hiçbir veritabanı bileşeni olmayan web projeleri için kullandığım yeterli yardımcı programı sağlar. Genellikle başarmak istediğiniz bir şey düşünüyorsanız, zaten açık bir ada sahip bir yöntem olacaktır. Dokümantasyon da çok iyidir.

Django'nun kurulumu çok basittir, bu yüzden sadece bir deneyin ve nasıl çalıştığınızı görmenizi şiddetle tavsiye ederim. Python ve Django ile oynayan birkaç akşam, gerekli işi yapmaktan memnun olup olmadığınıza karar vermek için size yeterince güven vermelidir.


4

Python / Django paradigması kesinlikle .NET veya Java yığınlarından farklıdır. Birkaç programlama paradigmasından memnunsanız (ve bununla fonksiyonel OO ve statik vs dinamik) demek istiyorsanız muhtemelen bunu başarabilirsiniz. @EricWilson'a göre, Python'un öğrenmesi çok zor değildir (sadece girinti == kapsamı hakkında balistik olmaya hazır olun; p).

"Akıllı ve işleri hallediyor" eski bir atasözü x bir dil aşinalık miktarı "yener".

Temel web yığınını (HTTP, istek / yanıt döngüleri vb.) Ve 3. taraf API'ları (Google) iyi bir şekilde biliyorsanız, biraz daha kolay olacaktır.

Bu WTF anları için de yardıma ihtiyacınız olacak. İster yerel kullanıcı grubunuz, ister çevrimiçi bir forum, isterse StackExchange adlı küçük bir site olsun, Python / Django devs topluluğuna katılın.

Sadece başka bir şey düşünün. Kendinizi turnusol testine sokun. Bir akşam veya hafta sonu öğleden sonra, Python ve Django'yu indirip yükleyin ve öğreticileri ne kadar kolay grok yaptığınızı görün. Kendime verdiğim temel bir test, sahte bir alan nesnesi için bir CRUD ekranı oluşturmak. Bunu yapamazsam (ve BTW'de utanç yoksa) o zaman doğru kişi değilim veya yığın berbat;)

Son olarak burada şeylerin $ tarafı ile dikkatli olurdum. Her zaman bu teknoloji yığınını almak istiyorsanız, belki de her ikiniz de bir iyilik yapıyorsunuz, aksi takdirde yöneticiniz değerli zamanınız pahasına ucuza mal almak için iyi niyetinize güveniyor gibi kokuyor. .


"Aksi takdirde yöneticiniz sizin değerli zaman pahasına ucuz om sabit şeyler almak için şerefine güvenen gibi biraz kokuyor" Ona bunun için yalvarmıyorum, hepimizin kalbinde, özellikle benim zaten ona yardım etme zorunluluğum yok. Eğer bu seçimi yapar ve pişman olursam, o zaman sadece kendimi suçlamam gerekir.
maple_shaft

1

Django'nun değeri hakkında yorum yapamam, ama bence Python'u öğrenmek zamanınıza iyi bir yatırım olabilir . Sadece bu proje için değil ...

Bir java geliştiricisi olarak, Jython'u paha biçilmez buluyorum ve keşke C # ile geliştirirken IronPython hakkında bilgi sahibi olsaydım (C # yerine Java yerine C #> Java'ya gittim).

Jython komut dosyanız için kullanılabilir tüm java kitaplığı olması mükemmel ve sık sık Mock nesneleri kullanarak POJO sınıflarını test etmek için Jython birim testleri kullanıyorum.

Uygulamamızda bir Jython konsolu bile sunuyoruz, böylece kullanıcılar hem java kütüphanelerine hem de kendi programlarımıza tam erişimle kendi rutinlerini kodlayabilirler. Kullanıcılara basit komut dosyalarını nasıl yazdıklarını gösterebilmek ve kendileri için otomasyonun hepsini yapmak zorunda kalmadan her türlü şeyi otomatikleştirmelerini sağlamak çok güzel.

Tabii, Jython mükemmel değil - CPython (3.2) ve hatta IronPython'un (2.7) biraz gerisinde (2.5) kalıyor, ancak bu sadece Guido'nun kitabı ile çağdaş oluyor . * 8' )


0

Bir ya da iki hafta sadece P # iş yaptıktan sonra Python ve Django (sonunda başka nedenlerle Rails ile gitmeye karar verdi) temelini alarak geçirdi. İlk bakışta biraz zor oldu ama Django nispeten basitti; bulduğum en zor kısım Python'da gerekli kodun tam olarak nasıl yazılacağını bulmaktı. Django'nun kendisi oldukça basittir; Bir yıldan fazla bir süredir dokunmadım ama muhtemelen önemsiz bir şey yapabilirdim. Yine de, genel nesneler ve bazı daha ilgili şablonlar ve görünümler kullanmak biraz daha karmaşık hale gelir.

Başımı sarmak garip bulduğum bir şey, tüm Django modellerinizin models.pydosyada olduğu fikri ; Eminim farklı dosyalar oluşturabilir ve hepsini içe aktarabilirsiniz (ancak bunu denemedim) ama tek başına "yanlış" bir dosya olmadığı sürece aynı dosyada birden çok sınıf olması çok kötü olan C # için kullanılan hissettim sadece diğer sınıf tarafından kullanılan bir tür özel sınıf. MVC'ye (veya Django parlance'de MTV) aşina değilseniz, bu kendi başına küçük bir öğrenme eğrisi olsa da, geri kalanı hiç de zor değildi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.