Metahilfe: Was wir hier (nicht) tun - Informationen zum Thema Fragen und Hilfen im Forum.

Du kennst dich aus? — Prima. Unser Fragenbeantwortungs-Team freut sich immer über engagierte Verstärkung!



1 Benutzer in diesem Thread: (0 Mitglieder, und 1 Besucher). 1 Gast/Gäste
Antwort schreiben 
 » nicht erledigt Welche Programmiersprache lernen?

17.09.2015, 12:31:51
Beitrag #1
Welche Programmiersprache lernen?
Ich würde gerne eine Programmiersprache lernen Tippt Aber welche? Bin nicht komplett ahnungslos, aber angesichts des Angebots etwas überfordert. Kann mir vielleicht jemand eine Sprache empfehlen, die sich am besten auch noch (computer)linguistisch gut nutzen lässt?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitierenReturn to top
17.09.2015, 12:52:16
Beitrag #2
RE: Welche Programmiersprache lernen?
Hallo,
ich kann zwar selbst kaum eine, aber habe doch oft mal reingeluschert. Es kommt vor allem darauf an, was du damit anfangen willst. Wenn du einfach nur eine Programmiersprache lernen willst, dann empfiehlt sich C oder C++. Sowieso hat C eine sehr zentrale Rolle, weil viele andere Prog.sprachen wie Java und JavaScript und co. auf dessen Syntax basieren. C ist relativ leicht zu lernen und man hat perfektes Grundwissen.
Für Computerlinguistik wird of Pearl oder Python benutzt, zumindest hatten wir die auch gehabt und ich höre von vielen anderen, dass sie damit auch arbeiten. Python und Pearl sind noch einfacher als C, weil sie intuitiver sind, sich viele Regeln also eher ergeben als bei C.
Eine andere Möglichkeit ist Java oder JavaScript (gehören nicht zusammen), wenn du vor allem Webanwendungen oder auch Apps programmieren willst. Die Sprachen sind auch relativ einfach. Fürs Internet und Apps kommen sowieso Java, JavaScript, C++, HTML etc. zum Einsatz. Mit C(++) hast du da eine gute Grundlage, danach kannst du mit Java/Script anfangen.
Um nur mal hineinzugucken, wie solche Sprachen überhaupt aufgebaut sind, kannst du auch HTML lernen. Das ist natürlich beschränkter und eher für Texte und Webinhalte gedacht, aber hat doch eine ähnliche Struktur und man bekommt einen guten Einblick in die Arbeitsweise mit Programmiersprachen.
Zu erwähnen wäre noch Pascal, auch eine schon lang etablierte Sprache, die auch ähnlich schwer/leicht wie C ist und mancherorts noch unterrichtet wird.
Vor allem für Maschinenschnittstellen wird dann Assembler o. a. eingesetzt. Die sind aber um einiges schwerer, weil du da den Nullen und Einsen viel näher kommst als bei den obigen.

