Melyiket tanuljam, JAVA vagy C ?

Melyiket tanuljam, JAVA vagy C ?
2011-03-03T12:59:13+01:00
2011-03-04T11:07:34+01:00
2022-10-26T20:15:32+02:00
  • OK. Köszi. Körülnézek
    Mutasd a teljes hozzászólást!
  • Ha anyagilag nem ráz meg a dolog, akkor szerintem egy "24 órás" könyv is jó lehet az induláshoz. Annál mindenképpen jobb, minthogy könyv nélkül kezd a tanulást. Később majd ki kell pótolni, de pár hétre-hónapra az is lefoglalja az embert. Az meg szerintem elkerülhetetlen, hogy később ne keljen még venni más könyveket is.

    A ComputerBooks-os "Programozzunk C nyelven" is jó, bár azt nem tudom hogy az ott tanultak mennyire kompatibilisek a DevC-vel, mert TurboC-re és DOS-ra épül. Lehet vannak újabb könyvek, az is lehet hogy az is tökéletes. 1500 ft-ot mondjuk megér.
    Mutasd a teljes hozzászólást!
  • Akkor melyik könyvel kezdjem?
    Ami részletesen teljesen az alapoktól, tanítja meg.


    Szerintem az Angster Erzsébetessel. Igaz, nem C.

    Azt hittem hogy minden nyelv strukturált

    Nem struktúrált minden nyelv. És nem is arról beszéltem hogy konkrét nyelvet hanem módszertant érdemes megtanulni. Véleményem szerint ha már megtanultad a struktúrált programozási módszertant (amit magyar nyelven még a fent említetten kívül még nem találtam könyvet ami tanítana) akkor bármelyik strutúrált paradigmát támogató nyelvet (így a C-t is) max egy hét alatt meg lehet tanulni.

    Nem az a lényeg hogy megtanuld hogy van utasítás, ciklus, elágazás, nomeg eljárások, függvények. Hanem hogy megtanuld hogy hogyan érdemes használni őket.

    Véleményem szerint C-hez a legjobb könyv a már többször említett KR2. Viszont ez _semmit_ nem tanít meg arról hogy hogyan kell programozni. Gyakorlatilag csak leírja magát a nyelvet.

    Az xy.. 24 óra alatt könyvek közül amit eddig láttam az mind olyan színvonalat ütött meg hogy leginkább az említésre se méltó kifejezéssel illetném őket. Ugyanez igaz a ComputerBooks logóval ellátott 'művekre'.
    Szerintem aki olvasott már 1-2 ilyet meg mondjuk egy angolul kiadott Troelsen könyvet az tudja hogy minőségileg milyen különbség van ezek között.

    Morzel
    Mutasd a teljes hozzászólást!
  • Akkor melyik könyvel kezdjem?
    Ami részletesen teljesen az alapoktól, tanítja meg.
    Mutasd a teljes hozzászólást!
  • Az a baj, az a könyv nem kezdőknek való. :)
    Biblia - mert minden benne van amit tudni érdemes

    A versenyautó is autó, aztán a legtöbben az első kanyarban elszállnának :)
    Mutasd a teljes hozzászólást!
  • Azt hittem hogy minden nyelv strukturált. Rosszul gondoltam? Gondolom akkor a php az, mivel abban tudok programozni, és van benne szekvencia pl: egy függvény, vagy egy utasítás sorozat, van benne szelekció pl: if, else, switch, és iterációnak mondhatjuk a for és a while ciklust. Vagy nem jól látom? Bocs ha hülyeséget írtam. Akkor a C nyelv strukturált?
    Mutasd a teljes hozzászólást!
  • De ha ilyen jó könyv akkor gondolom a C alapjait meglehet belőle tanulni. Nem? Ha ezt a könyvet kiveséztem utána mit ajánlasz. Megnézem azt is amit írtál, Köszi. Esetleg a 24 órás könyv nem jó? Vagy van valami jó tankönyv C -re?
    Mutasd a teljes hozzászólást!
  • A C nyelvnek ez a bibliája.

    Kicsit régi és maga a nyelv elavult de struktúrált programozásnak én mindenképpen magyar nyelven az Angster Erzsébet Struktúrált Programozás I-II műveit ajánlanám. Igaz hogy Pascalt oktat de a struktúrált programozás lényegét iszonyat jól elmagyarázza.
    A KR2-vel az a baj hogy igaz hogy a C nyelvet leírja viszont programozni nem tanít meg.

    Morzel
    Mutasd a teljes hozzászólást!
  • Köszi a segítségeket. Már telepítettem a DevC++ 4.9.9.2 -t. Ismerkedek vele. A BRIAN W. KERNIGHAN – DENNIS M. RITCHIE könyvéből meg lehet tanulni C -ben programozni?
    Mutasd a teljes hozzászólást!
  • Egyetértek mindenképpen C-vel kezd a stuktúrált, és személyesen utána C++-t ajánlok az objektum-orientáltság miatt a java előtt a (szerintem elég hülye) "a mutatókkal csak baj van" hozzáállásuk miatt, hogy ne zavarjon későb össze és kényelmesedj el
    Mutasd a teljes hozzászólást!
  • Valószínű igazad van, de komolyabb programokat, nagyobb projekteket nem lehet assembly -ben írni. Vagyis lehet csak nagyon sokáig tartana, de viszont PIC -hez tudom hogy az lenne a jobb, de ha lehet C ben is PIC re írni, akkor inkább azt tanulnám amit más programok írására is lehet használni. Lehet hogy a C -t kezdem, csak egy kicsit félek tőle hogy nehéz lesz. Bár azt mondják hogy nem nagy nyelv, és (relatíve) könnyen meg lehet tanulni.
    Mutasd a teljes hozzászólást!
  • A x86-os architektúrán szerintme manapság nem nagy az Assembly szerepe optimalizációra, ugyanis amennyire én tudom belül egy RISC CPU fut és az assembly kódból nem lesz egyből gépi kód, hanem a CISC kódot fordítják át a belső RISC-re. Mondjuk szerint amúgy is eléggé bonyolult már a pipeline struktúra és sajnos el kell fogadni, hogy egy adott bonyolultsági szint felett a fordítóval nem tud versenyezni az emberi agy (főleg ha már nem is tudjuk pontosan mi történik belül).
    Mutasd a teljes hozzászólást!
  • Valóban mikrokontrollereket lehet programozni C-ben is, de ettól függetlenül nagy segítség az Assembly. Őszintén szólva nem is találkoztam még olyan beágyossal, aki ne ismerné legalább alap szinten az adott CPU assemlby-jét.
    Továbbá vannak anyagi indokok is az Assembly mellett: a C fordítóért sokszor fizetni kell .
    További apró komment: a C fordítók szeretnek kioptimalizálni dolgokat és a tanulás során okozhat ez sok sok fejtörést pl. késleltetést akarsz csinálni, kifelejted a volatile-t és máris lehet értetlenkedni mi történik a hardverrel...
    amúgy is ilyen időzítés kritikus részekre sokszor rákényszerülhetsz és akkor jobb az assembly (ok ok, ott vannak a TIMER-ek, de mi van ha elfogynak vagy ha pl. egy adott funkcióval együtt nem működnek tökéletesen (láttam már ilyet...), assembly ilyen esetekben kisegíthet néha).
    Mutasd a teljes hozzászólást!

  • Ezért van az, hogy komoly java programozók is képesek azt állítani, hogy a java referencia szerint adja át a paramétereket (vagy hogy a nem-primitív típusok esetében így tesz).


    Ja, max a megfogalmazas rossz, de attol meg tudjak hogy ez alatt mit kell erteni es hogy kell hasznalni. Legalabbis akikkel edig en talalkoztam.
    Mutasd a teljes hozzászólást!
  • Igazából nem is nagyon van már erre szükség, ha csak nem oprendszert fejlesztesz. Amit esetleg ez ügyben érdemes megtanulni az mondjuk egy Z80 assembly, a gépi kód szintjéig - csak azért, hogy tudjuk valójában mit csinál egy processzor. Ez többet elmond a dologról mint egy C, ahol már nem igazán találkozol a számítógép valódi építőköveivel - memória, stack, flagek, regiszterek. Viszont túlzottan azért nem érdemes ebbe belemélyedni, egy mai 64 proci utasításkészletének elsajátítása azért nem kis dolog - szvsz egy kezdőnek kb. lehetetlen - és igazából valóban csak nagyon-nagyon kevés ír élesben assembly-t a mai procikra. Ráadásul teljesen más Pl. egy ARM utasításkészlete mint egy x86-os assembly.

    Azon túl viszont én is a C#-t javasolnám. Sőt, igazából az assemblyt csak jóval utána, amikor a mit és hogyan már annyira nem kérdés, de kíváncsi az ember arra hogy kb. mi zajlik a gépben belül.

    Anno én is úgy kezdtem, hogy a korabeli elérhető magas szintű nyelveken tanultam meg az alapokat (basic) majd szépen megtanultam a Z80-as gépi kódot (és a 6502-t is). Aztán persze az x86-ot is (de a 32 biteset már nem). Ezekre persze akkoriban még valóban szükség is volt. A korabeli 8 bites gépeken komolyabb dolgot csak assemblyben lehetett csinálni, de az XT-ken is nagyon jól jött ez akkoriban. De ma már ritkán kell lenyúlni a gép mélyére. Persze ha valaki valami nagyon spéci dolgot csinál, Pl. mikrokontrollereket programoz akkor jól jöhet az assembly, de ott is inkább a Z80, mivel a kontrollerek is inkább ehhez állnak közel.
    Mutasd a teljes hozzászólást!
  • A C++ java a Java. A tuti siker= Java+C++.
    Mutasd a teljes hozzászólást!
  • Nem rossz koncepció. A processzormodellről jutott eszembe:
    Végülis így ki lehet hagyni a C-t: lehet kezdeni kisgép (mondjuk C64) assemblyvel (emulátorok vannak a neten bőven.)
    Egy vonal (szakasz) rajzoló szint után meg lehet Java-val menni tovább.

    Emlékszem gyerekkorunkban a kisgépes ASM egyből durva lett volna (Basiceztünk előtte), de franc tudja, egy felnőttnél szvsz. egy kisgépes halálprimitív ASM nem probléma.

    (Az más kérdés, hogy később aki profi akar lenni meg kell tanulnia a C-t is rendesen, de ugye most a kezdetekről van szó.)
    Mutasd a teljes hozzászólást!
  • Igen, PC -re és mobilokra is szeretnék felhasználói programokat írni, de ugyanúgy érdekel a rendszer vagy szerver programozás is.
    ... és pl: igen, a játék tervezés is.
    Mutasd a teljes hozzászólást!
  • Félreértettél. Nem a pénz dominál, csak szeretnék mihamarabb elérni tudásban egy olyan programozási szintet, amivel tanulás mellet még egy kis pénzt is tudnék keresni.
    Mutasd a teljes hozzászólást!
  • Nincs tanárom. Mindent csak könyvekből meg a netről tanulok.
    Mutasd a teljes hozzászólást!
  • Nem nagyon jártam be programozás előadásra, de a jegyzet megvan, ez alapján úgy kezdődött, hogy tanultunk egy egyszerűbb memóriamodellt, egy processzor modellt pár pseudoutasítással, hogy látszódjon, hogy körülbelül hogyan történik a (soros) feldolgozás (itt képekkel mutatva pár lépésen keresztül egy egyszerűbb gépi utasítású program feldolgozása).

    Objektumorientáltságról pár való életből vett példa + rajz, utána elmagyarázva, hogy a main()-ben kezdődik a futtatás és már indulhatott is a java móka.

    De szerintem nem is kell más.
    Mutasd a teljes hozzászólást!
  • Köszi. Kicsit utána nézek a C# -nak mert totál nem ismerem. Tényleg nem tudok dönteni. Mind a két nyelv nagyon színpatikus. Eddig csak webes nyelveket ismerek. Amit tudok: html, css, javascript, php, mysql, de ezeket is még tanulnom kell. Bár azért egy pár webáruházat meg fórumot, honlapokat már csináltam.
    A java már fenn van a gépemen, a NetBeans is. El is kezdetem ilyen "Hello world" dolgokat, de még nem mélyültem bele.
    Ugyan ez a helyzet a C vel is. Meg van a C fordító, meg a könyv, meg egy csomó tutorial. Megnézem a C# -ot.
    Mutasd a teljes hozzászólást!
  • Egy kérdés: Pénz beszél, kutya ugat???

    Nem abból kellene kiindulni, hogy melyik hoz több pénzt.
    Ez már régen rossz hozzáállás.
    Inkább azzal kellene tisztában lenni, hogy mit szeretnél csinálni az "életben"?
    Kliens, Szerver programozás?
    Játék tervezés?...
    Mutasd a teljes hozzászólást!
  • Érdekes téma.
    Én is elsőre arra tippelnék, hogy a C-t először érdemes lenyomni, de csak nagoyn alap pedaógiai szinten.
    Mondjuk vizsgafeladatként prímszámok megkeresése 1000-ig, 1-pixeles labdák pattogtatása a képrnyőn 45 fokban (videomemória írással), meg mondjuk egy kis pointervarázslat: integer beírása majd visszaolvasása byteonként. Ez a szint egy értelmes embernek gyorsan (pár nap alatt) megvan, és akkor jöhet is a Java.

    Ha mégis Java-val kezd, lehet, hogy az is jó, ha jó tanára van. Mondjuk én úgy kezdenék Java-val tanítani egy tökkezdőt, hogy beírjuk, hogy static void main() és elkezdünk procedurálisan programozni, és már az elején kitérek a memóriamodellre (int 32 bit, double 64 bit, a tömb egy memóriaszakasz, a Java-s 'referencia' az igazából egy memóriacím, stb...)
    Aztán static függvények.
    És csak utána a saját objektumok készítése igazi OOP módon.
    Mutasd a teljes hozzászólást!
  • Én azért tartom rossznak javat, c#-ot mint első nyelvet, mert túl sok bennük a varázslat. Persze, megtanulja, hogy úgy működik ahogy, de érteni nem fogja. Egy referencia neki egy fekete doboz lesz, nem fogja érteni, hogy pontosan mi az (vagy csak kínkeserves tapasztalatok árán, jóval később). Ezért van az, hogy komoly java programozók is képesek azt állítani, hogy a java referencia szerint adja át a paramétereket (vagy hogy a nem-primitív típusok esetében így tesz).

    C-ben néhány hónap bűvészkedés után ez (is) világos lesz, mint a nap. A magasabb szintű nyelvek kényelmi szolgáltatásaival pedig úgy fog élni, hogy tudja, mit rejtenek el előle.
    Mutasd a teljes hozzászólást!
  • És én még nem láttam olyat aki egyből OO-val kezdte és jól sült el. Pedig láttam már egy pár embert aki így próbálkozott.


    Én már láttam nagyon sok ilyen embert (az évfolyamom felének java volt az első nyelve) és szerintem az ég világon semmi baj nincsen azzal, ha mindjárt OOP-ben kezd az ember.
    Sokkal gyorsabban ér el eredményeket/sikerélményt, mintha C-vel szenved. Márpedig amikor valaki elkezd valamiben (főleg ha nem szervezett keretek között) programozni, ahogy észrevettem, a legfontosabb a befektetett energia/sikerélmény aránya.

    Persze a C#-ot is tudnám ajánlani.


    Peet:
    A legeslegfontosabb, hogy elkezdjed. Ha valamiben már megtanultál programozni, hozzászoktál a gondolkodásmódhoz, max egy-két hét alatt könnyedén át tudsz állni egy másik nyelvre (főleg, hogy jelen pillanatban 4 hasonló szintaktikájú nyelvről beszélünk).
    Mutasd a teljes hozzászólást!
  • Köszi mindenkinek. Assembly -t inkább mellőzném , de C -ben is lehet PIC -re programozni. C# -t nem ismerem. Azt sem tudom mit lehet vele csinálni. C -ben azért lenne jó mert utána a C++ -t mindenféleképpen meg akarom tanulni és a C az alapja. Meg amúgy is minden komoly programozónak tudnia kell C -ben (állítólag).
    Még azt halottam hogy C -ben meglehet mindent írni, még azt is amit JAVA -ban, de fordítva ez már nem igaz.
    Azért gondoltam még a JAVA -ra hogy minél hamarabb tudjak vele pénzt keresni tanulás mellett. Nem tudom hogy ha C -vel kezdenék akkor azzal tudnék-e pénzt keresni úgy mint JAVA -val. De gondolom C -ben is lehet mobil eszközökre progikat írni. Nem?
    C# -ról még azt sem tudom hogy milyen alkalmazásokat lehet vele írni. Web-re, vagy pc-re
    Gyorsan el kéne döntenem. Segítsetek!
    Mutasd a teljes hozzászólást!
  • És én még nem láttam olyat aki egyből OO-val kezdte és jól sült el.


    Akkor nálam se sült jól el ezek szerint :)


    Nem tudok arról hogy ismernénk egymást. Így nem értem a következtetésed sem.


    Morzel
    Mutasd a teljes hozzászólást!
  • Akkor nálam se sült jól el ezek szerint :)
    Azt nem állítom, hogy egyből oo szemlélettel kezdtem kódolni, de java-ban tettem azt.
    Mutasd a teljes hozzászólást!
  • ha PIC programozás (vagy úgy általában mikrokontroller programozás) érdekel, akkor kezdj assembly-vel, majd utána C.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd