fbpx ...

Smutne wyniki testu C++ dwa lata później

Na naszej stronie dostępny jest test, w którym możesz sprawdzić swoją wiedzę z C++. Rozwiązać go może każdy, niezależnie od poziomu wiedzy i umiejętności. Test składa się z ośmiu zamkniętych pytań o zróżnicowanym poziomie trudności. Pytania dotyczą wiedzy w zakresie znajomości C++. Odpowiedzi można udzielać wielokrotnie, a sam test jest anonimowy. Możesz więc potraktować go jako sprawdzenie swojej wiedzy i umiejętności, które powinno Ci zająć około 10 minut.

Omówienie i porównanie wyników ogólnych

W dniu sporządzania tego wpisu (22.08.2020) test rozwiązano 1110 razy. Przypuszczalnie większość osób, które podjęły się rozwiązania testu, to osoby zainteresowane programowaniem, które chcą rozpocząć jego naukę, są w jej trakcie albo pracują już w branży IT. Poniżej przedstawiam wyniki na dzień sporządzania wpisu:

wyniki testu
Wykres 1. Rozkład wyników testu z dnia 22.08.2020 (ilość odpowiedzi – 1110).

Jak widać na zaprezentowanym wykresie, najczęściej uzyskiwany wynik przez ankietowanych to zaledwie dwa punkty. Następnym w kolejności uzyskiwanym wynikiem jest otrzymanie tylko jednego punktu. Jest to bardzo niepokojące, zwłaszcza jeśli zauważy się, że 85 razy uzyskaliście 0 punktów w porównaniu z wynikami 7 i 8 punktów, które łącznie zostały przez was uzyskane 83-krotnie. Na 50% pytań poprawnie odpowiedzieliście 165 razy. 676 (czyli prawie 60,9% wyników) odpowiedzi było poniżej połowy możliwej do zdobycia punktacji, natomiast zaledwie 269 (czyli około 24,2%) udzielonych odpowiedzi miało punktację wyższą, niż połowa skali. Pocieszającym może być fakt poprawy wyników w porównaniu z danymi sprzed 2 lat, jednak trzeba zauważyć, że poprawa jest niewielka. Wynik uśredniony podniósł się o zaledwie 0,2 punktu, zgodnie z wykresem poniżej:

stare wyniki 2018
Wykres 2. Rozkład wyników testu z dnia 12.07.2018 (ilość odpowiedzi – 136).

Najtrudniejsze z pytań

Największy problem sprawiły pytania o numerach 8, 6 i 4. Ilość odpowiedzi poprawnych na pytania 8 i 6 była mniejsza niż ilość odpowiedzi błędnych. Dopiero w przypadku trzeciego miejsca tego niechlubnego podium sytuacja odwróciła się i poprawne odpowiedzi wyszły na prowadzenie, choć prawdę powiedziawszy z bardzo niewielką przewagą nad najczęściej udzielaną, błędną odpowiedzią. Najgorzej z całej trójki wypadło pytanie numer 8. Tutaj zaledwie nieco ponad 1/5 odpowiedzi została udzielona poprawnie. Widać więc, że największy problem w teście stanowi obsługa wyjątków w języku C++.

Wykres 3.1. Rozkład procentowy odpowiedzi na pytanie 8. Kolorem pomarańczowym oznaczono poprawną odpowiedź.

Drugie miejsce w klasyfikacji najtrudniejszych pytań zajmuje pytanie szóste, które dotyczyło wskaźników. Z tym pytaniem poradzono sobie poprawnie zaledwie w 22% przypadków. Ponadto w tym przypadku poprawna odpowiedź jest dopiero na trzecim miejscu, za dwiema, najczęściej wybieranymi i błędnymi odpowiedziami.

rozkład odpowiedzi pytanie 6
Wykres 3.2. Rozkład procentowy odpowiedzi na pytanie 6. Kolorem pomarańczowym oznaczono poprawną odpowiedź.

Brązowy medal w tej konkurencji zajmuje pytanie czwarte, którego treść dotyczyła typów zmiennych. Optymizmem napawa fakt, że w tym pytaniu najczęściej wybieraną odpowiedzią była odpowiedź poprawna, jednak niemal 2/3 odpowiedzi było odpowiedziami błędnymi.

rozkład procentowy pytanie 4
Wykres 3.3. Rozkład procentowy odpowiedzi na pytanie 4. Kolorem pomarańczowym oznaczono poprawną odpowiedź

Podsumowanie

Gdy tak przyglądałem się wynikom, analizowałem je i porównywałem, to doszedłem do następujących wniosków:

      • Ci z was, którzy podjęli się rozwiązania testu, mają zauważalne braki w wiedzy i umiejętnościach związanych z językiem C++ i programowaniem. Świadczą o tym liczne, błędne odpowiedzi.
      • Wydaje mi się, że nie popełnię błędu, zakładając, że znaczna część osób, które podjęły się testu, to absolwenci/studenci kierunków informatycznych lub pokrewnych. Utwierdza mnie to w przekonaniu, że uczelnie nie przekazują wystarczającej wiedzy i umiejętności. W efekcie Ci z was, którzy skończyli takie uczelnie, mimo posiadania dyplomu nie posiadają umiejętności koniecznych na rynku pracy, przez co możecie mieć znaczące problemy podczas szukania ofert pracy w branży IT i aplikowania na wymarzone stanowiska.
      • Zauważyłem też, że pojawiły się problemy z pytaniami zarówno praktycznymi jak i przekrojowymi. Zastanawiam się, czy winy za taki stan rzeczy nie ponoszą, głównie ograniczenia się do rodzimych źródeł i treści pisanych w języku polskim, brak skutecznych metod nauki, czy korzystanie z niezaktualizowanych materiałów, albo nieefektywnych kursów stacjonarnych czy online.

