Python และ Django ยากลำบากแค่ไหนในการรับพัฒนาเว็บ Java / .NET? [ปิด]


19

ฉันเพิ่งเริ่มงานใหม่เมื่อสองสามเดือนก่อนที่ บริษัท ขนาดเล็กที่ฉันกำลังนำการพัฒนาทั้งหมดในปัจจุบันและอนาคต โดยส่วนตัวฉันมีประสบการณ์หลายปีในการออกแบบและพัฒนาซอฟต์แวร์จาก Java ส่วนใหญ่ แต่ยังรวมถึงมุมมอง. NET ฉันเลือก. NET ในอาชีพของฉันในภายหลังได้อย่างง่ายดายและไม่ต้องมีการฝึกอบรมใด ๆ เพื่อให้ทำงานได้อย่างยอดเยี่ยมและยิ่งไปกว่านั้นมันช่วยให้ฉันเข้าใจและซาบซึ้งในความเป็นสากลของแนวปฏิบัติที่ดีที่สุดและชุดรูปแบบทั่วไป เพื่อแก้ปัญหาเดียวกัน

เจ้านายของฉันมี บริษัท เริ่มต้นอยู่ด้านข้างและโดยไม่เปิดเผยข้อมูลมากเกินไปเขาต้องการเว็บแอปพลิเคชั่นที่มีความซับซ้อนพอสมควรซึ่งรวมเข้ากับ Google Maps เพื่อสร้างเส้นทาง

เขาทำสัญญากับเว็บแอปพลิเคชันที่พวกเขา overpromised, underdelivered ส่วนใหญ่และวิ่งข้ามเส้นตายเขากำลังต่อสู้เพื่อพยายามกู้คืนเงินบางส่วนที่เขาลงทุน เขามีซอร์สโค้ดสำหรับไซต์ตามที่เป็นอยู่ในขณะนี้ แต่มีรายการซักผ้าของสิ่งที่เขาต้องการแก้ไขและเพิ่มก่อนที่เขาจะอยู่กับมัน

เขาถามฉันว่าฉันต้องการทำสิ่งนี้ที่ด้านข้างเพื่อรับเงินพิเศษบางส่วนหรือไม่ แต่ปัญหาคือเว็บไซต์เขียนด้วย Python โดยใช้ Django ซึ่งฉันไม่มีประสบการณ์ใด ๆ เลย ฉันบอกเขาว่าฉันไม่ใช่คนที่ดีที่สุดสำหรับเรื่องนี้เพราะฉันไม่รู้อะไรเกี่ยวกับ Python หรือ Django และจะต้องเรียนรู้ตั้งแต่ต้น ฉันรู้สึกว่ามันจะไม่ยุติธรรมสำหรับฉันที่จะเรียกเก็บเงินเขาทุกชั่วโมงสำหรับเวลาของฉันถ้าฉันใช้เวลาในการเรียนรู้ภาษาและแพลตฟอร์ม

จากการสรุประดับประสบการณ์ของฉันคุณจะเดาได้ยากแค่ไหนหรือใช้เวลาเท่าไหร่ หากคุณคิดว่าจะเป็นการเสียเวลาใครสามารถแนะนำข้อเสนอแนะในการหาผู้พัฒนาเว็บ Python ที่มีประสบการณ์ เงินเป็นสิ่งที่เขากังวลในตอนนี้ดังนั้นเขาจึงไม่มีงบประมาณมากที่สุดอีกต่อไป


10
ทำไมต้องถาม คุณคิดว่ามันจะเป็นเรื่องยากเพราะ. Net ทำให้คุณงี่เง่า? มันเป็นแค่รหัส มันยากเหลือเกิน
S.Lott

1
@ S.Lott มันไม่ได้เป็นเรื่องของความสามารถหรือไม่ฉันแค่ไม่ต้องการทำงานที่ฉันไม่มีเงื่อนไขเมื่อคนที่จ่ายเงินให้ฉันมีงบประมาณ จำกัด และเป็นผู้จัดการโดยตรงสำหรับแหล่งรายได้หลักของฉัน . แน่นอนว่าฉันไม่ต้องการติดมันกับเขา
maple_shaft

1
คุณไม่ต้องลองทำมันสักชิ้นแล้วดูว่ามันใช้งานได้จริงเหรอ? ไม่มีใครที่นี่สามารถให้คุณค่ากับเวลาของคุณ
JeffO

2
ฉันคิดว่าคุณกำลังก่อความเสียหาย ฉันสงสัยว่าเมื่อได้รับประสบการณ์ล่าสุดผู้จัดการของคุณจะมีใครสักคนที่เขาสามารถไว้วางใจที่จะบอกความจริงกับเขาแม้ว่าความจริงคือ "ฉันไม่คุ้นเคยกับกรอบการทำงานนั้น แต่ฉันยินดีที่จะไป" อย่างน้อยคุณควรจะสามารถบอกเขาได้ว่าแหล่งที่มาที่เขากู้คืนนั้นมีค่าหรือไม่
Benjol

2
@Benjol "อย่างน้อยคุณควรจะสามารถบอกเขาได้ว่าแหล่งข้อมูลที่เขากู้คืนมานั้นมีค่าแม้แต่สิ่งใด" และนั่นคือสิ่งที่ฉันกลัว เพียงเพราะฉันสามารถเข้าใจ Django Hello World ในไม่กี่ชั่วโมงไม่ได้หมายความว่าฉันมีประสบการณ์และความรู้ในการประเมินที่ถูกต้องแม่นยำหรือแม้แต่ตัดสินคุณภาพของรหัส สำหรับสิ่งที่ฉันรู้รหัสสปาเก็ตตี้และฟังก์ชั่นสาย 8,000 เป็นวิธีที่สิ่งที่ควรจะทำในงูหลาม
maple_shaft

คำตอบ:


15

Python เป็นเรื่องเกี่ยวกับการเรียนรู้ภาษาที่ง่ายซึ่งเป็นหนึ่งในจุดขายหลักของภาษา ในฐานะที่เป็นคนที่มีประสบการณ์สูงในภาษา OO คุณจะสามารถเริ่มต้นได้ดี ความแตกต่างพื้นฐานเพียงอย่างเดียวระหว่าง Python และ Java / C # คือ

  1. เป็ดพิมพ์ / ขาดความปลอดภัยประเภท
  2. ฟังก์ชั่นชั้นหนึ่ง

ฉันเข้าใจว่าทำไมคุณถึงรู้สึกว่าคุณไม่ใช่คนที่ดีที่สุดสำหรับงานและคุณอาจไม่ก้าวหน้าเท่าสัปดาห์แรกเท่าคนอื่น ในทางกลับกันเจ้านายของคุณเชื่อใจคุณและเขาเพิ่งถูกเผาโดยกลุ่มคนที่ไม่น่าไว้วางใจที่รู้จัก Python ดีกว่าคุณ

หากคุณกังวลเกี่ยวกับการดูถูกเหยียดหยามเจ้านายของคุณให้เสนอNชั่วโมงอาชีพให้เขา (คุณเป็นผู้ตัดสินใจว่าอะไรNคืออะไร) ในตอนท้ายของช่วงเวลานั้นคุณสามารถตัดสินใจได้ว่าคุณจะคุ้มค่ากับอัตรารายชั่วโมงหรือไม่ ในกรณีที่เลวร้ายที่สุดคุณจะมีความรู้สึกที่ดีขึ้นของ Python / Django เมื่อสิ้นสุดเวลานั้น


นั่นเป็นความคิดที่น่าสนใจที่จะให้เวลากับเขาเพื่อประโยชน์ของเรา บางทีฉันอาจกลัวการผูกมัด?
maple_shaft

หากสิ่งเหล่านี้มีความแตกต่างพื้นฐาน C # dev รู้ว่า JavaScript ควรมีปัญหามาก ... ฉันถูกต้องหรือไม่
Konrad Morawski

3
C # มีฟังก์ชั่นชั้นแรกเพียงแค่ส่วนใหญ่ devs อย่าใช้พวกเขา #justsaying
sa93

@ Morawski ใช่ถ้าคุณรู้จัก Java, C #, หรือ C ++ และ Perl, Ruby หรือ JavaScript อย่างใดอย่างหนึ่งการเรียนรู้ Python นั้นง่ายมาก
Eric Wilson

@ sa93 พูดอะไร นอกจากนี้ (ด่าฉันและความเห็นหัวข้อนอกของฉัน .. ) ฉันไม่ใช่แฟนไมโครซอฟท์จริงๆ (อันที่จริงฉันเป็น Pythonistas มาก) แต่มันค่อนข้างน่าประทับใจว่ามีฟังก์ชั่นการใช้งานมากมายเพิ่มเข้ามา ผ่านการเปิดตัวต่างๆ C # 5.0 ได้กลายเป็นภาษาที่ใช้งานได้ (เมื่อเทียบกับภาษาอื่นที่เกี่ยวข้อง * ไอ * java * ไอ * VB * ไอ *)
Nadir Sampaoli

8

