Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Richtig Coden lernen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.03.2009, 18:50 Uhr
banshee



hallo,

ich bin krampfhaft auf der Suche nach etwas, das mich in Sachen Programmieren weiterbringt.

Ich studiere gerade Info im 5. Semester und würde mir gerne nebenher ein bisschen besser C++ und Java beibringen, da an der Uni niemand Wert auf sauberen Code legt und man da sowieso so unter Zeitdruck steht, dass da eigentlich nur Müll bei rauskommt.

Ich hab schonmal bei sourceforge ein paar Projekte angeschaut, aber die sind meistens so dermaßen riesig, dass ich überhaupt keinen Überblick hab, und, als sagen wir mal, halbwegs fortgeschrittener Coder, stößt man bei den Projekten auch recht schnell an seine Verständnisgrenze.

Sich einfach selber hinzusetzen und zb. einen raytracer zu programmieren find ich jetzt zwar nicht schlecht, aber man lernt dabei eben auch nicht wirklich viel über effizientes Coden, denn am Ende kommt wieder nur ein zusammengebasteltes Wrack bei raus.

Ideal wären also ein paar kleinere Projekte, in denen man mal rumstöbert und selber rumprobieren kann, sowas wie eben ein raytracer, Kompressionsverfahren, einfache GUI-Anwendungen, webbasierte Anwendungen, Datenbanken etc. etc. Thematisch gibts da eigentlich keine Grenze, nur ich möchte weder vom Schwierigkeitsgrad erschlagen werden, noch irgendwelche langweiligen Tutorials lesen, von denen man sowieso nur 10% braucht.

Hat da irgendjemand eine Idee, womit mir geholfen werden kann oder was ich sonst tun kann, um gutes Programmieren zu lernen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.03.2009, 20:20 Uhr
Lensflare



ich denke dass man "gutes programmieren" dann lernt, wenn man viele unterschiedliche Projekte oder auch kleinere Sachen macht.
Wie du bereits gesagt hast, Datenbanken, gui, Grafik-Libs, web, networking usw...
Einfach alles was man noch nicht kennt ausprobieren. Es muss nicht unbedingt fertig werden, es reicht schon wenn man sieht, wie man bestimmte Probleme angeht und wie man das codetechnisch am besten umsetzt.
Wenn man dann bei Problemen nach Lösungen sucht, dann sieht man wie unterschiedlich Lösungen sein können und man trifft öfters auf Codestücke wo man dann zu sich selbst sagt:
"Wow, das ist ja viel besser als das, was ich bisher gemacht habe. Ab jetzt mache ich das auch so."

Tutorials lesen muss nicht unbedingt schlecht sein. Man entdeckt da auch immer wieder mal Sachen, die man evtl noch nicht kannte.

Und dann natürlich in Foren wie diesem hier stöbern, regelmäßig vorbeischauen.
Oft stellen die Leute Fragen, auf die es sehr interessante und lehrreiche Antworten gibt. Da kann man dann auch viel "abgucken". Und man findet auch neue Ideen, was eigenes zu coden.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 05.03.2009 um 20:23 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.03.2009, 20:27 Uhr
Pablo
Supertux
(Operator)


-->
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.03.2009, 20:29 Uhr
Pablo
Supertux
(Operator)


Übung macht den Meister ist ein Spruch, der besonders bei der Programmierung gilt: effizienten Code schreibt man nicht von heute auf morgen, sondern wenn man schon Tausende Codezeilen (und ebenso langer Debugging Nächten) hinter sich hat. Also, Übung Übung Übung ...
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 05.03.2009 um 20:30 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.03.2009, 00:13 Uhr
Hans
Library Walker
(Operator)


Hi,

ich weis nicht, ob es Dir weiter hilft, aber es gibt doch auch Bücher mit so tollen Titeln wie "Effiziente Algorithmen für...". - sofern die nicht zu mathematisch gehalten sind, könnte da was nützliches dazu drin stehen. Ansonsten wäre es eine Massnahme, sich zum Beispiel mal Gedanken über das Zeichnen von Linien und Kreisen zu machen, so einfach aus der mathematischen Theorie (analytische Geometrie, Vektoralgebra) heraus. - Anschliessend die eigenen Ergebnisse mit den Algorithmen von Bresenham vergleichen, und nach Unterschieden suchen, die die Effizienz steigern.

