Erlernen von neuen Programmiersprachen

vatos123

Cadet 1st Year
Registriert
Sep. 2017
Beiträge
8
Hallo Leute,

vorab schon einmal: Falls diese Frage unter diesem Thread mega unpassend ist bitte ich dies zu entschuldigen, habe leider kein passenderes gefunden.
Ich studiere Maschinenbau und habe jetzt bald eine Informatik-Klausur, sind nur die basics. Dennoch sind einige sehr unverständlich bzw. unvollständig im Skript, daher werde ich mich ab und zu in diesem Forum melden, wenn dies in Ordnung ist. Wie gesagt, ich entschuldige mich, falls dies der falsche Thread ist, möchte keine Unordnung reinbringen.
Nun zu den einigen Dingen, die im Skript unverständlich sind:

1) Wie lernt man eine neue Programmiersprache und welche Elemente sollte man dafür anschauen?

Dazu habe ich herausgefunden, dass wenn man schon eine Programmiersprache drauf hat, man am Unterschied lernt und sich die Microsoft Basic-Familie anschauen muss. Ebenso steht dort was von VB-Net, aber konnte auch durch sehr vieles googlen keine eindeutige Antwort finden.

2) Wann benötigt man die Schlüsselwörter OVERLOAD, VIRTUAL, OVERWRITE?

Auch hier habe ich viel gegooglet, zwar einiges gefunden, aber stimmt nie 100% mit meinem Skript überein.

3) Wie ordnet sich das Internet in das OSI-Schichten-Modell ein?

Ich weiß wofür alle 7 Layer zuständig sind, aber wie sich das in das Internet einordnet ist mir nicht ganz schlüssig. Vielleicht isr die Antwort auch mega einfach und ich denke zu sehr nach...

Was könnt ihr mir empfehlen, falls dieser Thread unpassend ist, in welcher Section ich meine zukünftigen Fragen stellen kann?

Ich bedanke mich im Voraus.
 
3) Ich hätte jetzt gedacht du solltest einfach parallelen Ziehen zw. Der Hardware, die im Internet genutzt wird und dem OSI-Schichten. Also so wie hier als Kopplungselement eingetragen: https://de.wikipedia.org/wiki/OSI-Modell#Die_sieben_Schichten

Bin mir aber nicht wirklich sicher...


PS: habt ihr kein Internetportal, in dem du Kollegen/innen fragen kannst?
 
Zuletzt bearbeitet:
Microsoft Basic? VB-Net? :freak:

Ich kann zu deinen Fragen nicht viel beitragen (dass Internet im Wiki Eintrag unter Schicht 3 steht hast du vermutlich schon gesehen), aber ich möchte dir an dieser Stelle versichern, das nichts von all dem besonders relevant für deine Zukunft als Ingenieur ist und hoffe sehr, dass ihr auch auf Programmierparadigmen, Algorithmen und Datenstrukturen und Software Design eingeht. Das ist das Hintergrundwissen, das später relevant sein wird, wenn du selbst was programmieren musst (und dann meist in C/C++/Fortran/Python und eher nicht in Basic oder VB-Net).
 
2) Die Schlüsselwörter gehören selbst eher ähnlichen Sprachen.
3) Und wie lerne ich eine Sprache: an einem Beispiel(projekt).
1) Internet ist eine Vielzahl von Schichten. Ip ist 4. Allerdings rendern von Websiten sind 7 ;)
 
Naja wenn er ein Excelwarrior wird, dann braucht eher wohl "nur" VB-Skript. Oder er entwirft irgendwelche Steuerungen für CNC-Fräsen aber der Job ist so dermaßen vielfältig, das kann man jetzt kaum eingrenzen.

