Masz już ten kurs?
touch processes.txt
ps aux > processes.txt
cp processes.txt copy.txt
mkdir backup
mv copy.txt backup
wc -l processes.txt > selected.txt
grep -in "/bin" processes.txt >> selected.txt
cat selected.txt
history | tail -n12 > commands.txt
grep -rni DUPA *
g++ -std=c++20 -Wall -Wextra -pedantic -Wconversion -Werror -O3 -I../includes -lpthread -lgtest *.cpp -o main
:q!
%s/first/second/g
:set number
:set ruler
50dj
cmake_minimum_required(VERSION 3.10)
project(AwesomeProject)
add_library(${PROJECT_NAME}-lib STATIC functions.cpp modules.cpp)
add_executable(${PROJECT_NAME} main.cpp functions.cpp modules.cpp)
add_executable(${PROJECT_NAME}-ut test.cpp functions.cpp modules.cpp)
target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}-lib)
target_link_libraries(${PROJECT_NAME}-ut ${PROJECT_NAME}-lib gtest_main)
enable_testing()
add_test(NAME someTests COMMAND ${PROJECT_NAME}-ut)
==5737== HEAP SUMMARY:
==5737== in use at exit: 72,704 bytes in 1 blocks
==5737== total heap usage: 3 allocs, 2 frees, 73,768 bytes allocated
==5737==
==5737== LEAK SUMMARY:
==5737== definitely lost: 0 bytes in 0 blocks
==5737== indirectly lost: 0 bytes in 0 blocks
==5737== possibly lost: 0 bytes in 0 blocks
==5737== still reachable: 72,704 bytes in 1 blocks
==5737== suppressed: 0 bytes in 0 blocks
==5737== Rerun with --leak-check=full to see details of leaked memory
==5737==
==5737== For counts of detected and suppressed errors, rerun with: -v
==5737== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==44848==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x604000000338 at pc 0x000107e9ccab bp 0x7ff7b80638a0 sp 0x7ff7b8063898
WRITE of size 4 at 0x604000000338 thread T0
#0 0x107e9ccaa in main 02_out_of_bounds_address.cpp:7
#1 0x1123dc4fd in start (dyld:x86_64+0x54fd)
0x604000000338 is located 0 bytes to the right of 40-byte region [0x604000000310,0x604000000338)
allocated by thread T0 here:
#0 0x1081c5692 in wrap__Znam (libclang_rt.asan_osx_dynamic.dylib:x86_64h+0x6e692)
#1 0x107e9cc2f in main 02_out_of_bounds_address.cpp:5
#2 0x1123dc4fd in start (dyld:x86_64+0x54fd)
SUMMARY: AddressSanitizer: heap-buffer-overflow 02_out_of_bounds_address.cpp:7 in main
Shadow bytes around the buggy address:
0x1c0800000010: fa fa 00 00 00 00 00 00 fa fa 00 00 00 00 00 00
0x1c0800000020: fa fa 00 00 00 00 00 05 fa fa 00 00 00 00 00 00
0x1c0800000030: fa fa 00 00 00 00 00 05 fa fa 00 00 00 00 00 00
0x1c0800000040: fa fa 00 00 00 00 00 07 fa fa 00 00 00 00 00 00
0x1c0800000050: fa fa 00 00 00 00 00 00 fa fa 00 00 00 00 00 05
=>0x1c0800000060: fa fa 00 00 00 00 00[fa]fa fa fa fa fa fa fa fa
0x1c0800000070: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x1c0800000080: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x1c0800000090: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x1c08000000a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x1c08000000b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==44848==ABORTING
/a.out: file format Mach-O 64-bit x86-64
Sections:
Idx Name Size Address Type
0 __text 00001fed 0000000100000c10 TEXT
1 __stubs 000000d2 0000000100002bfe TEXT
2 __stub_helper 00000132 0000000100002cd0 TEXT
3 __gcc_except_tab 000000b8 0000000100002e04 DATA
4 __cstring 0000008a 0000000100002ebc DATA
5 __unwind_info 000000b0 0000000100002f48 DATA
6 __got 00000040 0000000100003000 DATA
7 __mod_init_func 00000008 0000000100003040 DATA
8 __la_symbol_ptr 00000118 0000000100004000 DATA
9 __data 00000008 0000000100004118 DATA
SYMBOL TABLE:
0000000100001720 l F __TEXT,__text __ZNKSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentrycvbEv
0000000100001790 lw F __TEXT,__text __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
0000000100001f10 l F __TEXT,__text __ZNSt3__119ostreambuf_iteratorIcNS_11char_traitsIcEEEC1ERNS_13basic_ostreamIcS2_EE
0000000100001f40 l F __TEXT,__text __ZNKSt3__18ios_base5flagsEv
0000000100001fb0 l F __TEXT,__text __ZNKSt3__19basic_iosIcNS_11char_traitsIcEEE4fillEv
0000000100002120 l F __TEXT,__text __ZNKSt3__119ostreambuf_iteratorIcNS_11char_traitsIcEEE6failedEv
0000000100002180 l F __TEXT,__text __ZNSt3__19basic_iosIcNS_11char_traitsIcEEE8setstateEj
00000001000021b0 lw F __TEXT,__text ___clang_call_terminate
...
Będąc programistą misisz wiedzieć jak poruszać się po terminalu, wyświetlać pliki i je edytować w Linuxie. Dzięki użyciu terminala można te czynności automatyzować.
Korzystanie z git'a jest obecnie kluczową umiejętnością w pracy programisty.
Jak wygenerować losowy ciąg znaków? Posadzić człowieka przed Vimem i kazać mu wyjść z programu. To wcale nie żart. Oprócz wychodzenia z Vima nauczymy Cię wielu innych przydatnych rzeczy, np. jak pisać na raz w 10 miejscach, aby zmienić nazwę zmiennej wraz z jej użyciami.
Czyli jakie zaklęcia trzeba wpisać, aby skompilować projekt. Powiem Ci, jakich flag i przełączników można użyć, aby Twój kod był lepiej zoptymalizowany albo aby kompilator wykonał dodatkowe sprawdzenia.
Nauczysz się korzystać z systemów budowania Make, który opiera się na plikach Makefile oraz z generatora systemów budowania CMake, który z kolei opiera się na plikach CMakeLists.txt. Koniec domyślania się jak skompilować jakiś projekt.
Poznasz skuteczne sposoby na "odrobaczanie" kodu za pomocą konsolowych debuggerów GDB i LLDB. Graficzny debugger w VSC też poznamy 🙂
Dowiesz się jak korzystać z narzędzi, takich jak Valgrind czy Address Sanitizer, dzięki którym unikniesz wielu problemów, jak choćby wycieki pamięci.
Krótkie, kilkuminutowe materiały pozwalające CI w przystępny sposób zdobywać i utrwalać nową wiedzę i umiejętności, nawet w sytuacji, gdy właśnie gnasz tramwajem do pracy 😄
Pomocne w utrwaleniu, ale przede wszystkim sprawdzeniu pozyskanej przez Ciebie w czasie kursu wiedzy 🤯
I nawet nie wiem ile mniejszych (niepoważnych 🤪), pozwalających na praktyczne wykorzystanie i zastosowanie zdobytej wiedzy, a przez to lepsze jej utrwalenie. Nie na darmo mówi się, że trening czyni mistrzem 💻
Na Discordzie znajdziesz osoby, które nie odmówią Ci pomocy w razie jakichkolwiek pytań związanych z C++ lub narzędziami 👥
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 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.
- Dla osób znających podstawy C++
- Dla osób, które chcą lepiej zrozumieć jak działa język C++
- Dla osób, które utrzymują systemy budowania, pipeliny, Continuous Integration
- Dla DevOpsów lub osób, które chcą nimi zostać
- Dla automatyzatorów, których chcą pisać skrypty, które pozwolą na automagiczne przetwarzanie i analizowanie czynności
- Dla programistów, którzy chcą zawalczyć o podwyżkę poprzez podniesienie swoim umiejętności
- Dla przyszłych hakerów (bo będziemy pracować dużo z czarnym ekranem terminala)
- Dla osób zupełnie zielonych - musisz umieć napisać Hello World lub kalkulator w C++
- Dla osób, które nie potrafią w kąkuter
- Dla ekspertów, którzy omawianymi narzędziami posługują się jak Gordon Ramsay nożem
- Dla osób znających podstawy C++
- Dla osób, które chcą lepiej zrozumieć jak działa język C++
- Dla osób, które utrzymują systemy budowania, pipeliny, Continuous Integration
- Dla DevOpsów lub osób, które chcą nimi zostać
- Dla automatyzatorów, których chcą pisać skrypty, które pozwolą na automagiczne przetwarzanie i analizowanie czynności
- Dla programistów, którzy chcą zawalczyć o podwyżkę poprzez podniesienie swoim umiejętności
- Dla przyszłych hakerów (bo będziemy pracować dużo z czarnym ekranem terminala)
- Dla osób zupełnie zielonych - musisz umieć napisać Hello World lub kalkulator w C++
- Dla osób, które nie potrafią w kąkuter
- Dla ekspertów, którzy omawianymi narzędziami posługują się jak Gordon Ramsay nożem
Jeśli powyższe odpowiedzi nie rozwiewają 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. Bez żadnych dodatkowych pytań i formalności. Wystarczy jeden email. Dostaniesz całą kasę z powrotem.
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.
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.