Ein anderes noch überschaubares Projekt wäre ein Parser für arithmetische Ausdrücke, der sich zu Anfang erst mal auf die Grundrechenarten beschränkt. Den kann man anschliessend schrittweise erweitern, indem man ihm Klammerausdrücke beibringt, dann so Sachen wie Exponentialfunktion, Wurzel ziehen, Winkelfunktionen usw. - Bei den Funktionen kann man evtl. auch mal versuchen sie selbst zu schreiben, anstatt auf die fertigen Exemplare aus Bibliotheken zurück zu greifen.
Oder man versucht sich gleich an einer Arithmetikbibliothek, die man z.B. braucht, wenn man mit mehr als 64 Bit-integerzahlen rechnen will. (Hier im Forum verweisen wir dann meisst auf die entsprechende GNU-Bib, aber so umfangreich muss man es zu Anfang ja nicht treiben.)

Für Astronomiefans ist in diesem Zusammenhang vielleicht auch ein Blick in dieses Buch motivierend... - das Cover spar ich mir hier.

Beim Thema Parser wären Textparser evtl. auch ganz interessant, z.B. um Indexdateien für Textarchive zu erstellen. Man könnte Textsammlungen nach bestimmten Kriterien (Stichworten) zu durchsuchen und auswerten. Banales Beispiel: die Anzahl der Wörter, aus denen (bestimmte) Texte in der Regel zusammen gesetzt sind. Anschliessend statistische Auswertung: Minimum X Wörter, Maximum y Wörter, Differenz d, usw.

Hoffe, da sind ein paar brauchbare Vorschläge dabei,
Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.03.2009, 04:29 Uhr
0xdeadbeef
Gott
(Operator)


Unter der Annahme, dass du die Sprache als solches beherrschst und es um Designprinzipien geht, für C++ ist da Effective C++ so ziemlich das Standardwerk. Es ist allerdings anzumerken, dass nicht alle der darin behandelten Prinzipien sich ohne weiteres auf andere Sprachen übertragen lassen. Der Autor hat zu diesem Buch außerdem zwei Quasi-Fortsetzungen geschrieben (More Effective C++ und Effective STL), die ich aber bisher nicht gelesen habe (Ich plane allerdings, das bei Gelegenheit nachzuholen). Ich kann dementsprechend wenig über ihre Qualität aussagen, ich nehme aber an, dass Scott Meyers in der Zwischenzeit nicht an Kompetenz verloren hat.

Ansonsten ist natürlich Erfahrung ein überaus wichtiger Faktor. Kleinere Projekte, die man sich selbst ausdenkt, können einen dabei weiterbringen, allerdings nicht unbegrenzt und vor allem nicht dann, wenn man sie nicht zu Ende bringt - also gerade dann aufhört, wenn es schwierig wird und man etwas über diese Schwierigkeiten lernen könnte. In diesem Zusammenhang würde ich vielleicht mal einen Blick auf Project Euler werfen.

Was alles weitere angeht, ist das Problem häufig weniger die Programmierung an sich als mehr das, was du implementieren willst. Um einen Parser zu schreiben, musst du dich mit formalen Sprachen auskennen, um ein Datenbankfrontend zu schreiben, mit Datenbanken allgemein, der Datenbank um die es geht und damit, wie diese Datenbank benutzt wird speziell. Du kannst hier nicht alles im Voraus lernen, was du jemals brauchen wirst, also ist es essentiell, lernfähig zu bleiben.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.03.2009, 11:40 Uhr
banshee



Nun gut, ich denke, das hilft mir alles doch schon ein wenig weiter, vielen Dank soweit
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.03.2009, 15:59 Uhr
Kest
saint


Programming: Principles and Practice Using C++
--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: