Edukacja, Książki, ebooki

0

Witam szanowne grono.
Poszukuję książek bądź ebooków odnośnie tworzenia konkretnego oprogramowania (sieciowych, astronomicznych, muzycznych, do kontaktu z maszynami albo urządzeniami). Najlepiej w języku c++, jednak odnośnie samej techniki programowania również z chęcią się zapoznam.
Jeśli ktoś posiada wiedzę na temat tytułów książek, albo ma ebooki i może się nimi podzielić to będę wdzięczny, również mogę podzielić się swoimi, które posiadam.
Pozdrawiam i liczę na Waszą pomoc.

2

Najlepiej iść na studia z konkretną dziedziną jaka cię interesuje, gdyż bez wykształcenia inżynieryjnego w danej dziedzinie po prostu nie dostaniesz pracy, każda większa firma/korporacja zatrudnia tylko wykształconych w danej dziedzinie inżynierów, nie biorą ludzi bez tego nawet jeśli by posiadali odpowiednie umiejętności i to będzie blunder z twojej strony jak tak zrobisz.

Książek typowo nie ma pod to, ale są które rozwiązują podobne problemy lub bardzo blisko tego co chcesz osiągnąć.

  1. Sieciowe to zakładam, że nie interesuje cię jak się po magistrali rozmawia z kartą sieciową, a raczej wysokopoziomowy sposób, czyli gdzie producent dostarcza sterowniki, system daje abstrakcję obsługi i ty tylko wywołujesz syscalle systemowe, które tworzą tcp/udp sockety, które są owrapowane i utworzone jakieś wysokopoziomowe abstrakcje obsługi komunikacji w językach jak C++/Python/Java, a na nich dołożone jakieś protokoły jak http/https.
    To tutaj w tym przypadku, wybierasz albo gołe sockety czyli praktycznie syscalle systemowe, ale z poziomu C/C++, albo jakieś modern C++ network library.
    Zaczynasz od przesyłania bajtów, potem jakieś struktury wiadomości(własny protokół komunikacji).
    Jak korzystasz z http protokołu to też lepiej jakąś bibliotekę użyć, a jak nie masz to po prostu odbierasz bajty, parsujesz headery http do pierwszych dwóch znaków nowej linii \n\n, a następnie od tego do końca, w headerze jest określone ile bajtów jest, zapisujesz to do pliku i tak pobierzesz np. plik jpg z internetu.
    Oczywiście w headerze może być, że jest użyta jakaś kompresja to wtedy musisz obsłużyć taki przypadek.
    No i adres url sprawdzasz pod jakim ip adresem się znajduje i wysłasz pod dany adres i port, a url dopisujesz w headerze GET http://google.com/ HTTP/1.1

  2. W astronomii to bardziej pewnie będzie też elektronika i matma, głównie fizyka czyli obliczanie z radaru na podstawie sygnału i np. efekt dopplera czy planeta porusza się w naszym kierunku czy przeciwnym. Nie wiem jak tu z książkami, ale pewnie to będą do fizyki.

  3. Muzycznych to Elektronika, wiedza o tym jak działają głośniki, jak wytwarzać dźwięk jak ten dźwięk jest kodowany na komputerze.
    Dźwięk się składa z sinusoid, czyli każdą piosenkę, głos, ogólnie dźwięk możesz potraktować transformatą fouriera czyli matematycznym równaniem i otrzymasz vektor, który będzie zawierał zakres częśtotliwości i przypisaną do niej amplitudę z jaką występuje dana częstotliwość dźwięku, potem robisz albo odwrotną transformatę, albo po prostu dodajesz te sinusoidy A*sin(freq) i też otrzymujesz vektor amplitudy w każdej jednostce czasu.
    Potem tworzysz głośnik czyli plastik podgrzany formujesz membranę w podciśnieniu na jakiejś foremce, do tego przyklejasz cewkę i do obudowy magnes, teraz te amplitudy zamieniasz z cyfrowych liczb na analogowe czyli napięcie i podajesz na cewkę, a ta zmienia się w elektromagnes, który przyciąga się do magnesu lub odpycha i tak wygina membranę, że generuje falę w powietrzu, która jest dźwiękiem.

  4. Do komunikacji z maszynami to zależy od urządzenia, jak projektujesz może być UART, rs232, ethernet, bluetooth, wifi, spi, CAN, można też po swojemu jakoś przesłać, ale wtedy projektujesz niestandardowy protokół.
    Np. Drukarki 3d czy maszyny CNC ogólnie, to wysyłasz po UART czy WIFI, w postaci tekstu jako ascii gcode instrukcje,
    czyli np. zrobisz rysowanie kwadratu.

