Seberapa sulitkah Python dan Django untuk mengambil pengembang web Java / .NET? [Tutup]

19

Saya baru saja memulai pekerjaan baru beberapa bulan yang lalu di sebuah perusahaan kecil di mana saya saat ini memimpin semua upaya pengembangan saat ini dan masa depan. Saya pribadi memiliki pengalaman bertahun-tahun dalam perancangan dan pengembangan perangkat lunak dari sebagian besar Jawa tetapi juga perspektif .NET. Saya mengambil .NET kemudian dalam karier saya dengan sangat mudah dan benar-benar tidak memerlukan pelatihan untuk memulai, dan di atas itu membantu saya untuk benar-benar memahami dan menghargai universalitas dari banyak praktik terbaik dan tema umum dengan melihat dua perspektif berbeda untuk memecahkan masalah yang sama.

Bos saya memiliki perusahaan pemula, dan tanpa membocorkan terlalu banyak informasi, ia membutuhkan aplikasi web yang cukup canggih yang terintegrasi ke dalam Google Maps untuk membangun rute.

Dia mengontrak aplikasi web yang membuat mereka overpromised, kurang tayang, dan melewati tenggat waktu, dia saat ini dalam perjuangan untuk mencoba dan memulihkan setidaknya sebagian dari uang yang dia investasikan. Dia memiliki kode sumber untuk situs seperti saat ini tetapi memiliki daftar cucian tentang hal-hal yang ingin dia perbaiki dan tambahkan sebelum dia menjalankannya.

Dia bertanya kepada saya apakah saya ingin melakukan ini di samping untuk mendapatkan uang tambahan tetapi masalahnya adalah bahwa situs itu ditulis dalam Python menggunakan Django, yang saya tidak punya pengalaman dalam hal apa pun. Saya mengatakan kepadanya bahwa saya benar-benar bukan orang terbaik untuk ini karena saya hampir tidak tahu apa-apa tentang Python atau Django dan harus mempelajarinya dari awal. Saya merasa tidak adil bagi saya untuk menagihnya setiap jam untuk waktu saya jika saya menggunakan waktu itu untuk belajar bahasa dan platform.

Berdasarkan ringkasan tingkat pengalaman saya, seberapa sulit atau berapa banyak waktu yang Anda kira untuk mengambil ini? Jika Anda pikir ini buang-buang waktu, adakah yang bisa merekomendasikan saran untuk menemukan pengembang web Python berpengalaman? Uang adalah masalah baginya saat ini sehingga ia tidak memiliki anggaran terbesar lagi.

maple_shaft
sumber
10
Kenapa bertanya? Apakah Anda pikir ini akan sulit karena .Net membuat Anda bodoh? Itu hanya kode. Seberapa sulitkah itu?
S.Lott
1
@ S.Lott, Ini bukan masalah mampu atau tidak, saya hanya tidak ingin mengambil pekerjaan. Saya tidak memenuhi syarat karena ketika orang yang membayar saya memiliki anggaran terbatas dan merupakan manajer langsung saya untuk sumber penghasilan UTAMA saya. . Saya tentu tidak ingin menempel padanya.
maple_shaft
1
Apakah Anda benar-benar harus mencoba melakukan sepotong dan melihat apakah itu berhasil? Tidak ada seorang pun di sini yang dapat memberi nilai pada waktu Anda.
JeffO
2
Saya pikir Anda merugikan diri sendiri. Saya menduga bahwa dengan pengalamannya baru-baru ini, manajer Anda lebih suka memiliki seseorang yang dapat ia percayai untuk mengatakan yang sebenarnya, bahkan jika kebenarannya adalah "Saya tidak terbiasa dengan kerangka kerja itu tetapi saya bersedia untuk mencobanya". Setidaknya Anda harus bisa memberitahunya jika sumber yang ia pulihkan bahkan berharga.
Benjol
2
@Benjol, "Kamu setidaknya harus bisa memberitahunya jika sumber yang dia pulihkan bahkan bernilai apa pun" Dan itulah tepatnya yang aku takutkan. Hanya karena saya dapat menemukan tutorial Django Hello World dalam beberapa jam bukan berarti saya memiliki pengalaman dan pengetahuan untuk membuat perkiraan yang akurat atau bahkan menilai kualitas kode. Yang saya tahu, kode spaghetti dan 8.000 fungsi garis adalah cara yang seharusnya dilakukan dengan Python.
maple_shaft

Jawaban:

15

