Langzeitbeschäftigung - Programmieren- ein neues Hobby

BlooDFreeZe schrieb:
Und für einen Programmieranfänger geht es erstmal darum eine Routine mit allen "Werkzeugen" zu entwickeln. Dann kann er sich weiter orientieren. Soviel zu java-c#.

Und genau da halte ich es für sehr sinnvoll mit der Konsole zu arbeiten, da man da viel besser mitbekommt was eigentlich passiert als in einer aufgeblasenen IDE wie Eclipse oder Visual Studio.

Wenn du lernwillig bist, Linux + Python ist ein schöner Anfang, allerdings kannst du auch nach belieben C/++, Java oder PHP nehmen.
Als Editor kann ich vim sehr empfehlen, benötigt aber auch Zeit zum reinarbeiten. Wer sich mal dran gewöhnt hat vermisst in allen anderen Editoren das effiziente Arbeiten, aber das ist kein Problem, da es Plugins für alle größeren IDEs wie Eclipse und VS gibt, die dieses Verhalten zur verfügung stellen.
Willst du das allerdings nicht lernen, so tut es am Anfang auch einfach gedit o.ä., Syntax-Highlighting ist eigentlich am wichtigsten.

Übrigens halte ich Programmieren für ein tolles Hobby, das auch eine Menge Spaß machen kann, aber e-Laurin hat recht, man kann durchaus manchmal bereuen dass man kein Musikinstrument gelernt hat :D
 
Zuletzt bearbeitet:
Whiz-zarD schrieb:
Aber einen Interpreter und das macht PHP schon zu was ganz anderem, als C.
Nur weil PHP eine C-ähnliche Syntax besitzt, heißt es lange nicht, es wäre C.
Hab ich nicht behauptet, ich hab mit beiden gearbeitet und bin mir der Unterschiede sehr wohl bewusst. Ich hab erst C genutzt und bin später bei PHP gelandet und hab irgendwie viele Befehle aus C irgendwie in ähnlicher oder identischer Form wiedergefunden.
Und hey, PHP ist C immer noch näher als z.B. Prolog oder Haskell.

Hey, das wär doch ne Herausforderung fürn Anfänger: Schreib ein Programm zur Differenzial- und Integralrechnung (Erzeugen der Stammfunktion) in Prolog.

Whiz-zarD schrieb:
Aber man sollte einem Anfänger nicht sagen, dass PHP und C das selbe sind, da beides völlige unterschiedliche Sprachen für völlig unterschiedliche Anwendungsbereichen sind.
Anwendungsbereich spielt doch keine Rolle, wenn man eh nur just for fun programmieren will. Man schafft sich den Anwendungsbereich doch selbst. Und für viele Probleme gibt es verschiedene Herangehensweisen. Angenommen, ich müsste über einen Cronjob regelmäßig Werte einer Datenbank modifizieren oder Mails schicken, dann würde ich persönlich dafür ein PHP-Script schreiben. Könnt man auch in C machen, in Python,... man entscheidet sich für das, womit man am ehesten vertraut ist...

Backslash schrieb:
Und genau da halte ich es für sehr sinnvoll mit der Konsole zu arbeiten, da man da viel besser mitbekommt was eigentlich passiert als in einer aufgeblasenen IDE wie Eclipse oder Visual Studio.
Konsolen sind vor allem dann nützlich, wenn man schnell und gezielt was ändern will. Auch Compilerbefehle hab ich viel lieber selbst getippt als mich darauf zu verlassen, dass VS & Co. alles richtig machen.
Der Krieg zwischen Konsole und GUI ist aber lächerlich. Es gibt Sachen, für die ist eine GUI einfach besser, es gibt Sachen, für die ist die Konsole besser. Spätestens wenn man aber auf SSH-Zugänge angewiesen ist MUSS man eh an die Konsole und man gewöhnt sich dran. Ist aber kein Grund, zwanghaft manuell apt-get einzutippen, statt einfach Synaptic zu starten...

Als Editor kann ich vim sehr empfehlen, benötigt aber auch Zeit zum reinarbeiten.
VIM ist definitiv eine nette Sache. Der große Vorteil ist, dass man leichter ein sudo vim eintippt als ein gedit oder so als root zu starten, bloß um mal eben in ner System-Config einen Wert zu ändern. Wenn es aber um größere Quellcode-Sammlungen geht, insbesondere über mehrere Dateien hinweg, dann versagt VIM kläglich.

