Programmieren Lernen

tremolo2k

Well-Known Member
Hallo Forum:

Ich moechte endlich mal selber programmieren.

Ich kenn mich mit Hardware aus (x86, sparc), kenne DOS, Windows, arbeite vorzugsweise mit FreeBSD, Linux und die anderen BSD's hab ich mal so "angespielt".

Jetzt: wie soll ich vorgehen? Mit welcher Sprache soll ich beginnen?

Oder soll ich es besser lassen :D
 
nismo2000 schrieb:
Hallo Ilja ;-)
Jetzt: wie soll ich vorgehen? Mit welcher Sprache soll ich beginnen?

*g* gleich gehts los. Python gegen C. *händereib*

Lies mal den Thread hier:
http://www.bsdforen.de/showthread.php?t=10495

Da gehts zwar um Empfehlungen, was nach C-Grundlagen kommen sollte, aber weiter hinten im Thread gehts dann um C vs. Python als Einstieg. So können wir uns dann hier den Streit schon mal grösstenteils sparen ;-)

CU

Martin
 
Hauptsache mit irgendwas anfangen. Programmieren ist wie Fahrradfahren, dass kann man nicht durch studieren von Buechern lernen, da muss man einfach erstmal anfangen. Spaeter kann man sich dann in die Raffinessen des Fahr^H^H^H^HProgrammierens einlesen.

Ich wuerde ja Ruby vorschlagen, einfach die irb starten und drauf loslegen, aber ich finde es fragwuerdig mit einer OOP Sprache anzufangen (ok, Ruby kann auch komplette ohne OOP), und wuerde erstmal C empfehlen. Rudimentaere C Kenntnisse helfen einem schliesslich auch das OS und den Computer an sich besser zu verstehen.

hth
 
ich persoenlich wuerde dir den tip geben erstmal ein gtk-/gnome-/x11- programmiertutorial zu suchen. sprich irgendwas, bei dem du auch sofort SIEHST was du tust.
ausserdem stecken in diesen tutorials auch sehr sehr viele programmierbeispiele drinne, so dass du die grammatik der sprachen eher verstehst.

aber der beste weg anzufangen eine sprache (oder programmieren) zu lernen, ist indem du dir erstmal ueberlegst, was du gerne fuer ein programm haettest. das behaelst du dann im hinterkopf, waehrend du dir tutorials durchliest.

UND: es ist arbeit. aber mit der zeit wirds einfacher.
die lernkurve sieht ungefaehr so aus:
Code:
   ______________/.....
  /
 /
/
|
|

p.s.: nein, lassen sollst du es auf keinen fall. programmieren zu koennen ist das beste werkzeug was du dir vorstellen kannst!! auch wenn sich bei mir die groesse von "richtigen" anwendungen auf eine handvoll kilobytes beschraenkt, so habe ich doch einen ganzen arsch voll kleinen helferleinchen, die mir meine arbeit erleichtern.
und wenn mir eins fehlt code ich schnell ein neues (uebrigends in c...)
 
Also zum "Programmieren" lernen wuede ich aus heutiger Sicher eher Ruby empfehlen als "C'. Auch wenn OO-Sprachen generell eher als Anfaenger feindlich gesehen werden. Was ich aber nicht ganz nachvollziehen kann, die meisten denen ich ueber den Weg gelaufen bin, koennen mit Objekten mehr anfangen.

Die mitgelieferte Einfuehrung "The Pragmatic Programmers Guide" ist eine ziemlich gute Einfuehrung. Leider nicht mehr auf der Hoehe der Zeit (handelt von 1.6). Deshalb eher die 2nd-Edition als Buch zulegen.

Zumal "moderne" Softwareentwicklung mit dem Buch einen hohen Stellenwert hat.

Python eignet sich natuerlich auch gut, eignet sich aber meiner Erfahrung nach nicht fuer absolute Einsteiger. Vielleicht liegt es aber auch nur daran, dass ich kein Buch fuer Python kenne und somit keins empfehlen kann.

