Érettségihez milyen programozási nyelvet válasszak?

Fórumok

Egy budapesti műszaki szakközépbe járok és következő tanévben fogok érettségizni. Már több fajta programozási nyelvbe belekóstoltam, de még egyben sem mélyedtem el igazán. Szerintetek melyik nyelvet kéne tudni ahhoz mélyebben, hogy ne haljak meg a felsőoktatás első két évében? Elektronika-elektrotechnika szakmacsoportos osztályba járok, de inkább az info szakirány az, amin továbbmennék. Iskola mellett jelenleg CCNA-t csinálom (utolsó szemesztert most fogom elkezdeni), és nyáron is megcsináltam 95%-ra Linux Akadémia kezdő szintű tanfolyamát, úgyhogy remélem nem vagyok teljesen elveszve.

Tehát mit ajánlotok?

Hozzászólások

Szerintem egyértelműen C-t. Először is, ha már megtanulsz valamiből programozni, tedd azt olyan nyelven, aminek gyakorlati haszna van. Nem is tudom milyen opciók voltak még anno... Turbo Pascal, Delphi, Visual Basic? Egyik sem igazán értékes tudás már. Felsőoktatás tekintetében BME-ről tudok nyilatkozni, ott első szemeszterben jön is a C, másodikban C++, amihez nem árt, ha C-ből jó voltál, utána meg Java. Időközben is előkerülnek még olyan dolgok mérés laboron, mint Verilog hardverleíró-nyelv, ami szintén eléggé C-re hasonlít, illetve beágyazott programozás C nyelven.

+1

C-vel megtanulod, h mi is tortenik valojaban a gep allapottereben. Mellette hasznos scriptnyelveket erdemes tanulni (perl, php, python, ruby), mert sokmindennek nem all az ember neki C-ben. Aztan kesobb johet a Java, C++, C#, ha tenyleg erdekel a dolog.

Pascal/Delphi, Visual Basic kerulendo, egyre kisebb a jelentoseguk es IMHO ez igy van jol.

Ha pedig igazan meg akarsz tanulni programozni, akkor kesobb a funkcionalis nyelvekkel is tessek megismerkedni (lambda/pi kalkulus, clean, erlang, haskell, lisp...). Illetve a forditoprogramokkal, assemblyvel...

--
The Net is indeed vast and infinite...
http://gablog.eu

Érdemes az előző hozzászólókra odafigyelni.

C-ben érhetnek meglepetések.

Én érettségire olyan nyelvet választanék:

- ahol nem kell a memóriakezelésre odafigyelni (nem kapsz mínusz pontot a leak-ért)
- nem kell puffertúlírásra odafigyelni (nincs mínusz pont érte)
- nem pointerezgetsz (rengeteg veszély forrása, mínusz pontok)
- az adatszerkezetek előre meg vannak írva (hash, láncolt-lista,...)
- nagy választék a könyvtári függvényekből (nem töltöd az időd a kerék újrafeltalálásával)
- rendes IDE van hozzá (Eclipse, vagy Visual Studio)

Az én javaslatom:
1. C#, vagy Java
2. C++
3. C

A C-t utolsó helyre raktam, mert nem biztos, hogy lesz a gépeden valgrind, vagy purify, hogy ellenőrizzed, hogy nem követsz-e el memóriahibát (mindenki csinál ilyet, a profik is). A C++-ra ugyanez igaz.

A legtöbben az iskolában Pascal-t tanulnak, és abban se dinamikus tömböket, se mutatókat. A feladatokat statikus méretű tömbökkel is meg lehet csinálni, semmit nem kellett memóriakezeléssel foglalkozni. Nincs annyi adat, hogy ha memory leak van, az problémát okozna, de eleve nem is nagyon volt olyan tömb, amit a program vége előtt fel lehetett volna szabadítani. Láncolt listára és hasonlókra nem lesz szükség, azoknak, akikre ez a feladatsor tervezve van, fogalmuk sincs ezekről.

Egyrészt, ne tőlem kérdezd, hanem azoktól, akika tantervet és az érettségit csinálják. :)

Márészt mire lenne használható egy középiskolában heti két órában (aminek csak egy része a programozás) megszerzett tudás? Arról ad némi fogalmat, hogy mit jelent az, hogy programozás, algorutmus, ill. felkeltheti néhány diák érdeklődését. Legalább annyi haszna van, mint annak, amit a szerves vegyületek szerkezetéről megtanul kémiaórán, vagy költői képekről irodalmon. Közvetlen, gyakorlati haszna (azaz mondjuk rögtön elmenne programozónak) nyilván nincs, ahogy vegyész, történész stb. se lesz valaki attól, hogy tanulta középiskolában.

Teny, a C hasznos, viszont konkretan erettsegire nem celszeru, abbol kifolyolag, hogy erettsegin alaptenyezo, hogy keves az ido, ezert olyan nyelvet erdemes valasztani, amiben minel tobb "beepitett" feature van - hogy pl. ne ott kelljen szivni egy lancolt lista implementalasaval.
Meg kell nezni a feladatok jelleget, de szerintem pl. a python jo valasztas lehet.

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

-Van egy 10elemu tomb, rendezd.
-stdinrol kapsz 42 telefonszamot, rendezd, majd ird ki a nem pestieket.
-Csinalj telefonkonyvet, melybe maximum 100 telefonszam fer, minden nev max 64karakter, telefonszamok meg 11karakter.

Csupa ilyen limitalt bemenetu cucc, hogy letrehozhass neki egy sima tombot. Alaposan kikerulik a memoriabaszkuralas temakoret ugy, hogy attol meg relative ertelmes feladatot adjanak.

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Tudom, hogy régen volt, de:

Az adatokat _mindig_ fájlból kell beolvasni, aminek
a) az első sorában lévő szám jelzi, hogy hány sora van még a fájlnak
b) megnézed, hogy hány sora van a fájlnak, és létrehozol egy akkora statikus tömböt.

:: by BRI.
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

Tudod, java-ban, vagy C#-ban a dinamikus allokáció sokkal egyszerűbb, mint a statikus, a List osztályt kell használni. PERL-ben meg csak dinamikus tömb van. C++-ban az std::vector mindenre jó.

Egyedül C-ben lenne értelme statikus tömböt lefoglalni, de ott is hülyeség. Nyilván, aki C-t választ, annak belevaló fiúnak kell lennie.

Ez eleg kamunak tunik, foleg hivatkozas nelkul. De lass ellenpeldat: http://www.langpop.com/

Amugy a VB-t sosem ertettem miert nyomatjak, szintaktikailag a leggusztustalanabb nyelv, teljesen random idiomakkal (ki az az agyhalott, aki ugy gontolta, hogy a '-vel kellene jelolni a kommenteket...), sohasem volt egy onallo platform, a VBScript-et sem sikerult nagyon elterjeszteni, a .NET-be is szerintem csak azert vittek tovabb, mert supportalni kell a legacyt, de IMHO fenyes jovot nem erdemes neki vizionalni.
Ez persze nem azt jelenti, h ne lehetne vele allast talalni, ahogy most is van meg nemcsak ADA, de Cobol munka is a vilagon. De ha az ember most kezd, vagy uj iranyt keres, akkor nem a leghasznosabb valasztas.

--
The Net is indeed vast and infinite...
http://gablog.eu

A VB-t azért nyomatják, mert olyan, hogy Micike, a titkárnéni és képes benne egyszerű programokat összehozni, amelyek lefutnak az Excel tábláján.

A szintaktikája nagyon közel áll a beszélt nyelvhez, sokkal közelebb, mint bármelyik nyelv, ami akármilyen zárójeleket vagy akármilyen indentálást használ a programblokkok elkülönítésére.

A programozási nyelvek esetében mindenképpen figyelembe kell venni azt is, hogy a világ programozóinak többsége nem kiemelkedően jó programozó, aki érti a szakmája minden apróságát, hanem egyszerű jómunkásember, aki képes programokat vagy programrészleteket írni. Ha csinálsz egy programozási nyelvet, akkor rájuk kell optimalizálni, nem a kiemelkedő néhány százalékra.

Egyik kedvenc példám erre, hogy ha megkérdezel programozókat arról, hogy miért jó a java generics. A válasz sok esetben az, hogy nem is jó. Kevés esetben azt mondják, hogy jó, pl. azért, mert az adott tömbbe csak a megfelelő típusú adatokat lehet rakni. De ha rákérdezel arra, hogy ez pontosan hogyan is működik, akkor nagyon kevesen mondják azt, hogy azért jobb így a dolog, mert már fordításidőben meg lehet fogni azokat a hibákat, amelyeket egyébként csak futásidőben lehetne. Pedig ez mégcsak nem is olyan nagyon bonyolult programozós dolog...

Jó lenne tudni, milyen nyelvekbe "kóstoltál már bele", milyen szinten és azokról mi a véleményed!
Mit szeretnél elérni, milyen jellegű programokat szeretnél majd írni?
Amúgy meg a Java, Python, PHP mindig jól jönnek.
Aztán majd mások, mondják a Pascalt, C-t, C++-t, Perl-t, meg egy csomó mást is. Talán még az ADA is előjön, meg a Fortran és a Cobol. Remélem a Forth-t senki sem fogja ajánlani! :-{)E

--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)

