Programmieren für (Linux-)Dummies

bassplayer

New member
Themenstarter
Registriert
8 Juni 2009
Beiträge
1.322
Hallo zusammen,

bitte schlagt mich nicht gleich, weil ich den 100sten Programmier-Anfänger-Thread aufmache :)

Ich hab jetzt ein paar Monate Zeit und möchte gern was Sinnvolles tun/lernen. Daher dachte ich ans Programmieren, doch dazu habe ich ein paar Fragen.
Ich habe mir XCode (für OS X) angeschaut, also wirklich nur angeschaut und nix darin programmiert oder so. Das gefiel mir eigentlich ganz gut, dass man mit dem Interface Builder seine GUI basteln kann und theoretisch ohne eine Zeile Code zu schreiben, ein voll lauffähiges Programm hat. Okay, es hat null Inhalt, aber immerhin. ;)
So ähnlich empfand ich Delphi, was ich in der Schule mal ein Jahr lang gemacht habe. Lang ist's aber her. Da konnte man auch die GUI basteln und dann quasi einem Button eine Funktion zuweisen etc.

Daher:
1. gibt's sowas ähnliches auch für Ubuntu? Oder sollte ich doch besser mit XCode einsteigen?
2. als was werden dann die compilierten Programme "gespeichert"? Bei Delphi hatte man nachher eine .exe, die man einfach laufen lassen konnte. Wie ist das bei Ubuntu? .deb?
3. Python wird ja gern für Anfänger empfohlen - aber was kann ich damit alles anfangen? Ein kleines Würfelspiel mit GUI?


Für ein paar Ratschläge wäre ich Euch sehr dankbar! Und bitte entschuldigt, dass ich auf diesem Gebiet so ein rückständig bin.

Grüße
bassplayer
 
Wenn man dann eine Programmiersprache und damit Programmieren halbwegs beherrscht läuft es letztendlich auf Syntax hinaus wenn man auf andere Programmiersprache zurückgreifen muss weil die Codebasis den man pflegen soll oder die Bibliothek die man nutzen will in einer anderen Programmiersprache geschrieben wurde.

LOL ! Programmierstil
 
ich finde Gummiente hat nicht unrecht...

wenn man die Konzepte wie objektorientierte Programmierung, Speicherzugriff, Speicher-Allokierung, Pointer(-Arithmetik), Vererbung, Mehrfachvererbung, Schnittstellenvererbung etc.pp. einmal verstanden hat, dann reduziert sich das Einarbeiten in eine neue (höhere) Programmiersprache größtenteils auf Syntax-Probleme...
 

Ich wage mal die These, dass wir ein Niveau anstreben auf dem wir ohne allzu sehr herum zu stottern durch das Leben kommen.

Dass wir angesichts der Schönheit der Werke von Schiller, Shakespear, Kernighan und Ritchie in Staunen geraten heisst nicht, dass wir alle dasselbe leisten können oder wollen.

Ich erinnere mich noch gut, dass meine ersten Perl Scripte eigentlich Bash Scripte waren aber hat es funktioniert? Ja. Hätte es sich gelohnt da mehr Zeit reinzustecken? Nein.
 
ich finde Gummiente hat nicht unrecht...

wenn man die Konzepte wie objektorientierte Programmierung, Speicherzugriff, Speicher-Allokierung, Pointer(-Arithmetik), Vererbung, Mehrfachvererbung, Schnittstellenvererbung etc.pp. einmal verstanden hat, dann reduziert sich das Einarbeiten in eine neue (höhere) Programmiersprache größtenteils auf Syntax-Probleme...
Gummiente bezog sich auf EINE Programmiersprache. Vielleicht solltest Du das Zitat nochmal lesen ?
 
Gummiente bezog sich auf EINE Programmiersprache. Vielleicht solltest Du das Zitat nochmal lesen ?

Vllt. meinte er auch mich, ich sagte das nämlich:
Im Endeffekt ist es eigentlich egal, was man lernt, alles hat Vor & Nachteile - wenn man eine Sprache gut kann, kann man auch sich in 30 Minuten in eine andere einlesen. .. Sprachen sind nur das Werkzeug, so wie für den Schmied sein Hammer

Ich hab zwar nicht Syntax geschrieben, aber im Endeffekt das gemeint.

Aber ich weiß nicht so recht was wir jetzt mit Programmierstil und -paradigmen wollen, gleich kommt der nächste und wirft dem Bassplayer ein Buch über Designpatterns an den Kopf.
Er will nur ein bisschen entspannt programmieren (so hab ich das verstanden) .. Kein Grund den virtuellen Penis auszupacken. :D

