Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: czego się uczą dzisiaj programiści...

wracając do tematu wątku: projekt inżynierski, każdy, można zawsze podzielić na opracowanie tego co ma powstać i tworzenie tego. Trzymam się tezy, że po pierwsze są to oddzielne etapy po drugie, że osoba realizująca projekt nie powinna zmieniać tego co wykonał autor projektu, ot tyle...

po drugie w kwestii programistów, Ci którzy nie znają wzorców projektowych, sensu obiektowych metod itp. to programiście na etapie lat 90tych i Pascala z uczelni, ich przydatność w wielu obecnych projektach jest znikoma nawet gdy ich mniemanie o sobie jest ogromne... dodam po raz kolejny, ze chodzi o oprogramowanie wspomagające zarządzanie.

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:27
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: czego się uczą dzisiaj programiści...

Wydaje mi się, że opisywanie języka obiektowego np. javy bez opisania, że jest to implementacja obiektowego paradygmatu analizy i projektowania może prowadzić do mylnego wniosku, że klasa to kontener na kod... (patrz cytat z pierwszego wpisu w tym wątku) a prawda jest taka, że klasa to abstrakcyjne pojęcie z obszaru modelowanego problemu metodami obiektowymi zaś w kodzie pojęcie class to implementacja tej abstrakcji, itd.

student który tego nie rozumie, który nie potrafi wykazać prawdziwości jakiejkolwiek tezy którą stawia, będzie tylko biernym koderem, który używa konstrukcji obiektowych narzędzi nie wiedząc jaki jest ich rodowód i po co powstały. Powstają wtedy programy składające się z jednej klasy i setek metod, odwołujące się bezpośrednio do danych itp. Dziedziczenie jako sposób na wielokrotne użycie kodu to konsekwencja (korzyść) obiektowego paradygmatu a nie cel narzędzia sam w sobie. W Pascalu, z przed 15 lat, także można pisać nie powielając kodu, wymagało to tylko chęci. itd.

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:27

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:27
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: czego się uczą dzisiaj programiści...

Paweł Włodarski:
zapytam czy potrafi ją udowodnić

W czym to ma pomóc?


skoro nie wiesz to nie pogadamy...

Oj proszę cie, nie uciekaj przed odpowiedzią. podajesz studentowi definicję programowania i i pytasz czy potrafi ją udowodnić. W czym to pomaga temu studentowi w kontekście tworzenia lepszych rozwiązań?

przed niczym nie uciekam, chyba przeceniłem niektórych,

żądanie dowodu to prosty test czy ktoś rozumie co robi, ktoś kto nie potrafi poprzeć stawianej tezy po protu nie rozumie postawionej tezy, nie ma w tym nic złego, po protu należy z pokorą uznać ten fakt: nie rozumiem. Na tej zasadzie są publikowane i używane wzory inżynierskie itp. czyli wzory na wytrzymałość materiałów, do konkretnych zastosowań dla ludzi, który z muszą to liczyć a nie wiedzą (nie muszą) wiedzieć dlaczego akurat tak a nie inaczej coś się wylicza (projektuje).

Większość ludzi po ukończeniu szkoły podstawowej potrafi podać z pamięci wzór na pole wielu figur geometrycznych, niektórzy tylko potrafią je sami wyprowadzić z prostych pojęć. Niestety używanie z pamięci tych wzorów to tylko odtwarzania cudzych umiejętności, jest bardzo źle gdy ci którzy nie potrafią sami wyprowadzić wzoru na pole uważają się za mądrzejszych od tych którzy to potrafią. Nie da się wzoru na pole koła "wymyśleć" burzą mózgów, szukanie zaś w internecie naraża na ryzyko, że trafi się, zamiast na rzetelną wiedzę, na bełkot. Najgorzej jest wtedy gry bezkrytycznie uznany za "wiedzę" bełkot staje się dla wielu ludzi "normą".

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:26

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:26

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:26
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: czego się uczą dzisiaj programiści...

Paweł Włodarski:
Jeśli zaś chodzi o twoje pytanie. To spróbujemy teraz drogi empatycznej . Wysil teraz wszystkie neurony lustrzane i wyobraź sobie sytuację kiedy jesteś zdegradowany do roli pasywnego elementu projektu.

daruj sobie interpretacje moich neuronów bo ja Twoich nie oceniam...
Przed tobą w łańcuchu jest pan ,którego wypowiedź wyśmiałeś w pierwszym wątku. On tworzy projekt a twoim zadaniem jest tylko i wyłącznie pomóc programista go zrozumieć, nie masz prawa nic zmieniać.