l1 0 100 0
l1 100 100 0
l1 100 0 0
l1 0 0 0 

l1 to linear movement i pierwsza liczba to x, druga y, a trzecia z, gdzie z to wysokość, a x i y szerokość, jak chcesz np. długopis podnieść to z do góry, a 0 to dotyka powierzchni druku.

Z mikrokontrolerami komunikacja jest taka jaką ktoś zaprojektował, a standardowa to jest możliwość wgrywania do pamięci oprogramowania, wtedy zwykle reset jest do masy podczepiony i mikrokontroler jest w trybie programowania i isp porty służą wtedy jako możliwość odczytu i zapisu do pamięci uC, a jak jest podciągniete reset do 5v to wtedy działa w trybie użytkowym, czyli wykonuje kod, który tam jest i te porty służą do innej komunikacji np. wykorzystywanej przez firmware producenta.

Najlepiej uczyć na temat urządzeń na jakich chcesz pracować, jak umiesz coś zbudować to wiesz jak tego używać.
No i lepiej przez studia się uczyć, bo potem nikt cię nie będzie chciał zatrudnić, nikt ci nie uwierzy, że znasz się na tym i githuba nikt nie sprawdza, ani twoich projektów, bo zostaniesz odsiana na pierwszym etapie z HR gdzie tam nikt nie jest techniczny, nawet do technicznego etapu nie dojdziesz w większej firmie, sam brak studiów cię przekreśli.

1

Mój protip to czytanie syllabusu dla danego przedmiotu, tam są informacje o książkach.

1
Autysta napisał(a):

Najlepiej iść na studia z konkretną dziedziną jaka cię interesuje, gdyż bez wykształcenia inżynieryjnego w danej dziedzinie po prostu nie dostaniesz pracy, każda większa firma/korporacja zatrudnia tylko wykształconych w danej dziedzinie inżynierów

Ale brednie XD

0
Autysta napisał(a):

Najlepiej iść na studia z konkretną dziedziną jaka cię interesuje, gdyż bez wykształcenia inżynieryjnego w danej dziedzinie po prostu nie dostaniesz pracy, każda większa firma/korporacja zatrudnia tylko wykształconych w danej dziedzinie inżynierów, nie biorą ludzi bez tego nawet jeśli by posiadali odpowiednie umiejętności i to będzie blunder z twojej strony jak tak zrobisz.

Książek typowo nie ma pod to, ale są które rozwiązują podobne problemy lub bardzo blisko tego co chcesz osiągnąć.

  1. Sieciowe to zakładam, że nie interesuje cię jak się po magistrali rozmawia z kartą sieciową, a raczej wysokopoziomowy sposób, czyli gdzie producent dostarcza sterowniki, system daje abstrakcję obsługi i ty tylko wywołujesz syscalle systemowe, które tworzą tcp/udp sockety, które są owrapowane i utworzone jakieś wysokopoziomowe abstrakcje obsługi komunikacji w językach jak C++/Python/Java, a na nich dołożone jakieś protokoły jak http/https.
    To tutaj w tym przypadku, wybierasz albo gołe sockety czyli praktycznie syscalle systemowe, ale z poziomu C/C++, albo jakieś modern C++ network library.
    Zaczynasz od przesyłania bajtów, potem jakieś struktury wiadomości(własny protokół komunikacji).
    Jak korzystasz z http protokołu to też lepiej jakąś bibliotekę użyć, a jak nie masz to po prostu odbierasz bajty, parsujesz headery http do pierwszych dwóch znaków nowej linii \n\n, a następnie od tego do końca, w headerze jest określone ile bajtów jest, zapisujesz to do pliku i tak pobierzesz np. plik jpg z internetu.
    Oczywiście w headerze może być, że jest użyta jakaś kompresja to wtedy musisz obsłużyć taki przypadek.
    No i adres url sprawdzasz pod jakim ip adresem się znajduje i wysłasz pod dany adres i port, a url dopisujesz w headerze GET http://google.com/ HTTP/1.1

  2. W astronomii to bardziej pewnie będzie też elektronika i matma, głównie fizyka czyli obliczanie z radaru na podstawie sygnału i np. efekt dopplera czy planeta porusza się w naszym kierunku czy przeciwnym. Nie wiem jak tu z książkami, ale pewnie to będą do fizyki.

  3. Muzycznych to Elektronika, wiedza o tym jak działają głośniki, jak wytwarzać dźwięk jak ten dźwięk jest kodowany na komputerze.
    Dźwięk się składa z sinusoid, czyli każdą piosenkę, głos, ogólnie dźwięk możesz potraktować transformatą fouriera czyli matematycznym równaniem i otrzymasz vektor, który będzie zawierał zakres częśtotliwości i przypisaną do niej amplitudę z jaką występuje dana częstotliwość dźwięku, potem robisz albo odwrotną transformatę, albo po prostu dodajesz te sinusoidy A*sin(freq) i też otrzymujesz vektor amplitudy w każdej jednostce czasu.
    Potem tworzysz głośnik czyli plastik podgrzany formujesz membranę w podciśnieniu na jakiejś foremce, do tego przyklejasz cewkę i do obudowy magnes, teraz te amplitudy zamieniasz z cyfrowych liczb na analogowe czyli napięcie i podajesz na cewkę, a ta zmienia się w elektromagnes, który przyciąga się do magnesu lub odpycha i tak wygina membranę, że generuje falę w powietrzu, która jest dźwiękiem.

  4. Do komunikacji z maszynami to zależy od urządzenia, jak projektujesz może być UART, rs232, ethernet, bluetooth, wifi, spi, CAN, można też po swojemu jakoś przesłać, ale wtedy projektujesz niestandardowy protokół.
    Np. Drukarki 3d czy maszyny CNC ogólnie, to wysyłasz po UART czy WIFI, w postaci tekstu jako ascii gcode instrukcje,
    czyli np. zrobisz rysowanie kwadratu.

