Programmiersprache und Co.

Ich kenn mich schon etwas in Linux, HTML, PHP, Java, Basic, usw. aus. Trotzdem bin ich noch ein ziemlicher Amateur. Da ich weiter lernen möchte, habe ich ein paar Fragen bei denen Ihr mir hoffentlich helfen könnt:

1. Ich hab schon Grundkenntnisse in Java. Da ich mich jedoch auch für C++ interessiere wollte ich fragen, ob ich Java besser lernen ( und damit arbeiten ) oder auf C++ umsteigen soll?

2. Ich will als Übung ein kleines Programm erstellen, das als Übersetzungstool fungiert ( quasi ein kleines Wörterbuch ). Ist dafür eine DB ( z.B.: MySQL ) zwingend nötig oder kann ich das Projekt auch ohne DB bewerkstelligen?

3. Ich möchte mich auch auf den anderen Gebieten weiterbilden ( =) ), weshalb ich fragen wollte womit ich im Gebiet der Verschlüsselung/Kryptographie am besten anfange ( welches Themengebiet ) und welcher Mathestand ( besitze BOS Wirtschaft ) nötig ist ( und welche Mathebereiche ich evtl. nachholen sollte )?

Vielen Dank für Eure Hilfe ;)
 
Das lässt sich pauschal überhaupt nicht sagen.
Wir haben schon eine Menge Threads zu dieser Thematik, benutz mal die Suche.
Ich würde dir raten, erstmal bei Java zu bleiben.
Wenn du ein gewisses Level erreicht hast, lernst du neue Programmiersprachen, unabhängig davon, ob C++ oder etwas anderes, in wenigen Wochen.
Richtig produktiv wirst du dann noch nicht sein, dafür braucht man wesentlich länger, aber es wird dir leicht fallen, wenn du das strikt objektorientierte Konzept von Java verinnerlicht hast.
Ich verstehe nicht ganz, wie du auf Mathematik-Kentnisse kommst, wenn du in deinem Programm keine speziellen mathematischen Probleme lösen wilst, brauchst du es auch nicht.
Wenn du noch nichts gemacht hast, solltest du dir erstmal ein vernünftiges Buch kaufen. Für Java kann ich dir ein sehr gutes OpenBook empfehlen.
Die Frage mit der Datenbank kannst du dir durch ein wenig Nachdenken leicht selber beantworten. Es kommt wie gesagt auf den Anwendungsbereich an.
 
Programmiersprachen und Co.

Die Frage nach den Mathe-Kenntnissen bezieht sich auf die Frage, wie ich mich am besten in die Kryptographie einarbeite bzw. mit welchem Teil ich dort am besten beginne. Da die Kryptographie zu einem großen Teil auf Algorithmen aufbaut, wollte ich wissen welche Mathe-Kenntnisse ich benötige bzw. was ich mir hierfür aneignen sollte.

Bzgl. der DB wollte ich wissen ob man, wenn man ein Übersetzungstool ( z.B.: Englisch - Deutsch ) programmiert, eine DB ( für die Vokabeln ) benötigt oder ob es auch eine andere Möglichkeit gibt.

Die drei Fragen in meinem Post ( s.o. ) sind seperate Fragen und nicht aufeinander bezogen.
 
Ich selbst hatte mich für den Einstieg auch für Java interrisiert, aber es war ziemlich schwer reinzukommen.
C++ ist mir der Einstieg wesentlich besser gelungen.
 
Hi,

ich will mal versuchen die Fragen seperat zu beantworten:

1. Wenn du nicht eine bestimmte Sprache brauchst (beruflich oder für ein Studium oder so) solltest du wohl das lernen was dich am meisten interessiert und Spaß macht. Ob du nun erst Java lernst und dann C++ oder anderst rum ist denke ich mal egal. Die Sprachen sind beide objektorientiert und unterscheiden sich nicht wesentlich voneinander. Auch werden in der modernen Programmierungen immer wieder die gleiche Ansätze und Modellierungen für Problemstellungen gebaucht. Ob die nun in Java oder C++ realisiert werden müssen spielt eigentlich kaum eine Rolle; die Struktur des Codes wird sich nicht wesentlich ändern! Das einzige was sich verändert sin die Befehle an sich, aber ob du nun "cout <<" oder "System.out.println" schreibst ist wurscht.
Mit anderen Worten: Ob du einen Nagel mit deiner Tastatur in einer Wand versenkst oder deine Maus dafür verwendest ist egal. Der Nagel muss rein und der beste Weg ist drauf schlagen!

2. Für ein Übersetzungsprogramm is eine DB nötig, falls du nicht alles in den Code implementiernen willst (und das würde ich dir nicht raten). Es muss aber sicher kein SQL oder sonst was sein.
Eine DB kann auch eine einfache Textdatei sein in der du die Wörter immer paarweise speicherst. Die könnte dann z.b. so aussehn: "Hallo,Hello;Weg,Way;Turm,Tower;" usw. Diese DB ist dann natürlich nicht konsistent, aber das muss sie ja für ein kleines Übungsprogramm nicht sein.

3. Im Bereich Kryptographie können dir sicher andere besser weiterhelfen aber Schul-Mathematik wird dir wenn du etwas Professionelles machen willst sicher nicht helfen. Da arbeiten die besten Mathematiker/Informatiker dran, um immer noch geschicktere Algos zu entwickeln, die wieder ein bisschen effizienter sind als die letzen. Das hilft dir vielleicht etwas weiter: http://ds.ccc.de/081/byebye512bit
Aber Mathematik ist natürlich mit der Informatik und insbesondere mit dem Programmieren fest verbunden und über solide Kenntnisse sollte man, auch wenn man nicht unbedingt im Bereich der Verschlüsselung tätig ist, schon verfügen.