ktoś go, na podstawie czegoś, do tego projektu zatrudnił jako projektanta, to pierwsze ryzyko projektu (taka rekrutacja jest niestety powszechna w dużych projektach w tym kraju).
No i teraz nie zgadzasz się z jego dokumentem. Są dwie opcje albo "szanujesz" autora dokumentu i chowasz głowę w piasek albo zaczynasz dyskutować z nim na co słyszysz "Panie Jarku proszę nie dyskutować pan ma swój etap ja mam swój , ma Pan szanować wyniki mojego etapu , potem je wytłumaczyć , nie dyskutować i koniec!" .

opisałeś swoją propozycję a ja robię to tak: zanim podejmę się pracy opisuję swoją ofertę czyli co potrafię zrobić i czego potrzebuję, stawiam minimalne wymagania na produkt mojego poprzednika - określam swoje "zamówienie", jeśli nie wiadomo tego na początku, przydają się standardy w szczególności podział projektu na etapy i role wykonawców (zakres odpowiedzialności każdego wykonawcy), standardy (np. notacje i metodyki) opisują jakie wymagania ma spełniać produkt etapu. Nie toleruje jednak podejścia "jak coś razem wypracujemy to potem coś z tym zrobimy"... bo to praca na zasadzie "może coś z tego wyjdzie"...
Nie masz wpływu na to jakie (twoim zdaniem) bzdury i bełkot masz przekazać programistom.

ja mam bardzo duży wpływ: mogę nie przyjąć zamówienia, jak dostaje coś do "dalszej" pracy i widzę w tym jakieś ryzyka, zgłaszam to sponsorowi projektu, są to pytania i uwagi do cudzego produktu. Otrzymuje jakąś odpowiedź, zależnie od tego co dostanę wchodzę w projekt lub rezygnuję.
Teraz naprawdę wysil swoje zdolności empatyczne bo to jest kluczowe : chce ci się rozwijać dalej w tej dziedzinie czy raczej po pracy znajdziesz sobie inne hobby dla zabicia frustracji?

mam taki zwyczaj, że zanim zaneguje cudze zdanie staram się dobrze poznać problem ale nie od jednego "mentora" czy "guru" a z możliwie dużej ilości rożnych źródeł, korzystanie z wiedzy tylko jednej osoby naraża nas na ryzyko bezwiednego powiela cudzego bełkotu ... tak więc to co robię to także hobby, a każda kolejna książka uczy mnie większej pokory zamiast nadymania się ... po drugie na pewno ilość nie decyduje o uznaniu "prawdziwości tezy", gdyby tak było tworzył bym diagramy klas jako "modele danych"... a na szczęście nie robię tego.

w każdym razie opisałeś patologię, do której nie dopuszczam w swoich projektach: ja nic nie muszę... w szczególności nie musza akceptować cudzego bełkotu.

Staram się tylko umieć poprzeć każdą prezentowaną tezę, nie uciekam do idiotycznych "przecież każdy wie" co niektórzy mają tu w zwyczaju, bo to przyznanie się do niewiedzy, niemocy, niezrozumienia.

Współpracuję między innymi z wieloma programistami, nie dlatego że oni mnie "namówili" a dlatego że uznałem ich autorytet i wiedzę. Tych samych moich projektów jedni nie rozumieją a inni je szybko i sprawnie realizują. Są tacy, którzy je negują i mają prawo, ja w takich przypadkach rezygnuje z ich usług. Ale nie toleruję przypadków podjęcia się projektu i późniejszego jego negowania i wprowadzania nieautoryzowanych zmian, bo o tym tu głównie mowa.
Ot tak widzę wzajemny szacunek.

Kiedy nazywam coś bełkotem? Są sytuacje, gdy coś nie podlega ocenie przez aklamację bo jest wynikiem konkretnej wiedzy, np. formalne notacje czy paradygmaty (tu obiektowy), który albo się rozumie albo nie, podobnie jak 2+2=4 gdzie 2+2=5 to bełkot.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: czego się uczą dzisiaj programiści...

Paweł Włodarski:
Jarek Żeliński:
Wydaje mi się, że opisywanie języka obiektowego np. javy bez opisania, że jest to implementacja obiektowego paradygmatu analizy i projektowania może prowadzić do mylnego wniosku, że klasa to kontener na kod... (patrz cytat z pierwszego wpisu w tym wątku)

Oj bardzo istotna wypowiedz!!!! Czy takie zdanie "klasa to kontener na kod" pojawiła się w cytacie "Programowanie obiektowe- jest to programowanie z użyciem klas i obiektów." (bo rozumiem ,że o niego chodzi) czy to tylko twoja interpretacja?

to był cytat z podobnego bełkoty, przepraszam za brak źródła ale nie chodzi mi człowieka jako autora a o treść...
W końcu się z tobą w czymś zgodzę ,że wiele osób pisze słabej jakości kod często mieszankę obiektowo -proceduralną.

