Na czym polegają sytuacje wyjątkowe w C++ i jak sobie z nimi radzić?
Jakich problemów z pamięcią możemy się spodziewać i jak je wykrywać?
Klucz do dobrego programowania w C++
Jak działają programy, skąd bierze się w nich pamięć i jak jest podzielona?
Dlaczego są takie inteligentne i jak z nich korzystać?
Trochę więdzy eksperckiej, aby zwalić rekruterów z nóg
/*
* RAII wrapper for raw pointers to FILE
* Remember to implement Rule of 5
*/
class FileHandler {
FILE* fp_;
public:
FileHandler(std::string filename)
: fp_ { std::fopen(filename.c_str(), "r") }
{
if (!fp_) {
throw FileOpeningError{filename};
}
}
FileHandler(const char* filename)
: fp_ { std::fopen(filename, "r") }
{
if (!fp_) {
throw FileOpeningError{filename};
}
}
~FileHandler() {
std::fclose(fp_);
}
friend std::ostream& operator<<(std::ostream& os, const FileHandler& fh);
};
#include
#include
#include
class Parent {
public:
Parent() { std::cout << "PARENT C'tor called\n"; }
virtual ~Parent() { std::cout << "PARENT D'tor called\n"; }
};
class Child : public Parent {
public:
Child() { std::cout << "CHILD C'tor called\n"; }
~Child() override { std::cout << "CHILD D'tor called\n"; }
};
int main() {
Child child; // ok, object on stack, not a pointer
std::cout << '\n';
std::unique_ptr child2 = std::make_unique();
std::cout << '\n';
std::shared_ptr child3 = std::make_shared();
std::cout << '\n';
Parent* ptr = new Child{};
delete ptr;
std::cout << '\n';
}
#include
#include
class Gadget {};
void f(const Gadget&) { std::cout << "const Gadget&\n"; }
void f(Gadget&) { std::cout << "Gadget&\n"; }
void f(Gadget&&) { std::cout << "Gadget&&\n"; }
template
void use(T&& t) {
f(std::forward(t));
}
int main() {
const Gadget cg;
Gadget g;
use(cg); // calls use(const Gadget&) then calls f(const Gadget&)
use(g); // calls use(Gadget&) then calls f(Gadget&)
use(Gadget{}); // calls use(Gadget&&) then calls f(Gadget&&)
}
Krótkie kilkuminutowe lekcje pozwolą Ci skubnąć trochę wiedzy w każdej wolnej chwili
Dzięki nim w praktyce przećwiczysz poznaną teorię
Poznasz najważniejsze narzędzia, które ułatwią Ci pracę
Na Discordzie porozmawiasz z trenerem i innymi kursantami. Możesz pytać o wszystko związane z C++
Możesz powrócić do szkolenia nawet za kilka lat
Na bieżąco czuwamy nad materiałami. Jeśli coś się zmieni lub nagramy nowe wideo, to dostaniesz je gratis
Błyskawicznie dowiesz się, czy Twoje rozwiązania przechodzą nasze testy. Zawsze też możesz porozmawiać o nich na czacie
Jeśli kurs Ci się nie spodoba, to w ciągu 21 dni możesz go zwrócić. Wystarczy jeden email
Kurs podzielony jest na działy, które standardowo są odblokowywane tydzień po tygodniu. Dzięki temu możesz na spokojnie przerobić i utrwalić materiał z poprzednich działów, zanim zabierzesz się za następny. Jeśli się nie wyrobisz — nic nie szkodzi. Działy nie będą w żaden sposób blokowane.
Interesuje mnie skuteczne nauczanie, w którym masz przerobić kurs i dużo zapamiętać, a nie tylko go kupić, jak jest w przypadku 80% kursów na Udemy (według ich statystyk). Nie ma się on kurzyć na Twojej elektronicznej półce. Programowania nie uczy się oglądając wideo, tylko programując. Wprowadzenie takiej blokady na treści spowodowało, że ludzie w końcu zaczęli przerabiać zadania, które zresztą były sprawdzane przez automaty, a nie tylko obejrzeli samo wideo, z którego po miesiącu nic nie pamiętali. Wiedza lepiej się utrwala, gdy wracasz do tematu wielokrotnie, a nie przeglądasz wszystko na raz.
Nie wszyscy muszą się ze mną zgadzać, dlatego zdecydowaliśmy się wprowadzić dostęp natychmiastowy za dodatkową opłatą 59 złotych. Wybierając tę opcję, zrzekasz się możliwości zwrotu.
* Znasz podstawy C++
* Wiesz na czym polega programowanie obiektowe
* Potrafisz pisać własne klasy
* Wiesz czym są wskaźniki, ale może nie do końca je rozumiesz lub nie potrafisz ich używać
* Chcesz poznać inteligentne wskaźniki, czyli automatyczny sposób zarządzania pamięcią w C++
* Znasz język C, ale już wiesz, że w C++ inaczej podchodzi się do tematu wskaźników
* Masz dość ciągłych "segmantation fault" i "błędów ochrony pamięci"
* Chcesz wiedzieć jak poprawnie zarządzać pamięcią
* Chcesz wiedzieć czego używać do zarządzania plikami, gniazdkami sieciowymi, muteksami, aby programy nie miały bugów
* Nie masz pojęcia czym jest wskaźnik w C++
* Nie wiesz jak napisać kalkulator w C++
* Pamięć Ci nie szwankuje 😉
* Znasz podstawy C++
* Wiesz na czym polega programowanie obiektowe
* Potrafisz pisać własne klasy
* Wiesz czym są wskaźniki, ale może nie do końca je rozumiesz lub nie potrafisz ich używać
* Chcesz poznać inteligentne wskaźniki, czyli automatyczny sposób zarządzania pamięcią w C++
* Znasz język C, ale już wiesz, że w C++ inaczej podchodzi się do tematu wskaźników
* Masz dość ciągłych "segmantation fault" i "błędów ochrony pamięci"
* Chcesz wiedzieć jak poprawnie zarządzać pamięcią
* Chcesz wiedzieć czego używać do zarządzania plikami, gniazdkami sieciowymi, muteksami, aby programy nie miały bugów
* Nie masz pojęcia czym jest wskaźnik w C++
* Nie wiesz jak napisać kalkulator w C++
* Pamięć Ci nie szwankuje 😉
Jeśli nie rozwialiśmy Twoich wątpliwości, to przetestuj ten kurs. Kup go, a jeśli okaże się, że nie jest on dla Ciebie, to zwróć go w ciągu 21 dni po zakupie. Żadnych dodatkowych pytań i formalności. Wystarczy jeden email.
Pochodzą one tylko i wyłącznie od naszych kursantów. Więcej opinii znajdziesz tutaj
Opinie są pozyskiwane i weryfikowane zgodnie z zapisem w punkcie 15 regulaminu.
unique_ptr
i shared_ptr
W standardowym trybie lekcje są udostępniane w ciągu kilku tygodni i ma to przede wszystkim na celu usystematyzowanie Twojej nauki. Nie masz dostępu do całości materiałów od razu, bo programowania nie uczy się oglądając wideo, tylko programując! Zrób zadania zanim ruszysz dalej.
Interesuje mnie skuteczne nauczanie, w którym masz przerobić kurs i dużo zapamiętać, a nie tylko go kupić, jak jest w przypadku 80% kursów na Udemy (według ich statystyk), zrobić kilka lekcji (bo akurat masz chwilę) i porzucić. Nie ma się on kurzyć, na Twojej elektronicznej półce. Programowania nie nauczysz się przez oglądanie wideo, tylko… programując.
Wprowadzenie takiej blokady na treści spowodowało, że ludzie w końcu zaczęli przerabiać zadania, które zresztą były sprawdzane przez automaty, a nie tylko oglądali same wideo, a po miesiącu okazało się, że nic z tego nie pamiętają. Wiedza lepiej się utrwala, gdy wracasz do tematu wielokrotnie, a nie przeglądając wszystko na raz.
Jeśli masz jakieś wątpliwości, to napisz. Może uda mi się coś wyjaśnić
14-dniowa gwarancja satysfakcji oznacza, że możesz zwrócić kurs z dowolnego powodu, np. aberracji stratosferycznych nad biegunem południowym. Możesz też nie podawać w ogóle powodu. Ale będzie mi miło wiedzieć czy nie spełnił on oczekiwań, czy to jakaś sytuacja osobista.
To kurs self-paced, który startuje od razu, gdy go zakupisz.
To zależy 😉
Standardowo kolejne moduły kursu są udostępniane z tygodnia na tydzień. Ma to pewien cel edukacyjny. Nie chcę, aby już na dzień dobry zasypał Cię nadmiar wiedzy. No i rozłożenie wiedzy na mniejsze fragmenty, ale bardziej rozciągnięte w czasie, powoduje lepsze zapamiętywanie materiału. Jeśli po pewnym czasie musisz do czegoś wrócić, to przypominasz sobie wcześniej zdobytą wiedzę. Dzięki temu lepiej się ona utrwala.
Jednak dużo osób pytało mnie o dostęp natychmiastowy, dlatego zdecydowałem się wprowadzić taką opcję za dopłatą 59 złotych. Mimo to rekomenduję standardowy dostęp, ale oczywiście wybór należy do Ciebie 🙂
Pytania możesz zadawać w komentarzach pod lekcjami lub na naszym Discordzie. Nic nie pozostaje tam bez odpowiedzi 🙂
Oczywiście, dostaniesz fakturę. Jeśli nie dotrze ona do Ciebie w ciągu 1 dnia, to pisz do nas maila na hello@coders.school. Jeśli robisz tradycyjny przelew, to płatność może być zaksięgowana dopiero następnego dnia lub po weekendzie.
Jesteśmy zwolnieni z naliczania podatku VAT, więc podane ceny to całkowite kwoty, które zapłacisz. Są to zarówno ceny netto, jak i brutto. Jeśli masz firmę, to nie odliczysz VATu od tego wydatku, ale normalnie wrzucisz go w koszty i pomniejszysz podatek dochodowy.
Oznacza to, że dopóki istnieje nasza platforma i wszystkie jej składowe (WebToLearn, GitHub, Discord, YouTube, Vimeo) to możesz ich swobodnie używać. Gdyby cokolwiek przestało istnieć, to zapewnimy Ci link do ściągnięcia sobie materiałów na dysk.
To jest bardzo indywidualna kwestia. Bardziej to zależy od konkretnego rekrutera niż polityki firmy. Znałem takich, którzy w ogóle nie zaglądali na GH. Tłumaczyli, że i tak muszą przetestować kompetencje podczas rozmowy. Znałem też takich, którzy bez GH nawet nie rozpatrywali kandydata, bo Ci, co mieli projekty, to już prezentowali swoje próbki kodu i rekruterzy po samych tych próbkach wiedzieli, czego się spodziewać. Na ich podstawie dokonywali selekcji kandydatów, a nie patrzyli na CV.
Z moich (i nie tylko) obserwacji wynika, że świetnie udokumentowany projekt na GitHubie (w pliku README.md z grafikami, animacjami, wideo) niesamowicie przyciąga rekruterów i wyróżnia kandydatów.
Zgadujecie się na Discordzie i robicie wspólnie zadania. Możecie pisać bezpośrednio do siebie lub porozmawiać przez czat głosowy. Jest też możliwość współdzielenia ekranu. Później podczas zgłaszania zadania w opisie musicie umieścić wasze @username z GitHuba, aby nasz automat poprawnie zaliczył zadania 🙂
Na razie nie mamy takiej opcji.
Wiek naprawdę nie ma znaczenia dla pracodawców. Dla nich liczą się tylko kompetencje, czyli to, czy zatrudnienie Ciebie przyniesie firmie zysk. Dla Ciebie na pewno ma. W swojej obecnej ścieżce kariery masz już zapewne dość ugruntowaną pozycję i wiesz, jak wyglądają kwestie awansów. Jeśli zmienisz ścieżkę na IT, to pewnie będzie to dla Ciebie zaprzeczenie tego, co robiłeś przez ostatnie 10 lat lub więcej. Ale spokojnie, nawet jeśli sobie postanowisz, że się przebranżawiasz, to chyba nic nie stoi na przeszkodzie, żebyś wrócił do swojej pierwotnej branży, gdyby coś poszło nie tak, albo gdyby okazało się, że IT nie wygląda tak, jak Ci się wydawało. Także większość takich przekonań siedzi w głowie.
Na pewno przebranżowienie się będzie wymagało od Ciebie wysiłku. Na to potrzeba czasu. Musisz uczyć się minimum pół roku, aby osiągnąć jakiś konkretny poziom, z którego już możesz się rekrutować na juniora. I to takie pół roku, gdzie po godzinach, średnio przez 2-3 godziny dziennie programujesz. Więc jeśli już czujesz się staro i nie chce Ci się uczyć, to nie jest opcja dla Ciebie. Ale im starszy będziesz, to pewnie jeszcze mniej Ci się będzie chciało 😉
Przeczytaj jeszcze artykuł Programowanie w C++ po 30-ce. Jak zacząć programować?
Tak naprawdę istnieje tylko jeden sposób — kup go. Będziesz mieć 14 dni, aby sprawdzić, czy ten kurs jest dla Ciebie odpowiedni. Jeśli okaże się, że nie, to możesz go zwrócić i pomyśleć o czymś łatwiejszym/trudniejszym.
Oprócz tego przy poszczególnych kursach znajdziesz informacje o ich stopniu trudności, co pomoże Ci w doborze kursu do poziomu wiedzy.
Grywalizacja jest niesamowita i wiem, co daje, ale z racji problemów technicznych musieliśmy na razie z niej zrezygnować. Planujemy w przyszłości popracować nad jej włączeniem.
Nie. Wiem, że papierki dodatkowo motywują ludzi, ale taki certyfikat co najwyżej ozdobi Ci ścianę w pokoju (jeśli go wydrukujesz). Nie będzie on miał znaczenia podczas rekrutacji. I tak musisz wykazać się wiedzą. W IT papierki nie są aż tak ważne. Pomimo ich posiadania pracodawcy i tak zweryfikują Twoją wiedzę.
Brak certyfikatu to nic. Wpisz sobie ten kurs w swoje CV w dziale Edukacja i dodaj go na LinkedInie. To wystarczy.
Ale za przerobienie wszystkich naszych kursów jak najbardziej dostaniesz certyfikat. To już nie będzie byle co. Napisz wtedy maila na hello@coders.school.
Na platformie Coders School znajdziesz zakładkę Zarabiaj z nami, gdzie wygenerowaliśmy dla Ciebie linki do poleceń. Podeślij je swoim znajomym. Jeśli zdecydują się na zakup kursu i skorzystają z linku z Twoim poleceniem, w Twoich prowizjach pojawią się magicznie pieniądze. I nie, nie musisz ich wydać na nasze kurs. Możesz je wypłacić i zrobić z nimi co tylko zechcesz.
Jeśli nie chcesz kupować kursu, ale chcesz rozwijać swoją wiedzę o C++, to zapisz się na nasz Ninjaletter. Co miesiąc wysyłamy dawkę wartościowych treści o C++: nowości, ciekawostki i darmowe materiały. Oprócz tego ninjaletterowicze zawsze mogą liczyć na specjalne promocje i spoliery o nowych kursach.
Chcesz wiedzieć, co słychać w C++ nie tylko? Zapisz się na Ninjaletter i otrzymuj od nas co miesiąc dawkę wartościowych treści o C++
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.