bswierczynski napisał(a)

A co z podszkoleniem się w zakresie czytelności i poprawności kodu? Wg mnie to są najważniejsze umiejętności przeciętnego programisty. Z tego można się całkiem nieźle szkolić samodzielnie.

Czy czytelność kodu można ćwiczyć samemu? Wiadomo, że można się nauczyć robić wcięcia oraz ładnie nazywać zmienne, ale z drugiej strony to zbyt subiektywna rzecz, żeby można było samemu ocenić. Coś co jest czytelne dla autora często nie jest czytelne dla innych (wiem, to truizm). Dlatego dobrym pomysłem są rewizje kodu przez kolegów z pracy oraz programowanie w parach. A to raczej ciężko wykonać samemu.

To prawda, choć w większości firm programiści nie mają chyba jednak bezpośredniego kontaktu z klientami. Wtedy za to muszą rozmawiać z managerami itp.

Dla mnie np. księgowy czy kolega z działu utrzymania, dla którego mam napisać "jakieś coś" jest klientem.

Tylko że i do tego istnieją świetne źródła do samodzielnej nauki. Książki, blogi i witryny profesjonalistów.

Po co uprawiać seks, skoro można poczytać o tym, jak inni to robią? ;)

Przyznam natomiast, że wiedza teoretyczna to jedno, a rozmowy oko w oko z klientem czy managerem to drugie. Do tego drugiego trzeba się przyzwyczaić, trzeba się trochę doszlifować.

Niestety ludzie to nie roboty i trzeba ich poczuć. Niektórych PMów nie przekona się inaczej niż tak prowadząc rozmowę, aby pomyśleli, że to oni wpadli na Twój pomysł. :)

Ale wiesz co? Jakbyś miał zdobyte na sucho pojęcie, jak to ma wyglądać, to potem dość szybko wprowadzisz to w życie. Z drugiej strony, gdy masz rok doświadczenia w jednej firmie, a potem przechodzisz do drugiej i jesteś świeżakiem, to -- mimo doświadczenia -- też potrzebujesz troszkę czasu, żeby się wdrożyć w komunikację międzyludzką w tej nowej firmie. Raczej nikt Cię nie pośle na nie wiadomo jakie pertraktacje z ważnym klientem.

Owszem. Ale już znasz przynajmniej częste błędy popełnianie przez ludzi, wiesz co jest potencjalnie problematyczne, wiesz o co dopytać takiego człowieka.

Masz rację, że można pracować i 10 lat w firmie i nie nauczyć się pewnych rzeczy, o których wspomniałem. Ale chyba lepsze są mniejsze szanse niż żadne. :)

Jesteś absolutnie normalnym przykładem, niestety ;). Szkoda, że nawet na niby dobrych uczelniach niespecjalnie tego uczą.

Cieszę się, że to napisałeś, bo ja nawet z niby dobrymi uczelniami kontaktu od dawna nie mam.

Mogę Cię tylko prosić o uwierzenie na słowo, że niektórzy się takimi rzeczami interesowali i jakoś tam nieśmiało zaczynali stosować jeszcze na studiach.

Nie musisz mnie o nic prosić. :) Znam ludzi, którzy sensownie organizują swoją pracę programistyczną będąc w gimnazjum. Widocznie mają lepszą motywację. (Ja teraz, gdy ktoś mi pokazał te parę rzeczy też mam motywację do robienia tego nie tylko w uczelnianych, ale i w prywatnych projektach. Wcześniej byłem po prostu zbyt leniwy.)
Inna rzecz, że znam ludzi, którzy skończyli studia i nie potrafią używać debugera. Gdy im się dziwię, to odpowiadają: "bo ja piszę od razu dobry kod i nie muszę poprawiać". :|

I jeszcze jedna sprawa: wypadałoby powiedzieć klientowi, żeby nie wtykał nosa w nasze pętle. Klient jest specjalistą ze swojej biznesowej dziedziny, my -- programiści -- ze swojej. Niech Klient zdefiniuje wymagania i ograniczenia, choćby i wydajnościowe, a już nasza głowa w wyborze odpowiedniego narzędzia.

To z tą pętlą for to był taki skrót myślowy do opisania super-mega-wspaniałego-systemu-niezbędnego-do-zwiększenia-zysków. ;)

Te wałki z rozmów kwalifikacyjnych to jakieś kpiny. Techniczne kwalifikacje programistów powinni sprawdzać techniczni ludzie, np. programiści. Nie HR-owcy i nawet nie managerowie. Oni robią dobrze swoje rzeczy, ale nie są zwykle najlepszymi ludźmi do sprawdzenia czyichś umiejętności technicznych.

O dziwo ja rozmawiałem z gościem technicznym. To jakoś tak w trakcie rozmowy ze mną on dopiero zrozumiał, że tak właściwie to szuka kogoś na inne stanowisko. Chyba nie miał się czasu wcześniej zastanowić. ;)

Zarządzanie złożonością. Po prostu: pisanie kodu czytelnego, zrozumiałego dla człowieka, z małą liczbą powiązań i dużą kohezją, spójnością. Doskonalenie tej sztuki to rzecz znacznie bardziej pracochłonna niż nauka jakiegoś tam języka. Umiejętność pisania kodu wysokiej jakości jest całkiem cross-platformowa ;).

Owszem, to jest najtrudniejsze. Tylko czy w domowym/uczelnianym projekcie na 500 czy tam 5000 linijek można się tego nauczyć?

Pracuję od 1,5 roku na etacie, wiele mi to dało z uwagi z jednej strony na lenistwo, a z drugiej na to, że ja jednak wolę uczyć się na realnych przykładach niż z książek. Inna rzecz, że ostatnio doszedłem do wniosku, że owszem, nauczyłem się jakichś technologii, ale pod względem zarządzania czy architektury aplikacji zobaczyłem raczej jak nie należy tego robić. Dlatego chyba faktycznie teraz mogę posiedzieć w domu z książkami. :)