jednak coś ...:)
Natomiast popełniasz pewien logiczny błąd. Widzisz przyczynę i samowolnie przypisujesz jej powód. Znasz badania w których studentów podzielono na dwie grupy : jedna znała definicję a druga nie i na końcu porównano ich implementację? Czy opierasz swoje wnioski na podobnych badaniach?

ostrożnie podchodzę to badań ilościowych bo osobiście tezy testuje się na jakość a nie na ilość, w przeciwnym wypadku można zdryfować w stronę twierdzenia "jedzmy gówno, miliony much nie mogą się mylić"....

po drugie metodami naukowymi (które nie ukrywam lubię) tezy dowodzi się nie ilościowo a modelami. Ilościowe podejście prowadzi do sytuacji w których wiemy, ze coś ma miejsce ale nie wiemy dlaczego, wiemy tylko że czegoś jest więcej a czegoś mniej, zaś to czego jest więcej nie musi być lepsze (np. na świecie więcej jest ludzi nieuczciwych, dlaczego? prostym dowodem na to jest sam fakt istnienia prawa - jest potrzebne).Jarek Żeliński edytował(a) ten post dnia 20.03.11 o godzinie 12:52

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:26

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:26
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: czego się uczą dzisiaj programiści...

Paweł Włodarski:
Ależ nie oceniam twoich neuronów. Rozmawialiśmy odnośnie samokształcenia programistów a nie jak Ty prowadzisz projekty dlatego dalszy wy7wód jest niepotrzebny.

to Ty przytoczyłeś hipotetyczny przykąłd projektu nie ja, ja tylko odpowiedziałem.

Sytuacja którą przedstawiłem jest czysto teoretyczna i am służyć wzbudzeniu pewnej empatii dlatego nie am sensu pisać " w rzeczywistości tak nie robię". Chodzi o to aby zastanowić się czy w tych warunkach chciałbyś się po pracy rozwijać czy poszedł an piwo?

dywagacje o nierzeczywistych sytuacjach to pływanie w chmurach, coś jak by zadawanie pytań: a gdyby słoń nie miął trąby...

zaś co do tego kiedy idę na piwo a kiedy się rozwijam zostawiam sobie, zapewniam Cię jednak, że nie raz potrafię to połączyć :) - wystarczy dobierać sobie do piwa towarzystwo :)
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: czego się uczą dzisiaj programiści...

Paweł Włodarski:
ostrożnie podchodzę to badań ilościowych bo osobiście tezy testuje się na jakość a nie na ilość, w przeciwnym wypadku można zdryfować w stronę twierdzenia "jedzmy gówno, miliony much nie mogą się mylić"....

Oj to jest już chwyt retoryczny. Ani aj ani ty nie jesteśmy muchą a więc gówno nam nie służy. dla muchy milion jeden już te wyniki mogłyby wartościowe ;)
Trzeba poprawnie interpetować obserwacje ot co.

nie jest to chwyt retoryczny a metafora, oczywiście trzeba umieć interpretować obserwacje i ja tylko podkreślam, że ilościowe metody są bardzo ryzykowne i nie stosuje ich... gdyby tak było dawno uznał bym, że nie da się pisać dobrych programów a nie uznałem...

po drugie metodami naukowymi (które nie ukrywam lubię) tezy dowodzi się nie ilościowo a modelami.

Nie zgadzam się.

Nie musisz i szanuje to :) (zapewne tym się właśnie różnimy)
Gdy testujesz działanie leku dzielisz badanych z tego co wiem na grupy ,która przyjmuje lek , na grupę która go nie przyjmuje i na tych co biorą placebo.

to mało wiesz, testowanie leku najpierw wymaga podania sposobu jego działania (modele chemicznych reakcji organizmu), testy dają wyniki potwierdzające lub nie hipotezę (model dziania leku) i ewentualne skutki uboczne (bo modele z natury rzeczy zawsze są pewnymi uproszczeniami). Placebo zaś podaje się tylko by wyeliminować psychologiczne skutki "wiedzy pacjenta o teście" (oni są ankietowani i wymagany jest obiektywizm).

To co opisałeś to raczej wiedza ludowa o ziołach: na bazie przypadkowych zdarzeń i obserwacji ludzie od dawna używają pewnych ziół kojarząc jest z najczęściej spotykaną reakcją na nie ale nie rozumieją ich działania.
Natomiast wracamy do pytania : czy są jakieś badania, które dowodzą, że gdy student nie zna definicji programowania obiektowego to tworzy zły kod?

tak, obserwuję że student nie rozumiejący definicji wymaga bardzo dokładnego opisu co ma napisać, to tak jak z murarzem: inżynier rozumiejący technologię jak dostanie zadanie, że ma postawić ścianę odporną na kopnięcia dorosłego człowieka da radę bo sobie wszystko policzy, kiepski murarz musi dostać dokładny projekt z dokładnością do ilości cegieł, ich układu i grubości zaprawy.

jednemu programiście wystarczy podać interfejs komponentu i nazwę wzorca projektowego do jego utworzenia innemu trza napisać wszystko na piechotę....

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:26

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:25

konto usunięte

Temat: czego się uczą dzisiaj programiści...

.Ten post został edytowany przez Autora dnia 03.08.16 o godzinie 21:25
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: czego się uczą dzisiaj programiści...

nie pociągnę ani suplementów (nie lubię paranauki), ani badań (podejście naukowe już raz opisałem) bo nie mam w zwyczaju niczego udowadniać w takich dyskusjach czegokolwiek, normalny człowiek ma własne zdanie i co najwyżej wymienia się poglądami wraz z umiejętnością ich uzasadniania, poważni dorośli ludzie nie przekonują się do swoich poglądów a co najwyżej wymieniają nimi...

co do frustracji programistów i ich rozwoju jestem zwolennikiem praktyki i rozwoju początkowo pod okiem praktyków (wielu różnych) a potem samodzielnie, podobnie jak w dawnych i obecnych cechach: najpierw młodociany jest terminatorem, potem czeladnikiem, potem mistrzem, Droga na skróty nie ma racji bytu. Rozwój jak najbardziej ale nie dopuszczalna jest sytuacja by terminator pouczał czeladnika czy w szczególności mistrza...

http://pl.wikipedia.org/wiki/Czeladnik

tak wiec gdy terminator bełkocze pod okiem mistrza, to jest poprawiany i wszytko jest w porządku, jednak gdy terminator zaczyna bełkotać publicznie chcąc uczyć innych to jest kiepsko, bo świadczy to o jego braku pokory dla wiedzy (raczej jej braku), jeżeli uważasz, że nawet terminator ma prawo "chcieć" być mistrzem w projekcie to ja nie kupuje tej teorii, jeżeli chcesz mnie przekonać, że ekipa terminatorów stanowi większy potencjał niż jeden mistrz bo ich mózgi razem ważą więcej, to tym bardziej mnie nie przekonasz...

uznaję, że poinformowaliśmy siebie nawzajem o naszych poglądach i to jest kształcące, co do udowadniania racji to nie my, nasi klienci to zrobią lepiej... ja w każdym razie kończę bo zacznę się pewnie powtarzać a po co...

w kwestii mojego rozwoju zapewniam Cię, że zanim zacząłem się "wymądrzać" na konferencjach upłynęło ładnych kilka lat i wiele kilogramów książek od ukończenia studiów...Jarek Żeliński edytował(a) ten post dnia 20.03.11 o godzinie 18:54

konto usunięte

Temat: czego się uczą dzisiaj programiści...

Przyłączam się do propozycji zakończenia dyskusji gdyż również mnie zaczyna ona męczyć. Na koniec w zasadzie pozytywna wiadomość :

Na przykładzie, który wspomniałeś (terminator,czeladnik,mistrz - rzemieślnik) jest oparty nadciągającym z zachodu podejściu do wytwarzania oprogramowania:

"Software Craftmenship" , to jest w założeniach na prawdę obiecujące. Oczywiście metafora rzemieślnika jest dostosowana do złożoności projektów IT 21 wieku.( dla osób wyznających metaforę programista-artysta - na razie muszą poczekać)

Jakby ktoś chciał poczytać to
strona:
http://softwarecraftsmanship.org/
wiki:
http://en.wikipedia.org/wiki/Software_craftsmanship
manifest (manifesty są teraz na czasie::
http://manifesto.softwarecraftsmanship.org/
i ewentualnie publikacja:
http://www.amazon.com/Software-Craftsmanship-Imperativ...

I również się zgadzam, że terminator (jeśli tylko nie jest śmiercionośną maszyną bo ta może wiele) powinien z pokora chłonąc wiedzę od osób z większym doświadczeniem. Z drugiej strony tworzenie oprogramowania to proces wielowymiarowy i ktoś może być mistrzem odnośnie wielowątkowości i terminatorem jeśli chodzi o konfiguracje serwera jboss (miara jest tutaj raczej względna!), ktoś może być mistrzem jeśli chodzi o analizę funkcjonalną a terminatorem jeśli chodzi o inne rzeczy itd. Najgorzej chyba jak terminator narzuca swoje rozwiązania grupie czeladników czy nawet mistrzów.

Tym ciepłym akcentem dziękuje za kolejną dyskusję i pozdrawiam.



Wyślij zaproszenie do