A C-vel szerintem az a baj, hogy szöszmötölős nyelv kezdő számára, mert főként inkább algoritmusra épülő hülye feladatok vannak (file beolvasás, feldolgozás, azzal való mahináció), ami egy profinak egyszerű, viszont kezdőként igen sokat el lehet vele szöszmötölni. Az érettségin meg időre megy a feladat (én annó emelt szinten tettem, a lehető legegyszerűbb nyelven (Visual Basic)), de így is neccesen fértem bele az időbe úgy hogy minden feladatot megoldottam.

ooo val is jol meg lehetett csinalni mindent 4 eve is.adatbazis kezelesnel meg siman megirhattad a tablakat, lekerdezeseket, sima szoveges fileba, aztan "jelentest" meg vmi K* nevu program csinalt belole(talan knoda volt a neve). De ha jol tudom azota van jol mukodo adatbaziskezeloje ooo nak is.

de tény, hogy több probléma/buktató van OOO-val, mint az M$ Office-szal. Az meg külön jó dolog, hogy tudsz két 1000 éves disztró közül választani -az UHU meg Sulix között, ahol az utóbbinál kb 0 a support színvonala a mezei felhasználó felé. Én anno linux-szal nyomtam le, meg is lett kiváló eredménnyel, de nem kívánom senkinek azt a szívást.

Nem gondoltam volna, hogy van aki perl-lel indul érettségin.

- nincs hozzá IDE
- kriksz-kraksz az egész nyelv, logika nélkül
- áttekinthetetlen

Tisztellek a vállalkozásért. Nekem is kell néha perllel dolgozni, de a hátam közepére kívánom az egészet.

(persze lehet, hogy azért nem C++-ban írtam meg a szkriptjeimet, mégiscsak gyorsabb volt perlben újrafordítgatás nélkül :-) )

Én is oktoberben csináltam. Kb 50perc alatt sikerült volna befejeznem, csak az utolsó részfeladatnál, amikor ujkódot kelett régivé alakítani, akkor belefutottam egy végtelen ciklusba és befagyott az egész windoz... természetessen mentésem csak a 3. részfeladatig volt szval *optam vele egy picit :P
Amugy én is FP-vel akartam csinálni, csak így a helyszínen derült ki már amikor a vizsga elkezdődött, hogy nincs működőképes hangulatban(azért szerintem durva, hogy érettségin egy teszteletlen, frissen telepített rendszert tolnak eléd), aztán végül TP7.1 lett belőle.

