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.
źródło
Odpowiedzi:
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
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ć
N
godzin pro bono. (Ty decydujesz, coN
jest). 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.źródło
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.
źródło
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. ,
źródło
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 ')
źródło
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.py
pliku; 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ę.źródło