Kolokwium/egzamin, a pisanie programu na kartce papieru.

0

Cześć!

Programuję od jakiegoś czasu, pracuję jako młodszy programista i w sumie w tym roku zacząłem sobie robić zaocznie studia informatyczne po to żeby tej luki w wykształceniu nie było, do tej pory nauczyłem się wszystkiego sam. Jestem po technikum, aczkolwiek kierunek nie był związany z informatyką. Natomiast co mnie zaskoczyło - pisanie kolokwiów na kartkach papieru. Z jednej strony może i ma to zaletę - mianowicie mniej doświadczeni muszą sobie "przyswoić" składnię języka i po prostu ją znać. Z kolei z drugiej strony praca programisty w dużej mierze opiera się na korzystaniu z narzędzi programistycznych - np. obsługa IDE, zrozumienie błędów które są wyrzucane jest podstawowym minimum i w mojej opinii w ten sposób powinny zaliczenia wyglądać. Oczywiście komputery nie muszą mieć dostępu do internetu, bo wiadomo, że przy prostszych zadaniach ktoś nieuczciwy sobie wklepie treść/hasło o którym nie ma pojęcia i zaraz ogarnie zrobienie zadania (to też w pracy się przydaje, ale mówimy o prostych sprawach do których nie jest wymagana wiedza "z kosmosu"). I tutaj moje pytanie - co myślicie o pisaniu zaliczeń na kartkach papieru? Tylko bez hejtów poproszę - luźny temat, po prostu chciałbym poznać Wasze opinie i zorientować się czy to moje myślenie jest dziwne :)

1

U mnie w szkole jest jeszcze lepiej - macie program na tablicy, przepiszcie, fajnie działa, to nauczcie się go. I jakby tego było mało to jeszcze w asmie na 8051... A wracając do tematu -bezsens.

0

Nie wiem jak kolokwia, ale zdarzało mi się pisać kod na kartce papieru na rozmowach rekrutacyjnych. Szczerze mówiąć? Główny problem miałem ze znakiem { i }. Jakoś pisane przeze mnie ręcznie trochę krzywo wyglądają. Rzadko piszę klamerki ręcznie, więc nie nauczyłem się zgrabnie pisać.

Ale poza tym to nie wiem jaki problem. Nie twierdzę, że pisanie na papierze jest cool, bo możliwe, że to straszna głupota, ale na rozmowach większy dyskomfort czułem raczej z powodu całej sytuacji (stres, ocena moich skilli przez innych programistów) a nie to, że kartka. Akurat jeśli pytany byłem z łatwego języka (JavaScript) to ta kartka nie stanowiła przeszkody (tj. niegdyś łatwego, bo w dobie ES6, ES7, to dochodzę do wniosku, że już nawet JavaScriptu nie znam tak dobrze jak mi się wydaje, bo ciągle jakieś nowości dochodzą)

0
LukeJL napisał(a):

Ale poza tym to nie wiem jaki problem. Nie twierdzę, że pisanie na papierze jest cool, bo możliwe, że to straszna głupota, ale na rozmowach większy dyskomfort czułem raczej z powodu całej sytuacji (stres, ocena moich skilli przez innych programistów) a nie to, że kartka. Akurat jeśli pytany byłem z łatwego języka (JavaScript) to ta kartka nie stanowiła przeszkody (tj. niegdyś łatwego, bo w dobie ES6, ES7, to dochodzę do wniosku, że już nawet JavaScriptu nie znam tak dobrze jak mi się wydaje, bo ciągle jakieś nowości dochodzą)

Nie twierdzę, że to jest jakikolwiek problem bo dla mnie akurat żaden i bez problemu te kolokwia zaliczam na maksymalna ilość punktów - bardziej chodzi mi o sens takiego rozwiązania - czy dla początkującego pisanie w IDE i wykształcanie już tych nawyków nie będzie lepsze niż pisanie na kartce, bo osoby które z programowaniem nie mieli/mieli w bardzo małym stopniu styczność - przykład pytanie na pierwszych laboratoriach z c++ "a po co ten main()?"

0
Złoty Orzeł napisał(a):
LukeJL napisał(a):

Ale poza tym to nie wiem jaki problem. Nie twierdzę, że pisanie na papierze jest cool, bo możliwe, że to straszna głupota, ale na rozmowach większy dyskomfort czułem raczej z powodu całej sytuacji (stres, ocena moich skilli przez innych programistów) a nie to, że kartka. Akurat jeśli pytany byłem z łatwego języka (JavaScript) to ta kartka nie stanowiła przeszkody (tj. niegdyś łatwego, bo w dobie ES6, ES7, to dochodzę do wniosku, że już nawet JavaScriptu nie znam tak dobrze jak mi się wydaje, bo ciągle jakieś nowości dochodzą)

Nie twierdzę, że to jest jakikolwiek problem bo dla mnie akurat żaden i bez problemu te kolokwia zaliczam na maksymalna ilość punktów - bardziej chodzi mi o sens takiego rozwiązania - czy dla początkującego pisanie w IDE i wykształcanie już tych nawyków nie będzie lepsze niż pisanie na kartce, bo osoby które z programowaniem nie mieli/mieli w bardzo małym stopniu styczność - przykład pytanie na pierwszych laboratoriach z c++ "a po co ten main()?"

