Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Droga rozwoju dobrego programisty.
tolomei
post 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
Go to the top of the page
+Quote Post
Theqos
post 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 wink.gif 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
Go to the top of the page
+Quote Post
luckyps
post 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.
Go to the top of the page
+Quote Post
ixpack
post 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ę wink.gif
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.
Go to the top of the page
+Quote Post
erix
post 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ć. wink.gif 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!
Go to the top of the page
+Quote Post
elektrrrus
post 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 wink.gif 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.
Go to the top of the page
+Quote Post
mike
post 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%)
-----


Cytat(erix @ 24.08.2011, 11:56:35 ) *
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.
Cytat(elektrrrus @ 24.08.2011, 13:31:45 ) *
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.
Go to the top of the page
+Quote Post
elektrrrus
post 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%)
-----


Cytat(mike @ 24.08.2011, 14:41:02 ) *
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 wink.gif
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
Go to the top of the page
+Quote Post
erix
post 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!
Go to the top of the page
+Quote Post
tolomei
post 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
Go to the top of the page
+Quote Post
thek
post 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 smile.gif Poznaj go a taki php uznasz za zabawkę wink.gif 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
Go to the top of the page
+Quote Post
nasty
post 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ęść... wink.gif
Go to the top of the page
+Quote Post
melkorm
post 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 wink.gif

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ć.


--------------------
Go to the top of the page
+Quote Post
Zyx
post 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ę" smile.gif). 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ć smile.gif.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
thek
post 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
Go to the top of the page
+Quote Post
Zyx
post 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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 1.06.2024 - 11:52