Skip to forum
Benachrichtigungen
Alles löschen

Programmieren lernen - How to be a coder

153 Beiträge
42 Benutzer
142 Reactions
26.3 K Ansichten
Snookz
Joined: 13.06.2008

https://www.udemy.com/unitycourse/

Also ich habe mal diesen Kurs gemacht, weil ich mit einem Kumpel ein Spiel entwickeln wollte. Mittlerweile sind wir schon recht weit, das Spiel läuft in der Grundstruktur, wir haben Blender gelernt, können Texturen und Animationen machen.
Der Einstieg über Unity war es aber definitiv wert. Programmiersprache wäre in dem Fall C#. Die Datenstrukturen sind sehr ähnlich zu Java, die Syntax ebenfalls. Wenn man C# kann und auf Java wechseln will oder muss, sollte das also kein großes Problem sein. App-Entwicklung für Android funktioniert meines Wissens nach mit Unity ebenfalls.


Antwort
Zitat

Original von Rho0
c# ist von dem her quatsch, dass man auf das windows-system festgelegt ist. java und python laufen überall, wo s die geeigneten virtual machines gibt, und bei c/c++/fortran kann mit dem entsprechenden compiler für jede architektur kompilieren.

C# ist seit Mono nicht mehr auf Windows festgelegt, sondern funktioniert auch unter Mac und Linux. Gibt auch mittlerweile Portierungen auf iOS und Android, wie gut diese sind weiß ich aber nicht.
Mit Xamarin kannst du auch Apps für iOS/Android in C# auf der gleichen Code Basis schreiben (mit den entsprechenden Vor- und Nachteilen, die so ein System mit sich bringen).

Nichts gegen C++ (arbeite selbst damit), aber als Anfänger würde ich nicht mit Crosscompiling anfangen. Da verliert doch fast jeder die Lust am Programmieren lernen, bis man da etwas vernünftiges hat, mit dem man arbeiten kann.

Original von Rho0Wenn man Apps entwickeln möchte, wie wichtig ist es diesen Speicherverwaltungspart zu beherrschen? Welche Sprachen kämen dann in Frage?

Könnte evtl. jemand hier eine Top10 Liste schreiben in der vielleicht ein paar Pros/Contras stehen?

Wenn du an dem Punkt bist, wo dich die Speicherverwaltung interessiert, wird einige Zeit vergehen. Und wenn der Satz fällt: "blöde Speicherverwaltung" ist in dem meisten Fällen der Programmierer schuld und nicht die Speicherverwaltung.

Mit ObjectiveC würde ich nicht mehr anfangen, das wird mittel-/langfristig von swift abgelöst werden.

Mit einer Managed Sprache wie C# oder Java wird man als Einsteiger nicht falsch liegen und durch die hohe Verbreitung gibt es genug Hilfe/Tutorials.

Ab einem gewisser Wissensbasis ist die Sprache selbst auch nicht unbedingt das Interesssanteste, sondern dass man gewisse Herangehensweisen verstanden und anwenden kann (z.B. design pattern). Die Syntax bei einem Sprachwechsel dann noch zu lernen ist das einfachere, wenn man solche Grundlagen verstanden und umsetzen kann.


Antwort
Zitat
RookyFinne
Joined: 20.05.2008

Hi,

für Anfänger die das Programmieren lernen wollen ist meiner Meinung nach die Reihe von Casey Muratori großartig. Seine Idee ist ein komplettes Spiel im livestream zu programmieren. Läuft aber eben schon ziemlich lang und es sind auch mittlerweile sehr viele Videos, aber die Einstiger Videos für C, die er gemacht hat, decken meiner Meinung nach wirklich alles relevante was den Prozess des Programmierens für Einsteiger angeht ab.

Trailer für die Idee:

Einsteiger Video Nr 1:


Antwort
Zitat

C würde ich keinem Einsteiger empfehlen, außer er möchte/muss das aus welchem Grund auch immer unbedingt lernen. Gibt einfach viel zu viele Fallstricke, mega viel undefined behaviour und all den Mist.
C ist eine super Sprache, aber das Programmieren sollte man imo erstmal auf etwas einfacherem like Java, C# oder konsorten lernen.