Perl eignet sich, da es sehr verbreitet ist. Aus meiner Sicht wars das auch schon.

Grundsaetzlich wuerde ich von Compiler-Sprachen absehen. Das Kompilieren ist aus meiner Erfahrung ein Prozess, der das Lernen unterbricht. Schreiben, Kompilieren, Ausfuehren ist scheinbar um einiges komplizierter als Schreiben und Ausfuehren.

Wenn du eine der Sprachen gemeistert hast, dann solltest du dir c bzw. c++ ansehen. Das sollte dir helfen die System an gewissen Stellen besser zu verstehen. Ab dem Zeitpunkt duerfte dir dann kaum eine andere Sprache Schwierigkeiten machen.

Frueher haette ich dir wahrscheinlich auch c empfohlen. Einige sehr kurze Zeit fand ich Perl "interessant". Bis ich mich von der Codequalitaet an vergangene C Zeiten erinnert gefuehlt habe. Python wurde dann meine Lieblingssprache fuer kleine/mittlere Projekte bzw. Prototyping und als Einsteiger-Empfehlung bis ich vor knapp zwei Monaten mir Ruby an einem Abend beigebracht habe nachdem mehrere Bekannte mit Ruby angefangen hatten und fuer genial erklaert haben. Und ich muss zugeben, es hat schon seine Reize.
 
Nimm VHDL ;-)

Nein, im Ernst, eigentlich vollkommen egal, womit man anfängt. Hautsache man tuts!

Man kann so ziehmlich alles mit jeder Programmiersprache manchen, such Dir einfach eine aus. Je verbreiteter sie ist, desto mehr Doku, Tutorial, HowTo's ...

Viel Spaß beim Coden!
 
Ich würde eine Sprache wählen, mit der du schnell Resultate siehst und die du
in deiner Umgebung schnell praktisch einsetzen kannst, um dir die Arbeit zu erleichtern.

Darum empfehle ich Perl.



Aber Perl hat Altlasten, die Python und Ruby nicht haben.
Daher ist vielleicht einer dieser Sprachen für dich eher geeignet.

Ich schliesse mich auch minuseins mit seiner Aussage interpretierten Sprachen
den Vorzug zu geben an.
Schneller geschrieben, schneller ein Resultat gesehen, mehr Motivation.

Abgesehen davon, ist die Unterteilung in Scriptsprachen und "echte" Programmiersprachen obsolet.

Wenn du aber etwas wirklich geniales lernen willst, bevor dein Geist mit der alten Schule
kontaminiert ist, so lerne Lisp.
 
Zuletzt bearbeitet:
ok, ich hab mich fuer C entschieden, und das erste Programm "Hallo Welt" funktioniert auch *stolzist* :ugly:

Hab es auf dem BSD mit dem editor vi geschrieben.

In einem Tutorial stand was von Entwicklerumgebungen, die das (Programmierer)Leben eines anfaengers vermiesen koennen. Ist da was dran? Gibt es Entwicklerumgebungen fuer KDE in der Sprache C (ich habe FreeBSD 5.4 (und das gebe ich auch nie mehr her))? Wird wohl -denke ich- mehrere geben, also welche fuer anfaenger? Ich moechte eben die farbliche trennung, die die uebersicht verbessern. Oder waere vim eine alternative?

Ich hoffe ich nerve euch nicht mit meinen bloeden Fragen, aber ich will das lernen, aber habe angst, das mir die Lust vergeht, weil ich keine Umgebung habe, die mir zusagt.

Evtl. Buch empfehlungen?

Beim MS Visual C/C++ hatte ich voll keine Uebersicht. Mit Visual Basic hab ich mal ein Programm gemacht, um meine Freundlin zu verar**** :D :D :D Aber zugesagt hats mir nicht.
 
Hallo nismo!

Ich möchte Deine Frage gerne differenziert beantworten.

Erst mal Glückwunsch, Du bist auf dem richtigen Weg: In einer Welt, in der
fast alles von Computern kontrolliert wird, sollte man wenigstens ein bißchen
Ahnung davon haben, wie man diese unter Kontrolle bringen kann.

Du mußt Dir ein paar Fragen selber stellen, um unter den möglichen Optionen
wählen zu können. Die Wahl mußt am Ende Du treffen, und Deine Wahl sollte Dich
im Nachhinein nicht demotivieren.
Folgende Fragen könnten das sein:

1. Will ich ganz allgemein etwas über das Programmieren erfahren? Möchte
ich bequem ein Gefühl für das Programmieren an und für sich bekommen?
Dann ist eine Sprache wie Ruby, Python, Pascal, oder TCL richtig. Die Vorteile
von interpretierten Sprachen hat minuseins erläutert. Für alle gibt es gute
Tutorials und die Sprachen machen nach kurzer Zeit viel Spaß.

2. Ist die Portabilität wichtig? Warum nicht Java? Es gibt ausgezeichnete Tutorials,
viele Entwickler mit Erfahrung, die sich Foren tummeln. Javaprogramme laufen auf
fast allen Betriebssystemen (jaja, write once, debug everywhere... nicht abschrecken lassen). Und NetBeans von Sun ist eine prima IDE, die Dich von der Serverapplikation bis zum Handyspiel unterstützt. Vom Code erinnert Java doch stark an C++, ohne jedoch die Tücken zu haben.

3. Willst Du wissen, wie Dein Rechner wirklich läuft? Schreibe Assembler, auch wenn es eine echte Herausforderung ist. Beispiel: Vor kurzem fragte mich eine Bekannte, ob ich Ihr Programmieren beibringen kann. Sie meinte damit, Sie will wissen, wie Ihr Rechner im tiefsten innern funktioniert. Also haben wir einen Bootloader und einen kleinen Kernel geschrieben. Sie hat es verstanden, weiß jetzt gut Bescheid. www.osdever.net sollte Dein Freund sein.

4. Du willst aus Überzeugung programmieren, hast am Anfang viel Geduld und willst von Anfang an die absolute Universalsprache sprechen? Dann vergiß alles was ich oben gesagt habe. Lerne C (++) und werde, nach der von dettus beschriebenen krassen Lernphase am Anfang, glücklich. Die ganze Welt ist in C programmiert, es könnte sich also durchaus lohnen, gleich diese Sprache zu nehmen, die zumindest mir anfänglich überhaupt keinen Spaß gemacht hat. Aber man gewöhnt sich daran und denkt irgendwann nicht mehr darüber nach. Ich meinerseits habe jahrelang in Delphi unter Windows programmiert. Delphi/Object Pascal ist wirklich fein und hält einem viele Probleme, die man unter C haben kann, fern. Aber letztendlich muß man umsteigen, um die (Programmier-)Welt zu verstehen und nicht erst auf irgendwelche Sprach-Bindings warten zu müssen, wenn man eine neue schöne Bibliothek benutzen möchte.
Wenn es Dir mit dem Programmieren sehr ernst ist und Ausdauer vorhanden ist: NIMM C!
Mach keine Umwege.
Die schönen, eleganten Skriptsprachen können Dich dann später immer noch faszinieren.
 
Hallo Nismo, ich schreibe kurz nochmal
Unter KDE gibt es KDevelop. Ganz schön mächtig.
Für Gnome befindet sich Anjuta in der Mache.
Ein gutes e-Book zum Programmieren unter Unix/Linux befindet sich bei www.pronix.de .
Man kann es auch gedruckt für 50 Euro kaufen.
Vim ist als Alternative zu Vi durchaus empfehlenswert. :syntax enable ist der Befehl, den Du zur farblichen Hervorhebung suchst. Ansonsten sind kate unter KDE und Gedit auch in der Lage, Syntax hervorzuheben. Kate hat auch noch ein Terminal inklusive.