Wenn du bereits Grundkenntnisse in einer Programmiersprache hast, sprich die Grundprinzipien drauf hast und die Unterschiede kennst zwischen Objekt-orientierten und prozeduralen Sprachen ist der Rest nur noch andere Syntax. Klassisches Beispiel: Nimm etwas, das du bereits in Basic oder so programmiert hast und versuche das gleiche Problem in Python/Java/C#/Was-auch-immer zu lösen. Du wirst feststellen: Hast du einmal das Problem gelöst und einen Algorithmus gefunden der funktioniert so ist der Rest stumpfe Tipparbeit in der jeweiligen Syntax.

Zu den speziellen Funktionen: Bieten deine Profs keine Sprechstunden an oder gibt es keine Tutorien? Frage die Tutoren, die wissen idR am ehesten wie der Prof sein Skript interpretiert.

"Das Internet" basiert wie jedes andere "moderne" Computer-Netzwerk immer auf allen OSI-Schichten bzw alle haben darauf einen Einfluss wenn man es so verallgemeinern will. Du meinst aber vermutlich Schicht 3: IP als Protokoll über das die gesamte Kommunikation abläuft.
 
Zum OSI-Modell:

Applikationen durchlaufen in der regel alle Schichten, aber ich denke, dass dein Dozent wissen möchte, dass Dienste, wie HTTP oder FTP auf Schicht 7 (Anwendungsebene) beginnen. Dann durchlaufen sie die weiteren Schichten nach unten. Wichtige Schichten sind hier
Schicht 4(TCP/UDP):
- TCP sorgt dafür, dass dein Pakete auch alle ankommen und in der richtigen Reihenfolge zusammengesetzt werden.
- wichtig für Dateien, da sinst Pakete fehlen könnten und diese dann unbrauchbar werden
- UDP schaut nicht darauf, ob alle Pakete ankommen
- Skypecalls, Interttelefonie sind nich davon abhängig, ob auch JEDES Paket ankommt. Dann knackts halt mal in der Leitung :D
Schicht 3 (IP):
- Sorgt dafür, dass deine Pakete mit deiner IP Adresse versehen werden, also mit Netzwerkübergreifenden Adressen, die dein Router nutzt um das Paket durchs Internet zu leiten
Schicht 2(Ethernet):
- Die Schicht sorgt für die lokale Übertragung durch MAC Adressen (Media-Access-Control) - aka physikalische Adressen im gleichen Netzwerk
Schicht1(Bitübertragung):
- Regelt, mit welchem Medium z.B übertragen wird.

Stell dir vor, du willst eine Webseite aufrufen

Dein Browser sendet ein HTTP Request (Schicht 7) und leitet diesen weiter.
Angekommen bei Schicht 4 und 3 (TCP/IP) wird das Payload erst mit einem Quell und Zielport(Schicht 4) und einer Quell und Ziel IP Adresse(Schicht 3) versehen.
Da die Ziel IP Adresse aber nicht im gleichen Netzwerk ist sendet dein PC das Paket an das standardgateway über Schicht 2.
In der Regel ist das der Router.
Dein PC kennt die MAC Adresse des Routers (falls nicht erfragt er diese durch einen sogenannten ARP Request) und leitet das Paket dann weiter an deinen deinen Router. Dieser leitet das Paket dann weiter durchs Internet und ersetzt dabei deine Quell IP Adresse, die bisher noch deine IP Adresse im privaten Netzwerk war, mit deiner öffentlichen IP Adresse(Schicht 3) und den Quell Port mit einem neuen Quellport(Schicht 4) und speichert diese Veränderung in einer Tabelle um diese später abrufen zu können. Sonst wüsste der Router bei der Antwort nicht, zu welchem PC in deinem Netzwerk das Paket geleiter werden soll.
Dein Paket wandert dann über mehrere Knoten zum Zielnetzwerk(Ziel IP stimmt überein), wo es sich der Router dieses Netzwerks anschaut. Da du ja ein HTTP Request abgesetzt hast (Port 80), leitet der Zielrouter das Paket an den jeweiligen internen HTTP-Server, der auf Port 80 hört (Die Weiterleitung ist im Zielrouter festgelegt). Der Router sendet also das Paket an die MAC Adresse des Servers, dieser packt das Ethernetpaket aus, packt dann das TCP/IP Paket aus und in diesem Paket ist dann die eigentliche HTTP Anfrage, die der Server dann verarbeiten kann. Anschließend macht der Server genau das gleiche wie dein PC und schickt dir das Paket zurück. Dein Router schaut dann, zu welchem PC das Paket gehört und leitet es zum jeweiligen PC in deinem privaten Netzwerk weiter.
 