Im Zweifelsfall würde ich also immer mit C oder C++ gehen, vor allem wenn man sich unsicher ist, weil es eine Schar von Programmiersprachen gibt. C(++) ist am grundständigsten, sicher am weitesten verbreitet und sowieso die Basis für weitere Programmiersprachen. Wenn man dann weiß, wohin man gehen will, sind die C Grundkenntnisse von großem Wert und andere Sprachen fallen leichter. Ein anderer Pluspunkt ist das gute Angebot an Material. Es gibt gute Lernapps für C und C++, viele Bücher. Man kann getrost selbst die älteren Bücher nehmen (sind auf dem Flohmarkt sicherlich für'n Appel und Ei zu erstehen), die Programmiersprache hat sich ja nicht wirklich verändert. Aber auch im Internet wirst du unzählige kostenlose Onlinekurse dafür finden.

Ich hoffe, das hat deinen Entscheidungsprozess etwas vereinfacht. Lächel
Viele Grüße,
Kevin


"So the whole reason the French people can't really dance
Is because they haven't got the beat in their blood.
And why don't they live and breathe the beat?
Because their language has no tonic accent."
Martin Solveig ~ Heart of Africa
Webseite des Benutzers besuchenAlle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitierenReturn to top
17.09.2015, 14:48:39
Beitrag #3
RE: Welche Programmiersprache lernen?
Kurzfassung: Wenn du noch gar nicht programmieren kannst und es vor allem um linguistische Zwecke geht, lern Python oder Perl -- und nimm Abstand von C und C++ (sorry, KevinZwinker ) Java steht so dazwischen; ich habe da Vorurteile, aber das ist in der Lehre und der Industrie sehr verbreitet.

Perl wurde halt von einem Linguisten entworfen, hat aber einen etwas zweifelhaften Ruf, da es sehr viele Spezialregeln, Ausnahmen etc. enthält, die, wenn man sie mal gelernt hat, die Arbeit sehr vereinfachen können, aber für Anfänger als Hürde empfunden werden und zu schwer lesbaren Programmen führen können. Perl ist außerdem für die gute Integration von regulären Ausdrücken bekannt (quasi eine Minisprache für Muster-basiertes Arbeiten mit Zeichenketten). Python hat den Anspruch, möglichst einfach und elegant zu sein. Der Kontrast von Perl und Python wird daher manchmal durch die Phrasen: "There's is more than one way to do it" (Perl) vs. "There should be one-- and preferably only one --obvious way to do it" (Python) zum Ausdruck gebracht.

Beide Sprachen haben gemein, dass sie relativ komfortable Programmierung erlauben und insb. auch in Hinblick auf die Arbeit mit Texten-basierten Daten gut ausgerüstet sind. Sie bieten generell viele Möglichkeiten, Dinge, die in traditionelleren Sprachen wie C relativ aufwendig wären, schnell zu erledigen. Für zahlreiche Anwendungszwecke gibt es daher auch schon fertige Pakete, auch für linguistische Zwecke. Für Python beispielsweise NLTK.

Langfassung:
Das ist so 'ne Frage, die in einschlägigen Foren immer wieder gestellt wird und da wird dir auch jeder was anderes sagen (hier hatten wir das aber glaube ich noch nicht Zwinker) Ich weiß auch nicht, ob wir als Linguistikforum dazu die beste Anlaufstelle sind, um fachlich-fundierte Meinungen zu erhalten (vielleicht kann aber @robert ja ein wenig aushelfen Zwinker )

Wie so oft gibt es dazu keine einfache Antwort, die Frage ist halt, wie Kevin auch schon meinte, was du vor hast und was dir vorgegeben wird. Man kann Programmiersprachen in diverse Typen einteilen. Eine Einteilung ist beispielsweise die nach dem Abstraktionsniveau. C ist beispielsweise eine sehr hardware-nahe Sprache, wo man sich um alle möglichen Dinge selbst kümmern kann -- und muss. Wenn du z.B. nicht gerade Treiber, rechenintensive Sachen oder Mikrokontroller programmieren möchtest, oder dich intensiv für unixode Systeme interessierst, würde ich das eher nicht lernen. Das ist nicht mehr zeitgemäß, unnötig umständlich (ähnliches gilt übrigens für Pascal, was lange als Einstiegssprache verwendet wurde) und fehleranfällig. Am anderen Ende der Skala rangieren moderne dynamische Sprachen wie Python, Perl oder Ruby, die vergleichsweise elegant zu schreiben und relativ einfach zu lernen sind. Sie bieten sehr viele komfortable Features, die man sich in C selbst herbei programmieren müsste und gelten im Gegenzug als langsamer (wobei man das heute auch nicht mehr so sagen kann; bzw. ist es in vielen Fällen irrelevant). Das Problem ist halt nur: Wenn man noch gar nicht programmieren kann, kann man vermutlich gar nicht einschätzen, was das heißt.

Eine andere Einteilung ist die nach verschiedenen Programmierparadigmen (strukturiert, objekt-orientiert, funktional etc.), also quasi verschiedenen Programmiermodelle. Die großen, gängigen Sprachen sind eigentlich fast alle Multiparadigmensprachen; ich würde mir für den Anfang um diese Begriffe daher keine allzu große Gedanken machen. Objekt-orientiertes Programmieren ist in vielen größeren Anwendungen die Standardlösung, weshalb du da nicht drum herum kommen wird. Funktionale Programmierung ist vor allem im akademischen Bereich präsent u.a. wohl auch in der Computerlinguistik/Sprachverarbeitung (Lisp wird etwa im Kontext von Fluid Construction Grammar verwendet und es gibt einige (ältere) Texte, die sich darauf beziehen); allerdings diffundieren Features davon immer mehr auch in "Mainstream"-Sprachen.

Java, C# und C++ sind nach meinem Eindruck in vielen professionellen Sparten die Standards. C++ ist gewissermaßen die stark ausgebaute Variante von C (++ bedeutet quasi +1) und wird recht viel verwendet -- gilt allerdings nach meiner Wahrnehmung als schwer zu bändigendes Monstrum, das für Einsteiger eher nicht so optimal ist. Java wird an vielen Schulen und Uni Einführungskursen gelehrt; C# ist quasi die Antwort darauf von Microsoft.

Wenn du also allgemein Programmieren lernen möchtest und der Weg das Ziel ist, wirst du über die Zeit hinweg sowieso diverse Sprachen unterschiedlichen Typs lernen wollen, um unterschiedliche Konzepte und Herangehensweisen zu lernen. Wenn's um Linguistik geht, und du die Sprache frei wählen darfst, würde ich eine der modernen Hochsprachen verwenden. Für bestimmte Bereich kann die Wahl auch schon durch vorhandenen Code oder Pakete vorgeben sein; in der Korpus-Linguistik ist übrigens auch R noch häufig anzutreffen (ein Datenverarbeitungs/Statistik-Paket mit eingebauter, etwas seltsamer Programmiersprache).

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitierenReturn to top
17.09.2015, 15:07:03
Beitrag #4
RE: Welche Programmiersprache lernen?
Danke, für die ausführlichere und kompetentere Erklärung. Lächel Wie gesagt, ich kenne mich selbst kaum aus. Ich dachte immer, C wäre noch immer sehr beliebt.
Die Informatikstudenten mussten immer lachen, dass wir mit Python und Perl programmieren mussten in den Computerlinguistikkursen. Die meinten, das würde kaum einer benutzen. Aber die haben wahrscheinlich andere Ansprüche an die Sprache und einen ganz anderen Fokus auf Programmiersprachen als ein Linguist das hätte.


"So the whole reason the French people can't really dance
Is because they haven't got the beat in their blood.
And why don't they live and breathe the beat?
Because their language has no tonic accent."
Martin Solveig ~ Heart of Africa
Webseite des Benutzers besuchenAlle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitierenReturn to top
17.09.2015, 16:05:03
Beitrag #5
RE: Welche Programmiersprache lernen?
(17.09.2015 15:07:03)Kevin schrieb:  Danke, für die ausführlichere und kompetentere Erklärung. Lächel Wie gesagt, ich kenne mich selbst kaum aus. Ich dachte immer, C wäre noch immer sehr beliebt.
Die Informatikstudenten mussten immer lachen, dass wir mit Python und Perl programmieren mussten in den Computerlinguistikkursen. Die meinten, das würde kaum einer benutzen. Aber die haben wahrscheinlich andere Ansprüche an die Sprache und einen ganz anderen Fokus auf Programmiersprachen als ein Linguist das hätte.
Ach, ich finde, wir haben uns ganz gut ergänzt; ich hoffe, meine Ausführungen klangen nicht zu besserwisserisch, zumal ich da ja auch kein entsprechendes Studium absolviert habe.

Ich würde sagen, so als Nicht-Informatiker, dass Programmiersprachen in erster Linie Werkzeuge sind und man nimmt im Idealfall das Werkzeug, das für die jeweilige Aufgabe am besten geeignet ist. Die Metapher greift allerdings an dem Punkt nicht mehr, wo es um Vorlieben geht; bei Programmiersprachen gibt es emotionale Bindungen bis hin zu Ideologien, scheint mir.

Unterschiedliche Sprachen bieten halt unterschiedliche Vorteile und Nachteile, die man abwägen kann. Die Gründe, aus denen sie entworfen wurden, sind ganz verschiedenen, eben so die theoretischen Grundlagen und Vorannahmen. Gerade die erwähnten Informatikstudenten könnten aus ihrem Studium eine größere Anzahl von Sprachen kennen, von denen einige (etwa Haskell oder Prolog), aus theoretischer Sicht hoch interessant, außerhalb der Wissenschaft soweit ich weiß aber eher mäßig verbreitet sind. Da lernt man, so wie ich das mitbekommen habe, halt ganz unterschiedliche Sachen, weil es eher um Konzepte, Herangehensweisen und Design-Prinzipien geht.

Ich wollte nicht sagen, dass C unbeliebt ist und habe mich vielleicht falsch ausgedrückt. Die Debatte um C dreht sich, so wie ich das mitbekommen habe, vor allem darum, dass man das nur verwenden sollte, wenn man die Vorteile braucht und nicht als generische Defaultsprache für alles mögliche; da gibt es aber viel Einwand und es wird nach wie vor häufig verwendet.

Dass Python und Perl wenig verwendet werden, stimmt, wenn man dem aktuellen TIOBE Index glauben möchte, nicht. Perl und Python sind beispielsweise beide in der serverseitigen Programmierung von Webanwendungen zugegen. Perl zusätzlich insbesondere noch recht oft bei Systemadministratoren. Python ist gerade auch im wissenschaftlichen Sektor nicht so unüblich, da es beispielsweise viele Pakete gibt, die selbst in einer "schnellen" Sprache wie C geschrieben sind und von Python aus angesteuert werden (numpy etwa wird da oft genannt).

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitierenReturn to top
17.09.2015, 19:12:08
Beitrag #6
RE: Welche Programmiersprache lernen?
Viele Linguisten arbeiten auch mit R, wenn es um statistische/mathematische Dinge u.ä. geht, aber auch für Korpusverwaltung und -analyse ist es nützlich.


Mitmachen, mitgestalten, mitwissen: Glottopedia: the free encyclopedia of linguistics
Webseite des Benutzers besuchenAlle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitierenReturn to top
19.09.2015, 13:19:21
Beitrag #7
RE: Welche Programmiersprache lernen?
Ui, vielen Dank euch! Da habt ihr mir ja schon ganz schön viele Informationen geliefert Lächel
Zu R hab ich vor ein paar Monaten mal einen Einführungsworkshop gemacht. Der ging allerdings nur drei Stunden und entsprechen sind wir nicht besonders weit gekommen. Aber vielleicht lohnt es ja, sich damit noch mal eingehender zu beschäftigen. Und Python werde ich mir dann wohl auch mal anschauen.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitierenReturn to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema:VerfasserAntworten:Ansichten:Letzter Beitrag
  [Didakt] Wie lernen Flüchtlinge am besten Deutsch? Chano 12 4.376 02.10.2016 12:53:42
Letzter Beitrag: kunnukun
  Welche Art von Reduplikation ist "ganz und gar"? Kevin 5 984 03.06.2016 09:59:07
Letzter Beitrag: Kevin
  Welche Beziehung hat die zweite Lautverschiebung mit der Dialektologie? crisimi93 3 1.726 30.03.2015 12:55:49
Letzter Beitrag: janwo
  [Didakt] Als Muttersprachler mit einem Portugiesen Deutsch lernen Unwissender 0 1.913 16.11.2014 12:07:39
Letzter Beitrag: Unwissender
  Welche Erkenntnisse erhalten wir durch die Anwendung der Fregeschen Semantik? vitopetre 5 2.763 20.10.2014 17:01:44
Letzter Beitrag: kunnukun
  Welche themenbezogenen Wortlisten gibt es für Latein? Privileg 2 3.073 12.09.2014 21:22:38
Letzter Beitrag: Privileg
  Welche Abkürzungen MÜSSEN in ein Abkürzungsverzeichnis ? Ruth 3 15.734 27.01.2014 15:27:25
Letzter Beitrag: Ruth
  Um welche Phrasenart handelt es sich? matzl1289 1 1.349 28.11.2013 10:37:53
Letzter Beitrag: janwo
  [Pragma] Welche Art von Manipulationstechnik? ben1005 2 2.854 11.06.2013 19:25:27
Letzter Beitrag: neous

Gehe zu:


1 Benutzer in diesem Thread: (0 Mitglieder, und 1 Besucher). 1 Gast/Gäste