l1 0 100 0
l1 100 100 0
l1 100 0 0
l1 0 0 0 

l1 to linear movement i pierwsza liczba to x, druga y, a trzecia z, gdzie z to wysokość, a x i y szerokość, jak chcesz np. długopis podnieść to z do góry, a 0 to dotyka powierzchni druku.

Z mikrokontrolerami komunikacja jest taka jaką ktoś zaprojektował, a standardowa to jest możliwość wgrywania do pamięci oprogramowania, wtedy zwykle reset jest do masy podczepiony i mikrokontroler jest w trybie programowania i isp porty służą wtedy jako możliwość odczytu i zapisu do pamięci uC, a jak jest podciągniete reset do 5v to wtedy działa w trybie użytkowym, czyli wykonuje kod, który tam jest i te porty służą do innej komunikacji np. wykorzystywanej przez firmware producenta.

Najlepiej uczyć na temat urządzeń na jakich chcesz pracować, jak umiesz coś zbudować to wiesz jak tego używać.
No i lepiej przez studia się uczyć, bo potem nikt cię nie będzie chciał zatrudnić, nikt ci nie uwierzy, że znasz się na tym i githuba nikt nie sprawdza, ani twoich projektów, bo zostaniesz odsiana na pierwszym etapie z HR gdzie tam nikt nie jest techniczny, nawet do technicznego etapu nie dojdziesz w większej firmie, sam brak studiów cię przekreśli.

Mnie nie interesuje praca ani żadne rozmowy kwalifikacyjne.
Owszem, studia to w zasadzie jedno z najlepszych rozwiązań, lecz musiałbym studiować każdy kierunek osobno. Nie o to mi w tym chodzi...
Interesuje mnie tylko specyficzny podręcznik, powiedzmy powiązany z jakąś stroną internetową, gdzie będą mógł sobie wybrać program, który chcę stworzyć i będzie dostępna specyfikacja tego programu, którą mogę się kierować sam go pisząc.

0

Myślę, że najprościej będzie wybrać konkretny temat i szukać rzeczy na konkretny temat.

A potem poszukać odpowiedzi np. na Youtube, HackerNews, Githubie, Wikipedii, poszukać kanałów na Discord ludzi, którzy się czymś takim zajmują, powyszukiwać Twittera i zobaczyć, kto o tym pisze tweety (czy może teraz "iksy"?). Może poszukać papierów naukowych na dany temat.

Zobaczyć też stosowne biblioteki / API do tego, co chcemy zrobić.

Albo sięgnąć po gotową książkę/ebooka/kurs już pod tę tematykę, którą chcemy.

powiedzmy powiązany z jakąś stroną internetową, gdzie będą mógł sobie wybrać program, który chcę stworzyć i będzie dostępna specyfikacja tego programu, którą mogę się kierować sam go pisząc.

Czyli coś jak strona z tutorialami, ale na ambitne tematy?

1 użytkowników online, w tym zalogowanych: 0, gości: 1