Edit:
Ach und wenn es dann doch unbedingt C sein soll, dann ist K&R nach wie vor die beste Wahl imo: https://www.amazon.de/Programming-Language-Prentice-Hall-Software/dp/0131103628


Antwort
Zitat
flowIIpoker
Joined: 14.02.2007

hm .. was habt ihr denn alle gegen python?


Antwort
Zitat
ine23
Joined: 11.10.2009

Hab mir damals auch die Frage gestellt und auch einiges dazu durchgelesen. Es wurde dann Python.

Es ist recht einfach zu lernen und man hat schnell Erfolgserlebnisse weil man halt bald mal ein kleines Programm geschrieben hat.

Für mich ist das wichtig, weil ich sonst bald die Lust verliere.

Was ich damit sagen will: Es kommt auch auf den eigenen Typ an. Ich glaube bei Java oder C++ hätte ich schnell die Lust verloren. Wenn man mal ein paar Wochen/Monate Arbeit in was reinstecken kann ohne sofort zu sehen was man gelernt hat sind Java oder C++ sicher heiße Kandidaten. Wenn man aber immer wieder sehen muss was man gelernt hat würde ich eher zu Python oder ähnlichem tendieren.

Aber um es vorweg zu nehmen: Ich hab wenig Ahnung von den Sprachen und es ging mir nur darum aufzuzeigen auch die eigene Persönlichkeit in die Wahl einfließen zu lassen.


Antwort
Zitat
pg89
Joined: 05.04.2008

Python ist aber schon in vielen Dingen deutlich anders als C(++), Java etc.

Und wieso soll man bei Python so viel schneller Ergebnisse sehen?


Antwort
Zitat

So unglaublich weit auseinander liegen die ganzen Sprachen denn nun auch nicht. Klar mag es in der einen oder anderen Sprache mehr eigenheiten geben, aber die sind fürs lernen doch eh erstmal egal.
Würde persönlich nur Sprachen wie C außen vorlassen, da Dinge wie pointer-arithmetik schon noch mal eine andere Ebene von Verständnis ist. Erst wenn man die Grundstukturen drauf hat würde ich mich solchen Dingen widmen und jene Grundstrukturen kannst du in beinahe jeder Sprache erlernen.

Aber wie hier schon drölf mal gesagt wurde ist es am Ende des Tages eh nur persönliche Präferenz und das was wirklich zählt ist einfach nur üben, üben und nochmals üben.


Antwort
Zitat
febsan
Joined: 20.09.2007

Original von r4lphlol
Würde persönlich nur Sprachen wie C außen vorlassen, da Dinge wie pointer-arithmetik schon noch mal eine andere Ebene von Verständnis ist. Erst wenn man die Grundstukturen drauf hat würde ich mich solchen Dingen widmen und jene Grundstrukturen kannst du in beinahe jeder Sprache erlernen.

Ich habe Grundverstaendnisse in wissenschaftlichen Programmiersprachen: Julia, Python, Matlab, Mathematica und Latex, ein bisschen R & TurboPascal (Schulzeit). Damit bin ich eigentlich sehr zufrieden, vor allem, weil kurzer Code einfacher zu lesen ist und ich nicht allzu viel Zeit in programmiertechnisches Zeug - wie bswp. Pointer, was auch immer das ist - investieren moechte.
Nichtsdestotrotz wuerde ich gern etwas C(++)/Java und uU Fortran - Code verstehen koennen und frage mich, was die wichtigsten (!) Unterschiede sind bzw. was man dazulernen muss (Pointer, Klassen, etc.?). Gibt es gute kurze Einfuehrungen ein Textform oder als MOOC als Umsteiger?

Beispiel:
Wieso brauche ich drei Zeilen in Java, waehrend es in Python in einer geht?

Java:
Public class HelloWorld{
Public static void main(String[] args)
System.out.println(“Hello World”);}
Python:
Print “Hello World”


Antwort
Zitat
pg89
Joined: 05.04.2008

Diese Vergleiche sind doch so unglaublich sinnlos...du brauchst in beidem eine Zeile.
Nur in Java muss eben Klasse+Methode definiert sein. Macht in dem Beispiel natürlich einen großen Unterschied, sobald man aber nicht nur eine einzige Ausgabe sondern ein komplettes Programm hat, fällt das überhaupt nicht mehr ins Gewicht. (Mal abgesehen davon, dass man in Python auch irgendwann Funktionen oder OOP verwendet und das Argument dann überhaupt nicht mehr zieht).


