Help - Zoeken - Gebruikers - Kalender
Volledige versie: Hoe kan ik goed leren programmeren????
MandrivaClub.NL > Forum > Documentatie en Programmeren
boudewijn
Hoi,


Ik krijg als mod zijnde wel eens vragen in de geest van: "Boudewijn, kun jij me vertellen hoe ik het makkelijkste kan leren programmeren?".

IK heb daar wel een mening over, maar het lijkt em leuk als iedereen die ook een goede tip heeft voor beginners (of er zelf nog een is) hier wat handig s neer zet, zodat een ander er ook wat aan heeft.


Deze site gaat bijvoorbeeld over C++C#C++.NET (Okay, dit is NIET direct Linux programmeren, maar C++ zoals het daar beschreven wordt is wel de basis voor het Linux programmeren):


www.thecodeproject.com

Een goede site voor ontwikkeltools (Eclipse) is www.eclipse.org.


Als er mensen dingen aan deze lijst toe te voegen hebben (vast en zeker...) zet het dan alsjeblieft hierneer....
rudiz
en deze site :

http://developer.kde.org/documentation/index.html
Alain
Ik zou niet beginnen met C++ (of een andere OO taal), maar met C. Ik zou zeggen, pak je kwrite / vim / g(?) erbij en neem bijvoorbeeld deze tutorial (mijn favoriete tutorial). En begin gewoon wat opdrachtjes te doen. Bijvoorbeeld:

    * Hello World!
    * Rekenmachine
    * n-queens problem


      Zo heb ik iig leren programmeren. ;-)

      (Owja, en Boudewijn ... De _absolute_ grondtaal voor linux is toch echt C. (Kijk maar in de /usr/src/linux directory. ;-))
boudewijn
Dat klopt,


maar met de basis bedoelde ik:


De basis van veel commerciele applicaties

Niet zozeer de kernel ofzo; daar moet je als n00b met je vingers vanaf blijven :shock:
Kaneda
Ik ben ook recentelijk met "echt" programmeren begonnen.
In C wel te verstaan, aangezien dat op veel (zo niet alle) platformen werkt.

Ik ben eigenlijk begonnen met basic, maar dat is beperkt en alleen voor winblow$, maar is goed om door te krijgen hoe programmeren een beetje werkt.
PiLotCoptEr
Een simpele C tutorial:

http://www.juicystudio.com/tutorial/c/index.asp

Ik ben er direct aan begonnen ;).gif
Ublis
Python: http://python.org. Volledig cross-platform, volledig OOP, makkelijk te leren (ook handig om complexe concepten te leren begrijpen om ze vervolgens in een minder prettige taal zoals Java of C++ toe te passen), geleverd met een enorme library en nog veel meer gratis verkrijgbaar en... door een Nederlander ontwikkeld smile.gif. Twee nadelen:

- uitermate rekenintensieve toepassingen zijn niet het sterke punt, maar er bestaan OS modules die het mogelijk maken om toch zeer efficiente complexe berekeningen uit te voeren

- went snel en wilt al gauw niet meer anders. Gevaarlijk als je van plan was om eerst Python en dan bv. C++ te leren smile.gif.

