Kezdőoldal » Számítástechnika » Programozás » A C-t mennyire nehéz megtanuln...

A C-t mennyire nehéz megtanulni mondjuk C# után?

Figyelt kérdés

Webfejlesztő vagyok,de érdekel a C (És a C++).

Java,C#,és OOP PHP után mennyire nehéz megtanulni?


Nézegettem régen a nyelvet,meg kicsit próbálkoztam vele.


Köszönöm szépen előre is a válaszokat!



#rendszer #memóriakezelés #Alacsony szintű nyelv
2023. aug. 30. 23:10
 1/5 anonim ***** válasza:
86%

Hát, kicsit másképp kell gondolkodni, sokkal többmindent kell magadnak megírni. Például nincsen beépítve lista típus, kézzel kell csinálnod, minden függvényével.

A pointerek és a dinamikus memória is sok hibalehetőséget rejt magában.

De ezeket leszámítva nem egy nagy ördöngősség.

Azt mondanám az eddigi tapasztalataid alapján, hogy kezdd inkább a c++ nyelvvel, OOP szemléletet használva, az úgy kevésbé különbözik, és ezen keresztül meg tudod tanulni a C nyelvi elemeket is kb, könnyebb lesz C-re térni, mint ha Javából egyből C-re mennél.

2023. aug. 30. 23:26
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:
93%

A C egy sokkal kisebb nyelv, mint a C++, és emiatt sokkal könnyebb is tanulni. Van hozzá egy legendás könyv (Kernighan-Ritchie: A C programozási nyelv, röviden K&R), azzal érdemes elkezdeni. A második (legújabb) kiadásával, nem az 1994-es magyar fordítással.


Az általában egy “nyelvfilozófiai” kérdés, hogy nagy, mindent IS tudni akaró nyelven (C++, Java, C#, Rust, JavaScript); vagy kicsi, kompakt, könnyen tanulható nyelven (C, LISP, Smalltalk, Go, Zig) akarsz-e programozni. A C ez utóbbiak táborába tartozik.


Ami viszont még fontosabb: hogy mire fogod használni? Ha igazából semmire, az is rendben van, de akkor meg pláne érdemes egy kicsi és gyorsan tanulható nyelvvel játszadozni, hogy “legyen vége” a tanulásnak.


Ha viszont például használni szeretnéd, és mondjuk pont webfejlesztő vagy, akkor lehet, hogy inkább a Go vagy Rust nyelveket tanulnám helyettük. (Ismételten: a Go kicsi, könnyen tanulható nyelv, a Rust nagyobb behemót és ráadásul a memóriakezelése külön fejtörést igényel.) Mind a kettőt tudod használni a webfejlesztésben mind a backend, és előbb-utóbb mind a frontend oldalon. Én is szeretek új nyelveken tanulni (most éppen a C-utód Zig nyelvet nézegetem), de tényleg érdemes olyasmivel időt tölteni, amit használni is tudsz, mert különben elfelejted.

2023. aug. 31. 07:12
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
89%

Kaptál remek válaszokat, én a saját tapasztalatom osztanán meg ezzel kapcsolatban.


Én pythonban kezdtem el dolgozni egyetem alatt és utána is maradtam ezen a vonalon (backend flask). Nyílván egyetemen volt C/C++, de hát nem annyira másztam bele:D Ezek után úgy hozta az élet, hogy egy másik területre tévedtem programozás után, ahol rengeteg low level dologgal kell foglalkozni, érteni kell az assemblyt és gyakran kell C/C++-ban kódolni.

Mivel nagyon érdekelt ez az új terület, így rengeteg időt szántam ezeknek az elsajátítására és ami a legnagyobb segítség volt, az az assembly mély megértése. Nem tudnék azért sok dolgot megírni benne:D csak szimplán olvasás szintjén értem ezt. Mivel ott kb semmi olyan nem létezik ami magasabb szintű nyelveken alap, így mindent neked kell implementálni és a memória működését nem felszínesen, hanem mélyen érteni kell. Ez pedig C/C++ megértésében hatalmasan nagy segítség, konkrétan nem fogod nehéznek találni, inkább csak az az érzés lesz, hogy kell rengeteg tapasztalat vele (de ugye ez normális).


Most ne érts félre, nem azt mondom, hogy tanulj assemblyt, de valami olcsó udemy kurzust érdemes lenne megvenni vagy valami könyvet le torrentezni vagy youtube-on egy videó sorozatot nézni erről (nyílván van az indiai barátainknak hála erről is jó videó:D). Egy hétvége alatt átmész egy ilyenen és utána soha többé nem lesz probléma low level nyelvekhez nyúlni.

2023. aug. 31. 07:56
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:

Nagyon szépen köszönöm a hasznos,kifejtett válaszokat! :)


Azon gondolkodom,hogy a helyes memóriakezelés,hogy ne legyenek leak-ek,hogy lehetne hatékonyan megtanulni,mi a legjobb módszer rá,esetleg mennyi idő. Ettől tartok igazából mind C-ben,mind C++-ban.

2023. aug. 31. 11:46
 5/5 anonim ***** válasza:
100%
A memória kezelésben C-nél nem a leak-ekkel lesz a legnagyobb gondod. Nyilván előfordulhat, de amit 3-as írt (2023.08.31. 07:56-kor) abban sok megfontolandó dolog van. Én most beágyazott rendszereket fejlesztek, bár nem intel alapokon hanem mikrokontroller, néha ARM alapokon. Főleg assemblyben, néha C-ben (hiába a legújabb fordító de pl. egy mikrokontrollerre kézzel jobban optimalizálok assemblyben mint C-ből a fordító, azaz kisebb és gyorsabb kódot tudok írni néhány esetben, a többi esetben C-ben írjuk szóval ilyen vegyes lesz az eredmény, fele C-ben, fele assemblyben). Ott keződik, hogy már a C-hez sem árt ha az ember úgy nagyjából tisztában van azzal, hogy hogyan épül fel egy alkalmazás és környezetének a memóriája. Többek között ezért sem szeretem a python-t mert aki abban kezdett és "nagyon jó vagyok pythonban" sokszor képtelen átállni arra, hogy a változó az nem egy "valami a rendszerben" hanem ott csücsül a memóriában megfogható bitek, bájtok halmaza. Na a memória megértése itt kezdődik. El kell tudni képzelni adott esetben bit szinten egy double típust, hogy az hogyan fog bent ülni a tárban, meg akkor ha ebből van egy rakás egy tömbben. A leak és társai majd ez után következnek. Az OOP-ben pont az a szép, hogy ezekkel nem kell foglalkozni, mert intézi a fordító és az oprendszer szépen. Meg azt is, hogy ezek ne akadjanak egymással össze (ld. pl. assemblyben ahol igazán változó sincs abban az értelemben ahogy pl. egy C-ben, vagy pythonban). Az is igaz, hogy egy átlagos mai programozónak erről nem is kell túl sokat tudnia. Ameddig nem kapja el az a betegség, hogy "beágyazott rendszerekkel" vagy nagyon hardver közeli dolgokkal akar foglalkozni C-ben (assemblyben, gépikódban). Én szeretem a C-t, kellemes nyelv, vannak nagyon suta dolgai. És a fent hivatkozott K&R könyv az az alap.
2023. aug. 31. 12:32
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!