Sehr, sehr viel Dokumentation zu Unix/Linux-Programmierung kann man bei www.linuxi.de runterladen. Wenn Du Zeit hast, lies mal das Buch "The Art of Unix Programming" von Raymond. Danach bist Du gefangen. Hier ist es.
 
nismo2000 schrieb:
ok, ich hab mich fuer C entschieden, und das erste Programm "Hallo Welt" funktioniert auch *stolzist* :ugly:

Hab es auf dem BSD mit dem editor vi geschrieben.
*schulterklopf* So wird das gemacht.
Bei Gelegenheit kannst Dir mal editors/vim installieren. Mit der Beispiel .vimrc hast Du dann schöne Farben die die Syntax hervorheben. Mehr brauchst Du vorerst nicht. Es ist schon so, das der Anfänger durch eine Entwicklungsumgebung zusätzlich belastet wird. Schreib erstmal nur Konsolenprogramme und spick die dann mit vielen printf(), damit Du immer schön verfolgen kannst was das Programm anstellt. Damit debuggst Du erstmal auch.
Erst wenn Du die Geschichten mit malloc() und den verketteten Listen intus hast kannst Du zu höheren streben. Aber Du wirst selbst in vielen Jahren noch feststellen, das so ein kleines Helferlein auf der Kommandozeile es meist tut - es muss nicht immer Grafik sein. Das ist ja das schöne an einem unixoiden Betriebssystem :-)
 
Vielen Dank Jeff, ich glaube ich hab begriffen um was dass es geht.

Wenn mir die Umgebung, (Entwicklertools) gefallen (so wie FreeBSD als System) dann werde ich dabei bleiben. Linuxe und die anderen BSD's ueberzeugten mich irgendwie nicht, aber FreeBSD.. ich hatte noch nie so viel Spass an einem System wie an FreeBSD. (ich bin seit 5.0R dabei).

Und ich werde C lernen, wenn schon alles C spricht, warum ich nicht auch? Da bei mir auch noch sparc rechner rumstehen, moechte ich vielleicht das eine oder andere Programm dort verwenden.

Frueher hab ich mIRC scripte geschrieben. Daher kenne ich die Script-sprachen ein wenig.
 
Besser als hier kann ich zu Lisp nichts sagen: http://en.wikipedia.org/wiki/Lisp_programming_language

Was die IDE angeht, so glaube ich nicht, dass es jetzt wichtig ist eine zu haben, die über
einen Editor mit Syntax-Highlighting hinausgeht.
Vim könnte dein Freund sein.
Vorallem ist dein OS schon fast eine vollständige IDE ;-)

Wie schon Jeff, empfehle ich auch The Art Of Unix Programming _sehr_.

Im Buch ist auch ein Vergleich zwischen verschiedenen Sprachen, vielleicht hilft er dir.
 
lars schrieb:
Vorallem ist dein OS schon fast eine vollständige IDE ;-)

Das ist einer meiner Hauptmotivationen gewesen, auf freie unixoide Systeme
umzusteigen: Von vorneherein alles wesentliche dabei und man darf immer
auch hinter die Kulissen schauen.
 
d-ra schrieb:
*schulterklopf* So wird das gemacht.
Bei Gelegenheit kannst Dir mal editors/vim installieren. Mit der Beispiel .vimrc hast Du dann schöne Farben die die Syntax hervorheben. Mehr brauchst Du vorerst nicht.

Naja, wenn er mit vim klarkommt, dann kann er sich ihn ja auch gleich so konfigurieren, dass auf Knopfdruck make ausgefuehrt wird und nach einem Compilerfehler wieder sofort an die entsprechende Stelle im Code gesprungen wird.

Dann auf jedenfall vim mit cscope Unterstuetzung kompilieren und sich mal das kleine cscope-Tutorial ansehen. Das erleichter das Arbeiten ungemein.
Schreib erstmal nur Konsolenprogramme und spick die dann mit vielen printf(), damit Du immer schön verfolgen kannst was das Programm anstellt. Damit debuggst Du erstmal auch.
Bitte nicht! printf-Debugging ist das ineffizienteste was es nur geben kann. Wenn er Programmieren lernen will, dann gehoert der Debugger einfach dazu. Nichts ist frustrierender, als Leute zu sehen, die mit printf auf Fehlersuche gehen ... was ne Zeitverschwendung.

gcc+gdb+valgrind/dmalloc+make+cscope+vim+cvs/svn mehr braucht man eigentlich nicht, und mehr stellt einem eine "IDE" auch nicht zur Verfuegung (eher weniger).
 
Naja ich komme mit vim nicht so klar, mit vi allerdings schon, obwohl ich nichts mehr als editieren, speichern und beenden kann.

Gibt es nicht irgendwelche programmer/editor fuer die konsole, a la QBasic? kann auch fuer X sein.
 
...reine Geschmackssache...

nismo2000 schrieb:
Hallo Forum:

Ich moechte endlich mal selber programmieren.

Ich kenn mich mit Hardware aus (x86, sparc), kenne DOS, Windows, arbeite vorzugsweise mit FreeBSD, Linux und die anderen BSD's hab ich mal so "angespielt".

Jetzt: wie soll ich vorgehen? Mit welcher Sprache soll ich beginnen?

Oder soll ich es besser lassen :D

...reine Geschmackssache... :)

Von Januar bis April 2005 habe ich auch eine "ideale" ProgrammierSprache für mich gesucht...

So fing das bei mir an:
1992 habe ich mich mit "C" und "Turbo Pascal" beschäftigt, danach mit "Z80-Maschine" und 2001/2002 hab ich mir mal "Java" genauer angesehen.
Aus Beruflichen Gründen habe ich mir dann 2001 "Perl" mal zu Gemüte geführt, bin dann aber aus Kompatibilitätsgründen bei "Bourne-SHell" (/bin/sh) geblieben. Als FreeBSD/Linux-Admin braucht man Scripte, die IMMER laufen, auch auf einem Rettungssystem oder einer halb toten gehackten Kiste (hier ist Perl klar im Nachteil)...

C++ und Java sind mir zu umfangreich (Java auch zu langsam), das ist nichts für "Feierabend-Programmierer", C sollte man erst lernen wenn man Pascal kann, da man so eine Menge Fehler vermeiden kann und das Programmieren dann mehr spass macht (Pascal ist die bessere "Feierabend-Programmierer"-Programmiersprache). Von Namhaften und erfahrenen Programmierern wird als Einsteiger Programmiersprachen an erster Stelle "Python" (das ist die wohl beste Scriptsprache) und an zweiter Stelle "Pascal" empfohlen.

