Hintergründe der Programmierung
#1
geschrieben 07. Dezember 2012 - 02:59
Ich befinde mich derzeit in der Ausbildung zum Technischen Assistenten für Informatik in der Fachrichtung Anwendungsentwicklung. Ich habe bis jetzt hier hin und wieder mal mitgelesen (Unangemeldet).Jedoch nicht wirklich das gefunden, was ich suche.
(Leider) hat sich die Ausbildung zu Ausbildungsbeginn (letztes Jahr im August) in der Programmierung auf den Schwerpunkt PHP gerichtet. Jedoch wollte ich bei der Sprache C++ ansässig werden. Unser Dozent ist zwar ein alter C/C++ Hase, jedoch findet er nicht die nötige Zeit einen (anständigen und regelmäßigen) C++ Kurs mit in den Stundenplan einzubinden. Deswegen bin ich auch dran C++ eigenständig als Zweitsprache neben PHP zu lernen. Ich kann meinen Dozent zwar alles fragen, jedoch gibt es auch umfangreichere Themen über die man sicherlich auch Stunden reden kann.
Ich weiß natürlich, dass man als Entwickler sich nicht nur mit Code schreiben beschäftigt bzw. dass es nur ein kleiner Teil ist und die Planung der Software den wesentlich größeren Teil einnimmt. Allerdings finde ich die Programmierung im Gesamten interessant, wie kaum ein anderes Thema was mir gerade einfällt
Einige Grundlagen der Programmierung werden für mich jetzt langsam klar. Allerdings gibt es auch noch viele fragen die mich beschäftigen. Vielleicht findet sich ja jemand, der die Zeit findet die ein oder andere frage (im Moment nur die eine große Frage) zu beantworten.
Die erste Frage wäre: wie funktioniert ein Programm eigentlich? Ich meine damit die Prozesse, die ablaufen müssen, um ein Programm aus dem vom Menschen geschriebenen Code in eine vom PC verständliche Sprache zu übersetzen. Wie funktioniert der Kompiliervorgang? Wird der Code direkt in 0 und 1 (Nullen und Einsen) übersetzt oder in eine Zwischensprache (Assembler, etwas ähnliches wie Assembler oder Befehlssätze der Prozessoren)?
Das finde ich Schade, dass wir das nie wirklich behandelt haben. Vielleicht kann man das ganze auch nicht "schnell mal eben" erklären. Vielleicht ist das aber auch so umständlich, dass man damit ganze Bücherbände füllen könnte. Das ist eben so ein Knackpunkt, da ich immer wieder fasziniert bin, was man mit nullen und Einsen alles machen kann wenn man sich PC-Spiele von heute anschaut.
Das war es erstmal von mir. Ich wäre wirklich dankbar, wenn mir das jemand erklären könnte. Wahrscheinlich kommen später auch noch weiter fragen hinzu. Jetzt will ich es erstmal bei dieser einen belassen.
Einen schönen Tagesanfang und zugleich auch eine Gute Nacht an diejenigen, die zu dieser Zeit noch hier herum geistern
Grüße Pitanium
Anzeige
#2 _nobido_
geschrieben 07. Dezember 2012 - 11:48
http://de.wikipedia.org/wiki/Linker
Ansonsten hilft evtl. auch die Seite hier weiter: guckst du
greetz
Dieser Beitrag wurde von nobido bearbeitet: 07. Dezember 2012 - 11:49
#3
geschrieben 07. Dezember 2012 - 12:39
Ich kann dir gerne die Unterlagen vom Grundlagen der Programmierung Kurs von meiner FH hochladen, da lernst du die Grundlagen in C & C++ sowohl auf Windows als auch auf Linux (von simpler I/O bis hin zu Multithreaded Applications und Server / Client Kommunikation)
#4
geschrieben 07. Dezember 2012 - 14:00
@Ludacris Das PHP haben wir einer in Leipzig ansässigen Firma zu verdanken Die meinten doch, dass der TÜV Rheinland perfekt dafür geeignet ist die theoretische Ausbildung zu übernehmen. Deshalb wurde die komplette Programmierung in den Sommerferien (2011) von C++ auf PHP umgestellt was wir auch erst zu Ausbildungsbeginn erfahren haben.
Das mit den Unterlagen wäre schon eine tolle Sache, wenn du das machen würdest. Da wäre ich dir auf jedenfall sehr Dankbar
#5
geschrieben 17. Februar 2013 - 16:08
Ansonsten kommst du um ein gutes Buch zu deinem Thema nicht herum. Kommt jetzt drauf an was du genau wissen willst. Theoretische Grundlagen wie ein Programm funktioniert an sich (das kann sehr viel sein!) oder einfach nur wie man in C/C++ programmiert?
#6
geschrieben 18. Februar 2013 - 00:08
#7
geschrieben 18. Februar 2013 - 00:38
Steig einfach mal hier ein:
- Portable Executable Format (PE) (Windows)
- Executable and Linking Format (ELF) (UNIX und verwandte Systeme)
Mit Programmieren und Theorie hat das aber eher weniger zu tun. Eher mit Compilerbau.
Grundlagen der Programmierung gehen dann eher in Richtung Standardkonstrukt - Bedingungen, Schleifen --; Konzepte - also die Entwicklung von optimalen und effizienten Algorithmen -- und so weiter. Das hat dann allerdings nichts mit Programmiersprachen zu tun, sowas läßt sich in allen realisieren, nur halt jeweils etwas anders formuliert.
Würd Dir dringend empfehlen, Dich nicht auf Deutsches zu beschränken.
Standardlektüre ist hier "Introduction to Algorithms" von Cormen, Leiserson, Rivest, & Stein.
Dieser Beitrag wurde von RalphS bearbeitet: 18. Februar 2013 - 00:39
#8
geschrieben 18. Februar 2013 - 01:29
#9
geschrieben 28. Februar 2013 - 15:19
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
#10
geschrieben 28. Februar 2013 - 22:41
#11
geschrieben 01. März 2013 - 08:08
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
#12
geschrieben 01. März 2013 - 11:05
#13
geschrieben 01. März 2013 - 11:22
Man kennt ja die Ausgangssituation nicht immer. Wenn einer nur ein Programm sieht und denkt "Sowas will ich auch entwickeln können." Dann kann der ja auch eine völlig falsche Vorstellung davon haben, wie Programmieren geht und will gar nicht mehr Programmieren lernen, wenn er es weiß. Und für dieses erste Verstehen gibts sicherlich kein Patentrezept. Der Eine murkelt intuitiv praktisch rum, es macht klick und er ist begeistert und der Andere verheddert sich, kommt gar nicht klar und verzweifelt. Die Nächsten versuchen es theoretisch und lassen sich das erklären. Und dabei wird Einer neugierig und ist total begeistert und der Andere sagt Hilfe, das ist nichts für mich.
#14
geschrieben 02. März 2013 - 21:16
Es gibt einen Unterschied zwischen Scripten und Codieren und Programmieren. Der ist G-E-W-altig.
Programmieren ist letztlich nichts als die Übersetzung einer Problemlösung - die, und das ist GANZ wichtig, auf den (jeweiligen) Rechner optimiert ist. Dabei stehen Resourcenverbrauch und Geschwindigkeit an allererster Stelle. Das lernt man nicht mit Programmiersprachen; das lernt man über Algorithmen; erstere dienen dann lediglich dazu, dem Rechner letztere begreiflich zu machen.
Klar schadet es nicht, vorher ein paar Grundzüge kapiert zu haben - allerdings sind diese, *meines Erachtens*, trivial:
- Wenn A, tu B; sonst C ist eine ganz stinknormale if/then/else-Bedingung. Nur auf Deutsch formuliert. Ob ich da jetzt
if(a); then b; else c; fi;
oder
if(a) { b } else { c }
oder aber
If a Then B Else C EndIf
daraus mache ist *absolut völlig und total UNinteressant*.
Ganz und gar nicht uninteressant ist aber die Tatsache, daß -Bsp Gauß'sche Summenformel-:
r=0; for(i=1;i<=n;i++) { r++; } return r;
und
return n(n+1)/2;
identisch sind, nur daß die zweite Version signifikant schneller das Ergebnis liefert.
Für sowas hilft einem keine der Programmiersprachen, genausowenig wie beim Lösungsansatz selber (den kann man nämlich in *allen* Sprachen umsetzen).
Dieser Beitrag wurde von RalphS bearbeitet: 02. März 2013 - 21:18
#15
geschrieben 02. März 2013 - 23:14
Gruß
XD