Skocz do zawartości

Nauka języka C w 2020/21


Querto

Pomocna odpowiedź

Witam, jestem w trakcie nauki programowania arduino i od pewnego czasu myślę nad przejściem do atmel studio, a co za tym idzie nauką czystego C. Jednakże nurtuje mnie kilka pytań i mam nadzieję, że znajdzie się tutaj ktoś kto mi pomoże. 

1.Czy nauka C ma jeszcze sens ? Co mam na myśli. Większość poradników, artykułów czy książek związanych bezpośrednio z językiem C jest już trochę stara, jednocześnie coraz częściej jak szukam czegoś związanego z C znajduje C++ . Zastanawiam się czy umiejętność programowania w C przyda się na studiach z automatyki i w przyszłym zawodzie, ponieważ z tego co rozumiem jest możliwe programować mikrokontrolery w C++.

2.Jeśli nauka języka C ma sens, to jaką książkę polecacie do nauki dla początkującego? Myślałem o "Język C dla mikrokontrolerów AVR" Tomasza Francuza, jednak jest ona trudno dostępna w postaci papierowej. 

Z góry dziękuję za pomoc. 

Edytowano przez Querto
Link do komentarza
Share on other sites

18 minut temu, Querto napisał:

Witam, jestem w trakcie nauki programowania arduino i od pewnego czasu myślę nad przejściem do atmel studio, a co za tym idzie nauką czystego C

Przede wszystkim nikt Ci nie każe programować w C++, możesz równie dobrze pisać w C używając Arduino IDE, a nawet mieszać oba te języki w jednym programie.

Pamiętaj, że Język C jest podzbiorem języka C++.

 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

54 minuty temu, ethanak napisał:

ok, jakie konstrukcje języka C nie występują w C++?

Akurat jak napisałeś pierwszy post to specjalnie wklepałem to w wyszukiwarkę i pierwszy link na stacku: https://stackoverflow.com/questions/31505402/does-c-contain-the-entire-c-language i już dość wiekowy temat: https://stackoverflow.com/questions/1201593/where-is-c-not-a-subset-of-c

Link do komentarza
Share on other sites

Znowu robicie kałosztorm o nic, nie wnosząc nic do tematu.

@Querto Jest sporo języków w których możesz programować mikrokontrolery (niby można nawet w JS, ale wolę nie wyobrażać sobie jak to działa). Pytanie do czego chcesz dojść ostatecznie, jeżeli tylko pod kątem studiów to wpierw zorientuje się jak to wygląda na wybranym przez ciebie kierunku i uczelni. Jeżeli myślisz o tym przyszłościowo to ja bym polecał na ten moment C. Nie musi być to od razu "Język C dla mikrokontrolerów AVR", możesz zacząć od nauki pisania programów konsolowych w C i nie będzie to jakieś złe, albo niewłaściwe.

  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

W sumie to jest masa darmowych kursów w necie, na YT i Udemy. Jeżeli koniecznie chcesz książkę to jest ANSI C (chyba średnio na start się nadaje), Język C. Szkoła programowania, musisz poszukać i poczytać opisy co się tobie spodoba, z czym uważasz że dasz radę. Tylko wybieraj najnowsze wydania.

Edytowano przez szczawiosław
Link do komentarza
Share on other sites

1 godzinę temu, szczawiosław napisał:

W sumie to jest masa darmowych kursów w necie

Na początek polecam https://pl.wikibooks.org/wiki/C - można sobie wydrukować.

@deshipu, @Matthew11

Sprecyzuję: Język C jest praktycznie w 99% podzbiorem języka C++.

Lepiej?

Bo przecież niekompatybilności wynikają przede wszystkim z większej restrykcyjności C++ (przede wszystkim automatyczne rzutowanie typów), a argument o tym, żę w C++ nie występuje przestarzała konstrukcja nieużywana w C od mniej więcej pół wieku uważam za lekką przesadę. A chodzi mi o to, aby kolega wątkotwórca nie uważał C za jakiś zupełnie inny twór którego znając C++ trzeba się uczyć od zera, tylko przyswoił sobie różnice między tymi językami.

 

  • Lubię! 1
Link do komentarza
Share on other sites

Dnia 2.12.2020 o 12:41, Querto napisał:

Myślałem o "Język C dla mikrokontrolerów AVR" Tomasza Francuza, jednak jest ona trudno dostępna w postaci papierowej. 

@Querto posiadam tę książkę aczkolwiek w wersji elektronicznej (taka bardziej mi odpowiadała). Jeśli teraz jesteś na etapie arduino i nie sięgałeś jeszcze do AVR to książka może być trochę trudna na początek. Autor  bazuje na środowisku Atmel Studio, oraz poleca zestaw atmega xplained w celu pełnego (oraz na tamte czasy najtańszego) wykorzystania możliwości jakie oferuje to środowisko. Obecnie lepiej jest zakupić programator/debuger snap który oferuje o wiele więcej możliwości. Dostępne jest również nowe środowisko MPLAB X IDE i wiele innych narzędzi od microchipa.

16 godzin temu, Querto napisał:

Na ten moment interesują mnie głównie mikrokontrolery AVR

Jeżeli język angielski nie jest dla Ciebie przeszkodą to warto zapoznać się z obszernym fragmentem (176 stron) Elliot_Williams_AVR_Programming oraz przykładami , które autor książki umieszcza bezpłatnie na github. Co do polskich pozycji poza tą , którą podałeś masz jeszcze taką książkę

  • Pomogłeś! 1
Link do komentarza
Share on other sites

2 godziny temu, Querto napisał:

Dziękuje za pomoc, mam jeszcze jedno pytanie, czy jak już się nauczę C to nauka C++ będzie łatwiejsza ?

To zależy. Jeśli w ostatecznym rozrachunku i tak chcesz poznać C++ to moim zdaniem powinieneś uczyć się od razu C++. Znacznie łatwiej będzie Ci późnej napisać coś w C znając już C++. Próbując w drugą stronę znając C próbować coś pisać w C++ może być Ci ciężko przestawić się na obiektowe myślenie (oczywiście zakładając, że będziesz pisał w tym podejściu programy, ale wcale nie musisz bo nadal możesz pisać w C++ jakby to było C).  

Obejrzyj prezentację Kate Gregory z CppCon na ten temat - 

 

Edytowano przez Matthew11
Link do komentarza
Share on other sites

10 minut temu, Matthew11 napisał:

Znacznie łatwiej będzie Ci późnej napisać coś w C znając już C++.

Moim zdaniem raczej odwrotnie: jeśli będziesz znać C++ a spróbujesz coś pisać w C, może Ci zacząć brakować niektórych zdałoby się niezbędnych i oczywistych konstrukcji.

11 minut temu, Matthew11 napisał:

ciężko przestawić się na obiektowe myślenie

A kto powiedział, że w C nie można pisać obiektowo? Chyba taki sztandarowy przykład to GTK+.

Myślę, że poznanie na początek C (nie mówię tu o pisaniu jakichś Wielce Poważnych Programów, a o zapoznaniu się z językiem) a potem dopiero nauka C++ jest lepszym rozwiązaniem. Ale jak już podkreśliłem: jest to moje zdanie i nie uważam się tu za jakiś wielki autorytet. Tym niemniej C warto znać.

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.