Python mudah dipelajari seperti bahasa, yang merupakan salah satu nilai jual utama bahasa tersebut. Sebagai seseorang yang sangat berpengalaman dalam bahasa OO, Anda berada dalam posisi yang bagus untuk memulai. Satu-satunya perbedaan mendasar antara Python dan Java / C # adalah

  1. Mengetik bebek / tidak memiliki keamanan jenis.
  2. Fungsi kelas satu.

Saya mengerti mengapa Anda merasa bahwa Anda bukan pria terbaik untuk pekerjaan itu, dan Anda mungkin tidak membuat banyak kemajuan di minggu pertama Anda seperti orang lain. Di sisi lain, bos Anda mempercayai Anda, dan dia baru saja dibakar oleh beberapa orang yang tidak bisa dipercaya yang mengenal Python lebih baik dari Anda.

Jika Anda khawatir tentang penyalahgunaan kepercayaan atasan Anda, tawarkan untuk memberinya Nwaktu pro bono. (Anda memutuskan apa Nitu.) Pada akhir waktu itu, Anda dapat memutuskan apakah Anda layak dengan tarif per jam. Dalam kasus terburuk, Anda akan memiliki indera Python / Django yang jauh lebih baik di akhir waktu itu.

Eric Wilson
sumber
Itu pemikiran yang menarik untuk memberinya waktu luang untuk keuntungan kita berdua. Mungkin saya hanya takut akan komitmen?
maple_shaft
Jika ini adalah perbedaan mendasar, maka C # dev mengetahui JavaScript seharusnya memiliki banyak kesulitan sama sekali ... apakah saya benar?
Konrad Morawski
3
C # memiliki fungsi kelas satu hanya sebagian besar devs tidak menggunakannya # justsaying
sa93
@Morawski Ya, jika Anda tahu salah satu dari Java, C #, atau C ++ DAN salah satu dari Perl, Ruby, atau JavaScript, maka mempelajari Python sangatlah mudah.
Eric Wilson
Apa yang dikatakan @ sa93. Juga (sial, saya dan komentar di luar topik saya ..), saya sebenarnya bukan tipe penggemar Microsoft (sebenarnya saya jauh lebih seperti Pythonistas), tetapi agak mengesankan berapa banyak fitur fungsional yang telah mereka tambahkan melalui berbagai rilis. C # 5.0 telah menjadi bahasa yang cukup dapat digunakan (dibandingkan dengan bahasa terkait lainnya * batuk * java * batuk * VB * batuk *)
Nadir Sampaoli
8

Sebagai seorang programmer C tertanam yang akhirnya bekerja pada aplikasi web Python / Django sebagai proyek sigung saya dapat bersaksi bahwa dasar-dasarnya mudah diambil.

Python umumnya sangat mudah untuk dipahami. Saya pribadi tidak menemukan dokumentasi python itu sendiri sangat berguna - selalu tampak lebih seperti memoar ajudan untuk seseorang yang sudah tahu python - tetapi web penuh dengan contoh-contoh berguna. Anda mungkin ingin mencoba Tantangan Python suatu malam dan melihat bagaimana Anda maju.

Saya benar-benar akan merekomendasikan Django. Ia melakukan pekerjaan yang sangat baik untuk mengabstraksi akses basis data dan menyediakan utilitas yang cukup sehingga saya juga menggunakannya untuk proyek web tanpa komponen basis data. Umumnya jika Anda memikirkan sesuatu yang ingin Anda capai akan ada metode dengan nama yang jelas sudah disediakan. The dokumentasi juga sangat baik.

Django sangat sederhana untuk diinstal jadi saya akan sangat menyarankan agar Anda mencobanya saja dan lihat bagaimana perkembangan Anda. Beberapa malam bermain dengan Python dan Django harus memberi Anda cukup kepercayaan untuk memutuskan apakah Anda akan senang melakukan pekerjaan yang diperlukan.

Luke Graham
sumber
4

Paradigma Python / Django tentu berbeda dengan tumpukan .NET atau Java. Jika Anda merasa nyaman dengan beberapa paradigma pemrograman (dan maksud saya fungsional vs OO dan statis vs dinamis) maka Anda mungkin dapat melakukan ini. Sesuai @EricWilson, Python tidak terlalu sulit untuk dipelajari (hanya bersiaplah untuk menjadi balistik tentang lekukan == lingkup hal; p).

Ini adalah pepatah lama bahwa "Cerdas dan menyelesaikan sesuatu" mengalahkan "x jumlah keakraban dengan bahasa".

Jika Anda memiliki pemahaman yang baik tentang tumpukan web yang mendasarinya (HTTP, siklus permintaan / respons, dll.) Dan API pihak ke-3 (Google), maka itu juga akan sedikit lebih mudah.

Anda juga akan memerlukan bantuan untuk momen-momen WTF tersebut. Pastikan Anda bergabung dengan komunitas Python / Django devs, apakah itu grup pengguna lokal Anda, forum online, atau situs kecil bernama StackExchange :)

Oh, pikirkan saja hal lain. Buatlah diri Anda mengambil tes lakmus. Di malam hari atau akhir pekan sore hari, unduh dan pasang Python dan Django dan lihat betapa mudahnya Anda melakukan tutorial. Tes dasar yang saya berikan pada diri saya adalah membangun layar CRUD untuk objek domain dummy. Jika saya tidak bisa melakukan itu (dan tidak ada rasa malu di dalamnya BTW) maka saya bukan orang yang tepat atau tumpukan itu menyebalkan;)

Terakhir saya akan berhati-hati dengan $ sisi hal di sini. Jika Anda selalu ingin mengambil tumpukan teknologi ini maka mungkin Anda berdua saling membantu, jika tidak baunya seperti manajer Anda mengandalkan niat baik Anda untuk memperbaiki barang-barang om murah dengan mengorbankan waktu berharga Anda .

Martijn Verburg
sumber
"Kalau tidak, baunya seperti manajermu yang mengandalkan niat baikmu untuk memperbaiki barang-barang murah dengan mengorbankan waktumu yang berharga." Saya tidak berkewajiban untuk membantunya. Jika saya membuat pilihan itu dan menyesalinya maka saya sendiri yang harus disalahkan.
maple_shaft
1

Saya tidak dapat mengomentari nilai Django, tetapi saya pikir belajar Python bisa menjadi investasi yang baik untuk waktu Anda. Bukan hanya untuk proyek ini ...

Sebagai pengembang java, saya menemukan Jython sangat berharga, dan saya berharap saya tahu tentang IronPython ketika saya sedang mengembangkan dengan C # (saya pergi C #> Java daripada Java ke C #).

Fakta bahwa Anda memiliki seluruh pustaka java yang tersedia untuk skrip Jython Anda sangat bagus, dan saya sering menggunakan uji unit Jython untuk menguji kelas POJO menggunakan objek Mock.

Kami bahkan menyediakan konsol Jython di aplikasi kami sehingga pengguna dapat membuat skrip rutinitas mereka sendiri, dengan akses penuh ke perpustakaan java dan kami sendiri. Sangat menyenangkan bisa menunjukkan kepada pengguna bagaimana menulis skrip sederhana dan membuat mereka mengotomatisasi semua hal sendiri tanpa harus melakukan semua otomatisasi itu untuk mereka.

Tentu, Jython tidak sempurna - itu tertinggal (2,5) agak di belakang CPython (3,2) dan bahkan IronPython (2,7), tetapi itu hanya membuatnya sezaman dengan buku Guido . * 8 ')

Mark Booth
sumber
0

Saya menghabiskan satu atau dua minggu mengambil dasar-dasar Python dan Django (saya akhirnya memutuskan untuk pergi dengan Rails karena alasan lain) setelah melakukan hanya pekerjaan C #. Awalnya agak susah grok, tapi Django relatif mudah; bagian tersulit yang saya temukan adalah mencari tahu persis bagaimana menulis kode yang diperlukan dengan Python. Django sendiri cukup sederhana; Saya belum menyentuhnya lebih dari setahun tetapi saya mungkin masih bisa melakukan sesuatu yang sepele. Akan sedikit lebih rumit dengan menggunakan objek generik dan beberapa templat dan tampilan yang lebih terlibat.

Satu hal yang saya temukan aneh untuk membungkus kepala saya adalah gagasan bahwa semua model Django Anda ada di models.pyfile; Saya yakin Anda dapat membuat file yang berbeda dan mengimpor semuanya (saya tidak mencoba ini, namun) tetapi itu saja merasa "salah" digunakan untuk C # di mana sangat buruk untuk memiliki beberapa kelas dalam file yang sama kecuali ada satu beberapa jenis kelas privat hanya digunakan oleh kelas lainnya. Selebihnya tidak terlalu sulit sama sekali, meskipun jika Anda tidak terbiasa dengan MVC (atau MTV dalam bahasa Django) itu adalah kurva belajar kecil itu sendiri.

Wayne Molina
sumber