muss ein echter Informatiker alle Befehle einer bestimmten Programmiersprache auswendig kennen, oder
geht es nur darum sie anwenden zu können, sodass man so oft nachschlagen kann wie man will? (Dann wäre doch alles viel viel einfacher oder nicht?)
Wie schwer ist es eigentlich so ein kleines 3D Spiel programmieren zu können? Reichen da ein paar Jahre für?
Wie kann man herausfinden, ob man im Programmieren talentiert ist und ob man für ein Informatik Studium geeignet ist?
Definitiv nein. Es wird wohl so gut wie keinen Programmierer geben (oder halt nur sehr wenige Genies) die alle Befehle, Funktionen etc. einer Programmiersprache kennen. Das ist fast unmöglich.
Es geht mehr darum, dass du ein solides Wissen (nicht nur ein knappes Grundwissen) hast. Wenn du weißt wie du programmierst, musst du manchmal nur wissen wo es steht :-D.
Um zu schauen ob du für die Programmierung geeignet bist, such dir einfach mal eine Programmiersprache aus (die du erlernen möchtest) und versuche ein bestimmtes Projekt umzusetzen. Am Anfang natürlich nicht gleich was zu komplexes. Du merkst automatisch ob es dir liegt oder nicht. Wenn du z. B. für leichte Lösungen keinen eigenen Weg findest und du die Programmierlogik nicht nachvollziehen kannst, dann wird es bestimmt schwer.
Ich persönlich finde das Delphi eine schöne sprache ist um die Programmierung kennen zu lernen...schön objektorieniert und einfach zu verstehen, kannst ja ma schauen ob das was für dich ist...programme für die delphi programmierung sind zb welche von borland (borland delphi 7 oder borland delphi architect 2005, wobei letzteres wohl zu teuer und zuuu professionell sein dürfte^^)
Eine Programmiersprache (ob das nun Assembler, C, C#, Java, Pascal, Python, Delphi, ...) hat typischerweise nur wenige Schlüsselwörter und Befehle. Bei Java sind's ca. 50 bei den anderen Programmiersprachen ist das auch nicht anders:
http://www.santis.ch/training/java [...] /keywords/
Die kann man nach kurzer Zeit in der Tat auswendig ebenso wie dessen gültige grammatikalischen Konstruktion. Wenn's nicht gerade die erste Programmiersprache ist lernt man dies innerhalb einer Woche.
Kannst Du die Programmiersprache, dann bringst nur in wenigen Programmiersprachen überhaupt etwas auf den Bildschirm. Der ganze Rest wird nämlich über Wiederverwendung abgefackelt. In Bibliotheken mit 1000den von Betriebssystem-Aufrufen, Algorithmen und Datenstrukturen lauern Funktionen, die Du aufrufen darfst um beispielsweise: Eine Datei von Festplatte zu lesen, etwas auf den Bildschirm zu schreiben, etwas über eine Internetverbindung zu versenden usw.
Die kann niemand vollständig und braucht man auch nicht. Wenn man sich in bestimmten Bereichen schon gut auskennt, verwendet man direkt die API Referenz oben. Ansonsten liest man sich in ein Thema (z.B. GUI Programmierung) ein und zu sehen wie die Klassen interagieren und wie sie das tun, was ich will. Im Fall von Java z.B. mit diesem Tutorial:
http://java.sun.com/docs/books/tutorial/
Was ist ein guter Programmierer?
. Zum einen gibt es erfahrene Programmmierer: Wenn Du schon 20 GUIs gebaut hast, dann weißt Du wie's tickt und wie man das am besten macht.
. Zum anderen gibt es solche, die neue Probleme so in ausführbaren Code gießen können, dass andere Programmierer dies ebenfalls für gut befinden würden. Lesbarkeit, Wiederverwendung, Erweiterbarkeit, Best-Practises, ... sind hier Schlüsselwörter.
Beides schließt sich nicht aus, aber erfordert Praxis, Erfahrung und ständige (auch theoretische) Weiterbildung.
Wie erkennt man, ob man ein guter Programmierer wird?
. Das was Du als Programm tippst ist nur die Spitze des Eisbergs. Der Computer interpretiert dies (alles was Du tippst hat eine Semantik = Bedeutung) und damit der Computer das macht was Du willst, musst Du schon beim Tippen die Semantik kennen und auch nachvollziehen können. Traditionell haben hier Menschen mit mathematischem und logischem Verständnis Vorteile. Aber eben nicht ausschließlich. Probier's aus.
Wie lange dauert es eine Fremdsprache zu sprechen? 1, 2, 3 oder 10 Jahre? Bei Programmiersprachen, Betriebssystemen und Informatik im allgemeinen ist das Themengebiet noch vielfältiger und deshalb schwieriger festzulegen. Es gibt theoretische Informatiker, die wissen nicht im geringsten wie ihr Computer aufgebaut ist (Welcher Prozessor, welche Caches, welche Busse, ...) - teilweise könnten sie kein e-mail Programm konfigurieren. Umgekehrt gibt es geniale Windows-Freaks, die bei Fehlern sofort sagen können wo man nachschauen soll und was man testen möge. Wiederrum gibt es Programmierer, Hacker und ScriptKiddies. usw.
erst mal danke an eure ausführlichen Antworten ( insbesondere an 7oby :-) ), ihr seid spitze.
Also ich beschäftige mich seit einiger Zeit intensiv mit dem Buch "Java" von Markt und Technik, kann
bisher auch alles wunderbar nachvollziehen, allerdings stehen da keine Aufgaben drin, sodass ich selbstständig "programmieren" würde.
(Kennt jemand gute Aufgaben im Netz zu Java OOP?)
Vorher habe ich mit "BlueJ" gearbeitet, das hat mir gar nicht gefallen, es hat einem zu viel Arbeit abgenommen
(Knöpfe erstellt usw.), ich hab also auch dort nicht wirklich selbst programmiert. Mit Notepad macht es mehr Spaß. :-)
Theoretische Informatiker? Lol das kenne ich. Also man sollte schon einbisschen Ahnung von dem Werkzeug haben,
mit dem man arbeitet, find ich. :-)
Ist eigentlich jemand von euch so fit, dass er sich in Assembler Programmierung auskennt? Soll ja was für die ganz
harten sein. Hat jemand von euch technische Informatik studiert? Interessiert mich auch sehr.
@madhonk
13 Jahre? Wow! Du hast bestimmt ne Menge drauf. Kannst du auch Modifikationen für Spiele schreiben? Ist das
schwer?
also für Assembler-Programmierung muss man nicht hart sein. Ist genauso eine Programmiersprache wie andere auch, nur muss man halt wirklich alles mögliche selber machen... Wenn ich ein Assembler-Programm schreibe, dann überlege ich mir zuerst, wie ich es in C ungefähr schreiben würde (Pseudocode oder auch ausführlicher) und dann überlege ich mir für die einzelnen Aktionen, wie man sie am besten in Assembler umsetzt. Habe aber bisher noch nichts weltbewegendes in Assembler geschrieben, habe auch erst vor nem Jahr damit angefangen, als wir im Studium (Elektrotechnik und Informationstechnologie) eine Vorlesung über Technische Informatik hatten.
Da bei mir im Studium programmieren zwar dazugehört, aber man doch auch (mehr oder weniger) mit nur wenig Programmieren durchkommt, kann ich sehr interessante Beobachtungen machen. Ich programmiere unterdessen seit ungefähr 8 Jahren (PHP, C, C++, Delphi, Java, Perl.....) und schlafe deshalb während den Informatik-Vorlesungen immer. Andere hingegen mühen sich an den einfachsten Aufgaben ab, weil sie einfach nicht die "richtige Denkart" fürs Programmieren besitzen. Sowas merkt man ziemlich schnell.
Zu Aufgaben: Überleg dir selber was! Fang mit irgendwas an, was dich interessiert und du denkst, dass es nicht zu schwierig ist. Und wenn du nicht weiterkommst, dann benutz Google bis du es nicht mehr sehen kannst ^^ Wenn du dann immer noch nicht weiterkommst, frag mal in einem spezifischen Forum nach. Vielleicht ist es gar nicht möglich oder man rät dir einfach sonst davon ab weil viel zu schwierig.
Im wievielten Semester bist du? Weißt du vielleicht wodrin der Unterschied zwischen dem Studiengang Elektrotechnik(Schwerpunkt Informationstechnik) und dem Studiengang technische Informatik liegt? Ich fange nämlich in ca. 1 Jahr vorraussichtlich an zu Studieren und weiß nicht welches von beiden.
Ist der Mathe Anteil bei dir im Studium sehr hoch?
Diese "richtige Denkart" fürs Programmieren, wie sieht die eigentlich genau aus? Man fängt doch eigentich immer zuerst mit Stift und Papier an und arbeitet sich dann systematisch vor oder?
Ich bin im 3. Semester. Da ich niemanden kenne, der Technische Informatik kennt, kann ich dir nur erzählen, was wir in der Vorlesung Technische Informatik machen. Wir arbeiten uns Schritt für Schritt vom untersten Level hoch und lernen nebenbei ein bisschen Assembler. Momentan befinden wir uns gerade bei Datenpfaden und Kontrollflussgraphen.
Bei Elektrotechnik und Informationstechnologie hat man natürlich Vorlesungen über Netzwerke und Schaltungen (Bauteile wie Widerstand, Kondensator, Bipolartransistor, Diode, Operationsverstärker und so weiter) und die Berechnung von jeglichen Netzwerken die solche Schaltungen beinhalten. Sowas wirst du in Technischer Informatik wahrscheinlich nie sehen. Wie es mit dem Unterschied in Physik aussieht, kann ich leider nicht einschätzen.
Der Mathe-Anteil ist, zumindest an meiner Universität (ETH Zürich, Schweiz), bei beiden Fächern identisch, wie bei praktisch allen Studiengängen an der ETH. Sehr viel Analysis (im 3. Semester unterschiedlich, je nach Studienrichtung) und Lineare Algebra sind wohl grösstenteils identisch. Als Elektrotechniker hat man bei uns noch eine zusätzliche Vorlesung über Komplexe Analysis (Laplace-/Fourier-Transformationen, Residuen, Komplexe Analysis und so Zeugs) die sonst niemand hat (ausser natürlich Mathematiker und Physiker), da man so Zeugs hauptsächlich bei der Berechnung von Elektrischen Feldern/Potentialen benötigt und das interessiert einen Technischen Informatiker nicht so sehr wie einen Elektrotechniker. Etwas anderes als Rechnen gibt es bei uns praktisch nicht ausser n'bisschen Programmieren (C++, Java, ASM....) und in Projekten (aber das ist natürlich universitätsabhängig).
Die "richtige Denkart"? Also wenn ich ein Hello World Programm schreibe, fange ich sicher nicht mit Stift und Papier an Stift und Papier nehme ich nur zur Hand, wenn ich vorhabe ein grösseres Programm zu schreiben mit vielen verschiedenen Aspekten, die miteinander agieren müssen. Denn sonst programmiert man was und merkt plötzlich, dass das mit was anderem nicht zusammenpasst und muss nochmals alles neu schreiben, was sehr nervig ist.
Aber wenn ich kleinere Programme straight forward programmiere, brauche ich eigentlich nie Stift und Papier. Die richtige Denkart heisst für mich, dass man ein Problem hat, das man in einer bestimmten Programmiersprache implementieren will/soll/muss. Im ersten Moment kann es auch so aussehen, als ob es gar nicht möglich ist, da ja jede Programmiersprache irgendwo ihre Grenzen hat. Meistens ist es aber trotzdem irgendwie möglich (ausser man versucht vielleicht mit HTML einen SQL-Query auszuführen ;-) aber HTML ist ja auch keine Programmiersprache) und dann stellt sich raus, ob man ein "guter" Programmierer ist oder nicht. Dafür muss man oftmals ideenreich sein und die Eigenheiten der Programmiersprache kennen um eine optimale Lösung zu finden.
Naja ist irgendwie schwierig zu erklären.
Fang einfach mal mit einer Programmiersprache an und wirf dich voll rein und übe, übe, übe bis dein Kopf raucht. Wenn du die Programmiersprache doof findest, such dir eine neue. Ich habe mit Webprogrammierung angefangen und aus reiner Neugier und Wissensdurst habe ich mich durch alle möglichen Programmiersprachen wie C++, Java, Perl etc durchgearbeitet.
Aber wenn du natürlich jede Programmiersprache oder das Programmieren selber doof findest, dann weisst du, dass es nicht das Richtige für dich ist. Mein Bruder hat nach 3 Informatik-Vorlesungen gewusst (er studiert Biologische Chemie), dass er jede Minute, die er mit Programmieren verbringen wird, hassen wird.
Dieses Thema ist länger als 6 Monate inaktiv. Bitte überprüfen Sie, ob Ihr beabsichtigter Kommentar noch einen Mehrwert bringt oder das Anlegen eines neuen Themas nicht besser wäre.