Hát nekem az a természetes, hogy ha fordítok, akkor mentek is, mert nem szoktam olyan környezetben programozni, ahol egyáltalán lehet mentés nélkül tesztelni. (Mondjuk amúgy is kb. 2 soronként mentek.)

Én nem hagytam volna a TP-t, egy csomó dolgot nem tud, amit megszoktam az FP-n (nagy része nem kell érettségi, de soha nem lehet tudni, hogy nem futok-e bele valamibe, ami megszoktam, hogy működik, de TP-n nem). Ha reklamálsz, meg kell, hogy csinálják, és biztosítaniuk kell a kiesett időt. Mondjuk Linuxon nem volt ilyen probléma, mivel előre összeállított disztró van.

"természetes, hogy ha fordítok, akkor mentek is"
Nekem is az, mert mindig FP-t használtam és az mentett automatán, de mivel nemtudták biztosítani nekem a helyszinen a kijelolt környezetet így nem volt más választásom... ha meg reklamálok akkor sem lesz semmi, max érvénytelenítik a vizsgát, aztán mehetek májusba,amivel pont azt értem volna el , amit pont elkerülni szerettem volna ....

De lehet, csak a megszokás. Mivel eddig nem kelett megnyomni előtte, ezért elfelejtettem :)
Amugy igen, adtak több időt (+1óra), de 40 percig probálkoztak megcsinálni az FP-t és nemtudták, hogy mi a baja. Aztán végső elkeseredésemben mondtam, hogy jó lesz a TP is (eloszor 7.0-át rakták fel, ami ugyancsak nem ment rendessen, aztán a 7.1 lett belőle - ez kb. 1óra volt)...

ugynannyi logika van benne, mint a tobbi script nyelvben. lehet szar kodot is irni, meg kevesbe szart. Strict segit. Amugy meg, hogy nincs hozza IDE az nem gond. ott van a vi, es az szinezi neked cuccot :)

az meg, hogy attekinthetetlen csak azon mulik, hogy aki megirja mennyire ert hozza es szereti e a tiszta, jol atlathato munkat.

Amit a legjobban ismersz. En Delphivel mentem anno, teljesen jo volt.

Én C#-al fogok menni. Sajnos a C nem éri meg érettségire, mert túl sok mindenre kell figyelned. Érettségin csak a végeredmény és a tempó számít.

Ne hallgass senkire! Itt van ujra a retro, Te lehetsz a legmenobb arc az erettsegin a quick basic-kel! ;)

Előző tanévben volt fél év turbo pascal, most első félévben volt asm + hardverelmélet, most fél év php van. "Szakkör" szinten van a suliban C++. Igazából egy nyelvben sem merültünk el, csak az alapokat vettük. Ahogy olvastam hozzászólásokat, mindenkinek más fekszik, de lassan azért döntenem kéne.

Metalhead
----------------------------
"Root is a state of mind"

Új nyelvet nem biztos, hogy érdemes megtanulnod.

Lehet, hogy a Pascal / PHP párosból érdemes valamelyiket kiválasztani.

Assembly programot írni meg nem a te feladatod. A C nyelv, az a hordozható átlátható assembly. A Linux kernel is C-ben van megírva, de ahol nem elég a C, ott beleintegrálnak valami minimális valódi assembly-t is.

Mintha már lett volna ilyen téma, és ott -ha jól emlékszem- a Delphi -t ajánlották. Egy jó kis program, van egy elég rendes debugger-e is (6-os változat).
De ha a C-t választanád, érdemes megszerezni a Kernighan Ritchie könyvet.

Szerintetek melyik nyelvet kéne tudni ahhoz mélyebben, hogy ne haljak meg a felsőoktatás első két évében?

a matekot :P

a) Amelyiket már ismered (if any).
b) Amelyiket hasznosnak, érdekesnek tartod, tehát szívesen tanulod.
c) Ha egyikre sincs ötleted, akkor a C-t, esetleg C++-t. Egyetemen első évben a C-vel fognak kínozni, így az mindenképp hasznos (2.-3. félév szokott C++ lenni).

Azért lehet finomítani:

1. semmi nem megy
2. A képmegjelenítés megy Linux alatt
3. A képmegjelenítés megy és képes XVideo-t kezelni
4. Képmegjelenítés + XVideo megy, némi hardvergyorsítás is hozzá, de apróbb hibák vannak vele (bugos)
5. Képmegjelenítés + XVideó + hardvergyorsítás (DRI) megy tökéletesen

Először is gratulálok!

Ha Linux rendszergazda akarsz lenni akkor Perl, C (egy közepes szinten) - aztán ezt főiskolán majd megpróbálják tönkre tenni Delphivel, meg hasonló marhaságokkal -, ha windows rendszergazda akarsz lenni akkor azt hiszem felesleges a topic ;-)

Ha programozó akarsz lenni, PHP, Java, ASP.NET, érdekességként Python, C/C++; VAGY ha asztali környezetnek akarsz programozni, akkor Delphi .NET, érdekesség képpen C, Qt; VAGY ha beágyazott rendszereknek akarsz programozni, akkor C/C++, Qt, .NET

Persze én nem vagyok programozó

----
概略情報

"Szerintetek melyik nyelvet kéne tudni ahhoz mélyebben, hogy ne haljak meg a felsőoktatás első két évében?"

Az infós,programozós része nem nehéz, nekem azok mind meglettek elsőre különösebb erőfeszítés nélkül.
Inkább analízissel fognak szétszopatni. Mi sulinkban azon vérzett el az emberek 95%-a
(köztük én is :-D)
-------------------------------
Debian Lenny + Openbox

Szerintem C, Perl, Python

C alap, szerintem nem kell indokolni, hogy miért jó, Perl, ha valami, ez is mindig ott van, C-hez hasonlít, ez sem rossz érettségin szerintem, Python, ügyes, menő, gugli is ezzel dolgozik :-)

Szervác Attila - http://linuxsuli.hu

Irreleváns, hogy mivel fogsz foglalkozni a felsőoktatás első két évében az érettségire koncentrálj és a feladatnak megfelelően válaszd meg az eszközt.

Bár a témát év elején vetetted fel, láthatóan ebben a tanévben aktuális, úgyhogy:

Pascalt és Delphit akkor ha ezeket tanulnad, ismered, minek használnál más nyelveket, amikor ezekkel is megoldhatók a feladatok, ráadásul (sajnos) az oktatásban is ezeket a programozási nyelveket alkalmazzák, kisebb kockázat mellett több pontot szerezhetsz velük (ne akard tudni milyen debilek fogják értékelni a munkádat, tényleg ne, de ha akarod előtúrok néhány levlistát).

Python vagy a Perl lenne a legjobb választás az érettségi feladatokhoz (sőt egyáltalán a programozás oktatásához, felsőoktatásban is az első évben), de nem szerepelnek a szoftverlistán.

A C# és a Java kevésbé jó választás, de az előbbit ajánlom ha sem a Pascal, sem a Delphi nem megy, a pozitívum, hogy ha a feladat az előírtaknak megfelelően működik akkor nem fognak egyáltalán belemászni a kódba (100 éve Pascalt tanító ellenőrzésre felkért tanerőnek vannak rigolyái sokszor még C-vel kapcsolatban is, de pár éve létező .NET-es C#-hoz jó esetben csak pár hónapja értenek egy továbbképzés óta, pont annyira mint a többihez, azaz alig, csak ez esetben a magabiztosság sincs meg), vagy abba hogy már meglévő függvényekkel legóztad össze az egész szeméthalmot négy perc alatt két korty kóla ivása közben (mint én :-D), csak rányomják a maximális pontszámot, mehetsz isten hírével, ezért is legyen inkább C#, mint Java.

A C-t azt nagyon felejtsd el, tudod feladatatnak megfelelően az eszközt, később meg mélyedj el benne, az elvárások érettségin ennél lényegesen alacsonyabbak, ne bonyolítsd túl az életedet, csak megfájdul a fejed tőle a végén.