Python và Django khó khăn như thế nào để chọn một nhà phát triển web Java / .NET? [đóng cửa]


19

Tôi mới bắt đầu một công việc mới vài tháng trước tại một công ty nhỏ nơi tôi hiện đang dẫn đầu mọi nỗ lực phát triển hiện tại và tương lai. Cá nhân tôi có nhiều năm kinh nghiệm trong thiết kế và phát triển phần mềm từ hầu hết Java nhưng cũng có quan điểm .NET. Tôi đã chọn .NET sau này trong sự nghiệp của mình một cách dễ dàng và không cần phải đào tạo để chạy nhanh, và trên hết nó giúp tôi thực sự nắm bắt và đánh giá cao tính phổ biến của nhiều thực tiễn tốt nhất và các chủ đề phổ biến bằng cách nhìn thấy hai quan điểm khác nhau để giải quyết vấn đề tương tự.

Sếp của tôi có một công ty khởi nghiệp ở bên cạnh và không cần tiết lộ quá nhiều thông tin, anh ta cần một ứng dụng web tinh vi vừa phải tích hợp vào Google Maps để xây dựng các tuyến đường.

Anh ta ký hợp đồng với ứng dụng web mà họ cung cấp quá mức, phần lớn chưa được cung cấp và chạy quá thời hạn, anh ta hiện đang trong một cuộc chiến để thử và thu hồi ít nhất một số tiền anh ta đã đầu tư. Anh ta có mã nguồn cho trang web như hiện tại nhưng có một danh sách đồ giặt là những thứ anh ta muốn sửa và thêm vào trước khi anh ta tiếp tục với nó.

Anh ấy hỏi tôi có muốn làm điều này ở một bên để kiếm thêm tiền không, nhưng vấn đề là trang web được viết bằng Python bằng Django, mà tôi không có kinh nghiệm gì. Tôi nói với anh ta rằng tôi thực sự không phải là người tốt nhất cho việc này vì tôi hầu như không biết gì về Python hay Django và sẽ phải học nó từ đầu. Tôi cảm thấy sẽ không công bằng khi tôi lập hóa đơn cho anh ấy hàng giờ cho thời gian của mình nếu tôi sử dụng thời gian đó để học một ngôn ngữ và nền tảng.

Dựa trên bản tóm tắt về mức độ kinh nghiệm của tôi, mức độ khó khăn hoặc bạn sẽ mất bao nhiêu thời gian để tôi nhận ra điều này? Nếu bạn nghĩ rằng nó lãng phí thời gian, bất cứ ai cũng có thể đề xuất một gợi ý về nơi để tìm các nhà phát triển web Python có kinh nghiệm? Tiền là một mối quan tâm đối với anh ta ngay bây giờ vì vậy anh ta không còn ngân sách lớn nhất nữa.


10
Hỏi làm gì? Bạn có nghĩ rằng nó sẽ khó khăn vì .Net làm cho bạn ngu ngốc? Đó chỉ là mã. Nó có thể khó như thế nào?
S.Lott

1
@ S.Lott, Đó không phải là vấn đề có khả năng hay không, tôi chỉ không muốn nhận một công việc mà tôi không đủ điều kiện khi người trả tiền cho tôi có ngân sách hạn chế và là người quản lý trực tiếp cho nguồn thu nhập CHÍNH của tôi . Tôi chắc chắn sẽ không muốn dính vào anh ta.
maple_shaft

1
Không phải bạn thực sự sẽ phải thử làm một phần của nó và xem nếu nó hoạt động? Không ai ở đây có thể đặt một giá trị về thời gian của bạn.
JeffO

2
Tôi nghĩ rằng bạn đang làm cho mình một sự bất đồng. Tôi nghi ngờ rằng với kinh nghiệm gần đây của anh ấy, người quản lý của bạn muốn có một người mà anh ấy có thể tin tưởng để nói cho anh ấy sự thật, ngay cả khi sự thật là "Tôi không quen với khuôn khổ đó nhưng tôi sẵn sàng đi". Ít nhất bạn nên có thể nói với anh ta nếu nguồn mà anh ta phục hồi thậm chí còn có giá trị gì.
Stewol

2
@Benjol, "Ít nhất bạn nên có thể nói với anh ấy nếu nguồn mà anh ấy đã phục hồi thậm chí còn có giá trị gì" Và đó chính xác là điều tôi sợ. Chỉ vì tôi có thể tìm ra một hướng dẫn Django Hello World trong vài giờ không có nghĩa là tôi có kinh nghiệm và kiến ​​thức để đưa ra ước tính chính xác hoặc thậm chí đánh giá về chất lượng của mã. Đối với tất cả những gì tôi biết, mã spaghetti và 8.000 hàm dòng là cách mọi thứ được cho là được thực hiện trong Python.
maple_shaft

Câu trả lời:


15