ในฐานะที่เป็นโปรแกรมเมอร์ซีฝังตัวซึ่งทำงานในแอพพลิเคชั่น Python / Django เว็บในฐานะโครงการสกั๊งค์ - เวิร์คฉันสามารถยืนยันได้ว่าพื้นฐานง่ายต่อการรับ

โดยทั่วไปแล้วงูหลามนั้นมีความตรงไปตรงมามาก ฉันไม่ได้พบเอกสารส่วนตัวของหลามเองนั้นมีประโยชน์มาก - มันดูเหมือนเป็นตัวช่วยชีวิตสำหรับคนที่รู้จักงูใหญ่อยู่แล้ว แต่เว็บนั้นเต็มไปด้วยตัวอย่างที่มีประโยชน์ คุณอาจต้องการลองThe Python Challengeในเย็นวันหนึ่งและดูว่าคุณจะไปได้อย่างไร

ฉันอยากจะแนะนำ Django อย่างละเอียด มันทำงานได้ดีมากในการเข้าถึงฐานข้อมูลที่เป็นนามธรรมและมียูทิลิตี้เพียงพอที่ฉันได้ใช้ในภายหลังสำหรับโครงการเว็บที่ไม่มีส่วนประกอบฐานข้อมูล โดยทั่วไปหากคุณนึกถึงบางสิ่งที่คุณต้องการบรรลุจะมีวิธีการที่มีชื่อชัดเจนแล้ว เอกสารยังดีมาก

Django นั้นง่ายมากในการติดตั้งดังนั้นฉันขอแนะนำให้คุณลองไปดูว่าคุณจะไปได้ยังไง สองสามตอนเย็นที่เล่นกับ Python และ Django ควรให้ความมั่นใจกับคุณมากพอที่จะตัดสินใจว่าคุณจะมีความสุขในการทำงานที่ต้องการหรือไม่


4

กระบวนทัศน์ของ Python / Django นั้นแตกต่างอย่างมากกับ. NET หรือ Java stack หากคุณพอใจกับกระบวนทัศน์การเขียนโปรแกรมหลายรูปแบบ (และด้วยเหตุนี้ฉันหมายถึง functional vs OO และ static vs dynamic) จากนั้นคุณอาจจะสามารถดึงมันออกมาได้ ตาม @EricWilson, Python ไม่ยากเกินกว่าที่จะเรียนรู้ (เพียงเตรียมพร้อมที่จะออกไปเกี่ยวกับการเยื้อง == ขอบเขตสิ่ง; p)

มันเป็นภาษิตเก่าที่ "ฉลาดและทำสิ่งต่างๆได้สำเร็จ" เต้น "x จำนวนความคุ้นเคยกับภาษา"

หากคุณมีความเข้าใจที่ดีเกี่ยวกับเว็บสแต็กพื้นฐาน (HTTP, คำขอ / ตอบกลับ ฯลฯ ) และ API ของบุคคลที่สาม (Google) ก็จะง่ายขึ้นเช่นกัน

คุณจะต้องการความช่วยเหลือสำหรับช่วงเวลา WTF เหล่านั้น ตรวจสอบให้แน่ใจว่าคุณได้เข้าร่วมชุมชนแห่ง Python / Django ที่ทันสมัยไม่ว่าจะเป็นกลุ่มผู้ใช้ในพื้นที่ฟอรัมออนไลน์หรือไซต์เล็ก ๆ ที่ชื่อว่า StackExchange :)

โอ้แค่คิดเรื่องอื่น ทำให้ตัวเองใช้การทดสอบสารสีน้ำเงิน ในช่วงเย็นหรือบ่ายวันหยุดสุดสัปดาห์ให้ดาวน์โหลดและติดตั้ง Python และ Django และดูว่าคุณทำแบบฝึกหัดอย่างไร การทดสอบพื้นฐานที่ฉันให้กับตัวเองคือการสร้างหน้าจอ CRUD สำหรับวัตถุโดเมนจำลอง ถ้าฉันทำอย่างนั้นไม่ได้ (และไม่มีความละอายในนั้น BTW) ดังนั้นฉันไม่ใช่คนที่ใช่

สุดท้ายนี้ฉันจะระวังสิ่ง $ ด้านที่นี่ หากคุณต้องการเลือกกองเทคโนโลยีนี้มาตลอดบางทีคุณทั้งคู่ต่างก็ชอบกันไม่เช่นนั้นมันจะมีกลิ่นเล็กน้อยเหมือนผู้จัดการของคุณที่ต้องพึ่งพาค่าความนิยมของคุณเพื่อให้ได้สิ่งที่ถูกต้องในราคาที่คุณต้องจ่าย .