MfG,
Pacman
 
Hm, ich hätte da noch eine Frage die gut zu diesen Thread passt.
Sicher kennt irgendjemand von euch Perl und hat schon einige hübsche Progrämmchen damit geschrieben.
Ich wollte einfach nur mal so wissen wie die so ist. :D
Speziell betreffend den Einstieg und die Programmiersprache selbst, denn wie ich gehört habe, kann sich ein Perl geschriebenes Programm sich selbst verändern kann. Natürlich abhängig davon wie es der Programmierer programmiert hat. Das ist doch sicherlich ein Vorteil, diese Programmiersprache zu erlernen, oder?
 
Original von pacman
2. Für ein Übersetzungsprogramm is eine DB nötig, falls du nicht alles in den Code implementiernen willst (und das würde ich dir nicht raten). Es muss aber sicher kein SQL oder sonst was sein.
Eine DB kann auch eine einfache Textdatei sein

Autsch. Richtigstellung: Eine DB ist eine Datenbank, mit einer gewissen struktur. Wenn man sich mal einige Datenbanken anschaut, wird man sehen, dass diese jeweils unterschiedlich aufgebaut sind. Und ohne "richtigen" DB-Zugriff wird man wohl nicht an die Informationen da drin rankommen.

Eine Textdatei ist nicht mit einer Datenbank zu vergleichen!
Wenn du keine Datenbank nehmen willst, empfehle ich dir .ini-Dateien. Die haben auch eine gewisse struktur, und bei einigen Compilern werden entsprechende Header beigelegt, die den Zugriff auf .ini-Dateien erleichtern (ich persönlich kenne es nur aus Delphi (Pascal-Compiler) ;) ). Allerdings solltest du ab einer gewissen Datenmenge trotzdem Datenbanken nutzen. Das wird es einfach vereinfachen, wenn du sie schon leichter sortieren und verwalten kannst.


Zur Programmiersprache: Die Wahl der Programmiersprache ist eine kleine Glaubensfrage... die einen schwören auf Pascal, andere vergöttern C++, wieder andere lieben Java und manche machen alles in Basic... Welche Sprache du am Ende nimmst, ist egal. Einzige "Bedingung" (absichtlich in Anführungsstrichen!): Lerne eine Programmiersprache, die sowohl Zukunft hat, als auch "mächtig" genug ist, für die meisten Probleme. Denn mit Lisp wird man es wohl bedeutend schwerer haben, ein vernünftiges Programm zu erstellen, als mit C++. Wobei du da schon mit Java relativ gut beraten bist ;)
 
Programm - Datenbank

Ich will das Übersetzungstool in Java schreiben. Gibt es für die DB-"Problematik" da eine geeignete Lösung ( DB oder anderes )? Ich hab mal eine JDBC-Schnittstelle zu ner MySQL-DB geschrieben und da hat mein Rechner ( altes Teil / Win 98 ) leider recht lang gebraucht bis er alles hochgefahren hat. Desweiteren hats ne Menge Speicher gefressen. Deshalb wollt ich das bei dem Prog. nach Möglichkeit anders lösen....
 
Also ne Ini Datei für ne Übersetzungs Tabelle zu missbrauchen o.O keine Gute Idee ;)
Du kannst dir im Internet ja ne Free MySQL Datenbank holen wo du deine Tabellen drin speicherst und greifst dann mit deiner Anwedung drauf zu so sparst du dir den Teil mit der MySQL DB und dem Ressourcen verschwendung...

Ich würde aber von wegen der Abfrage Geschwindigkeit auch ne Datenbank empfehlen (je nach dem was dein Prog übersetzten soll bei 3-4 Wörtern die es übersetzten soll ist die Alternative mit der Ini Datei aber sehr gut ;)
 
Original von Malo
Original von pacman
2. Für ein Übersetzungsprogramm is eine DB nötig, falls du nicht alles in den Code implementiernen willst (und das würde ich dir nicht raten). Es muss aber sicher kein SQL oder sonst was sein.
Eine DB kann auch eine einfache Textdatei sein

Autsch. Richtigstellung: Eine DB ist eine Datenbank, mit einer gewissen struktur. Wenn man sich mal einige Datenbanken anschaut, wird man sehen, dass diese jeweils unterschiedlich aufgebaut sind. Und ohne "richtigen" DB-Zugriff wird man wohl nicht an die Informationen da drin rankommen.

Eine Textdatei ist nicht mit einer Datenbank zu vergleichen!

Also das sehe ich etwas anders. Eine Textdatei kann durchaus eine Datenbank sein! Mein Vorschlag einer einfachen Datenbank hat ebenfalls "eine gewisse Struktur" mit der das Auslesen einzelner Datensätze sicherstellen kann. Wie komplex man diese Struktur nun macht, bleibt jedem selbst überlassen. Ich habe nie behauptet das sie den Ansprüchen eines moderen Datenbanksystems genügen, aber für ein einfaches Übungsprogramm reicht das durchaus. Kein Mensch braucht zum Erlernen einer Programmiersprache Kenntnisse von relationellen Datenbanken oder SQL zu haben.
Wenn er aber eine bestehende Datenbank benutzen will muss er sich natürlich dem Konzept, dass die Datenbank verwendet, anpassen.

MfG,
Pacman
 
Zurück
Oben