Nauka języka C

Odpowiedz Nowy wątek
2017-07-03 17:13

Rejestracja: 3 lata temu

Ostatnio: 3 lata temu

0

Witam wszystkich. Na wstępie chciałem zaznaczyć że jestem tu nowy. Bardzo chciałbym nauczyć się programować w języku C i tu moje pytanie. Skąd czerpać najlepiej wiedzę? Dodam że kompletnie nic nie umiem i chciałbym zacząć od podstaw. Polecacie jakieś książki może fora internetowe? I drugie pytanie czy język C pomaga w nauce innych języków?

Pozostało 580 znaków

2017-07-03 17:19

Rejestracja: 5 lat temu

Ostatnio: 1 rok temu

Lokalizacja: Bydgoszcz

0

Jeśli chodzi o język C, to jest to chyba najlepszy kurs w polskiej sieci.
https://pl.wikibooks.org/wiki/C

Tak, znajomość języka C zdecydowania pomaga w nauce innych języków programowania, a także pomaga w pisaniu lepszego i szybszego kodu.

edytowany 2x, ostatnio: jpacanowski, 2017-07-03 17:21
ok, wiec jak C ma sie do jezykow funkcyjnych. Bo IMO C# bedzie lepszy pod jezyki funkcyjne (juz pomijajac ze po prostu zaczac sie jezyka funkcjyjnego) - fasadin 2017-07-04 10:52

Pozostało 580 znaków

2017-07-03 17:24

Rejestracja: 5 lat temu

Ostatnio: 4 miesiące temu

1

A dlaczego wybrałeś język C? Jest to język przeznaczony do dosyć wąskiej grupy oprogramowania.

Znakomita książka dla początkujących (tak samo jak edycja dotycząca C++):
http://helion.pl/ksiazki/jezy[...]e-vi-stephen-prata,jcszp6.htm


"Learn C, instead of just stringing random characters together until it compiles (with warnings)."
Paulo Coelho
edytowany 1x, ostatnio: perotin, 2017-07-03 17:26
Wybrałem C bo znajomi mi powiedzieli że po dobrym opanowaniu go można uczyć się łatwo innych języków. A jaki inny język byś polecił? - Kacpib18 2017-07-03 17:41
C# albo Python. To są przyjemne języki i materiałów (darmowych) w sieci jest mnóstwo. Pamiętaj, że C nie ma obiektowości, która jest podstawową cechą innych, popularnych języków. - perotin 2017-07-03 18:28
Zapomnij o znajomych, uwierz w nas. - perotin 2017-07-03 18:29

Pozostało 580 znaków

2017-07-03 18:27

Rejestracja: 8 lat temu

Ostatnio: 1 rok temu

Lokalizacja: Katowice

0

Mogę polecić, oprócz powyższej:

  1. Język ANSI C. Programowanie. Wydanie II - Brian W. Kernighan, Dennis M. Ritchie
  2. Programowanie w C. Sprytne podejście do trudnych zagadnień, których wolałbyś unikać (takich jak język C) - Zed A. Shaw

Internetowe kursy języka C pokazują zazwyczaj prostą semantykę języka, pomijając większość kluczowych zagadnień, takich jak działanie kompilatora, czy skromną bibliotekę tego języka.

Pozostało 580 znaków

2017-07-03 18:47

Rejestracja: 4 lata temu

Ostatnio: 5 godzin temu

1

Tak, C pomaga w nauce innych języków, bo masa innych języków ma bardzo podobną składnię do niego. Choć nauka innego języka niż C też pomoże w nauce innych języków, ale być może w mniejszym stopniu poprzez np. duże różnice w składni.

edytowany 2x, ostatnio: arkadiusz97, 2017-07-03 18:48

Pozostało 580 znaków

2017-07-04 10:15

Rejestracja: 17 lat temu

Ostatnio: 15 godzin temu

0

Czemu chcesz zaczynać od języka C? Jest bardzo trudny jak na początek. Przynajmniej w dzisiejszych czasach. Wybierz sobie jakiś prostszy język, np. C#. Jak w nim ogarniesz o co chodzi w programowaniu, to wtedy możesz zejść do C.

