Software basteln... wie anfangen?
Software basteln... wie anfangen?
so... moin.
Ich will meinem Geist etwas gutes tun und mich nun endgültig in die Welt des Programmierens vorwagen.
Mein großes Ziel (Ziele setzten soll ja gut sein für die Motivation) wäre eine Medienbibliothek nach meinem Geschmack, am besten noch mit nem mp3-player integriert da keins der momentan für Linux existierenden Programme meinen Anforderungen gerecht wird.
Bisherige Erfahrungen:
php - fortgeschritten, soll heißen ich bastel Foren und Shop-Systeme.
Delphi - Ist 3 Jahre her dass ich mir ein kleines Programm zum zeitgesteuertem ausführen einer bestimtmen Datei geschrieben ahb.
c++ - Hello World
Java Script - Ich mag das zeug nicht so recht... bissl hover-buttons, mehr nicht.
Nun was könnt ihr mir empfehlen:
welche Sprache? (Java?!?)
wie anfangen?
wo gibts gute tutorials bzw gute Bücher?
bin für jeden Tip dankbar.
Ach ja, ich will für Debian basteln, bisher hatte ich nur auf Windows das vergnügen.
Ich will meinem Geist etwas gutes tun und mich nun endgültig in die Welt des Programmierens vorwagen.
Mein großes Ziel (Ziele setzten soll ja gut sein für die Motivation) wäre eine Medienbibliothek nach meinem Geschmack, am besten noch mit nem mp3-player integriert da keins der momentan für Linux existierenden Programme meinen Anforderungen gerecht wird.
Bisherige Erfahrungen:
php - fortgeschritten, soll heißen ich bastel Foren und Shop-Systeme.
Delphi - Ist 3 Jahre her dass ich mir ein kleines Programm zum zeitgesteuertem ausführen einer bestimtmen Datei geschrieben ahb.
c++ - Hello World
Java Script - Ich mag das zeug nicht so recht... bissl hover-buttons, mehr nicht.
Nun was könnt ihr mir empfehlen:
welche Sprache? (Java?!?)
wie anfangen?
wo gibts gute tutorials bzw gute Bücher?
bin für jeden Tip dankbar.
Ach ja, ich will für Debian basteln, bisher hatte ich nur auf Windows das vergnügen.
signatur in arbeit...
Servus,
auch wenn ich nicht wirklich weiß, was du mit "Medienbibliothek mit MP3-Player" meinst (falls du nen Art Media-Center meinst, solltest du dir mal VDR oder MythTV ansehen):
Wenn es um ernsthafte Anwendungsentwicklung unter Linux geht, brauchst du in jedem Fall C und C++. Das ist vielleicht nicht ganz leicht, aber deine Delphi-Kenntnisse sollten dir ein wenig helfen.
Ich habe C im Grundkurs an der Uni gelernt und damals das Buch "Programmieren in ANSI-C" von Lowes/Paulik benutzt. Ich schlage heute noch viele Dinge drin nach. Ein großer Vorteil des Buchs: Es beschäftigt sich sehr ausführlich mit sicherem Programmieren, d.h. Pufferüberläufe usw. vermeiden, Wertebereiche beachten, uvm.
Was C++ angeht, habe ich mir den Stroustrup geholt ("Die C++ Programmiersprache", von Bjarne Stroustrup). Ich fand das Buch ganz nett.
Ein anderes Buch, das ich ganz gut fand (auch wenn ich einige Sachen zu bemängeln hatte, siehe hier) ist von SuSE-Press "C-Programmierung unter Linux" von Helmut Herold und Jörg Arndt. Keine Angst, dabei geht's nicht um "SuSE-Programmierung", sondern um Programmierung unter Linux ganz allgemein. Aber die Kritik kannst du dir im einzelnen ja selbst durchlesen.
Viele Grüße, Mirko
auch wenn ich nicht wirklich weiß, was du mit "Medienbibliothek mit MP3-Player" meinst (falls du nen Art Media-Center meinst, solltest du dir mal VDR oder MythTV ansehen):
Wenn es um ernsthafte Anwendungsentwicklung unter Linux geht, brauchst du in jedem Fall C und C++. Das ist vielleicht nicht ganz leicht, aber deine Delphi-Kenntnisse sollten dir ein wenig helfen.
Ich habe C im Grundkurs an der Uni gelernt und damals das Buch "Programmieren in ANSI-C" von Lowes/Paulik benutzt. Ich schlage heute noch viele Dinge drin nach. Ein großer Vorteil des Buchs: Es beschäftigt sich sehr ausführlich mit sicherem Programmieren, d.h. Pufferüberläufe usw. vermeiden, Wertebereiche beachten, uvm.
Was C++ angeht, habe ich mir den Stroustrup geholt ("Die C++ Programmiersprache", von Bjarne Stroustrup). Ich fand das Buch ganz nett.
Ein anderes Buch, das ich ganz gut fand (auch wenn ich einige Sachen zu bemängeln hatte, siehe hier) ist von SuSE-Press "C-Programmierung unter Linux" von Helmut Herold und Jörg Arndt. Keine Angst, dabei geht's nicht um "SuSE-Programmierung", sondern um Programmierung unter Linux ganz allgemein. Aber die Kritik kannst du dir im einzelnen ja selbst durchlesen.
Viele Grüße, Mirko
Pinguin vom Dienst
Bei soviel PHP-Erfahrung kannst du doch mit PHP lokal weitermachen - z.B. mit TK oder GTK, damit's hübsch aussieht..
*scnr*
Ansonsten ist meine Erfahrung in der Sprachenfrage eher, dass man, wenn man eine kann, mit einer anderen Sprache wenig Probleme hat.
Ich persönlich würde übrigens Java empfehlen: Sehr gute, kostenlose Starthilfen (alleine die beiden großen eBooks ( http://www.galileocomputing.de/openbook/javainsel5/ und http://www.javabuch.de) dürften beim ernsthaften Durcharbeiten schnell zu ansehlichen Fähigkeiten führen), und eine mit http://java.sun.com/j2se/1.5.0/docs/ oder http://java.sun.com/j2se/1.5.0/docs/api/index.html vergleichbare Doku habe ich bislang für kaum eine andere Sprache gefunden.
Auch bin ich nicht der Meinung, dass man für ernsthafte Anwendungsentwicklung unter Linux unbedingt C/C++ beherrschen muss, es sind mittlerweile mehr große Programme in anderen Sprachen geschrieben worden, als man glaubt.
Da ich mir unter Medienbibliothek nichts vorstellen kann, und du den mp3-Decoder mit einiger Wahrscheinlichkeit nicht selbst implementieren willst, würde ich vorschlagen: Schau dir ein paar Einsteigertutorials zu einigen Sprachen an und nimm die, die dir symphatisch erscheint.
Ein einfacher mp3-Player mit hübschem GUI ist mit Hilfe von z.B. mpg321 als Backend schnell mal gebaut, bei sowas würde dann die Sprache, in der man das schreibt, keine Rolle mehr spielen.
cu
*scnr*
Ansonsten ist meine Erfahrung in der Sprachenfrage eher, dass man, wenn man eine kann, mit einer anderen Sprache wenig Probleme hat.
Ich persönlich würde übrigens Java empfehlen: Sehr gute, kostenlose Starthilfen (alleine die beiden großen eBooks ( http://www.galileocomputing.de/openbook/javainsel5/ und http://www.javabuch.de) dürften beim ernsthaften Durcharbeiten schnell zu ansehlichen Fähigkeiten führen), und eine mit http://java.sun.com/j2se/1.5.0/docs/ oder http://java.sun.com/j2se/1.5.0/docs/api/index.html vergleichbare Doku habe ich bislang für kaum eine andere Sprache gefunden.
Auch bin ich nicht der Meinung, dass man für ernsthafte Anwendungsentwicklung unter Linux unbedingt C/C++ beherrschen muss, es sind mittlerweile mehr große Programme in anderen Sprachen geschrieben worden, als man glaubt.
Da ich mir unter Medienbibliothek nichts vorstellen kann, und du den mp3-Decoder mit einiger Wahrscheinlichkeit nicht selbst implementieren willst, würde ich vorschlagen: Schau dir ein paar Einsteigertutorials zu einigen Sprachen an und nimm die, die dir symphatisch erscheint.
Ein einfacher mp3-Player mit hübschem GUI ist mit Hilfe von z.B. mpg321 als Backend schnell mal gebaut, bei sowas würde dann die Sprache, in der man das schreibt, keine Rolle mehr spielen.
cu
- Mr_Snede
- Beiträge: 2323
- Registriert: 08.07.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ruhrpott
Ich auchmauser hat geschrieben:ich möchte da mal Python als Einstiegssprache einwerfen.
Und auch schön hier: http://www.python-forum.demauser hat geschrieben:Am besten mal selber auf python.org nachschauen..
vorbei schauen.
@ Mosquito
Hast du schon mal die Forumssuche angeworfen mir Suchen nach:
programmieren
oder
programmieren lernen
?
Da findest du einige recht umfangreiche Threads.
Die Idee PHP weiter zu nutzen finde ich gar nicht so dumm.
Ob nun mit Bindings zu einem Grafiktoolkit oder als Weboberfläche zB mit ajax (ich liebe buzzwords ), sollte man dich was benutzbares hinbekommen.
Java ist eine wirklich mächtige Programmiersprache bei der du mit Doku erschlagen wirst (jetzt musst du dir nur die Perlen raussuchen).
Zudem gibt es leistungsfähige Entwicklungsumgebungen wie zB Eclipse.
Und die Chance Javakenntnisse auch beruflich einzusetzen ist bestimmt auch nicht zu verachten.
Aber ich habe als (Desktop)Anwender kein einziges Javaprogram in Benutzung. Weil die GUI mir einfach zu träge ist. Damit kann ich einfach nicht arbeiten, was mich schon ärgert, weil es wirklich leistungsfähige Programme gibt (wie zB: http://www.jedit.org/).
Bzgl delphi:
kennst du schon http://www.lazarus.freepascal.org/
cu Sebastian
Software Finder - Software in Kategorien Debian ohne Ballast - Tipps für ein schlankes Debian
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
- peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Das Problem bzgl des wiederlegens der allgemeinen "Java-GUIs sind Langsam"-Vorurteile liegt darin dass das "Flaggschiff" diesbezüglich - Eclipse - nicht gerade gut als Argument geeignet ist. Könnte mir durchaus vorstellen dass sich Netbeans da zackiger anfühltniemand hat geschrieben:Das liegt aber nicht direkt an Java. Man ist ja nicht auf Swing angewiesen (auch, wenn man damit so schön einfach Oberflächen bauen kann, aber das frisst halt Ressourcen und Zeit).Weil die GUI mir einfach zu träge ist.
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
ok, Java...langsam....
was muss ich darunter verstehen?
Klicke ich dann auf einen button mit einer von mir erstellten Funktion dauert das mit Java länger bis was passiert als mit C++?
Und dann noch das Argument das "eclipse" daran schuld ist....
Ist eclipse ein Editor? compiler? liegt es nicht allein an der Sprache?
ähm.. ich sehe da hab ich noch viel vor mir.
Da ich Schüler bin und mir nicht die imensen Bücher anschaffen kann würde ich allein aus der kostenlosen Verfügbarkeit von Java-Docs mich für jene entscheiden.
was muss ich darunter verstehen?
Klicke ich dann auf einen button mit einer von mir erstellten Funktion dauert das mit Java länger bis was passiert als mit C++?
Und dann noch das Argument das "eclipse" daran schuld ist....
Ist eclipse ein Editor? compiler? liegt es nicht allein an der Sprache?
ähm.. ich sehe da hab ich noch viel vor mir.
Da ich Schüler bin und mir nicht die imensen Bücher anschaffen kann würde ich allein aus der kostenlosen Verfügbarkeit von Java-Docs mich für jene entscheiden.
signatur in arbeit...
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
Ach so, dann wäre natürlich noch die Java Trap die bei Java immer lauert. Wenn du dich also für Java entscheidest, würde ich von Anfang an mit GNU Classpath arbeiten.
naja, java GUI Anwendungen fühlen sich halt oft etwas träge an. Dazu kommt, wenn du nicht java-gnome oder die KDE bindings verwendest, dass sie halt immer etwa fremd auf dem Desktop wirken.Mosquito hat geschrieben:ok, Java...langsam....
was muss ich darunter verstehen?
Eclipse ist eine Java IDE, du kannst sie einfach mal installieren und etwas damit rumspielen, dann wirst du sicher merken was die Leute hier meinen wenn sie von "langsam" oder "träge" sprechen.Und dann noch das Argument das "eclipse" daran schuld ist....
Ist eclipse ein Editor? compiler? liegt es nicht allein an der Sprache?
Nach meiner Erfahrung lernt man immer am besten mit einem Buch, aber das mußt du natürlich für dich selber entscheiden. Ansonsten denke ich, dass die C, C++ oder Python Dokumentation auch nicht schlechter ist als die von Java.Da ich Schüler bin und mir nicht die imensen Bücher anschaffen kann würde ich allein aus der kostenlosen Verfügbarkeit von Java-Docs mich für jene entscheiden.
Ach so, dann wäre natürlich noch die Java Trap die bei Java immer lauert. Wenn du dich also für Java entscheidest, würde ich von Anfang an mit GNU Classpath arbeiten.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
Die Aussage "ich habe im Moment kein einziges Java-Programm am laufen" hat mich nun doch etwas abgeschreckt so dass ich gleich Nägel mit Köpfen mache und C++ eintrichtern will.
Tutorials finden sich wie sand am Meer, was davon zu gebrauchen ist wird sich zeigen.
Nur habe ich ein Problem:
Wie funktioniert das ganze?
Was muss ich tun um eine Datei zu kompilieren bzw. kenne ich es von Delphi so:
Starte die Entwicklungsumgebung, bastel mein Programm mit ein par Mausklicks zusammen, klicke dann auf Compilieren und ne fertige .exe kommt raus.
Davon findet sich nichts in den Tutorials, alle fangen mit "Hello World" an
was davor kommt und welche Vorbereitungen getroffen werden müssen steht nirgends.
Wie geht das unter Linux für C++?
wie arbeiten editor mit compiler zusammen?
welche Compiler benötige ich?
Es ist ein Start bei 0
Tutorials finden sich wie sand am Meer, was davon zu gebrauchen ist wird sich zeigen.
Nur habe ich ein Problem:
Wie funktioniert das ganze?
Was muss ich tun um eine Datei zu kompilieren bzw. kenne ich es von Delphi so:
Starte die Entwicklungsumgebung, bastel mein Programm mit ein par Mausklicks zusammen, klicke dann auf Compilieren und ne fertige .exe kommt raus.
Davon findet sich nichts in den Tutorials, alle fangen mit "Hello World" an
was davor kommt und welche Vorbereitungen getroffen werden müssen steht nirgends.
Wie geht das unter Linux für C++?
wie arbeiten editor mit compiler zusammen?
welche Compiler benötige ich?
Es ist ein Start bei 0
signatur in arbeit...
-
- Beiträge: 318
- Registriert: 15.02.2006 22:05:37
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Das können wir nicht alles so hinschreiben (bzw. es würde zu lange dauern) - es ist einfach zu umfangreich.
Eine beantwortete Frage würde auch gleich zu mindestens zwei neuen führen (was ja prinzipiell gut ist). Genau dafür eignen sich dann gute Bücher
Im Internet gibt es aber 100% Tutorials, die die Grundlagen selbst beinhalten.
Als Tipp: Du suchst:
- Kompilieren/linken etc. (was ist das überhaupt genau...)
- Benutzen eines Compilers wie z.B. gcc (auch: Was ist ein Präprozessor etc., sollte man denke ich gleich am Anfang sich klar machen, welche Schritte da im Hintergrund gemacht werden)
- Grundlagen C/C++
Edit:
Komme besser nicht auf die Idee, gleich am Anfang graphische Oberflächen erstellen zu wollen - die Konsole reicht.
Gruß
Aaron
Eine beantwortete Frage würde auch gleich zu mindestens zwei neuen führen (was ja prinzipiell gut ist). Genau dafür eignen sich dann gute Bücher
Im Internet gibt es aber 100% Tutorials, die die Grundlagen selbst beinhalten.
Als Tipp: Du suchst:
- Kompilieren/linken etc. (was ist das überhaupt genau...)
- Benutzen eines Compilers wie z.B. gcc (auch: Was ist ein Präprozessor etc., sollte man denke ich gleich am Anfang sich klar machen, welche Schritte da im Hintergrund gemacht werden)
- Grundlagen C/C++
Edit:
Komme besser nicht auf die Idee, gleich am Anfang graphische Oberflächen erstellen zu wollen - die Konsole reicht.
Gruß
Aaron
Zuletzt geändert von aspettl am 15.04.2006 00:41:24, insgesamt 3-mal geändert.
hi,
am einfachsten fängst du so an:
Du nimmst dir einen Editor deines Vertrauens zur Hand und tippst dein HelloWorld in eine Datei namens hello.cpp:
Dann nimmst du dir den Compiler (g++ , evtl. nachinstallieren)
und übersetzt das ganze mit:
Dann kannst du das Programm mit ./hello starten.
Für den Anfang sollte das so reichen, wenn man sich etwas mit C++ auskennt, kann man immer noch die grossen IDE's wie Eclipse oder KDevelop aus dem Ärmel ziehen.
mfg
mauser
[edit] Ach ja, falls du mal 40€ übrig hast und ein Buch lesen willst: O'Reilly, Praktische C++ Programmierung.
am einfachsten fängst du so an:
Du nimmst dir einen Editor deines Vertrauens zur Hand und tippst dein HelloWorld in eine Datei namens hello.cpp:
Code: Alles auswählen
#include <iostream>
using namespace std;
void main()
{
cout << "Hello World!";
}
und übersetzt das ganze mit:
Code: Alles auswählen
g++ hello.cpp -o hello
Für den Anfang sollte das so reichen, wenn man sich etwas mit C++ auskennt, kann man immer noch die grossen IDE's wie Eclipse oder KDevelop aus dem Ärmel ziehen.
mfg
mauser
[edit] Ach ja, falls du mal 40€ übrig hast und ein Buch lesen willst: O'Reilly, Praktische C++ Programmierung.
- BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Hallo,
mal ein ganz kurzer Crash-Kurs:
1. Ein Editor deiner Wahl nehmen (Kenner empfehlen Emacs ), Code eintippen und speichern (z.B. helloworld.cpp)
2. Terminal öffnen in das Verzeichnis der helloworld.cpp gehen und das ausführen
3. Jetzt solltest du ein binary in dem selben Verzeichnis haben, welches du mit ./helloworld starten kannst.
Aber jedes bessere Tutorial sollte das am Anfang auch einmal beschreiben.
mal ein ganz kurzer Crash-Kurs:
1. Ein Editor deiner Wahl nehmen (Kenner empfehlen Emacs ), Code eintippen und speichern (z.B. helloworld.cpp)
2. Terminal öffnen in das Verzeichnis der helloworld.cpp gehen und das ausführen
Code: Alles auswählen
g++ helloworld.cpp -o helloworld
Aber jedes bessere Tutorial sollte das am Anfang auch einmal beschreiben.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support
Ich spreche von Freier Software!
Ich spreche von Freier Software!
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
@Mosquito
Lies dir den Thread Link den ich oben gepostet habe noch einmal durch.
as time goes by ...
gelesen? ... gut nun kannst du die Bücher downloaden und mit C beginnen.
http://courses.mbi.tugraz.at/ElektronischeLiteratur/
markus
Lies dir den Thread Link den ich oben gepostet habe noch einmal durch.
as time goes by ...
gelesen? ... gut nun kannst du die Bücher downloaden und mit C beginnen.
http://courses.mbi.tugraz.at/ElektronischeLiteratur/
markus
Auf die Gefahr hin, mich unbeliebt zu machen, möchte ich mal Mono und C# erwähnen
Das einzige Problem das ich dabei sehe ,ist dass monodevelop noch nicht wirklich tauglich ist. Wenn man also nicht gerade vim oder emacs verwenden will, muss mal wohl oder übel SharpDevelop nehmen. Und das läuft bisher nur unter Windows mit .Net 2.0. Dafür ist der Mono- und Gtk# Support ziemlich gut, und was mit Mono unter Windows läuft funktioniert auch mit Mono unter Linux...
Das einzige Problem das ich dabei sehe ,ist dass monodevelop noch nicht wirklich tauglich ist. Wenn man also nicht gerade vim oder emacs verwenden will, muss mal wohl oder übel SharpDevelop nehmen. Und das läuft bisher nur unter Windows mit .Net 2.0. Dafür ist der Mono- und Gtk# Support ziemlich gut, und was mit Mono unter Windows läuft funktioniert auch mit Mono unter Linux...
Hallo Markus,meandtheshell hat geschrieben: http://courses.mbi.tugraz.at/ElektronischeLiteratur/
kennst du auch eine Quelle, von der man die Beispiele aus dem Buch bekommt?
Carsten
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30