Nie twierdzę, że to jest jakikolwiek problem bo dla mnie akurat żaden i bez problemu te kolokwia zaliczam na maksymalna ilość punktów - bardziej chodzi mi o sens takiego rozwiązania - czy dla początkującego pisanie w IDE i wykształcanie już tych nawyków nie będzie lepsze niż pisanie na kartce, bo osoby które z programowaniem nie mieli/mieli w bardzo małym stopniu styczność na studiach informatycznych się pojawiają - przykład pytanie na pierwszych laboratoriach z c++ "a po co ten main()?" Przepraszam za podwójny post, ale nie mogę edytować jako gość.

7

Zwykle nikt takiego kodu nie sprawdza pod kątem składni, średników czy bracketów, to są szczegóły. Chodzi raczej o samą ideę rozwiązania.
Pisanie bez wsparcia IDE np. notatnikiem pozwala ocenić czy ktoś jest obyty np. z API danego języka a nie tylko liczy cały czas na "autocomplete" albo "quick-fix" w IDE. Pisanie na kartce pozwala ocenic jeszcze jedną rzecz -> to w jaki sposób planujesz swoje rozwiązanie. Na kartce nie bardzo można rozepchnąć wiersze i wpisać jakis kod "w środek", albo zamienić coś kolejnością. Więc od razu widać kto pomyślał chwilę zanim zaczął pisać.

Moim zdaniem generalnie warto trochę tak popisać żeby nabrać dobrych nawyków. Widziałem wielu "programistów" którzy np. zawsze na pałe uzywali pierwszej opcji z "quick-fix" kiedy jakis kod rzucał wyjątek. I w związku z tym w ogóle nie wiedzieli że można rzucić wyjątek dalej zamiast łapać go i printować stack trace. W ogóle aż sie smutno robi jak widzisz kawałek kodu który totalnie nie ma sensu a ktoś ci mówi że to "IDE samo tak zrobiło żeby naprawić jakiś error/warning". Ręce opadają ;]
A jak ktoś napisze trochę kodu w gołym notatniku tak żeby się kompilował to jest szansa że będzie musiał zrozumieć co te wszystkie errory i warningi oznaczają.

0

jeśli ktoś nie wie, do czego służy funkcja main, to korzystanie z IDE mu nie pomoże, a najwyżej przeszkodzi - z tego co pamiętam to zarówno C++ Builder i w Visual Studio (z programów, z których korzystałem kiedyś do pisania w C++) funkcja main była dość ukryta często i generowana automatycznie przez IDE (przynajmniej w apkach okienkowych, gdzie w funkcji main automatycznie z tego co pamiętam IDE generowało kod, który tworzył główne okno apki i takie różne bzdety.

To jest dobre, jak chce się coś zrobić, ale dla celów edukacyjnych, lepiej jednak poznać do czego funkcja main służy.

0

Czy na pierwszych latach to ma sens? Jak ktoś jest totalnie zielony i nie zna składni to wydaje mi się to ma jakiś tam sens. Aczkolwiek osobiście nie jestem już na początku studiów i jak do tej pory to nie mieliśmy pozwolenia na korzystanie z jakiegokolwiek IDE (można używać jedynie podstawowych edytorów z kolorowaniem składni). @Shalom ma 100% racji że są ludzie którzy używali "quick-fix" i działało, sam w domu tak robiłem jak się uczyłem (błędy młodości :P ), problem pojawiał się bo sam nie rozumiałem co tworzyłem.

1

Dopóki prowadzący nie ocenia z dokładnością do każdego średnika i wielkości litery to ok zgadzam się z tym co Shalom napisał. Największy problem z pisaniem na kartce jak na mojej uczelni jest to taki, że bardzo często kiedy mieliśmy napisać zapytanie w sql albo zaimplementować klasy/metody to ich nazwy wymagane przez prowadzącego były cholernie długie (np. dwu-wyrazowe nazwy tabel i kolumn w nich na kolokwiach z baz danych) co w połączeniu z bardzo krótkim czasem i raczej przeciętną jakością pisma u większości osób powodowało, że rozwiązanie było nieczytelne mimo dbania o strukturę kodu i wcięcia, a zdarzali się prowadzący, którzy potrafili kilka punktów odjąć za czytelność pisma lub mocno ograniczali przestrzeń każąc całość rozwiązania koniecznie zmieścić na połowie strony A4 pod treścią, którą wydrukowali.

1

Też mnie to wkurzało na studiach i na rozmowach rekrutacyjnych. Pisanie na kartce to totalny bezsens. Nie ma to żadnej wartości dydaktycznej, chyba że robimy test z umiejętności bezmyślnego wykucia na pamięć słów kluczowych.

Sprawdzenie umiejętność planowania też jest bzdurnym argumentem. W codziennej pracy otrzymujemy jakiś skomplikowany issue, rozbijamy go na mniejsze zagadnienia i po kolei programujemy kolejne punkty. Realizując kolejną małą część problemu często musimy zmodyfikować wcześniej napisany kod, napisać coś przed nim, albo go zrefaktoryzować. Nikt nie pisze kodu w kolejności od pierwszej linijki do ostatniej. W trakcie pracy mogą nam przyjść do głowy nowe pomysły i możemy w każdej chwili zmodyfikować kod w taki sposób żeby działał lepiej. Jest to naturalny sposób pracy programisty.

Zmuszanie do pisania na kartce, porównałbym do wyjęcia rybki z akwarium i oczekiwania, że będzie pływać na sucho.

1 użytkowników online, w tym zalogowanych: 0, gości: 1