Python dễ học như một ngôn ngữ, đây là một trong những điểm bán hàng chính của ngôn ngữ. Là một người rất có kinh nghiệm trong các ngôn ngữ OO, bạn đang ở một vị trí tuyệt vời để bắt đầu. Sự khác biệt cơ bản duy nhất giữa Python và Java / C # là

  1. Vịt gõ / thiếu loại an toàn.
  2. Chức năng hạng nhất.

Tôi hiểu lý do tại sao bạn cảm thấy rằng bạn không phải là người đàn ông tốt nhất cho công việc, và bạn có thể không đạt được nhiều tiến bộ trong tuần đầu tiên của bạn như những người khác. Mặt khác, ông chủ của bạn tin tưởng bạn, và anh ta đã bị đốt cháy bởi một số người không đáng tin, người biết Python tốt hơn bạn.

Nếu bạn lo lắng về việc lạm dụng lòng tin của sếp, hãy đề nghị cho anh ta Nhàng giờ. (Bạn quyết định cái gì Nlà.) Vào cuối thời gian đó, bạn có thể quyết định xem bạn có xứng đáng với mức lương hàng giờ hay không. Trong trường hợp xấu nhất, bạn sẽ có cảm giác tốt hơn về Python / Django vào cuối thời điểm đó.


Đó là một suy nghĩ thú vị để cho anh ta một chút thời gian rảnh cho cả hai lợi ích của chúng tôi. Có lẽ tôi chỉ sợ một cam kết?
maple_shaft

Nếu đây là những khác biệt cơ bản, thì C # dev biết JavaScript sẽ gặp nhiều khó khăn ... tôi có đúng không?
Konrad Morawski

3
C # có các chức năng hạng nhất, hầu hết các nhà phát triển không sử dụng chúng #jowersaying
sa93

@Morawski Có, nếu bạn biết một trong những Java, C # hoặc C ++ VÀ một trong Perl, Ruby hoặc JavaScript, thì việc học Python rất dễ dàng.
Eric Wilson

Những gì @ sa93 nói. Ngoài ra (chết tiệt, tôi và các bình luận ngoài chủ đề của tôi ..), tôi không thực sự là loại người hâm mộ của Microsoft (thực tế tôi là một Pythonistas nhiều hơn), nhưng thật ấn tượng với bao nhiêu tính năng chức năng mà họ đã thêm vào thông qua các phiên bản khác nhau. C # 5.0 đã trở thành một ngôn ngữ có thể sử dụng được (so với các ngôn ngữ liên quan khác * ho * java * ho * VB * ho *)
Nadir Sampaoli

8

Là một lập trình viên nhúng C, người cuối cùng đã làm việc trên một ứng dụng web Python / Django như một dự án skunk-works, tôi có thể làm chứng rằng những điều cơ bản rất dễ nhận.

Python nói chung là rất đơn giản để hiểu rõ hơn. Cá nhân tôi không thấy tài liệu về con trăn rất hữu ích - nó luôn có vẻ giống như một cuốn hồi ký phụ trợ cho một người đã biết về con trăn - nhưng trang web chứa đầy những ví dụ hữu ích. Bạn có thể muốn thử The Python Challenge vào một buổi tối và xem bạn tiếp tục như thế nào.

Tôi hoàn toàn muốn giới thiệu Django. Nó thực hiện rất tốt việc trừu tượng hóa truy cập cơ sở dữ liệu và cung cấp đủ tiện ích mà sau đó tôi cũng đã sử dụng nó cho các dự án web không có thành phần cơ sở dữ liệu. Nói chung nếu bạn nghĩ về một cái gì đó bạn muốn đạt được sẽ có một phương pháp với một tên rõ ràng đã được cung cấp. Các tài liệu cũng rất tốt.

Django rất đơn giản để cài đặt, vì vậy tôi thực sự khuyên bạn nên dùng thử và xem bạn tiếp tục như thế nào. Một vài buổi tối chơi với Python và Django sẽ cho bạn đủ tự tin để quyết định xem bạn có hạnh phúc khi đảm nhận công việc cần thiết hay không.


4

Mô hình Python / Django chắc chắn khác với các ngăn xếp .NET hoặc Java. Nếu bạn cảm thấy thoải mái với một số mô hình lập trình (và điều này có nghĩa là chức năng so với OO và tĩnh so với động) thì có lẽ bạn sẽ có thể loại bỏ điều này. Theo @EricWilson, Python không quá khó để học (chỉ cần chuẩn bị để đi đạn đạo về sự thụt lề == phạm vi điều; p).

Đó là câu ngạn ngữ cũ rằng "Thông minh và hoàn thành công việc" đánh bại "x lượng quen thuộc với một ngôn ngữ".

Nếu bạn hiểu rõ về ngăn xếp web bên dưới (HTTP, chu kỳ yêu cầu / phản hồi, v.v.) và API của bên thứ 3 (Google), thì nó cũng sẽ dễ dàng hơn một chút.