@Gummiente: Und wer behauptet irgendeine Sprache oder ihre Syntax sei die einzig wahre,richtige,korrekte, etcpp. hat sowieso den Schuss nicht gehört. :p
 
Zuletzt bearbeitet:
Ich zitiere mich einmal...

Wenn man dann eine Programmiersprache und damit Programmieren halbwegs beherrscht läuft es letztendlich auf Syntax hinaus wenn man auf andere Programmiersprache zurückgreifen muss weil die Codebasis den man pflegen soll oder die Bibliothek die man nutzen will in einer anderen Programmiersprache geschrieben wurde.

Gummiente bezog sich auf EINE Programmiersprache. Vielleicht solltest Du das Zitat nochmal lesen ?

Das soll auf eine Sprache bezogen gewesen sein?

Wenn man am Computer bestimmte Dinge erledigt haben will wird man im Laufe der Zeit über viele Programmiersprachen stolpern. Sie bringen alle ihre Schwächen und Stärken mit und es gilt für die jeweilige Aufgabe am besten passende zu nutzen wobei natürlich die Vorliebe des Programmierers auch mit in die Entscheidung reinfließt.

Es ist ein wenig wie mit natürlicher Sprache. Wenn man verstanden hat wie Menschen kommunizieren, dann läuft die Verständigung auf Grammatik und Vokabeln hinaus. Man braucht Übung um die Feinheiten jeder Sprache zu beherrschen aber zum Glück sind die Computersprachen vergleichsweise simpel, das gesamte Vokabular samt Grammatik passt oft genug auf ein paar Seiten statt ganze Lehrbücher.

@Gummiente: Und wer behauptet irgendeine Sprache oder ihre Syntax sei die einzig wahre,richtige,korrekte, etcpp. hat sowieso den Schuss nicht gehört. :p

Ich staune, wie undeutlich ich mich offenbar ausdrücke...
Sagen wir es mal so. Man sollte als Fremdsprache Englisch wählen und nicht irgendeinen Dialekt von einem Stamm in Amazonas das von 67 Menschen gesprochen wird. Nicht, weil die eine Sprache dem anderen überlegen wäre sondern die Chance, dass sich das gelernte anwenden lässt bei einem ungleich höher ist als das andere. Wenn dann doch die Notwendigkeit ergeben sollte auch diese Sprache zu lernen wird es etwas einfacher sein weil man gelernt hat wie man Sprachen lernt.

Auf die Idee eine Sprache ewig als die einzig Wahre zu halten käme ich gar nicht. Dazu habe ich zu viele kommen und gehen sehen.
 
Ich staune, wie undeutlich ich mich offenbar ausdrücke...
Sagen wir es mal so. Man sollte als Fremdsprache Englisch wählen und nicht irgendeinen Dialekt von einem Stamm in Amazonas das von 67 Menschen gesprochen wird. Nicht, weil die eine Sprache dem anderen überlegen wäre sondern die Chance, dass sich das gelernte anwenden lässt bei einem ungleich höher ist als das andere. Wenn dann doch die Notwendigkeit ergeben sollte auch diese Sprache zu lernen wird es etwas einfacher sein weil man gelernt hat wie man Sprachen lernt.

Auf die Idee eine Sprache ewig als die einzig Wahre zu halten käme ich gar nicht. Dazu habe ich zu viele kommen und gehen sehen.

Mensch Gummiente, ich bezog das doch nicht auf dich direkt ;)
Ich sagte das zwar zu dir, bzw. zu deinen "wer Fortran einmal kennt schreibt überall Fortran Programme"-Sprüchen, aber ich sagte doch gar nicht, dass du so denkst oder das gesagt hast - viel eher zu denjenigen, die meinen Fortran wäre die Krone der (Sprachen-)Schöpfung, welche du ja wiederrum "zitiert" hattest. :)
(Ich gebe zu, bei mir fehlte da das Zitat dazu!)
 
Mein Tipp wäre, lern erst C und dann C++. Auch wenn dir manche was anderes einreden wollen, aber diese beiden Programmiersprachen sind noch immer das maß aller dinge. Phyton zähl schon zur Kategorie Fortgeschritten und Java... naja, es gibt schon genug Java "Programmierer" auf der Welt die ihr Handwerk nicht verstehen...
Und was den rest wie C# etc angeht... man muss nicht alles können.
 
Du kannst eigentlich jede Sprache verwenden, solange sie Python heißt :p

Nein im Ernst: Für Python als Einstieg spricht vieles, vor allem, wenn du GUI-Programme schreiben willst.
Python steht z.B. bei Ubuntu ganz oben als Einstiegssprache: https://help.ubuntu.com/community/PowerUsersProgramming
und in den Ubuntu-Repositories gibt es unzählige Python-Bibliotheken, die man einfach über die Paketverwaltung installieren kann, um sie in eigenen Programmen zu verwenden:
Code:
apt-cache search bindings | grep -i python
Ein IDE braucht man nicht wirklich, da kann ich mich nur einiger meiner Vorredner anschließen. Ich empfehle fürs Python programmieren einen Editor nach Wahl (ich nehme vim oder gedit), Devhelp, ein terminal und, wenn man Benutzeroberflächen zusammenklicken möchte, glade.

Bei Ubuntu gibts übrigens quickly, mit dem man einfach eine neue Anwendung auf Template-Basis erstellen kann: https://wiki.ubuntu.com/Quickly

Gruß
 
Hallo,

ich habe in wenigen Wochen PHP als erste Programmiersprache gelernt. Das fiel mir sehr leicht. Im Anschluss habe ich es mit Perl versucht, das war schon deutlich härter. Vom Konzept fühlte es sich ähnlich an, war aber deutlich mehr "Zeug tippen, das ich nicht kapiere".

Am besten suchst du dir für den Einstieg jemanden, der die Sprache deines Interesses beherrscht, und lässt dir die absoluten Basics mal zeigen. Den Rest kannst du dir ergoogeln. Nur solche Grundlagen wie Variablentypen, Klammersyntax, die zehn wichtigsten Befehle usw. sollte man sich vielleicht zeigen und erklären lassen, da sonst extrem viel neues zusammenkommt, wenn es deine erste Sprache ist.

Falls du ein bisschen HTML-Code kannst, ist PHP übrigens auch eine ganz brauchbare Sprache für kleine GUI-Anwendungen, da man eben ein HTML-GUI basteln kann, ohne dass man noch extra die GUI-Aspekte der Programmiersprache lernen muss.
 
Und was den rest wie C# etc angeht... man muss nicht alles können.

Kommt drauf an warum man anfangen möchte mit Programmieren - aber was die Zukunft angeht - völlig falsche Aussage. Generell - wenn heute jemand anfängt zu programmieren sollte im Win Bereich sich Net und WPF (mit VB Net oder C# Net) anschauen. Wer mehr in Richtung Java möchte - wäre eben Java, AJAX und vor allem GWT ein Blick Wert. Im Mac Bereich eben Objektive C und XCODE.

Die "berühmte" .exe Anwendung ist tod. Oder Anders - die lokale Anwendung, welche lokal über unsere Programm Ordner gestartet werden. Die Zukunft sind möglichst plattformunabhängige Anwendungen, Apps, Browseranwendungen. Apple macht es mit Lion vor und Microsoft zieht mit Windows 8 nach. Wenn ich heute anfangen würde - dann ganz klar in Richtung WPF, GWT etc. Im Business Bereich haben wir übrigens bei (Neuaufträgen) die Verteilung 80% .Net - 15% Java und Java Bereiche und 5% Mac Anwendungen. Das zum Thema C# und Net...
 
Da bassplayer "gern ein bisschen basteln" möchte, würde ich eigentlich nicht C/C++ empfehlen.

Unter Windows ganz klar C# und unter Linux würde ich Python nehmen, Ruby und Java ist auch nicht verkehrt, reine Geschmackssache ;)
Mit Python könntest du jedenfalls sehr gut Qt für die Oberfläche (Qt kann aber noch mehr als nur Oberfläche) nutzen.
Schau mal hier, kurz und knapp, das sollte für den Anfang reichen: http://zetcode.com/tutorials/pyqt4/german/
 
Naja, kommt darauf an was man programmieren möchte. Im Business Bereich mit seinen sich relativ schnell ändernen Anforderungen ist Wartbarkeit wichtiger als Performance. Wenn es allerdings um Performance geht ist ASM/C/C++ immer noch ungeschlagen. Schreib mal einen Hardware-Treiber mit Java oder ein ganzen OS.
 
Naja, kommt darauf an was man programmieren möchte.

Genau so ist es.
Will man:
Bisschen rumspielen => Egal welche Sprache
Hardware nah => C/C++ (zumindestens für irgendwelche Wrapperklassen/module dann)
Schnell mal was coden Linux => Python (Python ist super, wird bei ganz großen Sachen recht schnell unübersichtlich)
Schnell mal was coden (auch größeres) Windows => C#/.Net
Total platformunabhängig sein => Java
etcpp.
(Das ist nur meine Meinung/Erfahrung, jeder wird das anders sehen.)

Bei größeren Projekten besteht eh selten das ganze Projekt nur aus einer Sprache.

Aber für den TE ist das doch echt egal - Wenn es Spaß machen soll sind schnelle (funktionierende) Ergebnisse wesentlich besser für die Motivation ...
 
Wow, danke für die 4 Seiten Meinungen :)

