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.
sumber
Jawaban:
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
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
N
waktu pro bono. (Anda memutuskan apaN
itu.) 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.sumber
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.
sumber
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 .
sumber
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 ')
sumber
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.py
file; 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.sumber