Posłowie

Trudnym jest uczyć się czegoś, co jest w ciągłym rozwoju. Czegoś, co w każdej chwili może zmienić swój standard na inny. Nie zawsze są to diametralne zmiany, jednak zdarzają się i takie. Niestety, ale tak właśnie wygląda nauka w branży IT. Jest to nieustająca pogoń za zdobywaniem nowej wiedzy i umiejętności i choć z pozoru może brzmieć to jak zadanie dla Syzyfa, to nie do końca tak jest. Ciągły rozwój branży IT, a w efekcie również języków takich jak C++ wymusza na programistach ciągły rozwój swoich umiejętności i zdobywania nowej wiedzy, co z kolei prowadzi do kolejnego rozwoju branży i koło się zamyka. Programista nigdy nie przestaje się uczyć. W dzisiejszych czasach łatwo o dostęp do różnych materiałów i poradników dotyczących C++, jednak trzeba również umiejętnie je wybierać, aby nie trafić na takie, które odepchną nas od pisania kodu. Poza tym warto nie ograniczać się tylko do informacji w polskim języku, ale, a może nawet w szczególności, skupiać się na źródłach anglojęzycznych. W tym miejscu pragnę odesłać Cię do przygotowanego przez nas poradnika nauki programowania, oraz do materiałów, które pomogą Ci w nauce C++. Zapraszam Cię również do skorzystania z oferty naszych kursów dotyczących C++, które pomogą Ci rozwinąć i zaktualizować Twoją wiedzę.

ninjaletter

A może Ninjaletter?

Chcesz wiedzieć, co słychać w C++ i nie tylko? Zapisz się na Ninjaletter i otrzymuj od nas co miesiąc dawkę wartościowych treści o C++ i zadania rekrutacyjne. Do tego dorzucamy darmowe materiały, spoilery o nowych kursach, specjalne promocje dla ninjaletterowiczów i wiele, wiele innych. To co, skusisz się?

Łukasz Ziobroń

Łukasz Ziobroń

Zmieniam ludzi w prawdziwych programistów. W nauczaniu stosuję grywalizację, andragogikę i neurodydaktykę.

Najnowsze artykuły

good programming practices

Good programming practices – Coding Dojo

Training in a form of Coding Dojo. Participants start with a code review of a small application. They note down their comments. After that, the trainer presents bad and good programming practices. Participants discuss what can be applied in a reviewed code and start fixing it in a form of Coding Dojo.

Czytaj »

Popular C++ Idioms – Coding Dojo

The training starts with a code review of a small application (pre-work). Participants note their thought and discuss their findings in groups. Then popular C++ idioms are presented (the concept and some code) – about 15-20 minutes each. After that participants need to use some of the idioms in a reviewed application code.

Czytaj »
performance optimisations

Performance optimisations

This training is about writing more robust C++ code and algorithms with the help of CPU caches and a compiler. Benchmarking tools are used to show performance gains.

Czytaj »
C++ toolset

C++ toolset

Covers a lot of ground about C++ related tools: build systems, compilers, debuggers, static and dynamic binary analyzers. It is focused more on discovering useful tools, that can solve many software engineering problems.

Czytaj »

Templates – Advanced techniques

Basic usage of C++ templates may not be enough to utilize opportunities, which were introduced in the latest C++ standards. From C++11 we can use templates with any number of parameters and use a simplified mechanism for SFINAE, which is claimed to be a real C++ wizardry.

Czytaj »
templates – basics

Templates – Basics

Templates are pointed out to be the most difficult part of the C++ language. Difficult, but very useful. They allow writing very generic and universal code. Thanks to them, we can avoid code duplication, but also, make it incomprehensible for beginners. This session allows for gaining the necessary knowledge and good practices on using templates.

Czytaj »
STL algorithms in C++ 17

STL Algorithms in C++ 17

This training focuses on the effective use of C++ documentation to implement applications with the use of STL algorithms. First part is mainly theoretical, but there are many short exercises (in a paper form) to apply knowledge instantly and force participants to think and search for solutions in the documentation. The other part is a group activity – implementation of the cryptographic application with proper STL algorithms instead of raw loops.

Czytaj »
STL containers

STL Containers

This training focuses on the effective use of C++ documentation. Computational complexity issues are mentioned. There are many short exercises to apply knowledge instantly and force participants to think and search for solutions in the documentation.

Czytaj »
ninjaletter

Już uciekasz?

Zanim to zrobisz, zapisz się na Ninjaletter, aby wiedzieć, co piszczy w C++. 

Informujemy, iż w celu realizacji usług dostępnych w naszym serwisie, optymalizacji jej treści, dostosowania strony do Państwa indywidualnych potrzeb oraz wyświetlania, personalizacji i mierzenia skuteczności reklam w ramach zewnętrznych sieci reklamowych korzystamy z informacji zapisanych za pomocą plików cookies na urządzeniach końcowych użytkowników. Pliki cookies można kontrolować za pomocą ustawień swojej przeglądarki internetowej. Dalsze korzystanie z naszego serwisu, bez zmiany ustawień przeglądarki internetowej oznacza, iż użytkownik akceptuje stosowanie plików cookies. Więcej informacji zawartych jest w polityce prywatności serwisu.