Da ich gern erstmal unter Ubuntu rumspielen möchte, werde ich mich an die Empfehlungen zu Python halten und damit mal anfangen. Ich arbeite mich erst einmal Stück für Stück durch "a Byte of Python" und kann ja dann ggf. googeln.
Es ist ja keine Entscheidung fürs Leben, das ist ja das Gute an der Sache ;) Denn so richtig ein großes Projekt programmieren werde ich wohl nie müssen, dafür wäre ich glaube ich auch schon zu alt.

Danke und Grüße
bassplayer
 
Dann finde ich, hast du mit Python genau die richtige Wahl getroffen.

Falls du noch Bock auf Webentwicklung hast, guck dir mal django (https://www.djangoproject.com/) an. Läuft (in einer etwas älteren Version) sogar in der Google App Engine.

Viel Spaß beim Lernen
 
Python und Ruby gibts auch unter Windows und auch integration in Winforms/Winapi, auch reine Win32 toolkits. Wieso denn bitteschoen C#?
Ich finde C ist Pflicht um zu verstehen was im Computer vor sich geht. C++ muss nicht sein, viele Unis gehen eher den Java weg. Ich würde Dir an Deiner Stelle erstmal ein Buch schnappen über verschiedene Sprachen, sowas wie 7 Languages in 7 Weeks zum Beispiel, das gibt einen guten Umriss über moderne Sprachen und die verschiedenen Paradigmen.

mfg demonicmaniac
 
Python und Ruby gibts auch unter Windows und auch integration in Winforms/Winapi, auch reine Win32 toolkits. Wieso denn bitteschoen C#?
Ich finde C ist Pgflicht um zu verstehen was im Computer vor sich geht. C++ muss nicht sein, viele Unis gehen eher den Java weg. Ich würde Dir an Deiner Stelle erstmal ein Buch schnappen über verschiedene Sprachen, sowas wie 7 Languages in 7 Weeks zum Beispiel, das gibt einen guten Umriss über moderne Sprachen und die verschiedenen Paradigmen.

mfg demonicmaniac

Naja, aber c++ gehört dann doch irgendwie noch dazu. Java wird irgendwo an jeder uni angeboten, aber meist nur als Wahlpflicht, nicht aber als Pflichtfach.
C und C++ sollte man können, erst dann sollte man sich mit anderen Sprachen befassen.

Anmerkung:
Die Bücher von Galileo kann man nur empfehlen, auch die für C und C++
 
Ich finde C ist Pflicht um zu verstehen was im Computer.....

Schon lange nicht mehr. In den Softwarehäusern - wie auch bei uns - wird der Entwickler immer mehr zum "Click die Anwendung zusammen" Entwickler. Software hat heute eine so schnelle Halbwertszeit - der Kunde will heute schnell ein Produkt und Morgen schon das Andere - ist zudem nicht bereit monatelange Entwicklungen zu bezahlen. Wenn man schaut wohin die Software Entwicklung geht - immer mehr Programme müssen schnell zusammen gebaut werden - friemelt kaum noch einer mit Hand.

Im Gegenteil. Und da spreche ich nicht nur für meine Firma. Jeder Entscheider in Sachen Personal - den ich kenne (befreundete Softwarehäuser) - bekommt Gänsehaut, wenn vor ihm ein Programmierer sitzt der als positiven eigenen Aspekt beim Vorstellungsgespräch angibt "ich bin ein Perfektionist. Ich hacke alles von Hand und optimiere den Code bis auf das kleinste Detail..." etc. Natürlich lässt sich das nicht auf alle Bereiche ummünzen - aber das Gro will keine Programmierer die sich tagelang durch Code Optimierungen durchbeisen. ich auch nicht. Wenn Du Dich so bei mir vor stellst - nehme ich Dich nicht. Und befreundete Chefs aus anderen Firmen ticken inzwischen auch so.

Wieso C# ... die Frage ist eher - wieso NET..?!? Aber das würde zu weit führen...
 
  • ok1.de
  • thinkstore24.de
  • ok2.de - Notebook Computer Server
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben