#programowanie #cpp #naukaprogramowania
Mogę prosić o małe code review? Narazie kod jest dość mały, ale już widzę że mogą być w nim problemy.

https://github.com/proapka/demo-engine

valgrind mi mówi że liczba wycieków pamięci, wynosi w #!$%@? i jeszcze trochę, ale ja nie widzę gdzie ta pamięć w ogóle może wyciekać. Na 99% jest to coś w SDL, ale wolę sie upewnić.
No i dawno się nie bawiłem klasami
#anonimowemirkowyznania
Od jakiegoś czasu uczę się programowania. Uczę się klepać apki webowe w Javie. Zacząłem realizować pewien projekt, który chciałbym dodać do CV. Idzie mi z tym, jak to na początku, dosyć powolnie, ale jestem wstanie to pisać szybciej. Tylko tu pojawia się jedno ale: używałbym jakichś gotowych "klocków" w postaci algorytmów czy po prostu szukałbym podobnych projektów i starałbym się zrobić coś podobnie, ale z całkowitym zrozumieniem tego co robię. Obecnie moja nauka wygląda w ten sposób, że wymyślam coś, piszę na kartce jak powinna wyglądać implementacja, koduję, kasuję, koduję, kasuję, koduję kasuję i tak w kółko, bo cały czas mi coś nie pasuje, bo zawsze znajduję coś, co można poprawić lub zrobić coś bardziej wydajnym. Dopiero po tym szukam jakichś gotowych rozwiązań i porównuje swój kod z prawidłowo napisanym kodem i po tym robię refaktoryzację swojego kodu i go poprawiam. Oczywiście nie 1 do 1, tylko bazuję na tym co sam napisałem.

W związku z tym zastanawiam się, jak wy, czyli osoby, które już są na wyższym poziomie do tego podchodzicie? Czy lepiej jest klepać wszystko samemu, czy czasami po prostu warto jest wziąć coś gotowego i dodać to do swojego projektu i jechać z tym kilka razy szybciej. Oczywiście wszystko to co dodam do projektu musi być dla mnie w 100% zrozumiałe. Dla mnie jest to trochę małe oszustwo, jeżeli później dodam to do swojego CV, bo jestem świadomy, że pewne rozwiązania zostały przeze mnie skopiowane, lub po prostu mocno inspirowane ( ͡° ͜ʖ ͡°)