"ไม่อย่างนั้นมันจะมีกลิ่นเล็กน้อยเหมือนผู้จัดการของคุณที่ต้องพึ่งพาความปรารถนาดีของคุณที่จะได้รับสิ่งที่ถูกแก้ไขในราคาที่ถูกด้วยค่าใช้จ่ายของเวลาอันมีค่าของคุณ" ฉันไม่บ่นว่าเขาเป็นเช่นนั้น ฉันไม่มีภาระผูกพันที่จะต้องช่วยเหลือเขา ถ้าฉันเลือกและเสียใจมันก็มี แต่ฉันเท่านั้นที่จะโทษ
maple_shaft

1

ฉันไม่สามารถแสดงความคิดเห็นเกี่ยวกับคุณค่าของ Django ได้ แต่ฉันคิดว่าการเรียนรู้ Python อาจเป็นการลงทุนที่คุ้มค่ากับเวลาของคุณ ไม่เพียง แต่สำหรับโครงการนี้ ...

ในฐานะนักพัฒนาจาวาฉันพบJython ที่ล้ำค่าและฉันหวังว่าฉันจะรู้จักIronPythonเมื่อฉันพัฒนาด้วย C # (ฉันไป C #> Java มากกว่า Java เป็น C #)

ความจริงที่ว่าคุณมีไลบรารี java ทั้งหมดสำหรับสคริปต์ Jython ของคุณนั้นยอดเยี่ยมและฉันใช้หน่วยทดสอบ Jython เพื่อทดสอบคลาสPOJOโดยใช้วัตถุจำลอง

เรายังมีคอนโซล Jython ในแอปพลิเคชันของเราเพื่อให้ผู้ใช้สามารถเขียนสคริปต์กิจวัตรของตนเองได้ด้วยการเข้าถึงไลบรารี java และไลบรารีของเราเอง เป็นเรื่องที่ดีมากที่สามารถแสดงให้ผู้ใช้เห็นถึงวิธีการเขียนสคริปต์อย่างง่ายและให้พวกเขาทำสิ่งต่าง ๆ ด้วยตนเองโดยอัตโนมัติโดยไม่ต้องทำสิ่งเหล่านั้นอัตโนมัติ

แน่นอนว่า Jython ไม่สมบูรณ์ - มันล่าช้า (2.5) ค่อนข้างอยู่เบื้องหลัง CPython (3.2) และแม้กระทั่ง IronPython (2.7) แต่ที่จะทำให้มันร่วมสมัยกับหนังสือของกุย * 8)


0

ฉันใช้เวลาหนึ่งหรือสองสัปดาห์ในการเก็บข้อมูลพื้นฐานของ Python และ Django (ในที่สุดฉันก็ตัดสินใจไปกับ Rails ด้วยเหตุผลอื่น) หลังจากทำงาน C # เท่านั้น มันเป็นเรื่องยากที่จะคร่ำครวญในตอนแรก แต่ Django ค่อนข้างตรงไปตรงมา ส่วนที่ยากที่สุดที่ฉันพบคือหาวิธีเขียนโค้ดที่จำเป็นใน Python Django นั้นค่อนข้างเรียบง่าย ฉันไม่ได้แตะต้องมานานกว่าหนึ่งปี แต่ฉันก็ยังอาจทำอะไรซักอย่างเล็กน้อย มันมีความซับซ้อนเพิ่มขึ้นเล็กน้อยเมื่อใช้วัตถุทั่วไปและแม่แบบและมุมมองที่เกี่ยวข้องเพิ่มเติม

สิ่งหนึ่งที่ฉันพบว่าแปลกที่ห่อหัวของฉันคือความคิดที่ว่ารุ่น Django ทั้งหมดของคุณอยู่ในmodels.pyไฟล์ ฉันแน่ใจว่าคุณสามารถสร้างไฟล์ที่แตกต่างกันและนำเข้าพวกเขาทั้งหมด (ฉันไม่ได้ลองนี้) แต่ที่รู้สึกว่า "ผิด" ถูกใช้ใน C # ที่ไม่ดีมากที่จะมีหลายชั้นในไฟล์เดียวกันเว้นแต่จะเป็น คลาสส่วนตัวบางประเภทใช้เฉพาะคลาสอื่นเท่านั้น ส่วนที่เหลือก็ไม่ยากเกินไปแม้ว่าคุณจะไม่คุ้นเคยกับ MVC (หรือ MTV ในภาษา Django) นั่นเป็นช่วงการเรียนรู้ขนาดเล็กในตัวเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.