Jak trudno jest Python i Django, aby podnieść na internetowej dewelopera Java / .NET? [Zamknięte]

19

Kilka miesięcy temu rozpocząłem nową pracę w małej firmie, w której obecnie prowadzę wszystkie wysiłki rozwojowe obecne i przyszłe. Osobiście mam wieloletnie doświadczenie w projektowaniu i rozwijaniu oprogramowania, głównie w Javie, ale także z perspektywy .NET. Z łatwością podjąłem platformę .NET w swojej karierze i nie wymagałem dosłownie żadnego szkolenia, aby móc rozpocząć działalność, a ponadto pomogłem naprawdę zrozumieć i docenić uniwersalność wielu najlepszych praktyk i wspólnych tematów, widząc dwie różne perspektywy do rozwiązania tego samego problemu.

Mój szef ma boczną firmę startową i bez ujawnienia zbyt dużej ilości informacji potrzebował średnio zaawansowanej aplikacji internetowej, która integruje się z Mapami Google w celu tworzenia tras.

Zakontraktował aplikację internetową, do której skorzystali z nadwyżki, w głównej mierze nie dostarczył i przekroczył termin, obecnie walczy o odzyskanie przynajmniej części zainwestowanych pieniędzy. Ma kod źródłowy witryny w obecnej postaci, ale ma listę rzeczy, które chciałby naprawić i dodać, zanim zacznie z nią korzystać.

Zapytał mnie, czy chciałbym to zrobić na stronie dla trochę gotówki, ale problemem jest to, że strona została napisana w Pythonie przy użyciu Django, który mam żadnego doświadczenia w ogóle. Powiedziałem mu, że tak naprawdę nie jestem najlepszą osobą do tego, ponieważ praktycznie nic nie wiem o Pythonie lub Django i będę musiał nauczyć się tego od zera. Wydaje mi się, że nie godziłbym się z rozliczaniem go za godzinę, jeśli wykorzystuję ten czas do nauki języka i platformy.

W oparciu o podsumowanie mojego poziomu doświadczenia, jak trudne lub ile czasu, jak sądzę, zajęłoby mi wzięcie tego? Jeśli uważasz, że to strata czasu, ktoś mógłby polecić sugestię, gdzie znaleźć doświadczonych programistów stron internetowych Python? Pieniądze są teraz dla niego problemem, więc nie ma już największego budżetu.

wałek klonowy
źródło
10
Po co pytać? Myślisz, że to będzie trudne, ponieważ .Net sprawił, że stałeś się głupi? To tylko kod. Jak trudne może to być?
S.Lott,
1
@ S.Lott, To nie jest kwestia zdolności czy nie, po prostu nie chcę podjąć pracy, do której jestem niewykwalifikowany, gdy osoba płacąca mi ma ograniczony budżet i jest moim bezpośrednim menedżerem mojego PIERWOTNEGO źródła dochodu , Na pewno nie chciałbym mu tego przykleić.
wałek klonowy
1
Czy naprawdę nie będziesz musiał próbować tego zrobić i zobaczyć, czy to działa? Nikt tutaj nie można umieścić wartość na czasie.
JeffO
2
Myślę, że robisz sobie krzywdę. Podejrzewam, że biorąc pod uwagę jego ostatnie doświadczenia, twój menedżer wolałby raczej kogoś, komu mógłby zaufać, by powiedział mu prawdę, nawet jeśli prawda brzmi: „Nie znam tych ram, ale jestem gotów spróbować”. Powinieneś przynajmniej móc mu powiedzieć, czy odzyskane źródło jest w ogóle coś warte.
Benjol,
2
@Benjol „Należy przynajmniej być w stanie mu powiedzieć, czy źródłem on odzyskiwany jest jeszcze coś warta” I to jest dokładnie to, czego się boję. Tylko dlatego, że mogę dowiedzieć się Django samouczka Hello World w kilka godzin, nie oznacza, że mam doświadczenie i wiedzę, aby dokonać dokładnych szacunków lub nawet sędzia na jakość kodu. Z tego co wiem, kod spaghetti i 8000 funkcji linii to sposób, w jaki należy to robić w Pythonie.
wałek klonowy

Odpowiedzi:

15