vatos123 schrieb:
1) Wie lernt man eine neue Programmiersprache und welche Elemente sollte man dafür anschauen?

Dazu habe ich herausgefunden, dass wenn man schon eine Programmiersprache drauf hat, man am Unterschied lernt und sich die Microsoft Basic-Familie anschauen muss. Ebenso steht dort was von VB-Net, aber konnte auch durch sehr vieles googlen keine eindeutige Antwort finden.

Es kann keine spezifische Empfehlungen für bestimmte Sprachen geben. Es gibt für verschiedene Anwendungen div. Sprachen die sich dafür durchgesetzt haben, wobei es eine stetige Entwicklung gibt in der einige Sprachen in der Versenkung verschwinden und neue Sprachen / Konzepte auftauchen. Wenn gibt es also konkrete Empfehlungen nur für konkrete Probleme.
Ansonsten empfehlen Viele natürlich gern was sie selbst kennen / können. Ganz nach dem Motto: "Wenn man einen Hammer hat sieht alles aus wie ein Nagel."

2) Wann benötigt man die Schlüsselwörter OVERLOAD, VIRTUAL, OVERWRITE?

Auch hier habe ich viel gegooglet, zwar einiges gefunden, aber stimmt nie 100% mit meinem Skript überein.
Über welche Programmiersprache unterhalten wir uns eigentlich?
Ansonsten kann man die Bedeutung von Schlüsselwörtern gut abfragen, es ist aber meiner Meinung nach nicht sinnvoll Fragen so zu gestalten und entsprechend Studenten dazu zu bewegen entsprechend angepasst zu lernen. Hinter diesen Schlüsselwörtern stecken wahrscheinlich ein grundlegendes Konzept der betreffenden Programmiersprache und das sollte verstanden werden.

3) Wie ordnet sich das Internet in das OSI-Schichten-Modell ein?

Ich weiß wofür alle 7 Layer zuständig sind, aber wie sich das in das Internet einordnet ist mir nicht ganz schlüssig. Vielleicht isr die Antwort auch mega einfach und ich denke zu sehr nach...

Was könnt ihr mir empfehlen, falls dieser Thread unpassend ist, in welcher Section ich meine zukünftigen Fragen stellen kann?

Ich bedanke mich im Voraus.

Auch wenn ich strikt dagegen bin, versuche in Erfahrung zu bringen, was für eine Antwort der Prof an der Stelle hören will und lerne sie stumpf auswendig. Deine Fachschaftsvertretung sollte da helfen können.
Begründung: Das Internet ist eines, wenn nicht das größte zusammenhängende technische System mit div. Technologien, die sich allesamt strickt nicht all zu sehr ans OSI-Modell halten*. Das Fass welches die Frage aufreißt ist viel zu groß um es in 1-2 Informatikkursen im Maschinenbaustudium zu behandeln und innerhalb einer Klausur schon gar nicht zu beantworten.

Alternativ hilft die englische Wikipedia da vielleicht etwas: https://en.wikipedia.org/wiki/Internet_layer

*Die Formulierung ist wirklich Absicht.
 
Vielen Dank, Leute. Die Antworten haben mir echt weitergeholfen.
Die nächste und letzte Ladung an Fragen kommt dann später, sodass dann alles geklärt sein sollte. :)
 
Zurück
Oben