C++ on edelleen kieli, jossa suorituskyvystä ei tingitä
C++:aa käytetään käyttöjärjestelmissä, pelimoottoreissa, kääntäjissä, sulautetuissa laiteohjelmistoissa ja suurtaajuuskaupankäyntijärjestelmissä. Se antaa suoran hallinnan muistiin ja laitteistoon sekä tarjoaa monipuolisen standardikirjaston ja moderneja kieliominaisuuksia — älyosoittimista korutiineihin — joita on tuotu mukaan C++11:stä C++20:een. Tällä opintopolulla käsitellään koko kieli ensimmäisestä muuttujamäärittelystä lukkiutumattomien samanaikaisten tietorakenteiden ja C++20-korutiinien kirjoittamiseen.
Mitä opitte
Aloitatte syntaksista, muuttujista, merkkijonoista ja I/O-virroista ja siirrytte sen jälkeen ohjausrakenteisiin, struct-rakenteisiin, luokkiin ja dynaamisiin taulukoihin. Keskeinen osaaminen rakentuu C++:n muistimallin, RAII:n, const-oikeellisuuden, turvallisen osoitinten käytön sekä std::optional- ja std::variant-tyyppien ympärille. Työskentelette koko STL-säiliövalikoiman kanssa — vektorit, assosiatiiviset säiliöt, unordered_map, std::array ja std::span — ja opitte hallitsemaan STL-algoritmit, iteraattorit ja ranget. Moderneille C++-ominaisuuksille on oma kokonaisuutensa: siirtosemantiikka, rvalue-viittaukset, lambdat, funktorit, std::function sekä C++11:n, C++14:n, C++17:n ja C++20:n keskeiset uudistukset. Myöhemmillä kursseilla käsitellään yksikkötestausta Google Testillä, virheiden jäljitystä sanitizer-työkaluilla, CMake-pohjaisia koonteja, tiedostojen I/O:ta, verkkoliikennettä ja samanaikaisuuden primitiivejä. Opintopolku päättyy edistyneisiin templateihin, SFINAEen, C++20 Conceptsiin, CRTP:hen, tyyppipiirteisiin, lukkiutumattomiin atomisiin operaatioihin ja korutiineihin.
Oppimispolku
Viisikymmentäyksi kurssia etenee tasoilta A1–C2. A1- ja A2-tason perusteissa käsitellään syntaksia, merkkijonoja, I/O:ta, ohjausrakenteita, struct-rakenteita, viittauksia ja käytännön pienprojektien malleja. B1 on laajin kokonaisuus: yhdeksäntoista kurssia, jotka rakentavat ammatillisen sujuvuuden muistimallin, älyosoittimien, perinnän, operaattorien ylikuormituksen ja standardikirjaston syvällisen käytön parissa. B2 yhdistää perusteet edistyneisiin aiheisiin siirtosemantiikan, modernin C++:n keskeisten ominaisuuksien, STL-algoritmien, yksikkötestauksen ja virheiden jäljityksen avulla. Kymmenellä C1-kurssilla käsitellään samanaikaisuutta, edistyneitä templateja ja metaprogrammointia, C++20 Conceptsia, suorituskyvyn optimointia, sulautettuja järjestelmiä, yhteentoimivuutta ja API-suunnittelua. Opintopolku päättyy C2-tasolla lukkiutumattomaan ja atomiseen samanaikaisuuteen sekä C++20-korutiineihin.
Näin se toimii
Jokainen kurssi koostuu lyhyistä ja keskittyneistä oppitunneista, jotka suoritatte sisäänrakennetussa koodieditorissa ja saatte palautetta reaaliajassa. Kun jäätte jumiin, tekoälyohjaaja selittää käsitteen ja ohjaa teidät oikeaan ratkaisuun antamatta sitä suoraan valmiina.