und wenn man mit Java anfägt,dann versteht man nicht,wozu man fürs Addieren eine Klasse mit Konstructor und private Methoden braucht.dann bleiben wohl nur Pascal und Scheme(Lisp) übrig.
Original von Serdna666
und wenn man mit Java anfägt,dann versteht man nicht,wozu man fürs Addieren eine Klasse mit Konstructor und private Methoden braucht.dann bleiben wohl nur Pascal und Scheme(Lisp) übrig.
Sowas wird OP ziemlich egal sein imo, er will ja kein Profi werden.
op sollte sich hier mal nicht von euch in einen glaubenskrieg ziehen lassen. _die_ beste programmiersprache gibt's leider nicht, weder zum einstieg noch um dauerhaft damit zu arbeiten. die meisten haben ihre daseinsberechtigung und es ist stark projektabhängig, wann welche zur wahl stehen. die meisten hochsprachen nehmen sich "nur" in details etwas (syntaktisch fast alle von C beeinflusst), bis op diese unterschiede verstehen muss/kann, würde aber einiges an lernzeit vergehen und um sie vollends zu verstehen wird er sehr oft über den praxis-tellerrrand in richtung theorie schauen müssen.
wenn OP nicht wirklich selbst hand anlegen will, würde ich es wie kamikazePoker halten: paradigmen, pattern, uml, test-methodik, (SW-)Projektmanagement etc. aneignen, um ein verständnis für entwicklungsprozesse zu bekommen. technisches wissen benötigt die projektleitung (meist) garnicht, in etwas größeren projekten kommt zur fachlichen ja schnell auch eine technische projektleitung, die dieses wissen mitbringen muss und sonst ist jeder programmierer auch in der verantwortung, die PL bei entscheidungen zu unterstützen
wenn op wirklich fest davon überzeugt ist, hin und wieder einen blick auf den code zu werfen (und sich detailfragen einfach vom coder erklärn lassen kann), kommt zu den paradigmen wohl auch ein grundlegendes syntaktisches verständnis hinzu - dies kann man sich imho für die gängigen hochsprachen durch eine beliebige hochsprache aneignen, als gut geeignet würde ich hier tatsächlich python/java mit geeigneten frameworks+lernmaterial/c#+wpf nennen. funktionale sprachen(lisp, haskell, etc) würde ich ausschließen, php und exoten wie fortran auch, weil sie diesen lernprozess eher behindern als zu unterstützen. OOP ist halt state of the art, sowohl im app als auch im web(basierten) bereich kommt da keiner vorbei. von ruby/groovy und den restlichen 'hipstersprachen' würde ich auch abraten, nicht weil sie grundsätzlich ungeeignet sind, sondern weil der sprung von diesen sprachen zu den gängigeren größer ist als bei umgekehrter lernreihenfolge.
und wenn op wirklich auch selbst programmieren will oder denkt, dass er mehr als 5-10% seiner arbeitszeit auf code schaut und tatsächlich eine sprache über einen langen zeitraum (1-2jahre sind nicht unrealistisch) erlernen will, würde ich stark zu java tendieren und dies dann auch als abschließende antwort auf ops frage begründen.
+ reichlich lehr/lernmaterial sowohl für die syntax als auch für die verwendeten paradigmen
+ sehr gute entwicklungsumgebungen mit eclipse und IDEA
+ sehr gute debugger (wodurch sich der lernprozess rapide beschleunigt)
+ OOP (fast) in reinform
+ gute & bekannte webserver/container mit tomcat/glassfish/JBoss erleichtern Webentwicklung
+ unheimlich starke OpenSource community
+ mit android deckt java schonmal einen großteil des app-markts (user-based, nicht economy-based) ab, außerdem sehr gut einsetzbar im web-basierten und mit abstrichen im Desktop bereich
[+] Garbage-Collector - Speichermanagement fällt einem erst sehr spät (oder in sehr komplexen Projekten) auf die Füße
[+] hoher verbreitungsgrad, weil's standard-lehrsprache an den meisten Unis ist, ergo relativ günstige programmierer (im vergleich zu bspw C#, C, C++)
+- quadrillionen von frameworks - ist schön, weil es quasi für alles frameworks gibt, aber sich da zu informieren und einzuarbeiten kostet leider auch massiv zeit
- AWT/Swing als Standardbibliotheken für Desktopoberflächen sind imho hinderlich/aufwändig im lernprozess (und hässlich), hier kann WPF in Verbindung mit C# oder Qt in Verbindung mit Python einfach schneller mehr erreichen, was bei Anfängern und deren Motivation eine Rolle spielt
-- JSF/JSP ist imho völlig ungeeignet für Webentwicklung :-(
ansonsten sprechen die meisten java argumente ebenso für c#, bis auf die community und (freie) verfügbarkeit von bibliotheken (aber MS ist auf einem guten weg, hab ich gehört), bei python fehlt mir statische typisierung (fehleranfällig), imperative/funktionale sprachen sind interessant, aber bringen OP nicht weiter, php wird quasi nur im webbereich eingesetzt, c++ wird durch pointer und speichermanagement schwer(er).
wir haben damals OOP-Intro mit folgendem Lernmaterial gelernt: Java lernen mit BlueJ
das ist recht gut strukturiert und hat zum Ziel, die in Java verwendeten Paradigmen zu vermitteln. Alternativ sind die Heads-First Bücher ganz interessant, sowohl das bereits genannte "Java von Kopf bis Fuß" als auch "Heads First Design Patterns" - alle 3 Praxisorientiert, mit Übungen zum selbst mitmachen
PS: Serdna666, no offense, aber ich hoffe du trollst nur :-(
public static void main(String[] args] {
int a = 1;
int b = 2;
System.out.println(a+b);
}
wo genau musst ich jetzt Konstruktor oder private methoden verwenden?
ich hab schon viele Progsprachen gelernt.
...
oder fängt sofort mit C an. dann hast du automatisch C++,Java,C# drauf
nein.
PPS: hui, ganz schön viel text 0o
ich will mal etwas einfuegen, was kaum jemand von den "alten" leuten macht
kaum einer documentiert hier do etwas(mich inc.)
selbst was input und output einer function bzw klassenbeschreibung betrifft
*selbst mit dem finger auf mich zeigt*
edit: will eigentlich sagen, dass man das jetzt als norm/soll einfuegen sollt bei der lehre
klar das inc i oder i +=1 nich doc. werden soll(das kann jeder lesen) aber warum man bestimmte wege geht z.b.
Hi!PS Azirik.Wenn man so anfängt,wie du vorstellt,dann ist es ok!Nur leider war es bei mir so,dass mein Bekannte für ähnliche Operation eine Klasse mit 2 privaten Attributen a und b anlegen musste. usw
In der Uni mussten wir für BubbleSort auch eine Klasse benutzen,der man Array übergeben musste.Das fand ich blöd!