Droga rozwoju dobrego programisty. |
Droga rozwoju dobrego programisty. |
24.08.2011, 03:32:49
Post
#1
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) |
Witam!
Chciałbym poruszyć temat pewnego zdania, opinii, która krąży po internecie. Mianowicie: "Profesjonalny programista powinien uczyć się jednego nowego języka programowania rocznie." Po głębszym zastanowieniu nasuwają się różne opinie. Z jednej strony to osoba, która zna się na wszystkim - tak na prawdę nie zna się na niczym. Z drugiej strony nasza branża rozwija się w szalonym tempie. Zatrzymując się na jednym jedynym rozwiązaniu - zostajemy w tyle. Co myślicie o wspomnianej sentencji? Mit czy święta prawda? Czy kierujecie się tym trendem w waszym rozwoju rozszerzając horyzonty czy może dążycie do bycia ekspertem w jednej wąskiej dziedzinie? Ten post edytował tolomei 24.08.2011, 03:34:21 -------------------- “ Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth |
|
|
24.08.2011, 07:10:50
Post
#2
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 8 Dołączył: 5.12.2008 Ostrzeżenie: (0%) |
Myśle, że to za wolno Polecam to http://pragprog.com/book/btlang/seven-lang...-in-seven-weeks. Tutaj nie chodzi o to, że powinienieś zmieniać języki jak rękawiczki, tylko poznanie nowych języków pozwala ci się stać lepszym programistą w języku/językach, które używasz na co dzień.
Cytat Czy kierujecie się tym trendem w waszym rozwoju rozszerzając horyzonty czy może dążycie do bycia ekspertem w jednej wąskiej dziedzinie? Ja niestety jestem cięzkim przypadkiem "Jack of all trades, master of none", ale z tego co obserwuje to zdecydowanie zbyt często tzw. "eksperstwo" cechuje się tym, że po prostu olewa się inne rzeczy, niekoniecznie zgłębiajać swoją dziedzine. Czyli traktowane jest to jako wymówka od nauki i taki "ekspert" jest co najwyżej na średnim poziomie. Ten post edytował Theqos 24.08.2011, 07:23:40 |
|
|
24.08.2011, 07:43:40
Post
#3
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 41 Dołączył: 28.06.2011 Skąd: Częstochowa Ostrzeżenie: (0%) |
Moim zdaniem umiejac logicznie myslec programując stwierdzenie o uczeniu sie jednego nowego jezyka rocznie sprowadza sie do poznawania jego skladni i bibliotek... i na pewno nie chodzi o to, zeby odłożyc wszystko na bok i zajmowac sie tylko nauka nowego.
|
|
|
24.08.2011, 09:02:37
Post
#4
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 55 Dołączył: 1.06.2010 Skąd: mam to wiedzieć? Ostrzeżenie: (0%) |
Ja umiem jako tako PHP...
Nie umiem javascript etc., ale jeżeli coś potrzebuję, to zrobię Programowanie IMO to syntax, jak to się nauczysz, to z manuali poskładasz wszystko. Tak - możesz nie wiedzieć o ciekawych nowinkach, szczegółach - ale nie oszukujmy się. Bliżej ludziom do modelu znawcy jednej dziedziny niż do wszechwiedzącego guru. Zobaczcie... Facet naprawi wiele w domu: kontakt, żarówkę wymieni. Ja np. znam się na PC, to i sam grafikę sobie wymienię, naprawię laptop... Ale honor honorem, nie znam się na samochodzie, na pralkach - jeżeli to mi szwankuje, to jadę do mechanika/elektryka etc. Znam się na PHP, ale znajome mi są i inne języki, ale to PHP jest dla mnie tym językiem przewodnim. Przyznam, że zaczyna mi się nudzić i dotyka mnie myśl, że wszystko co jest logiczne etc. jest możliwe w PHP. Teraz chyba jest czas, aby zainteresować się innym językiem. Dolać więcej wody do mojego naczynia z sokiem zagęszczonym... Jak działa zagęszczony sok? Zagęszczony jest nie dobry, zbyt intensywny (tak samo programista, który umie tylko i wyłącznie jeden język). Zbyt rozcieńczony smakuje jak woda (programista - znawca wszystkiego). Rozcieńczony w odpowiedniej proporcji smakuje wyśmienicie. I to by była moja opinia na ten temat =] Ten post edytował ixpack 24.08.2011, 10:54:31 -------------------- Łatwo jest być odważnym za murami własnego zamku.
|
|
|
24.08.2011, 10:56:35
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Cytat Co myślicie o wspomnianej sentencji? Mit czy święta prawda? Czy kierujecie się tym trendem w waszym rozwoju rozszerzając horyzonty czy może dążycie do bycia ekspertem w jednej wąskiej dziedzinie? Robię tak, aby się zwyczajnie nie nudzić. Warto testować nowinki, przyglądać się innym językom, rozwiązaniom (m.in. w ten sposób poznałem genialne narzędzie, jakim jest SASS-Compass). A ostatnio bawię się trochę bardziej we front-endzie i BOFH-owaniu. Jak sobie musk odpocznie trochę od PHP, to potem zupełnie inaczej się myśli. [; -------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
24.08.2011, 12:31:45
Post
#6
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) |
Nie można popadać w skrajności, moim zdaniem wszystko zależy od potrzeb. Ale aby nazywać sie programistą, trzeba mieć pojęcie o innych językach i rozwiązaniach w nich stosowanych. Samo php jest bardzo tępym językiem, i przekazującym po drodze mało porządnych wzorców. Z mojej perspektywy warto znać choćby podstawy C/C++, nawet assemblera. Nic tak nie wyrabia myślenia jak niskopoziomowa alokacja pamięci i optymalizacja algorytmów Pożytecznym językiem jest też Java i wzorce projektowe jakie stosuje sie we frameworkach webowych w tym języku.
Ja z biegiem czasu dochodze do wniosku że php jest po prostu słabym językiem, szczególnie w konfrontacji z pythonem którego obecnie się ucze. Ale przyszło nam zarabiać pieniądze w php, więc nie ma co narzekać. Trzeba wykonywać swoją pracę jak najlepiej, podpatrując jednocześnie lepszych i szukać tego jak można sobie ulepszyć ta prace. To czy znamy dobrze xx języków wcale nie jest wyznacznikiem bycia dobrym koderem, ale warto przynajmniej w podstawach znać techniki jakie oferująć konkurencyjne języki w branży w jakiej się obracamy. |
|
|
24.08.2011, 13:41:02
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) |
Jak sobie musk odpocznie trochę od PHP, to potem zupełnie inaczej się myśli. [; Kiedyś po killku takich wycieczkach postanowiłem zmienić PHP na Javę i od kilku lat zarabiam jako programista Javy.Ale przyszło nam zarabiać pieniądze w php, więc nie ma co narzekać. Trzeba wykonywać swoją pracę jak najlepiej, (...) Do końca życia będziesz pisał w PHP bo kiedyś tak wybrałeś? Jeśli widzisz, że dookoła jest dużo fajniejszych rzeczy to rzuć PHP.
|
|
|
24.08.2011, 13:58:42
Post
#8
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) |
Do końca życia będziesz pisał w PHP bo kiedyś tak wybrałeś? Jeśli widzisz, że dookoła jest dużo fajniejszych rzeczy to rzuć PHP. Ani mi się śni Coraz lepiej idzie mi odejście w stronę Pythona pod kątem webowym, a w perspektywanie chce pracować przy czymś trochę innym(przetwarzanie i kodowanie dźwięku). Ten post edytował elektrrrus 24.08.2011, 14:00:23 |
|
|
24.08.2011, 14:12:37
Post
#9
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Cytat Kiedyś po killku takich wycieczkach postanowiłem zmienić PHP na Javę i od kilku lat zarabiam jako programista Javy. Cóż, zobaczymy, czy Railsy mnie kiedyś jeszcze bardziej urzekną... [; -------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
24.08.2011, 15:30:08
Post
#10
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) |
Pewien bardzo doświadczony programista języka XYZ(aby nie robić reklamy) powiedział coś takiego:
XYZ is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use XYZ itself a lot. This is the same argument you tend to hear for learning Latin. It won't get you a job, except perhaps as a classics professor, but it will improve your mind, and make you a better writer in languages you do want to use, like English. Oczywistym jest, że różne języki mają różne konstrukcje, często nawet nie występujące w innych. Czy rzeczywiście nauka języka X jest w stanie sprawić, że będziemy lepszymi programistami języka Y ? -------------------- “ Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth |
|
|
24.08.2011, 16:22:48
Post
#11
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
@tolomei: tak. Przykład? C Poznaj go a taki php uznasz za zabawkę Ja zaczynałem "od dupy strony", czyli wpierw trzepałem w Pascalu, C, Javie, a dopiero potem poznałem Php. A że wiele języków skryptowych ma składnię wybitnie zbliżoną do C, więc wiele mechanizmów i mojej wiedzy była "do przeniesienia". Jednocześnie widziałem zalety i wady obu i jestem świadom, że php to bardzo ubogi kuzyn C++ choćby i części rzeczy w nim brakuje lub jest niezbyt dobrze zaimplementowana. Bez punktu odniesienia w postaci innego języka byś tego nie zauważył. Ja języki poznaję w miarę potrzeb lub znudzenia.
Ale najmądrzejsze moim zdaniem twierdzenie to fakt, że nie należy się uczyć języka, ale logicznego myślenia. Co z tego, że poznasz sam język i jego strukturę czy biblioteki, skoro to od logicznego myślenia będzie zależało czy to co w nim zrobisz będzie dobrze działać. Obecnie i tak języki dążą do jak największej abstrakcji, a więc za jakiś czas dojdzie do sytuacji, gdzie kod będzie składało się z gotowych klocków i wtedy ta umiejętność spojrzenia na kod bardzo abstrakcyjnie, logicznie go podzieliwszy na bloki funkcjonalne, wyjdzie. Zaletą inną jest to co powiedział erix. Odpocząwszy od języka na rzecz innego, zaczynasz nawet na standardowe rzeczy patrzeć inaczej. Chcesz przenieść pewne doświadczenia z pracy w innym do "starszego". Wyskakujesz więc ze schematów i możesz zrobić coś nowego, fajnego. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
25.08.2011, 17:29:39
Post
#12
|
|
Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) |
Dobry programista dobrze zna podstawy.
Można się czasem za głowę łapać jak się widzi ile jest programistów wierzących w magię, programistów którzy boją się dotknąć do jakiegoś niższego poziomiu w programowaniu (skoro im w wyższym działa), programistów typu Cargo Cult. Osobiście bym poradził każdemu co czyta teraz ten post, żeby wrócił do ostatniego kawałku kodu jaki napisał ostatnio, (może być nawet ten co masz aktualnie w uruchomionym edytorze) i przeczytał sobie ten kod linijka po linijce i zastanowił się czy naprawdę rozumie co oznacza każda linijka? Ale tak od podszewki, czyli jak ten kod będzie wyglądał w pamięci, jakie instrukcje kodu wysokopoziomowego tłumaczą się na jakie instrukcje procesora, czym są te tablice które używam. Czym jest $fp = fopen(..) - (samo $fp, ale dokładnie czym jest!), czy potrafiłbym zaimplementować własnoręcznie każdą funkcję z którą wywołuję z bibliotek? (czy też dalej jestem Cargo Cult?), etc.. A syntax? nowe języki programowanie? to najłatwiejsza część... |
|
|
25.08.2011, 17:42:29
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Cytat Robię tak, aby się zwyczajnie nie nudzić. Warto testować nowinki, przyglądać się innym językom, rozwiązaniom Ja mam co pewien czas moment narzekania na PHP jaki ten język czasami potrafi być badziewny, wtedy znowu napada mnie chęć na Python / Ruby (oczywiście języki te pod kątem web'a) wtedy znowu uznaję przy Ruby że co za dużo to nie zdrowo + Railsy mi nie odpowiadają swoim narzutem, a do Pythona nie znalazłem odpowiedniego FW (chociaż przejechałem chyba wszystkie, najlepszy jest imho web2py ale wciąż brakuje paru rzeczy). Po takim zabiegu wracam do PHP z nowym świeżym nastawieniem, ogólnie tak ostatnio zauważyłem że język do którego nie mam żadnych zastrzeżeń to JS, przyjemna sprawa Ogólnie moim zdaniem rozwijanie się i czytanie nowinek, nowych podejść do projektowania / testowania, nowych narzędzi itp rozwija nas a w szczególności naszą pracę i to co wychodzi z pod naszych rąk cały czas rozwija się razem z nami - co moim zdaniem jest jedną z fajniejszych rzeczy jeżeli chodzi o programowanie gdy człowiek widzi że jego rozwiązanie się sprawdza i działa tak jak miało działać. -------------------- |
|
|
25.08.2011, 18:42:29
Post
#14
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) |
Poznawanie 10 języków robiących to samo i tak samo jest średnio sensowne, natomiast na pewno warto uczyć się języków prezentujących różne paradygmaty programowania, nawet nie po to, by w nich programować, tylko by mieć nowe spojrzenie na to, co się samemu robi. Szczególnie pouczające może być poznanie jakiegoś funkcyjnego języka programowania.
ale Tak, zaiste, jest jedno wielkie "ale". Język programowania to narzędzie. Możesz poznać wiele różnych języków programowania, ale mówiąc obrazowo, będziesz wtedy specjalistą od różnych typów młotków. A tymczasem wciąż pozostaje otwarta kwestia techniki wbijania gwoździ w różne materiały. Odpowiedni młotek może pomóc, ale nie wykona roboty za Ciebie, gdy będzie trzeba np. przybić galaretkę do ściany. Co jest ważne: - abstrakcyjne myślenie, - umiejętność modelowania różnych zjawisk, sytuacji, oddzielania rzeczy nieistotnych od istotnych, - algorytmika, - matematyka, - rozumienie idei stojącej za poszczególnymi narzędziami. A to są rzeczy, o których 90% osób zapomina całkowicie z różnych powodów. Zachwycanie się nowinkami Hmmm... m.in. po tym można łatwo poznać, kto zalicza się do wyżej wspomnianych 90%. Nie wszystkie nowinki są warte tego, by się nimi zachwycać, tyle że aby zauważyć, że ktoś próbuje nam wciskać np. odgrzewanego kotleta, trzeba mieć jednak trochę szersze spojrzenie. A informatyczne gadżeciarstwo pojawia się wszędzie: ludzie wypisujący, że esencją obiektówki jest ilość błyskotek w danym języku programowania ("nie ma przeciążania operatorów, zatem ma gorszą obiektówkę") czy zachwycający się tym, że w jednym frameworku zrobienie rzeczy X zajmuje 1,5 linijki i obejmuje wywołanie 3 metod, a w drugim 1,34 linijki i wystarczy wywołać tylko 2,5 metody (a pod tym 50 komentarzy "łał, ale super, już rzucam wszystko i lecę" ). Nie wspomnę już o dyskusjach na temat wyższości lodówek nad pralkami. Jeśli chcesz być dobrym informatykiem, to na pewno nie osiągniesz tego, idąc w tym kierunku, a kierunek przeciwny to konieczność sięgnięcia trochę głębiej niż to, co widać na ekranie. Dobry informatyk nie musi czytać o nowych, udanych podejściach do testowania/projektowania. On może je sobie po prostu wymyślić . -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
25.08.2011, 22:34:14
Post
#15
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Trudno się nie zgodzić z tym co napisałeś Zyx. Wiele osób zapomina o fakcie, że za każdym kodem stoi osoba i jej spojrzenie na pewną funkcjonalność. To jest największe błogosławieństwo i jednocześnie przekleństwo programowania - dowolność. Można to samo zrobić na wiele sposobów w obrębie tego samego języka. Nawet głupie "Hello world". W zasadzie ograniczają nas jedynie umiejętności i czas. Po czym bowiem można poznać dobrego informatyka? Nie traci czasu na wymyślanie koła od nowa jeśli nie musi, ale też w prostych przypadkach nie zmarnuje czasu na szukanie gotowca niepotrzebnie. Innymi słowy dobry potrafi zauważyć granicę, która stanowi "barierę sensowności".
Na pewno przytoczone przez Ciebie elementy są istotne i się z tym zgadzam, ale posługując się Twoim porównaniem: "Po co mam przybijać galaretkę do ściany? Wystarczy, że zrobię półkę by na niej galaretkę postawić." Tak... To już haczy o abstrakcję, ale skłaniałbym się raczej tutaj ku doświadczeniu. Czasem trzeba zauważyć, że "gwoździe" i "młotki" same w sobie nie rozwiążą problemu, ale trzeba będzie je wykorzystać pośrednio. Swoją drogą jeśli już jesteśmy przy algorytmice i wyższej matematyce, to czy jej obecność większości programistów webowych się przyda? Ilu z nich jest w stanie wykorzystać ją do czegoś. Ilu będzie w stanie zaprząc w swojej aplikacji? Chylę czoła przed osobami, które potrafią swoją wiedzę wykorzystać w sposób nieszablonowy. Są one jednak głosem wołającego na puszczy najczęściej jednak. Co do gadżeciarstwa to raczej niechętnie je popieram. Akceptuję jego istnienie, ale nie uważam za sensowne. Wolę praktyczne rzeczy. Bardziej się ucieszyłbym z porządnego zestawu śrubokrętów niż jakiegoś gadżetu, który jest tylko po to by być. Tak samo podchodzę do nowości w IT. Niektóre mają sens i przyszłość, ale wiele jest sztuką dla sztuki lub podawaniem tego samego, w nieco innej oprawie. Sens tego jest dla mnie wysoce wątpliwy. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
26.08.2011, 18:21:38
Post
#16
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) |
Co do wymyślania koła od zera - fajnie, że to rozwinąłeś, bo faktycznie z mojego posta można było wysnuć wniosek na wyrost, że każdy powinien sam wynaleźć koło, tymczasem nie o to mi chodziło.
Cytat Dobry informatyk nie musi czytać o nowych, udanych podejściach do testowania/projektowania. On potrafi je sobie po prostu wymyślić. co nie znaczy, że musi, gdy ktoś już zrobił to za niego. Tak powinno to być napisane. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
Wersja Lo-Fi | Aktualny czas: 1.06.2024 - 11:52 |