Dlatego proszę was o jakieś porady i nakierowanie mnie na to w jaki sposób powinienem dalej się uczyć
@AnonimoweMirkoWyznania: Uczysz się, więc nauka poprzez "odgapianie" czegoś co działa to normalna sprawa zanim nabędziesz takiej biegłości by móc wykorzystać tą wiedzę do stworzenia czegoś nowego. Co do pytania: warto drążyć jak coś działa ze względów "pedagogicznych" *, ale w praktyce czasem trzeba przyjąć że coś działa tak jak w dokumentacji i po prostu zastosować to bo akurat nie ma czasu/budżetu na drążenie ( ͡° ͜ʖ ͡°
  • Odpowiedz
OP: @Jimmy_PoP: Dzięki za poradę. Pythona trochę liznąłem i bardzo przyjemnie się pisze kod, ale na tę chwilę pozostanę przy Javie, bo mam za sobą już trochę nauki i zwyczajnie podoba mi się zagłębianie w to, jak ten język został stworzony.
---

Ten komentarz został dodany przez osobę dodającą wpis (OP)
Zaakceptował: LeVentLeCri
  • Odpowiedz
Macie jakieś fajne źródła do nauki pod rozmowy kwalifikacyjne w #cpp ?

Pytania podzieliłbym na typy:
1. Leetcode. Tutaj raczej ogarniam, znam dobre stronki tego typu jak codewars, hackerrant, topcoder itp.
2. Pytania teoretyczne. Tu ogarniam do poziomu średniozaawansowanego. Jak wpisuję w google "cpp interview questions" to właśnie wyskakują mi takie średniozaawansowane pytania. A mi chodzi o poziom zaawansowany, myczki w jęzku, move semantics, zaawansowane operacje na template'ach, multithreading w cpp itp.
3. Przeczytaj kawałek kodu i powiedz jaki będzie wynik. Tutaj miałem mały problem. Dużo pytań dotyczy zaawansowanych myczków w języku. Nie znam fajnych stronek do poćwiczenia tego.
#naukaprogramowania #cpp #programowanie

mam zmienną typu bool, w której siedzi jakaś wartość.
Jako że jest to c++, ten bool ma 8 bitów, a to znaczy że może przechowywać więcej niż 0, oraz 1.
Chcę zrobić mu jakieś operacje bitowe, żeby było w nim tylko 0, albo 1 (z pewnych przyczyn).
Jak to zrobić, BEZ UŻYWANIA IFA.
Nie mogę sprawdzić co w nim siedzi
#anonimowemirkowyznania
Szanowni Mirkowie
Piszę z pytaniem o zarobki w #programowanie
Ile powinien zarabiać pracownik małej firmy programujący w C++ posiadający 2 letnie doświadczenie? Miasto wojewódzkie.
Już mnie powoli męczy to, że pewnie za mało zarabiam, chociaż z drugiej strony nie wiem, bo to nie jest zagraniczne korpo, tylko polski januszex.
Pewnie powinienem iść po podwyżkę i powiedzieć ile chcę to bym się dowiedział, ale nie wiem czy nie zaproponuję za dużo i będzie dziwnie. Chociaż do tej pory zawsze jak prosiłem o podwyżkę to dostawałem bez problemu.
@villager: może i tak, ale tak z ciekawości zapytam, co takiego ciekawego oferuje webdev?

owszem jest dużo pracy, łatwo znaleźć nową, stawki też bywają bardzo satysfakcjonujące

ale w Polsce duża część pracy to albo klepanie CRUDów byle szybciej, albo utrzymywanie monolitów molochów sprzed wielu lat, gdzie już nikt nie wie jak co działa

moim zdaniem, nie patrząc na kasę, to jest mało ciekawa praca, owszem są projekty z fajnymi wyzwaniami,
  • Odpowiedz
Macie jakieś fajne materiały na temat tego jak działa pamięć w komputerze?

Chodzi mi o tematy jak:
- jakie są sekcje w pamięci (np. część z kodem)
- stos vs sterta
- szczegółowe omówienie działania stosu, jak działają ramki stosu, co się w nich znajduje, stack pointer itp.
Mircy, szukam jakiegoś w miarę poukładanego i uporzadkowanego źródła wiedzy, chciałbym poczytać trochę o tym jak działa budowanie projektu, kompilacji, łączenie bibliotek, flagi z tym związane, konfiguracja środowiska programistycznego, cmake i takie tam. Czyli wszystko co się dzieje po kliknięciu build, debug czy execute.

#programista15k
#cpp
#jezykc
#embedded
@Jurigag: bo taka jest wieloletnia tradycja w C# i każdy jeden developer będzie się zastanawiał co się wyprawia. Dajesz post jakiegoś jednego typa. Mogę ci znaleźć pełno innych mówiących, żeby nie łamać mega starych konwencji języka szczególnie gdy jest to taka błahostka jak dodanie I z przodu.
  • Odpowiedz
@Jurigag: polecam pisać kod w taki sposób, że inni nie będą musieli się zastanawiać co tu się #!$%@?ło i czemu ktoś #!$%@? manianę. W większości przypadków gdy widzę jakieś niestandardowe rozwiązania to cały projekt jest zakodowany jak gówno. Dla mnie próby łamania czegoś co jest utarte w języku byle było inaczej gdy daje to niemal zerowe benefity to jest kwintesencja juniorstwa
  • Odpowiedz
chciałbym nauczyć się programować ( ͡° ͜ʖ ͡°) jestem po studiach informatycznych, pracuję w branży jako sysadmin/devops, proste skrypty w bashu czy pythonie nie są mi obce, ale nigdy nie nauczyłem się faktycznego programowania. jestem zainteresowany językiem C++, ponieważ chciałbym zostać kontrybutorem moich ulubionych projektów open source napisanych w tym języku na platformę GNU/Linux. jakie możecie polecić zasoby do nauki w 2022? czy Symfonia Grębosza (i jej nowsze
@TheGreenBastard:

1. studia informatyczne to nie studia programistyczne
2. parę lat po studiach nie pamięta się nawet rzeczy, które nie sprawiały kłopotów w ich trakcie
3. bez doświadczenia w pracy nie będzie się programistą, nawet jeżeli potrafi się pisać programy. OP jest devopsem, nie programistą.
  • Odpowiedz
Jaką biblioteką warto się zainteresować, jeżeli chcę napisać server, który będzie odczytywał ruch UDP na konkretnym porcie? Asio jest ok, czy będzie to za duża armata na taki prosty problem? Czy może zostać przy klasycznych socketach w C?
#cpp
@TheGreatCornholio: jedno nie wyklucza drugiego.
Const zaznacza ze obiekt/zmienna nie może być zmieniany w tym scope. Nie mówi nic o położeniu obiektu/zmiennej
Volatile natomiast zabrania natomiast użycia efektów tymczasowych wartości między liniami kodu.

Oba słowa są ortogonalne do siebie. Błędem jest np założenie ze const powoduję brak alokacji lub że volatile uchroni przed błędami synchronizacji.

Przykład to const volatile użyty do komunikacji pomiędzy dwoma wątkami w kodzie na zasadzie producent
  • Odpowiedz
chcę zaimplementować prosty szyfr podstawieniowy do szyfrowania tekstu i kusi mnie żeby zrobić to przy pomocy biblioteki stl - wyglądało by to tak, że przy szyfrowaniu kluczami do wartości elementów mapa byłyby litery oryginalnego alfabetu a każdemu kluczowi by odpowiadała litera nowego alfabetu, który podawałby użytkownik, i odwrotnie przy deszyfrowaniu. powie ktoś czy taka koncepcja byłaby w miarę poprawna i łatwa do implementacji?
#cplusplus #cpp #programowanie
@yungdupa: Jako ćwiczenie to pewnie będzie działało. Ale jak chcesz tego gdzieś użyć w prawdziwym zastosowaniu to mapy stl'owe do szukania w nich znaków raczej się nie nadają. Jak zrobisz z mapami to możesz pokusić się o użycie vectorów. To już ma więcej sensu.
  • Odpowiedz
Gdzie poszukać ciekawych plykladow kodów w C++? - podejrzewam, że github ( ͡º ͜ʖ͡º)
Zależy mi na nauce programowania embedded pod Linux i chciałbym się przekonać jak daleko jestem w lesie jeżeli chodzi o ten język programowania i zobaczyć czego nie rozumiem i co nadrabiać.

#programowanie #jezykc #cpp #informatyka
@marylin17: pierwsza rada, jeśli dopiero zaczynasz to nie patrz na apki generujące kod (to samo dotyczy zresztą źródeł biblioteki standardowej). Jak już będziesz obyty z semantyką, zobaczysz trochę snippetów wykorzystujących bardziej zaawansowane konstrukcje tego języka to przyjdzie na to czas. Wcześniej tylko się niepotrzebnie zniechęcisz.

Co do zaś samego c++ to to, czego uczą na studiach ma się często nijak do tego, jak się powinno programować korzystając z najnowszych standardów
  • Odpowiedz
Mam aplikację konsolową przetwarzającą dane ze standardowego wejścia i wypluwającą je na standardowe wyjście.

Akurat napisana w #cpp ale to samo dotyczyłoby aplikacji napisanej w #java #python #csharp która działa jako aplikacja CLI.

Czy spotkaliście się z jakimś narzędziem, które pozwoliłoby na łatwe "owrapowanie" takiej apki jakimś interfejsem webowym, żeby zrobić z tego mikroserwis docelowo do wrzucenia w #docker - tak, żeby
@PaaD: https://stackoverflow.com/questions/8149828/read-the-output-from-java-exec cos takiego.
A jeżeli aplikacja nie działa w trybie ciągłym i odpalasz ją osobno dla każdego wejścia, no to po prostu przy każdym wywołaniu odpalasz apkę i zwracasz to co wydaliła.
Do tego dowolny lekki javowy framework webowy typu javalin i gotowe. No musisz jeszcze zadbać o lockowanie i zdefiniowanie końca wiadomości, bo strumyk z procesu przecież nie będzie miał końca.
  • Odpowiedz