Python jest tak łatwa do nauczenia się, jak język może być, co jest jednym z głównych punktów sprzedaży języka. Jako ktoś, który jest bardzo doświadczony w językach OO, jesteś w doskonałej pozycji, aby rozpocząć. Jedyne podstawowe różnice między Pythonem a Javą / C # to

  1. Pisanie kaczek / brak bezpieczeństwa typu.
  2. Funkcje pierwszej klasy.

Rozumiem, dlaczego uważasz, że nie jesteś najlepszym człowiekiem do tej pracy i możesz nie robić tak dużego postępu w pierwszym tygodniu jak inni. Z drugiej strony, twój szef ci ufa, a on został po prostu spalony przez kilku niegodnych zaufania ludzi, którzy znali Pythona lepiej niż ty.

Jeśli martwisz się o swoją bossów nadużywa zaufania, oferują mu dać Ngodzin pro bono. (Ty decydujesz, co Njest). Pod koniec tego czasu można zdecydować, czy jesteś wart stawka godzinowa. W najgorszym przypadku będziesz miał znacznie lepsze wyczucie języka Python / Django pod koniec tego czasu.

Eric Wilson
źródło
Ów ciekawą myśl, aby dać mu trochę wolnego czasu, zarówno dla naszych korzyści. Może jestem po prostu boi się zaangażowaniem?
maple_shaft
Jeśli są to podstawowe różnice, to C # dev znający JavaScript powinien mieć w ogóle duże trudności ... czy mam rację?
Konrad Morawski
3
C # ma funkcje pierwszej klasy, po prostu większość deweloperów ich nie używa # justsaying
sa93 17.08.11
@ Morawski Tak, jeśli znasz język Java, C # lub C ++ ORAZ jeden z Perla, Ruby lub JavaScript, to nauka języka Python jest bardzo prosta.
Eric Wilson
Co powiedział @ sa93. Również (cholera, ja i moje komentarze temat off ..), nie jestem typem Microsoft-fan (w rzeczywistości jestem dużo bardziej Pythonistas), ale jest to dość imponujący ile funkcjonalne cechy zostały one dodanie poprzez różne wersje. C # 5.0 stał się dość język użytkowej (w porównaniu do innych języków pokrewnych * kaszlu * Java * kaszlu * VB * kaszel *)
Nadir Sampaoli
8

Jako wbudowany programista C, który zakończył pracę nad aplikacją internetową Python / Django jako projekt działający w skunksie, mogę zaświadczyć, że podstawy są łatwe do opanowania.

Python ogólnie jest bardzo prosty do opanowania. Nie byłem osobiście znaleźć w dokumentacji Pythona sama bardzo przydatna - zawsze wydaje się bardziej jak pamiętnik aide dla kogoś, kto już wie, python - ale w internecie jest pełen przydatnych przykładów. Pewnego wieczoru możesz wypróbować The Python Challenge i zobaczyć, jak sobie radzisz.

Gorąco polecam Django. Robi bardzo dobrą robotę abstrahując dostępu do bazy danych i dostarcza wystarczającą użyteczność że ja też go następnie używany dla projektów internetowych bez komponentu bazy danych. Ogólnie rzecz biorąc, jeśli pomyślisz o czymś, co chcesz osiągnąć, będzie już dostępna metoda o oczywistej nazwie. Dokumentacja jest również bardzo dobra.

Django jest bardzo prosty do zainstalowania tak bym zdecydowanie wskazują, że po prostu dać mu iść i zobaczyć, jak można dostać się na. Kilka wieczorów gry z Python i Django powinny dać wystarczająco dużo zaufania do decydowania, czy byłbyś szczęśliwy zobowiązanie wymagane prace.

Luke Graham
źródło
4

Paradygmat Python / Django z pewnością różni się od stosów .NET lub Java. Jeśli jesteś wygodne z kilku paradygmatów programowania (i przez to mam na myśli funkcjonalny vs OO i statyczne vs dynamic) wtedy prawdopodobnie będziesz w stanie wyciągnąć tę opcję. Zgodnie @EricWilson, Python nie jest zbyt trudne do opanowania (po prostu bądź przygotowany, aby przejść balistycznych o nacięciu == zakres rzecz; p).

Jest to stare powiedzenie, że „Inteligentny i załatwiający sprawy” bije „x znajomość języka”.

