Hallöchen,
da es mir zur Zeit etwas langweilig ist, hab ich mir vorgenommen noch ne
Programmiersprache zu lernen bzw. mir zumindest Kenntnisse anzueignen.
Im Studium hab ich bereits Assembler, C und C++ gelernt. Auch mit dem
Modellierungstool UML hab ich schon so meine Erfahrung.
Was lohnt sich denn eurer Meinung nach noch zu erlenen, mit dem man auch
in der Industrie was anfangen kann??
Besten Dank
Bierbaron
in deinem Fall würde ich eine Sprache nehmen, die für dich neue
Konzepte bringt, als nur dir bekannten aber in anderer Syntax gekleidet.
sehr nützlich sind meiner Meinung nach: python (oder ruby)
oder wenn du noch kein matlab kannst, wäre es sehr nützlich,
auch wenn es rein programmiertechnisch(klassen,vererbung etc)
nicht elegant ist. Da matlab sauteuer ist, kannst du zur Octave
greifen. Die Grundsprache hat dort dieselbe Syntax.
http://www.python.org/http://www.ruby-lang.org/de/http://www.gnu.org/software/octave/
"Im Studium hab ich bereits Assembler, C und C++ gelernt."
Das bedeutet für mich: "keine Ahnung vom C++ programmieren, aber
immerhin schonmal was davon gehört". Du könntest deine C++ Kenntnisse
ausbauen, indem du mal ein größeres Projekt schreibst.
@Daniel
Mit Matlab hab ich auch schon programmier in der DSV.
Das Python muss ich mir mal anschauen.
@...(Gast)
Da könntest du durchaus recht haben ;-) Wirklich praxisnahe Programme
haben wir weder mit C, C++ noch mit Assembler gemacht. Einzig großes
Projekt war ein Geldautomat anhand UML und C++. War objektorientiert mit
ca 17 Klassen
In der Industrie wird für (Windows-) Software häufig C# oder Visual
Basic verwendet.
Aber ob sich der präventive Einstieg lohnt weiss ich nicht, denn Du
weiss ja nicht, was Du in Deiner Zukunft dann effektiv einsetzen wirst /
musst.
Auf jeden Fall sind C und C++ perfekte Grundlagen um darauf aufzubauen.
Schliesse mich daher dem Vorredner an, die vorhandenen C und C++
Kenntnisse zu vertiefen und damit Projekte zu realisieren.
das stimmt, wenn man C++ tiefer gräbt, kommt immer etwas
was man nicht gewusst hat und wo man manchmal auf die Nase
fallen kann.
Python finde ich Klasse für eine leichte GUI und Regular Expression
Sachen.
Auch für matlabähnliche Berechnungen ist es super.
Ruby ist meiner Meinung nach absolut geil. Da kann man so nette Sachen
wie "3.times dosomething" machen, weil 3 von sich aus schon ein
Zahlen-Objekt ist, das die Klasse Zahlen die Methode times implementiert
hat.
Schau dir mal
http://en.wikipedia.org/wiki/Ruby_programming_language#Examples an,
vielleicht ist das ja was.
Iwan wrote:
> Ruby ist meiner Meinung nach absolut geil. Da kann man so nette Sachen> wie "3.times dosomething" machen, weil 3 von sich aus schon ein> Zahlen-Objekt ist, das die Klasse Zahlen die Methode times implementiert> hat.>> Schau dir mal> http://en.wikipedia.org/wiki/Ruby_programming_language#Examples an,> vielleicht ist das ja was.
Dann besser mit dem "Original" anfangen: Smalltalk
Fünf (5) reservierte Schlüsselwörter, wovon drei Variablen/Singletons
sind (true, false, nil), die beiden anderen (super, self) eher den
Schlüsselwörtern anderer Sprachen entsprechen.
http://www.smalltalk.org/
Jobangebote z.B. hier
http://smalltalkjobs.dabbledb.com/publish/smalltalkjobs> Was lohnt sich denn eurer Meinung nach noch zu erlenen, mit dem man auch> in der Industrie was anfangen kann??
Hängt von der Industrie ab, es gibt ne ganze Reihe von Sachen die in
Cobol, PL/1, Ada, Smalltalk entwickelt werden oder weiterentwickelt
werden müssen.
Selbst Haskell wird durchaus in der Praxis eingesetzt:
http://www.haskell.org/haskellwiki/Haskell_in_industry
Wenn du nur danach gehen willst welche Sprache du in der Industrie
brauchen kannst führt kein Weg an Java vorbei.
Programmiersprachen der "reinen Lehre" wie Smalltalk, Erlang oder
Haskell sind größtenteils von akademischer Bedeutung, es gibt zwar ein
paar Fälle wo sie eingesetzt werden, aber dass du damit in Berührung
kommst ist unwahrscheinlich.
Wenn du eine interessante Sprache mit neuen Konzepten lernen willst, die
trotzdem gut für "Alltagsjobs" einsetzbar ist, würde ich auch Ruby
empfehlen. Auch wenn du in der Elektronikentwicklung eher nicht an einem
Ruby-Projekt arbeiten wirst ist die Sprache wunderbar geeignet für all
die Aufgaben die nebenbei so anfallen, wie Umrechen von Zahlenformaten,
Codeerzeugung oder Parsen von Programmausgaben.
Es gibt sehr viele Sprachen, bei denen du etwas daraus lernst, dass du
sie kannst, selbst wenn du sie in der Praxis nicht einsetzt. Das sind
vor allem Sprachen mit neuen Konzepten, die du aus den dir bekannten
Sprachen nicht kennst. Wenn du die erstmal gelernt hast, siehst du
vieles aus den anderen Sprachen mit neuen Augen.
Was du bisher kannst, fällt unter "low-level Programmierung", also nahe
an der Hardware: C, C++, ASM. Damit hast du im Grunde ein Gebiet ganz
gut abgedeckt.
Für große Projekte, insbesondere solche, die auf einem PC laufen sollen
(weniger auf einem uC) empfehle ich Java oder C#. Ich mache z.B. fast
jedes solches Projekt inzwischen in Java. Die Entscheidung zwischen den
beiden geht danach, auf welchen Systemen es laufen soll; die Sprachen
sind praktisch dasselbe in verschiedenen Kleidern.
Funktionales Programmieren: SEHR nützlich, das mal gesehen zu haben.
Einstieg mit Haskell oder Lisp. Haskell ist sehr mathematisch-präzise
gehalten, aber der Compiler gibt manchmal sehr unverständliche
Fehlermeldungen aus. Diese sind bei Lisp leichter zu lesen, dafür die
Programme selbst um so schwerer, und bis es dann letztendlich läuft ist
es oft ein ziemliches gefrickel.
Objektorientiertes Programmieren: Sollte mal einmal "richtig" gesehen
haben. Einstieg am besten mit Smalltalk, Java oder C#. Letztere haben
den Vorteil, dass du auch gleich eine Sprache für den Praktischen
Gebrauch hast, aber dir sollte schon immer klar sein, dass "sauber
objektorientiert programmieren" was anderes ist als "irgendwie Java
programmieren". Trotz allem ist Smalltalk wegen der "Blocks" sehenswert
(Gegenstück zu Lambda-Expressions in Lisp oder Haskell), die du in Java
nur so halbwegs wiederfindest.
Webserver-Programmierung: Gibts sehr viele Ansätze für, aber PHP ist
einer der meistverbreiteten. Leider ist PHP ein riesiges Gefrickel;
sowohl Sprache als auch Standardfunktionen strotzen nur so von
Spezialfällen und Ausnahmeregeln. Kann trotzdem sehr praktisch sein, da
auf vielen "kleinen" Webserven nur PHP angeboten wird.
Webclient-Programmierung: Javascript. Oft gehasst, aber das vor allem
wegen der Unterschiede in verschiedenen Browsern. Die kann man mit
Bibliotheken aus dem Netz überdecken. Davon abgesehen kannst du Anhand
von JS die aus Smalltalk erwähnten "Blocks" auch ganz gut lernen.
Scripting: Hab ich leider nicht so viel Ahnung von. Stichworte: Ruby,
Python, Perl, Bash-Scripte.
Danke für die vielen Vorschläge.
Java wollt ich sowieso noch als Wahlfach belegen.
Dann muss ich mich mal über die hier erwähnten PS informieren und dann
mal weitersehen.
Meine persönliche Meinung (--persönliche-Meinung--):
* ASM ist reine Lernsache; das kann man sich bei Bedarf "on-the-fly"
aneignen, wenns irgendwo mal aneckt.
* An C führt wohl unterm Strich kaum ein Weg vorbei; zudem übt sich da
ganz gut strukturiertes Denken dran.
* C++ kommt dann von alleine, wobei du dir in aller Regel den UML-Kram
auch gleich schenken kannst. Das ist son typisches Spielzeug der
Informatiker.
* Für RAD, also schnelle und effiziente Entwicklungsarbeit empfiehlt
sich ganz furchtbar dringend eine wie-auch-immer geartete Skriptsprache
(Ruby, Python) und natürlich JAVA. Da macht die Programmierung dann
förmlich Spaß.
Meine Erfahrung: Ruby ist schön, aber wenn in der Industrie mal
irgendein Skript zur Anwendung kommt, ist es eher so, dass du irgendein
Perl Skript warten musst das irgendwer irgendwann mal geschrieben hast.
Sagst du, du könnest Ruby, erntest du Schulterzucken. Willst du was
Beruflich "nützliches" lernen würd ich eher Perl als Ruby empfehlen.
> Die beste Programmiersprache ist die, die man kann.
Sooo einfach ists halt nicht immer. Ich kann auch C# und Ruby, mag die
Sprachen auch ganz gut, nützt mir aber auf der Arbeit überhaupt
nichts, da wird C++ verwendet. Punkt aus.