Antwort
Zitat
beg0r
Joined: 07.05.2006

Original von pg89
Python ist aber schon in vielen Dingen deutlich anders als C(++), Java etc.

Und wieso soll man bei Python so viel schneller Ergebnisse sehen?

Python ist dafür gemacht, dass man schnell und intuitiv schreiben kann. Man beginnt das erst richtig zu schätzen, wenn man es selbst ausprobiert hat. Ich wusste es vorher auch nicht zu schätzen.


Antwort
Zitat
pg89
Joined: 05.04.2008

Es geht aber nicht darum, ob man nun sein Programm in einer oder in zwei Stunden schriebt, sondern darum einen Lernfortschritt zu sehen bzw. sein gelerntes anwenden zu können. Und da verstehe ich nicht, wieso das bei Java oder C "Wochen/Monate" dauern soll und bei Python nicht.


Antwort
Zitat
beg0r
Joined: 07.05.2006

Na gut, ich finde es auch übertrieben zu sagen, dass man in C oder Java lange braucht, um Erfolge zu sehen. Ich finde man kann da auch schnell Erfolge sehen und die Sprachen schnell lernen.

Andererseits sagst du ja selbst, dass man Programme in Python schneller schreiben kann. Man kämpft weniger mit der Programmiersprache und kann sich schneller auf echte Probleme konzentrieren. Das erhöht die Produktivität spürbar. Nicht nur bei Anfängern :P ..

Aber wenn jemand sagt, dass er Apps entwickeln möchte, fällt Python sowieso raus. Siehe OP. Es kommt am Ende immer drauf an, was man mit der Sprache machen möchte. Wenn jemand z.B. in Machine Learning einsteigen will, ist Python die #1.


Antwort
Zitat
flowIIpoker
Joined: 14.02.2007

meines erachtens geht es erstmal darum methoden und konzepte kennen zu lernen.

wegen mir auch gerne in einer pseudosprache


Antwort
Zitat
Dodekahedron
Joined: 05.04.2007

Moin, ich möchte als kleines Einstiegsprojekt einen Randomizer bauen mit einfachem Interface. Welche Sprache würdet ihr mir als Laie empfehlen?


Antwort
Zitat
pg89
Joined: 05.04.2008

Lies einfach den thread :|
Man kann die Frage nicht sinnvoll beantworten.


Antwort
Zitat
Rho0
Joined: 20.10.2008

Original von beg0r
Aber wenn jemand sagt, dass er Apps entwickeln möchte, fällt Python sowieso raus. Siehe OP. Es kommt am Ende immer drauf an, was man mit der Sprache machen möchte. Wenn jemand z.B. in Machine Learning einsteigen will, ist Python die #1.

wenn man machine learning machen will, dann gilt
#1 R
#2 C/C++
#3 Fortran
#4 Python

und das sagt jemand, der 3 Jahre im Bereich Machine Learning geforscht und publiziert hat (und jetzt im Bereich Computational Fluid Dynamics forscht und publiziert... gebrochener Lebenslauf ftw)

Original von Dodekahedron
Moin, ich möchte als kleines Einstiegsprojekt einen Randomizer bauen mit einfachem Interface. Welche Sprache würdet ihr mir als Laie empfehlen?

wegen dem Interface würde ich zu C# raten. Ansonsten (ohne Interface) C (wenn es um s reine Programmieren geht) oder Python (wenn s um Komfort geht). Natürlich kann man einen Randomizer am einfachsten in R machen, aber da lernst Du nichts, denn R ist für statistische Porgrammierung konzipiert, weswegen Dein Randomizer dort ein Einzeiler wird, bei dem Du nichts lernst.


Antwort
Zitat
flowIIpoker
Joined: 14.02.2007

ist R denn ueberhaupt eine programmiersprache .oO


Antwort
Zitat
Rho0
Joined: 20.10.2008

Original von flowIIpoker
ist R denn ueberhaupt eine programmiersprache .oO

laut Wikipedia ja


Antwort
Zitat

Würde HQ9+ lernen. Ist nur leider nicht Turing complete :(


Antwort
Zitat