Jeśli masz dobre zrozumienie podstawowej internetowej stosie (HTTP, cykle żądanie / odpowiedź etc) i 3rd Party API (Google), to będzie trochę łatwiej, jak również.

Będziesz także potrzebować pomocy w tych momentach WTF. Upewnij się, że przyłączyłeś się do społeczności deweloperów Python / Django, niezależnie od tego, czy jest to lokalna grupa użytkowników, forum online, czy mała witryna o nazwie StackExchange :)

Och, tylko myślał o czymś innym. Zrób sobie test lakmusowy. Wieczorem lub w weekendowe popołudnie pobierz i zainstaluj Python i Django i przekonaj się, jak łatwo opanujesz samouczki. Podstawowe badanie oddaję buduje ekran CRUD dla obiektu domeny manekin. Jeśli nie mogę tego zrobić (i nie ma w nim wstyd BTW) to nie jestem odpowiednią osobą lub stos do bani;)

Na koniec będę ostrożny z $ rzeczy tutaj. Jeśli zawsze chciałeś podnieść ten stos technologii, być może obaj wyświadczacie sobie przysługę, inaczej pachnie trochę tak, jakby twój menedżer polegał na twojej dobrej woli, aby naprawić rzeczy kosztem cennego czasu. ,

Martijn Verburg
źródło
„inaczej pachnie trochę tak, jakby twój menedżer polegał na twojej dobrej woli, aby naprawić rzeczy tanio kosztem twojego cennego czasu” Nie żałuję mu tego, wszyscy mamy na względzie nasze własne interesy, zwłaszcza że ja I tak nie mam obowiązku mu pomagać. Jeśli dokonam tego wyboru i żałuję, to mam tylko winę.
wałek klonowy
1

Nie mogę komentować wartości Django, ale myślę, że nauka języka Python może być dobrą inwestycją twojego czasu. Nie tylko dla tego projektu mimo ...

Jako programista Java uważam, że Jython jest bezcenny i chciałbym wiedzieć o IronPython, kiedy programowałem z C # (poszedłem C #> Java zamiast Java do C #).

Fakt, że masz całą bibliotekę Java dostępną dla skryptu Jython, jest doskonały i często używam testów jednostkowych Jython do testowania klas POJO przy użyciu obiektów Mock.

Mamy nawet dostarczyć konsolę Jython w naszej aplikacji, dzięki czemu użytkownicy mogą skrypt własnych procedur, z pełnym dostępem do obu bibliotek Java i nasze własne. To miło, że mogę pokazać użytkownikom, jak pisać proste skrypty i pozwolić im sami zautomatyzować różne rzeczy bez konieczności wykonywania całej automatyzacji.

Jasne, Jython nie jest idealny - pozostaje nieco w tyle (CPython) (3.2), a nawet IronPython (2.7), ale to czyni go współczesnym z książką Guido . * 8 ')

Mark Booth
źródło
0

Spędziłem tydzień lub dwa, zbierając podstawy języka Python i Django (ostatecznie zdecydowałem się na Rails z innych powodów) po wykonaniu tylko pracy w języku C #. Na początku było trochę trudno się zorientować, ale Django jest stosunkowo prosty; najtrudniejszą częścią, jaką znalazłem, było wymyślenie, jak napisać niezbędny kod w Pythonie. Django jest bardzo prosta; Nie dotknąłem tego od ponad roku, ale prawdopodobnie nadal mógłbym zrobić coś trywialnego. Trochę komplikuje się jednak korzystanie z ogólnych obiektów oraz niektórych bardziej zaangażowanych szablonów i widoków.

Jedną z rzeczy, okazało się, że to dziwne, aby zawinąć moja głowa wokół jest idea, że wszystkie modele Django są w models.pypliku; Jestem pewien, że możesz utworzyć różne pliki i zaimportować je wszystkie (nie próbowałem tego jednak), ale to samo czułem, że „źle” jest przyzwyczajony do C #, gdzie bardzo źle jest mieć wiele klas w tym samym pliku, chyba że jeden jakiś prywatny klasy używane tylko przez drugą klasą. Reszta nie była wcale trudna, chociaż jeśli nie znasz się tak dobrze na MVC (lub MTV w języku Django), sama w sobie jest to niewielka krzywa uczenia się.

Wayne Molina
źródło