C to jeden z prostszych języków. Chodziło Ci o C++? - vpiotr 2017-07-04 10:50
popieram vpiotra. C sam w sobie jest bardzo prosty i przejrzysty. Oprocz wskaznikow i unii w C nie ma nic skomplikowanego (mozna zrobic kod skomplikowany ale nie jako jezyk sam w sobie) - fasadin 2017-07-04 10:53
dokładnie. C jest prosty i przejrzysty - karolinaa 2017-07-04 11:12
Chodzi mi właśnie o te wskaźniki, unie, stringi i inne smaczki, które trzeba oprogramować w głupi sposób. Nie mówię, że nie warto, bo zawsze warto wiedzieć, jak działają takie rzeczy na niższych poziomach. Ale żeby zaczynać od prostszych rzeczy. Oczywiście wszystko jeszcze zależy, co ma być oprogramowywane. Bo jeśli zwykłe aplikacje konsolowe albo okienkowe, no to wielka bida. Ale jeśli sterowniki, czy coś niskiego, no to już inna gadka. - Juhas 2017-07-04 11:39

Pozostało 580 znaków

2017-07-04 11:05

Rejestracja: 9 lat temu

Ostatnio: 1 godzina temu

9

C warto znać na tej samej zasadzie co ASM.
W C możesz zrobić dowolny soft - wystarczy dużo silnej woli.
W innych językach, nawet jeśli jesteś biegły, niektórych rzeczy nie dasz rady zrobić.
Można np. się ograniczyć do stacku webdev (typu PHP + JavaScript + CSS + HTML), ale wtedy taki osobnik nie powinien się nazywać programistą (może jakimś inżynierem ds. aplikacji webowych).
Wg mnie książka Prata jest przesadzona. 1024 strony o tym języku brzmi jak okrutny żart ("przeczytaj to a potem już wszystko będzie dla Ciebie banałem"). To sporo za dużo jak na książkę o podstawach.

Od siebie polecam niezmiennie K&R (328 stron) - http://helion.pl/ksiazki/jezy[...]n-dennis-m-ritchie,jansic.htm
chociaż dzisiaj może być już lekko nieaktualna.


A Prata nie przepisywał od pewnego momentu podręcznika systemowego POSIX BTW? xD Gdzieś widziałem jakąś książkę, która tak miała. - Satanistyczny Awatar 2019-09-19 15:18

Pozostało 580 znaków

2017-07-04 11:49

Rejestracja: 5 lat temu

Ostatnio: 1 dzień temu

0

Też polecę jak kolega @vpiotr K&R jak dla mnie nie ma lepszej książki fajnie wprowadzającej w tematykę języka C.

Pozostało 580 znaków

2017-07-04 11:54

Rejestracja: 7 lat temu

Ostatnio: 1 tydzień temu

1

@vpiotr: Cała prawda. C bardzo dobrze znać. Poza tym dla mnie C ma w sobie tę niskopoziomowość, która kiedyś strasznie mi się podobała. Uwielbiałem bawić się zarządzaniem pamięcią i wskaźnikami. Wiele się dzięki temu nauczyłem. Później idąc w języki wysokopoziomowe widać w jakim kierunku to wszystko wyewoluowało. Nie masz problemu ze zrozumieniem takich rzeczy jak typ referencyjny czy typ wartościowy w takim C#. Znając C można sobie ich działanie odpowiednio skojarzyć. Nauczysz się wykrywać wycieki pamięci za pomocą valgrind, a co za tym idzie dobrze pamięcią zarządzać.

Zobaczysz jak np. dynamiczna alokacja pamięci za pomocą malloc i free w C wyewoluowała do postaci new i delete w C++ aż po gołe new w językach wysokiego poziomu. Przekonasz się na własne oczy czym grozi przesyłanie wielkich obiektów przez wartość zamiast przez wskaźnik. Tego w językach wysokopoziomowych nie widać, bo np. klasa jest tam z definicji typem referencyjnym. Mnóstwo jest zalet takiej nauki.

Dla mnie np. było to fascynujące.

edytowany 3x, ostatnio: grzesiek51114, 2017-07-04 12:06
Taki mały szczegół, w c++ też da się użyć samego new bez delete, bez późniejszego wycieku pamięci używając np. unique_ptr, jeśli miałeś na myśli po prostu brak konieczności zwalniania pamięci. - arkadiusz97 2017-07-04 12:29
Tak, tak wiem ale miałem na myśli takie pure old school memory allocation - grzesiek51114 2017-07-04 12:39

Pozostało 580 znaków

2017-07-04 20:05

Rejestracja: 3 lata temu

Ostatnio: 2 lata temu

0

Napisz na priv.

Ewentualnie pogadamy na irc I polecę Ci to i owo.

Pzdr.

Pozostało 580 znaków

2019-09-11 21:47

Rejestracja: 1 rok temu

Ostatnio: 8 miesięcy temu

0

Podbijam, od jakich książek/ materiałów warto zacząć naukę języka C ? Może wątek już trochę umarł, więc myślę iż warto odświeżyć :)

Pozostało 580 znaków

Odpowiedz

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