Ruby (http://ruby-lang.org) is ook leuk (en op zich best goed vergelijkbaar met Python), maar het is een nieuwere taal en heeft daarom beduidend meer documentatie en libraries.
boudewijn
Ik ben er voor om gewoon simpel C++ te leren, en langzamerhand oop te introduceren....


Java kun je ook nemen ipv C++
Alain
Hey Boudewijn, heb jij toevallig ook verstand van Qt? (Ik snap er namelijk de ballen van en het is wel de bedoeling dat ik strakjes appjes ga programmeren in Qt ...)

Kijk een "Hello Wolrd" kan ik nog wel maken, maar heel C++ is vrij nieuw voor mij. Java kan ik wel een beetje, maar ik zou Qt zo graag willen leren. smile.gif
boudewijn
Hmmm


Ik neem aan (ik heb er wel wat over gelezen ) dat qt een soort mfc voor gnome is.....


Ik heb er zelf geen ervaring mee, maar als je java gebruikt heb je er in theorie geen last van, mits je swing gebruikt (of iets dergelijks) dan heb je nml niet te maken met native grafische classes.

Als je QT wil leren voor C++ kun je je borst maar beter nat maken; voor de mfc kost dat meer tijd dan het hele C++ snappen (het zijn zo fokking veel classes; ben nu 2 jaar mfc aan het schrijven en ken ze nog niet allemaal :cry: ).

Ik zal wel eens even zoeken naar een goede tutorial of een library met veel info over qt.

Weet je of er een soort msdn is voor qt (Dat is wqel van MS, maar op zich een van hun weinige goede producten)?
Alain
[quote=boudewijn]Ik neem aan (ik heb er wel wat over gelezen ) dat qt een soort mfc voor gnome is.....[/quote]

Ik weet niet wat mfc is, maar Qt is cross-platform. (Juist om Qt-embedded enzo willen we het gaan gebruiken smile.gif)

[quote]Als je QT wil leren voor C++ kun je je borst maar beter nat maken;[/quote]

Daar was ik al achter. smile.gif

[quote]Ik zal wel eens even zoeken naar een goede tutorial of een library met veel info over qt.[/quote]

Trolltech biedt uitgebreide documentatie. Ik zoek alleen iemand die mij de gedachtegang achter Qt uit kan leggen. ;-)

[quote]Weet je of er een soort msdn is voor qt (Dat is wqel van MS, maar op zich een van hun weinige goede producten)?[/quote]

Hier snap ik - helaas - weinig van. smile.gif
boudewijn
Nou mfc is niet platform , maar wel een goede oefening om de manier van denken achter dergelijkew constructies te leren....

MFC (microsoft foundation classes) is een set van classes die de hele werking van windows programmas omvat. Een knop is er een of een venster, maar zeker ook abstractere dingen.....

De msdn is een naslagwerk voor mfc en .net (en vooral ook c++ in het algemeen) van Microsoft, dat je kunt kopen bij een licentie visual studio....

Hier staan soms best wel wat nuttige dingen in,e n dan NIET alleen over MFC en .net, maar zeer zeker ook een aantal goede oefeningen voor C++, en OOP.
boudewijn
Nou op zich is mfc niet moelijk, alleen erg veel...

Ik heb gehoord (en naar mijn mening zou dat ook goed kunnen ) dat het dus enkele 10 duizenden classes zijn
Open the Sourceror
Gewoon beginnen met Pascal (sla BASIC maar over ;).gif) daarna gelijk OO-talen leren als Java, dan C en ASM en daarna pas C++. smile.gif
boudewijn
C en ASM zijn wel een tikje verouderd, en eigenlijk alleen nog embedded gebruikt.

C++ en Java zijn voor desktops veel gebruikt. DelphiPascal ook btw,
maltje
Ben wat aan het prutsen met die "phyton"
Als ik nu een klein progje daarmee schrijf,hoe start ik dat dan vanuit de command line?
boudewijn
Goeie vraag... ik heb geeen ervaring met python maar ga proberen je erdoorheen te loodsen. Dit beteken tdat het niet 1-2-3 werkt :wink:

Heb je ene bin bestand als output?
Of wat voor bestand?
maltje
heb op dit moment nog nix,gewoon in de python shell wat aan het klooien.
Als ik het save wordt het een py,pyw of text file
Open the Sourceror
QUOTE(boudewijn)
C en ASM zijn wel een tikje verouderd, en eigenlijk alleen nog embedded gebruikt.

C++ en Java zijn voor desktops veel gebruikt. DelphiPascal ook btw,


Maar je leert er wel fatsoenlijk van programmeren. biggrin.gif
Alain
QUOTE(boudewijn)
C en ASM zijn wel een tikje verouderd, en eigenlijk alleen nog embedded gebruikt.


* Ahum * Laat dat de gnome devvers niet horen ... :laugh.gif:
Open the Sourceror
Gebruiken die ook ASM?

Hmm, lijkt me vreemd, is nou niet bepaald portable... ohmy.gif
Alain
Die gebruiken AFAIK geen ASM. Durf ik eik wel met zekerheid te zeggen. ;-)
boudewijn
Ok C wordt door gnomers gebruikt....

maar ik kan geen grafisch programma meer ontwikkelen (ja kan wel, maar kost veel moeite) zonder OOP. En ja dat is het grote voordeel (naast copmound ops, etc) van C++ boven C.
ReinoutS
boudewijn: er zijn plenty C++ bindings voor GTK en GNOME beschikbaar. Zie http://www.gtkmm.org/
boudewijn
Ok dat zal ik eens gaan lezen, blijft echter wel zo dat de basis (afaik) wel C based is en blijft.....
maltje
waar kan ik best de c++ op het net vinden?
Komt dit samen met een progje waar ik dat mee kan leren.
Met die python is dat wel interessant,je kan een progje installeren en dan zo in een afzonderlijk kadertje de commando's ingeven.
via xp is dat al gelukt,in linux nog ni.
Maar misschien toch maar ineens voor c++ gaan,ben niet van plan om 2 of 3 talen te leren.
boudewijn
Nou je hebt al een goede comiler aan boord, GCC. Je kutn je code intypen (de editor) in VI of KWrite etc etc etc.

Ik zal eens kijken naar een gode boek voor je, wat ik je iig aan kanr aden is : "C++ grand cru" , dat lig tin de boekhandel. Uitgever si easy computing.

Anders kun je (stuk goedkoper :wink:) eens op thecodeproject.com kijken, is wel erg windows gebaseerd, maar je kunt er veel principes leren.

Ga zo door :idea:
boudewijn
Ik heb er btw meer dan 2-3 geinstalled staan. Als je voor MS wil devven (niet goed gelezen van mijn :oops:) moet je eigenlijk visual studio.net nemen, is wel een tikje een duur pakket. Verder heeft borland ook een aantal mooie paketten voor minder geld (zeker als je student bent; surfspot.nl )
Open the Sourceror
C++ is wellicht wat te hoog gegrepen voor een beginneling Boudewijn...
maltje
toch nog ff vragen ,c of c++ scriptje schrijven me een editor maar hoe nadien dat runnen?
En bestaat er geen mogelijkheid om in c of c++ direct op het scherm te zien wat je geprogrameerd hebt?Anders weet je nooit op voor hand of je fout zit.
Hoe doen jullie dat?
Moeilijk of niet,je moet toch ergens beginnen!!!Frans en Duits zijn ook ni simpel hoor.
boudewijn
uhhh C of C++ is GEEN SCRIPT!!!!

Je runt GCC , dat is de compiler. Nadat je GCC hebt gerund houd je een bin file over (of iig een executable). Deze run je dan.
maltje
ja,ok ik heb mij verkeerd uitgedrukt,maar is het niet mogelijk om C of C++ in een soort console in te typen zodanig je onmiddelijk het gevolg ervan ziet in de console???Ik weet niet of je python kent,maar deze gebruikt een console op zich zodanig je elke regel die je ingeeft,onmiddelijk kan zien of het juist is.
Ik veronderstel dat je voor C++ toch ook zoiets moet hebben.
Maar ik vind het niet. :oops:
Alain
Ikzelf gebruik gewoon een simpele Makefile en als ik wil kijken of het werkt typ ik make en ./<tab> in. ;-)
maltje
Alain werk jij met C of C++ en bestaat er geen goede handleiding van op het net???
Alain
QUOTE(maltje)
Alain werk jij met C of C++


Beide.

QUOTE
bestaat er geen goede handleiding van op het net???


Jawel hoor, zoeken op google naar 'Makefile howto'. smile.gif
Ublis
[quote=maltje]waar kan ik best de c++ op het net vinden?
Komt dit samen met een progje waar ik dat mee kan leren.
Met die python is dat wel interessant,je kan een progje installeren en dan zo in een afzonderlijk kadertje de commando's ingeven.
via xp is dat al gelukt,in linux nog ni.
Maar misschien toch maar ineens voor c++ gaan,ben niet van plan om 2 of 3 talen te leren.[/quote]

Gewoon script opslaan en in de command line tikken "python prognaam.py" (waar <prognaam> de naam van het bestand is dat je wilt uitvoeren). Dat met het kadertje is de interactieve prompt - heel nuttig voor leren/experimenteren, maar je kunt het niet als herbruikbaar programma opslaan.