Bạn cũng sẽ cần giúp đỡ cho những khoảnh khắc WTF. Hãy chắc chắn rằng bạn đã tham gia cùng với cộng đồng các nhà phát triển Python / Django, cho dù đó là nhóm người dùng cục bộ của bạn, một diễn đàn trực tuyến hoặc một trang web nhỏ có tên StackExchange :)

Ồ, chỉ cần nghĩ về một cái gì đó khác. Làm cho mình làm bài kiểm tra litmus. Trong một buổi tối hoặc một buổi chiều cuối tuần, tải xuống và cài đặt Python và Django và xem bạn dễ dàng tìm hiểu các hướng dẫn. Một thử nghiệm cơ bản tôi tự đưa ra là xây dựng màn hình CRUD cho một đối tượng miền giả. Nếu tôi không thể làm điều đó (và không có sự xấu hổ trong BTW) thì tôi không phải là người phù hợp hoặc ngăn xếp hút;)

Cuối cùng tôi sẽ cẩn thận với mặt $ của mọi thứ ở đây. Nếu bạn luôn muốn chọn công nghệ này, thì có lẽ cả hai đều ưu ái cho nhau, nếu không, nó có mùi hơi giống như người quản lý của bạn dựa vào thiện chí của bạn để có được những thứ cố định với giá rẻ bằng thời gian quý báu của bạn .


"nếu không thì có vẻ hơi giống người quản lý của bạn dựa vào thiện chí của bạn để sửa chữa mọi thứ với giá rẻ bằng thời gian quý báu của bạn" Tôi không bắt bẻ anh ta về điều đó, tất cả chúng ta đều có lợi ích tốt nhất của riêng mình, đặc biệt là vì tôi Tôi không có nghĩa vụ phải giúp anh ta bằng mọi cách. Nếu tôi đưa ra lựa chọn đó và hối hận thì tôi chỉ còn biết tự trách mình.
maple_shaft

1

Tôi không thể nhận xét về giá trị của Django, nhưng tôi nghĩ rằng việc học Python có thể là một sự đầu tư tốt cho thời gian của bạn. Không chỉ cho dự án này mặc dù ...

Là một nhà phát triển java, tôi thấy Jython là vô giá và tôi ước mình đã biết về IronPython khi tôi đang phát triển với C # (Tôi đã chuyển C #> Java chứ không phải Java sang C #).

Thực tế là bạn có toàn bộ thư viện java có sẵn cho tập lệnh Jython của bạn là tuyệt vời và tôi thường xuyên sử dụng các bài kiểm tra đơn vị Jython để kiểm tra các lớp POJO bằng các đối tượng Mock.

Chúng tôi thậm chí còn cung cấp bảng điều khiển Jython trong ứng dụng của mình để người dùng có thể tạo kịch bản cho các thói quen của riêng họ, với toàn quyền truy cập vào cả thư viện java và của chính chúng tôi. Thật tuyệt khi có thể chỉ cho người dùng cách viết các tập lệnh đơn giản và để họ tự động hóa tất cả mọi thứ mà không phải thực hiện tất cả các tự động hóa đó cho họ.

Chắc chắn, Jython không hoàn hảo - nó chậm hơn (2,5) so với CPython (3.2) và thậm chí IronPython (2.7), nhưng điều đó chỉ khiến nó trở nên hiện đại với cuốn sách của Guido . *số 8')


0

Tôi đã dành một hoặc hai tuần để chọn những điều cơ bản về Python và Django (cuối cùng tôi quyết định đi cùng Rails vì những lý do khác) sau khi chỉ làm công việc C #. Ban đầu có một chút khó khăn để mò mẫm nhưng Django tương đối đơn giản; phần khó nhất tôi tìm thấy là tìm ra chính xác cách viết mã cần thiết bằng Python. Bản thân Django khá đơn giản; Tôi đã không chạm vào nó trong hơn một năm nhưng tôi vẫn có thể làm một việc tầm thường. Mặc dù vậy, nó phức tạp hơn một chút với việc sử dụng các đối tượng chung và một số mẫu và khung nhìn liên quan hơn.

Một điều tôi thấy kỳ lạ khi quấn đầu mình là ý tưởng rằng tất cả các mẫu Django của bạn đều có trong models.pytệp; Tôi chắc chắn rằng bạn có thể tạo các tệp khác nhau và nhập tất cả chúng (tuy nhiên tôi đã không thử điều này) nhưng một mình cảm thấy "sai" khi sử dụng C # trong đó rất tệ khi có nhiều lớp trong cùng một tệp trừ khi có một lớp một số loại lớp riêng chỉ được sử dụng bởi lớp khác. Phần còn lại của nó không quá khó khăn, mặc dù nếu bạn không quen thuộc với MVC (hoặc MTV theo cách nói của Django) thì đó là một đường cong học tập nhỏ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.