Willst du das allerdings nicht lernen, so tut es am Anfang auch einfach gedit o.ä., Syntax-Highlighting ist eigentlich am wichtigsten.
Wirf mal einen Blick auf Geany. Der Editor is echt brauchbar. Hat bei mir irgendwie leicht bessere Ladezeiten als gedit, das Highlighting ist irgendwie etwas besser und man hat noch eine passable Anzeige der Variablen und Funktionen des aktuellen Scripts.

Am Ende plädier ich trotzdem für Eclipse. Klar, man kann sich jetzt mächtig 1337 vorkommen, wenn man ohne große IDEs arbeitet, am Ende ist man sich aber nur selbst im Weg. Minimalistische Editoren kann man für n schnelles HTML-File oder etwas CSS-Gerümpel nehmen, für längeren Code mit vielen Variablen ist eine gute IDE einfach Zeit aka Geld wert.
 
Daaron schrieb:
Anwendungsbereich spielt doch keine Rolle, wenn man eh nur just for fun programmieren will.

Aha ...
Es spielt also keine Rolle, ob ich eine Webanwendung oder eine Desktopanwendung schreiben möchte? O_o
 
Geht doch beides sowohl mit C als auch PHP.
Webanwendungen eben in beiden Fällen per CGI.

Geht es darum Programmieren zu lernen ist es letztendlich sowieso völlig egal welche Sprache man zuerst erlernt, später werden sowieso andere dazukommen.
 
Backslash schrieb:
Ja aber was kann Eclipse, das vim (natürlich mit Addons) nicht kann?
  • schönes kleines Variablen-Tracking innerhalb der aktuellen Datei, wo man wunderbar sehen kann, wo Schreib- und Lesezugriffe auf die Variable stattfinden
  • Highlighting für TODO @ Co.
  • Hover über n Funktionsaufruf und du kriegst (bei sauberem, gut dokumentiertem Code) eine hübsche Info, was die Funktion tun soll, welches Format ihre Parameter haben und wie die Rückgabe aussieht
  • Ne Funktionsdeklaration is doch mal unklar? Rechtsklick -> zur Deklaration springen... auch über Dateigrenzen hinweg
  • nette kleine Auto-Vervollständigung für Klammern, HTML-Tags, Anführungszeichen, Funktionen,... Spart alles wertvolle Zeit und vermeidet Fehler
  • Fehler-Highlighting... zumindest rudimentär. Man sieht sofort grobe Schnitzer, wie wenn z.B. mal ein Komma in einem Array fehlt bzw. statt dessen n Semikolon reingerutscht ist
  • HANDLICHES!!! Kopieren, überhaupt angenehme Maus-Interaktion
  • mehrere gleichzeitig offene Files in hübsch sortieren Registern
  • Maus-Scrolling... Scroll mal ne 2k-Zeilen - Datei in VIM. Ich krieg da jedes Mal die Krätze, wenn ich in Serverlogs was suche und nur vim, less und grep zur Verfügung hab

Whiz-zarD schrieb:
Aha ...
Es spielt also keine Rolle, ob ich eine Webanwendung oder eine Desktopanwendung schreiben möchte? O_o
Wenn du dir das Problem selbst stellst... nö, eigentlich nicht.
Wenn dich niemand zwingt, eine Web-Anwendung zu schreiben, dann schreibst du eine oder lässt es und baust lieber ne Desktop-GUI... oder etwas für ne Commandline.

Dass du am Ende das eher passende Werkzeug (die Sprache) wählen solltest, sollte klar sein. Aber im Zweifel schreibst du Shell-Scripte in PHP oder fütterst den Webserver über C. Vielleicht koppelst du sogar verschiedene Systeme und lässt dein Programm in der einen Sprache ein Programm in einer anderen Sprache auslösen.

Mit irgend einer Sprache muss man anfangen, genauso wie mit einem Ziel. Erst wenn eines davon entschieden ist wird das andere ein konkretes Problem.

Übrigens: JavaScript würd ich nicht voreilig aus dem Rennen um "interessante lösbare Probleme" werfen. Mit JS kann man sogar einen Webserver schreiben (und ja, ich meine einen SERVER, keine Seite, die der Server liefert).
 
Daaron schrieb:
Wenn du dir das Problem selbst stellst... nö, eigentlich nicht.
Wenn dich niemand zwingt, eine Web-Anwendung zu schreiben, dann schreibst du eine oder lässt es und baust lieber ne Desktop-GUI... oder etwas für ne Commandline.

Wenn mich niemand zwingt zu programmieren, dann kann ich es auch ganz sein lassen ...

Wenn ein Anfänger lieber Deskotp-Anwendungen schreiben möchte, wäre der Rat mit PHP anzufangen ein äußerst schlechter Rat, denn wieso sollte er zuerst Web-Anwendungen entwickeln, wenn er das gar nicht möchte?

Daaron schrieb:
Mit irgend einer Sprache muss man anfangen, genauso wie mit einem Ziel. Erst wenn eines davon entschieden ist wird das andere ein konkretes Problem.

Aber wieso wird dem Anfänger gleich PHP geraten, wenn es noch kein konkretes Problem gibt? Stattdessen werden hier irreführende Behauptungen wie "PHP ist wie C, nur ohne Pointerterror" aufgestellt.
 
Meine Empfehlung an dich lautet: Such dir erst ein Problem, dass du mit Hilfe eines Programmes lösen willst und dann die passende Programmiersprache, die 1. zu dir und 2. zu deinem Problem passt.

Viele fangen an einfach eine Sprache drauflos zu lernen und wie schon einige hier geschrieben haben, wird das Trocken. Wenn dir das trotzdem gefällt, ist es auch schön :)

Als Programmiersprache würde ich erstmal von den gängigen Script und Websprachen Abstand nehmen. Obwohl (fast) alle auch auf "vollwertige" Programmiersprachen wie C/C++, Java & Co übertragbar ist, haben sie so den einen oder anderen Tick, der dir alles etwas komplizierter macht.

Ich würde dir daher als erstes Universalwerkzeug Java ans Herz legen. Es ist vielleicht nicht immer die beste Wahl, aber um ein paar nervige Stolperfallen als Anfänger zu umgehen, ist es super. Eclipse als Entwicklungsumgebung macht dir auch das Leben leichter, aber bedarf auch ein wenig Einarbeitungszeit.
Zuguterletzt ist das ganze kostenlos, wodurch die Hemmschwelle "Geld" auch wegfällt.

Und das schöne beim Lernen von einer Programmiersprache: Kann man eine, kann man sogut wie alle. Es gibt Ausnahmen, die auch ein Umdenken fordern. Aber eine Programmiersprache ist wie ein Werkzeugkasten: Man kann auch mit dem Griff eines Schraubenschlüssels einen Nagel reinhauen, aber wenn man sich auskennt und den Hammer findet, gehts schneller, sauber und effektiver :)
 
Daaron: Alles möglich mit vim, das meiste sogar ohne Addons. Ich bezweifle stark dass du vim jemals ernsthaft benutzt hast.

Für ein paar sachen braucht man Addons, sind allerdings nicht schwer zu finden.
Und wenn einem das nicht reicht, wie gesagt man kann vim auch innerhalt von Eclipse benutzen und arbeitet wesentlich schneller als mit dem normalen Editor von Eclipse.

Ein paar Punkte:

  • Highlighting von TODO etc.: standard. wenn was nicht gehilighted wird ist es trivial das selbst hinzuzufügen
  • Scrollen: wesentlich leichter als in Eclipse o.ä. Entweder per Tastatur, direkt zu einer Zeile springen oder beliebig viele Zeilen scrollen per eingabe der Zeilenanzahl, noch einige andere Möglichkeiten wie Sprungmarken etc. oder ganz normal der Maus.
  • Autovervollständigung etc. selbstverständlich Standardfunktion.
  • Mehrere geöffnete Dateien: entweder in beliebiger Grid-Anordnung oder eben in Tabs oder gemischt, wie gewünscht. Alles natürlich Standardfunktionen.
  • Mausbedienung funktioniert natürlich mit gVim besser, geht aber auch im Terminal sofern es das unterstützt (z.B. xterm)
 
Zuletzt bearbeitet:
Zurück
Oben