Je kunt natuurlijk ook direct in een editor werken met goede ondersteuning voor Python (bv. Scite, Spe of IDLE - de laatste wordt standaard meegeleverd met Python) en daar m.b.v. een menu de script uitvoeren.
BTierens
Ik ben begonnen met JavaScript (eigenlijk maar een halve programeertaal), daarna Java en ondertussen heb ik Pascal (FreePascal) goed onder de knie. Dankzij de FreePascal compiler is het gemakkelijk om pascal voor verschillende platformen te maken. C++ versta ik ongeveer maar ik spreek/schrijf het zelf niet.

Ik verkies toch een teksteditor boven een IDE. Zo beheer je je code meer zelf. Vroeger heb ik nog wat met Delphi 7 geexperimenteerd. Als je bijvoorbeeld knoppen op een venster zet in de editor zie je dat nergens in de code.
boudewijn
Hmm ik heb het omgedraaid gedaan biggrin.gif ben met C++ begonnen, en toen Java (en basic sad.gif ) en nu ben ik vooral embedded C++ aan het doen (op chips voor draadloze telefonie).

Ik kan ook Delphi (en ja ik moet wel eens wat ouwe zooi van anderen aanpassen sad.gif ) maar dat is imho een *** taal :wink:
peter150
er is ook een taal die hard lijkt op Vb en is te doawnloden op http://gambas.sourceforge.net/
Alain
Ziet er leuk uit. Ik kan alleen niet wennen aan die syntax ...
Rinse
Wat misschien leuk te weten is, is dat het programma kturtle geschreven is door iemand die daarvoor nog geen enkele programmeerkennis had. Gewoon de handleiding van C++ van Internet downloaden, en een boek over Qt, dat ergens gratis online te vinden is, en programmeren maar smile.gif


Voor wie wil leren programmeren zijn bestaande opensource projecten ook erg interessant.
Door in een bestaand project te stappen heb je al een houvast en kun je de code doornemen die anderen al geschreven hebben.

Ook het lezen van code van simpele programma's, zoals knotes is voor een beginneling erg handig. Je hebt dan een mooie kleine overzichtelijke broncode die toch alles omvat wat in een programma moet zitten. knotes wordt dan door veel programmeurs als uitgangspunt gebruikt voor nieuwe kde-toepassingen smile.gif

Voor wie meer wil doen met Qt/KDE zijn de zgn Junior Jobs erg interessant.
Dat zijn kleine programmeertaken, in de trant van het oplossen van bepaalde bugs, toevoegen van bepaalde kleine functies, aanmaken van tekstballonnen die een uitleg over de gui geven etc.., die een goed beginpunt vormen om te leren programmeren. Voordeel van Junior Jobs is dat je dan meteen in een bestaand project zit, en dat ervaren programmeurs je bijstaan bij het genereren van je eigen code.

En het staat natuurlijk leuk als je naam in de lijst met credits van een groot programma staat ;).gif

Rinse
BTierens
[quote=Open the Sourceror]Gewoon beginnen met Pascal (sla BASIC maar over ;).gif) daarna gelijk OO-talen leren als Java, dan C en ASM en daarna pas C++. smile.gif[/quote]

Als je ObjectPascal leert sla je twee vliegen in een klap. ObjectPascal wordt ondersteund door Dephi, Kylix en door de open source compiler FreePascal. Ik denk zelf dat er een ISO standaard bestaat voor ObjectPascal.
Huub8
Ik wil zelf ook graag gaan proberen om het programeren te leren maar ondanks dat ik toch wel redelijk wat kennis van computers heb ik helemaal geen verstand van programeren en ik ken dus ook ook geen afkortingen die vaak al in de eerste uitleg op site's worden gebruikt waardoor ik ook hier geen hol van begrijp :{

Weet iemand mischien welke taal en waar ik die taal dan het beste kan leren (mischien wel uit een boek voor echte noobs ofzo), ik ga er trouwens liever niet echt veel geld aan uitgeven maar ik heb er wel wat voor over.
doelman
Wil je dit misschien even in een nieuw topic zetten? Deze is al heel erg oud. Wil je leren programmeren op Linux?
Dit is een "Print" versie van onze forums. Om de volledige versie met meer informatie, afbeeldingen en opmaakte bekijken, a.u.b. klik hier.