Von Januar bis April habe ich fast alles gelesen was es an Programmiersprachen-Empfehlungen und Programmiersprachen-Beschreibungen gibt.
Da ich keine Scriptsprache, sondern eine Kompilersprache, die auf *BSD, Linux, Windoofs und möglichst auch auf Mac mit den gleichen Toolkits erhältlich ist, gesucht habe, kamen für mich folgende Sprachen in die engere Wahl:
- Freepascal (http://www.freepascal.org/)
- SmartEiffel (http://smarteiffel.loria.fr/)
- ISE-Eiffel (http://www.eiffel.com/downloads/index.html#studio)
- Dr. Scheme (http://drscheme.org/)
- Haskell (http://haskell.org/)
- Ada (http://www.gnuada.org/)

> Eiffel (http://de.wikipedia.org/wiki/Eiffel_(Programmiersprache)) soll die wohl beste ObjektOrientierte Programmiersprache sein, aber mit dem OO-Prinzip kam ich nie so richtig zurecht.
> Freepascal (http://de.wikipedia.org/wiki/Pascal_(Programmiersprache)) hatte ich erst gefunden, als ich mich praktisch schon für Haskell entschieden hatte.
> Ada (http://de.wikipedia.org/wiki/Ada_(Programmiersprache)) ist recht interessant, da diese Sprache ein direkter Konkurent zu C++ ist und in erster Linie Sicherheitsfirmen, das Militär und die Weltraumbehörde diese Sprache verwendet. Sie enthält besondere Sicherheitfunktionen, so das Raketenabwehranlagen nicht durch einen Fehler eine Katastrophe verursachen können. Die Ariane 5 ist in den 90-ern ist nur explodiert, weil diese Funktionen beim kompilieren ihrer Software aus geschaltet waren.
> Scheme (http://de.wikipedia.org/wiki/Scheme) ist eine sehr gute Idee, aber hier werden für BSD/Linux und Windoofs unterschiedliche Toolkits verwendet.
> Haskell (http://de.wikipedia.org/wiki/Haskell_(Programmiersprache)) ist zwar eine Funktionale Programmiersprache, bei der man erstmal alles vergessen muss was man über das programmieren gelernt hat, aber sie hat auch ganz entscheidende Vorteile! Ericsson soll die erste Firma gewesen sein, die eine Funktionale Programmiersprache eingesetzt hat (Miranda, ein Vorgänger von Haskell). Dort haben die Erfahrungen gezeigt, dass die Programmierer 9 bis 24 mal soschnell mit der Arbeit fertig waren als mit herkömmlichen Sprachen. Die US-Navy hat eine umfangreichen Programmiertest gemacht mit verschiedenen Sprachen und das Ergebnis sah ähnlich aus.
So habe ich mich für "Haskell" entschieden und lerne es seit dem, das wohl einzige deutsche Haskell-Forum habe ich auch gefunden: http://www.jammni.de/php/forum.php?forumcategorie=1&forum=6&

weiter interessante Programmiersprachen sind:
- 1954 -- FORTRAN (erste und schnellste Hochsprache bis heute, wird immernoch eingesetzt)
- 1968 -- Logo (die beste Programmiersprache um Rätsel zu lösen)
- 1970 -- Forth (die einfachste Programmiersprache der Welt, wird hauptsächlich von Ingeniueren verwendet, "Es genügt der gesunde Menschenverstand!")
- 1982 -- PostScript (technische Zeichningen erstellen, ganz ohne GUI => AutoCAD ohne GUI)
 
Im Prinzip kommen nur wenige Sprachen als Einstieg in Frage:
C - äußerst vielfältig und verbreitet
Python - Einstieg in die Objektorientierung
Java - Ähnlich wie C++, nur einfacher und nicht so vielfältig. Deutlich leichter zu lernen und nicht für OpenSource Fanatiker
php - Skriptsprache die sehr stark an die C Syntax anlehnt. OO ist möglich. php ist sehr fehlertolerant. Müsste ich noch mal anfangen, würde ich php nehmen ;-)

Sharoz
 
nismo2000 schrieb:
Naja ich komme mit vim nicht so klar, mit vi allerdings schon, obwohl ich nichts mehr als editieren, speichern und beenden kann.
Editieren, Speichern und Beenden sind bei vi und vim identisch.
Gibt es nicht irgendwelche programmer/editor fuer die konsole, a la QBasic? kann auch fuer X sein.

gvim ;-)
Probier ihn mal aus. Da kannst du viele Sachen mit der Maus erreichen.

CU

Martin
 
nismo2000 schrieb:
Naja ich komme mit vim nicht so klar, mit vi allerdings schon, obwohl ich nichts mehr als editieren, speichern und beenden kann.
Ich kann mit dem vim auch nichts anfangen! Der BSD-vi (nvi) ist eben im Sinne der Tradition der beste... :)


nismo2000 schrieb:
Gibt es nicht irgendwelche programmer/editor fuer die konsole, a la QBasic? kann auch fuer X sein.

Klar gibt es einige gute! Hier mal ein paar auf die Schnelle (jEdit und Jext gefallen mir am besten).

z.B.: im FreeBSD-Ports-Tree
- editors/glimmer
- editors/jedit
- editors/jext
- editors/led
 
Zurück
Oben