Laden...

Forenbeiträge von Qwald Ingesamt 214 Beiträge

31.05.2009 - 13:01 Uhr

Hallo,
ich frag mich nur, wozu man denn eine Genauigkeit von 100 Stellen nach dem Komma benötigt?

Ansonsten:
BigInteger nutzen und alle Zahlen erst um den Faktor 1 Googol shiften bevor man damit rechnet.

D.h., x := 0,00000012345... wird zu x*10^100

13.03.2009 - 17:19 Uhr

Hallo,
ich möchte einen Hash Algortihmus implementieren und meine Klasse, die diesen Algorithmus implementiert, soll die natürlich die Oberklasse (Keyed)HashAlgorithm implementieren.

Diese hat Klasse drei abstrakte Methoden:
Initialize, HashCore, HashFinal.

Ist es ausreichend, nur diese drei Methoden zu implementieren oder muss man mehr beachten bzw. noch mehr Methoden überschreiben?
Welche sonstigen Angaben, z.B. über die Länge der Ausgabe etc. muss man noch machen?

Und sehe ich den Aufrufreihnfolge so richtig:
Wenn ich einen Hash berechne, wird erst HashCore aufgerufen. Beim Auslesen des Hashwertes wird HashFinal aufgerufen und anschließend direkt Initialize, damit der Hash-Algortihmus wieder scharf gemacht wird?

Ich bin dankbar für jede Antwort.

03.03.2009 - 21:58 Uhr

Hallo,

Warum gibt es soetwas nicht für den Endverbraucher?

Weil der Endverbraucher oft nicht bereit ist mehr als 30, 40 Euro für die Software auszugeben. Meistens möchte dieser es eh um sonst haben...

Eine höhere Qualität bei der Softwareentwicklung lässt die Kosten explodieren, die aber kaum ein Endverbraucher bereit ist zu bezahlen.
Oder hättest du 500 oder mehr Euro für deine PowerDVD Software ausgeben wollen? Ich glaube kaum...

Und nur weil man nicht nach ISO 900x zertifiziert ist, heißt dies nicht, dass man schlechtere Software produziert.
Oder anders herum: Nur weil man das ISO 900x Zertifikat hat, wird die Software nicht zwangsläufiger hochwertiger.

Möchte man deutlich bessere, d.h. zuverlässigere, Software haben, dann müssen die Preise sehr sehr stark ansteigen und neue Funktionalitäten werden nur sehr langsam eingeführt.
In Bereich mit sehr hohen Qualitätsansprüchen an die Software, beispielsweise in der Luftfahrt, ist das Testen der Software der mit Abstand größte Kostenpunkt. Innovationen werden dort sehr gebremst, da das validieren dieser sehr teuer ist.

Nun frag dich, ob der Kunde bereit ist, statt 39,99 Euro für sein Programm ganze 399,99 Euro zu bezahlen.

08.02.2009 - 21:18 Uhr

Hallo,
naja man kann die Integration als die Umkehrung der Differentialrechnung (Ableiten/Steigung bestimmen) betrachten.

Wenn du z.B. 100 Meter in 10 Sek. zurückgelegt hast, sind dies 10 Meter/Sek. (Dies wäre ableiten).

Integration macht dies genau anders herum:
Du legst 10 Meter/Sek (ohne Beschleunigung etc.) zurück und dies machst du 10 Sekunden lang.
Also hast du 100 Meter zurückgelegt.

Oder als Integral geschrieben (jetzt kommen meine ASCII Art skills raus):


    10
   /
  | 10 dt  = 100 
 /
0

Hier taucht kein t auf, da deine Geschwindigkeit ja nicht von der Zeit abhängt.

Nun geht mal zum gleichmäßig beschleunigten Fall vor, z.B. dem freien Fall:
Deine Geschwindigkeit ist dort ja zum Zeitpunkt t: g*t.
Wenn man nun wissen möchte, welche Strecke man in 10 Sekunden zurückgelegt hat man eben:


    10
   /
  | g * t dt  = 0,5*g*10^2
 /
0

Sonst:
Das dt steht für 'delta t', also die Differenz von t. Da t für deine Zeit steht, also Sekunden, integriert man nach 'delta Sekunden'.
Wenn man nun im Integral die Einheit m/s hat und man nach 'delta Sekunden' integriert, bleibt noch m über.

08.02.2009 - 21:08 Uhr

Hallo,

Hm, Promovieren kann ich doch Frühestens in 3 Jahren...bis dahin kann ich es doch wirklich auf eigene Faust probieren, Ideen sammeln, mir anschauen was andere machen und Mitstreiter suchen.

Gute Mitstreiter findet man zu solchen Sachen relativ schwierig, da die einfach sehr rare sind und oft hoch beschäftigt. Die typische Ausbeute sind Schüler oder Azubis, die sich noch nie so richtig mit KI beschäftigt haben, zumindest konnte ich dies bei dem ein oder anderem ähnlichem Projekt beobachten.

Aber wenn es mit der Promotion noch so weit ist (wobei 3 Jahre schnell rumgehen), kann man sich durchaus weiter mit dem Gebiet beschäftigen. Evt. wird bei dir an der Uni auch auf dem Gebiet geforscht, evt. kann man dort dann einen Platz als wissenschaftliche Hilfskraft ergattern. Wenn man einen guten Betreuer hat und dieser merkt das man bischen mehr kann als nur programmieren, kann das sehr lehrreich sein.
Hängt natürlich stark von der Uni ab.

Ansonsten würde ich dazu raten, die gängigen Publikationen und die gängige Literatur auf dem Gebiet zu lesen (bzw. zu verfolgen), denn das Gebiet KI ist echt sehr umfassend und man sollte ein solides theoretisches Wissen besitzen (umso weniger muss man dann am Anfang der Promotion lesen 😉).

Außerdem habe ich es doch schon eingegrenzt auf einen Intelligenten Spielebot. Noch einfacher möchte ich es nicht machen.

Gut, das ist ja eine ganz andere Klasse, ob man eine KI für ein spezielles Problem entwickeln möchte oder ob man eine allgemeine KI haben will.
Sonst gibt es sicher viele Techniken intelligente Spielebots zu schreiben, so dass man dort viel lernen kann und durchaus evt. auch den ein oder anderen Spielebot entwickeln kann.

Hast du evt. sonst mal geschaut, ob es nicht irgendwo bereits ein interessantes Projekt gibt, bei dem man sich beteiligen könnte? Eine kurze Suche bei SourceForge hat z.B. das Projekt Computational Intelligence Library zutage gebracht.

08.02.2009 - 17:07 Uhr

Hallo,

Ich vergesse es ganz bestimmt nicht!

Die Idee eine KI zu schreiben, kam mir nicht erst gestern!

[...]

Also, nimm dich etwas zurück mit deinen Kontraproduktiven "Das wird eh nichts" Damit hilfst du niemandem....

Wenn die Grundlagen etc. schon bestehen, warum suchst du dir dann nicht einen kompetenten Doktor-Vater an einer angesehnen Fakultät und promovierst dort über dieses Thema?
Ich mein, die Promotion wäre erheblich vielversprechender, denn welche guten KI-Forscher wird man in solch einem Forum antreffen, die sich von so einer waghalsigen Idee (eine allgemeine KI zu schreiben die selber forscht) mitreißen lassen? Vermutlich eh keinen. Du wirst größten teils nur Leute gewinnen können, die überhaupt keinen Schimmer über KI haben (evt. mal ein Minimax-Algorithmus geschrieben) und glauben das es relativ leicht wäre, eine allgemeine KI zu schreiben, mehr auch nicht.

Ebenso hat man bei der Promotion erheblich mehr Zeit sich mit dem Thema zu beschäftigen, trifft andere kompetente Kollegen und man würde so viel eher an das Ziel gelangen.

Aber ohne den Rahmen einer Promotion o.ä., als einfaches Hobby-Projekt: Keine Chance. Wirklich nennenswertes wird dabei nicht entstehen. Oder warum scheitern seit zig Jahrzenten Professoren, die den großteil ihrer Zeit damit verbringen, eine halbwegs gute und allgemeine KI zu schreiben?

Wenn man es wirklich als Hobby-Projekt machen möchte, dann sollte man es doch eher sehr stark eingrenzen was man mit der KI erreichen möchte.

07.02.2009 - 19:11 Uhr

Hallo,

Am Ende soll die KI forschen können, und sich selber verbessern.

Vergiss es, du wirst es eh nicht schaffen.

Seit über 40 Jahren versuchen Wissenschaftler soetwas, ohne großen Erfolg, nichtmal für sehr spezielle Probleme. Und da glaubst du, es mal ebenso zu schaffen, nur weil du einen Mitstreiter hast? Wobei nichtmal die Grundlagen über KI vorhanden sind?

Soll jetzt nicht böse sein, aber ich will dir einfach falsche Illusionen nehmen. Kauf dir ein gutes Buch über KI und lern die bereits vorhanden Grundlagen (z.B. über neuroale Netze), damit wirst du ausreichend beschäftigt sein 😉

Denn es gibt diverse Vorhaben, endlich mal eine KI zu schreiben, die selber forscht oder sich selber weiterentwickelt. Über die Vision sind diese Vorhaben nicht hinausgekommen.

Ansonsten: Neuronale Netze sind sehr interessant und können für viele verschiedene Zwecke genutzt werden, von der Bild- und Spracherkennung über eine Spiele-KI bi hin zu Expertensystemen.
Nur: Ein allgemeines neuronales Netzwerk welches mehr als nur eine spezielle Fähigkeit gut kann gibt es noch nicht wirklich.

05.02.2009 - 14:45 Uhr

Hallo,
hmm, man könnte doch einen lokalen Netzwerk-Socket erstellen, über den die beiden Applikationen kommunizieren.

Ob dies aber der übliche Weg ist kann ich nicht sagen, allerdings wird diese Praxis von vielen Programmen gemacht.

03.01.2009 - 19:28 Uhr

Hallo,
mit ADO.Net ist das doch sowieso schon alle standardisiert (oder täusch ich mich da?), du musst nur einen ADO.Net Client für die jeweilge DB finden (sollte es aber für alle großen Datenbanken geben).
Und natürlich möglichst allgemeines SQL verwenden und nicht irgendwelche DB spezifische SQL Statements an die DB senden.

Kann auch sein das ich mich täusche, aber evt. mal bei Codeproject.com suchen, solltest bestimmt was finden.

03.01.2009 - 15:21 Uhr

Hallo,

Du tust ja gerade so, als ginge es in der Mathematik um unumstößliche Gesetze. Das stimmt doch aber gar nicht. In der Mathematik legen wir diese Gesetze fest.
Das dachte ich bis jetzt so. Könntest du mir ein Beispiel oder Suchbegriffe geben?
Wenn das stimmt nehme ich alles zurück.

in der Schule wird Mathe gerne so unterrichtet, als sei alles was man so bekommt Gott-gegeben, unumwerflich und man müsse es so hinnehmen und akzeptieren. Ähnlich wie dass der Apfel vom Baum fällt.
In der Schule wendet man diese Gott-gegebenen Regeln einfach an.

Allerdings ist Mathematik nichts anderes als Definitionssache, dort geht man hin, definiert sich ein paar Dinge und leitet daraus Sachen ab. Solche Definitionen sind rein willkürlich gewählt. Jeder kann sich alles definieren, ob es Sinn macht, ist eine andere Frage.

Manche Definitionen/Gesetze sind aus der Wirklichkeit hergeleitet, z.B. wenn ich in eine Schale erst zwei Äpfel lege und dann drei dazu, dann hab ich genauso viele Äpfel in der Schale als wenn ich erst drei reinlege und dann zwei dazu. Also macht es Sinn, sich irgendeine Verknüpfung zu definieren, die Kommutativ ist (also 2+3 = 3+2).
Aber Mathematik darf man nicht mit der Wirklichkeit verwechseln. Mathematik ist einfach nur ein abstraktes Gedankengebilde, den 'Wrapper' zwischen Wirklichkeit und Mathematik stellt der Mensch her. Ob es pausibel ist, ist eine andere Frage.

In der Mathematik kann man z.B. problemlos eine massive Goldkugel vom Radius 1 so zerlegen (ich glaub in 4 oder 5 Teile), so dass man diese Teile durch drehen und verschieben im Raum zu zwei neue massive Goldkugel von Radius 1 zusammensetzen kann. Diese kann man weiter zerlegen, also ist es in der Mathematik problemlos möglich, eine massive Goldkugel vom Radius 1 in 10 Milliarden massive Goldkugel mit jeweils Radius 1 zu zerlegen. Also kann man das Volumen einer massiven Goldkugel problemlos um das 10 Milliardenfache vergößern. In der Mathematik!
Dies ist bekannt als das Banach-Tarski-Paradoxon

Wie gesagt, in der Mathematik definiert man sich oft willkürlich irgendwelche Eigenschaften die gelten sollen (z.B. x*x = x für alle x) und schaut dann, was denn noch gelten muss (hier würde dann auch noch gelten: x+x=0 für alle x, also auch z.B. 1+1=0). Ob man diese irgendwie gebrauchen kann um reale Probleme damit zu beschreiben ist nicht wirklich wichtig.

Sicher, Mathematik ist in sich dann eine logische Folgerung (aus x*x=x folgt x+x=0), die anfänglichen Definitionen sind aber oft willkürlich gewählt bzw. motiviert von der Realität aus gewählt.

Ein Buch das das etwas beleuchtet ist evt. 'In Mathematik war ich immer schlecht'. Ansonsten evt. bei Wikipedia etwas lesen, z.B. die Peano-Axiome oder Körper Axiome. Dies sind auch einfach Definitionen die man sich mal so ausgedacht hat und die sich dann als praktisch erwiesen. Dennoch wurden diese recht willkürlich gewählt und nicht alles kann man 'logisch erklären'. Warum ist z.B. 0! = 1? Oder 5^0 = 1?? Ganz einfach, weil man es so definiert hat.
Man hätte auch 0! = 0 definieren können, dann wären aber manche Folgerungen eben andere.

02.01.2009 - 17:38 Uhr

Hallo,
erfahrungsgemäß haben sehr viele Informatik-Studenten bei uns sehr große Probleme mit den Mathematik Vorlesungen, die zusammen mit Physiker und Mathematiker abgehalten werden. Die machen immer 3 Kreuze wenn alle Mathe-Vorlesungen vorüber sind.

Auch wenn das Ziel eines Informatik Studiums nicht die Programmierung ist, kann man nicht sagen, dass Informatik-Studenten Mathe-Genies sind.

Dabei sei aber erwähnt:
Echte Mathematik hat nur sehr wenig gemeinsam mit Schul-Mathematik. In der Schule gehts ums stupide Anwenden von Formeln, Lösungswegen, Algorithmen und man soll irgendwelche Sachen ausrechnen, wobei der allgemeine Weg bereits vom Lehrer geliefert wird (Beispiele: Extrempunkte bestimmen, Abstand zweier Geraden im Raum etc.). Für diese allgemeinen Wege setzt man dann seinen Spezialfall ein (z.B. f(x) = 2x^2) und berechnet das Ergebnis.

Richtige Mathematik ist anders. Dort geht es um das Beweisen von Aussagen, das Zeigen der Gültigkeit einer Aussagen. Viel gerechnet wird dort nicht mehr (als Mathe Student braucht man fast nie seinen Taschenrechner) und Zahlen tauchen auch in den meisten Vorlesungen nur noch selten auf.
Dort beweist man dann Aussagen wie: 'Wenn f'(x) = 0 und f''(x) != 0, so hat f im Punkt x ein lokales Extremun (d.h., in der Nähe um den Punkt x sind alle Werte von f größer gleich (Minimum) oder kleiner gleich (Maximum) als der Wert f(x)). Die Umkehrung ist im Allgemeinen falsch.'
Die Anwendung solch einer Aussagen um konkrete Extrempunkte einer Funktion zu berechnen interessiert einen dann meistens nicht mehr.

Damit tun sich sehr viele Informatiker sehr schwer. Mag sein das die in der Schulmathematik gut waren (wie gesagt, nur stupides Anwenden von Lösungsverfahren in der Schule), hier an der Uni haben aber fast alle Informatiker ein Gräul gegen die Mathe-Vorlesungen.

(Achja, selbst wenn man in der Schule in Mathe immer eine 1 mit Sternchen hatte, heißt dies nicht, dass man die Hochschulmathematik packt).

Für die meisten Entwickler ist es viel mehr wichtig, das Framework, die Bibliotheken und die Entwicklungsumgebung zu kennen.

Naja hier sollte man zwischen Programmierer und Software-Entwickler unterscheiden. Ein Programmierer sollte gut programmieren können, womit er das Framework, Bibliotheken etc. gut kennen sollte.
Ein Software-Entwickler sollte gut Software entwerfen können, dies ist viel mehr als irgendeine Programmiersprache zu kennen. Ich kenn einige (professionelle) Software-Entwickler, die bei den Feinheiten einer Programmiersprache große Wissenlücken haben, da sie seit längerer Zeit nur Software entworfen haben, ohne diese dann zu implementieren. Die scherzen dann gerne, dass die primär im Job nur malen würden. Würde die die Software dann implementieren, kämen keine besonders schönen Lösungen dabei heraus.

Ansonsten hilft Mathematik einem schon, auf einer abstrakteren Eben zu denken. Zwar braucht man oft nicht das mathematische Wissen zu einem bestimmten Bereich, die Denkweise und Herangehensweise ist aber auch für Informatik sehr hilfreich.

Außerdem schärft (zumindest Hochschulmathematik) auch das analytische Denken, welches ungemein wichtig ist, auch in der Software Entwicklung.

28.12.2008 - 22:20 Uhr

Abend,
unter der Speicheradresse des Pointer ist die Speicheradresse hinterlegt, auf die der Pointer zeigt.

Auch wenn es schon etwas länger her ist das ich in C programmier habe:
Reicht es nicht einfach ptr auszugeben? (printf("Adresse: %d", ptr))

Ansonsten die Speicheradresse für eine Funktion kann man in C mittels &name_der_funktion ermitteln.

Also:


void output() {
  printf("Hello World");
}


int main() {
  printf("Meine Funktion output ist unter der Speicheradresse &d", (unsigned)&output)
}

Dieser Code sollte dir die Adresse von der ersten Zeile von output liefern.

Was dies nun mit decompilieren zu tun hat erschließt mir nicht ganz.
Was du damit Anfangen willst/kannst, leider auch nicht. Evt. mal genauer erörtern, was du haben möchtes. Vielleicht finden wir dann einen schönen Weg dies umzusetzen.

26.12.2008 - 17:29 Uhr

Hallo,
ich habe im Internet eine sehr schöne (Open Source) Java-Library gefunden, für die es in der .Net Welt mit Abstand keinen Ersatz gibt.

Zuerst habe ich versucht, diese per Java Language Conversion Assistant (JLCA) von Visual Studio 2005 zu konvertieren, leider ohne Erfolg (laut Bericht ~1000 Fehler).

Dann habe ich ein J# Projekt erstellt und konnte mit ein paar Modifikationen eine .Net Library erstellen 😃
Das Problem ist nun:
Ich möchte mit C# auf diese J#-Library (eigentlich Java Library) zugreifen, aber die Hauptklassen dieser Library erwarten im Konstruktor als Argument ein 'java.io.file' Object, das Problem ist aber ja, dass es in C# kein java.io.file gibt.

Nun kann ich ja die vjslib.dll und vjslibcw.dll in mein C# Projekt einbinden, dann klappt alles wunderbar.

Dies sind ja Dateien von des J# distribution pack, sprich, der Client muss dieses installiert haben. Oder sind diese Datei schon im normalen .Net Framework (2.0) enthalten?

Gibt es auch einen Weg, dass der spätere Client/User nur das .Net Framework installiert haben muss?

Als mögliche Lösung habe kenn ich ikvm, das Problem ist, dass dort das OpenJDK mit rund 26 MB einfach zu groß ist und somit die Größe der Anwendung sprengen würde.

Gibt es auch einen anderen Weg? Also ohne J# installiert zu haben und ohne den Overhead des OpenJDK von ikvm?

Und noch eine Frage:
Wie sieht es generell mit der Interoperabilität zwischen C# und J# aus? Mal angenommen ich hab eine J#-Library die in keinem Paramater java.io.file und ähnliches benötigt, ist diese dann problemlos interoperabel mit C#?

Muss auf dem Client später noch mehr als nur das .Net Framework installiert sein (die J# Library würde intern weiter auf java.io & co zugreifen)? Oder ist der spätere Anwender wirklich gezwungen das J# distribution pack installiert zu haben, wenn er die J# Library zugreift?

Über Hilfe würde ich mich echt freuen.

08.12.2008 - 21:37 Uhr

Hallo,

Danke für die Tipps 😃
Tipp Nummer 2 klingt super! Hab ich da dann auch nur ein Event in meiner Form, das für alle Buttons gültig ist?

In deinen Form hast du dann überhaupt kein Event.
Das alles wird in dem Control realisiert, in deinem Form fügst du dann nur 10 mal dein Textbox-Button-Control hinzu.

Achja als Ergänzung zu:
Statt dies über Namen zu machen, könnte man auch in einem Array/Hashtable/Dictionaryetc. festhalten, welcher Button zu welcher Textbox gehört.

Also in der Form:
Dictionary<Button, Textbox> zuordnung = new Dictionary<Button, Textbox>();
//...

Dann bei der Methode für das Event:
zuordung[Button_der_gedrückt_wurde].Text = Text_aus_der_Datei;

08.12.2008 - 20:07 Uhr

Hallo,
Möglichkeit gibt es diverse, zwei sind:

  1. Button und Textbox mit Nummern versehen, also Button1 zu Textbox1 usw.
    Dann zeigt jeder Button auf einen Event-Handler. Der öffnet dann den Dialog etc., schaut welcher Button gedrückt wurde, z.B. Button6, und schreibt es dann in Textbox6

Oder (würde ich eher bevorzugen):
2) Du erstellst ein Control, der eine Textbox und einen Button beinhaltet. Drückt man den Button => Dialog => Datei erscheint in Textbox.
Dann in deinem Form hast du einfach nur 10 dieser Controls.

07.12.2008 - 17:47 Uhr

Hallo,
seit wann ist denn Zend Studio 'server basiert' und was verstehst du darunter überhaupt?

Oder suchst du evt. einfach nur ein Versionierungstool wie SVN oder CVS? Für SVN gibts auch Plugins für Visual Studio.
Ansonsten kannst du noch Microsoft Source Safe verwenden.

07.12.2008 - 14:53 Uhr

Hallo,

Eine if-Abfrage kostet so wenig Performance, dass du sie durchaus in jedem Schleifendurchgang eine stehen haben kannst.

Es gibt im hoch performance Bereich nichts schlimmeres als Sprünge, egal ob bedingt oder unbedingte Sprünge.
Diese brauchen unglaublich viel Zeit und schmälern die Performance des Programmes enorm! (Gut, manch andere Dinge sind noch erheblich schlimmer)

Hinzu kommt die Auswertung des Statements, die unter Umständen längern dauern kann. Das Ergebnis sollte man also evt. vorab berechnen und dann nur noch auf true/false überprüfen.

Da sich aber C# für hoch performance Rechnen eh nur bedingt eignet (besser wäre C/C++), kann man die Variante von winSharp93 problemlos nutzen.

Und was die Performance angeht:
Normalerweise sind solche Überlegungen eher überflüssig und bringen keinen Performance Gewinn. Ganz anders sieht es aus, wenn deine foreach Schleife z.B. 10 oder 100 Millionen Durchläufe hätte. Dann merkt man schon ob dort ein bedingter Sprung enthalten ist oder nicht.

07.12.2008 - 14:46 Uhr

Hallo,
ein Root/vServer-Server ist leider nicht möglich, da zum einen das nötige Know How fehlt einen Root-Server richtig abzusichern und vorallem auch die Zeit für die ständige Pfelge und Kontrolle des Servers fehlt.
Da ist mir eine gemietete Datenbank bei einem vertrauensvollem Hoster bedeutend lieber, die Gefahr etwas falsch zu machen ist geringer und der Zeitaufwand für die Pfelge ist erheblich geringer bzw. diese obliegt beim Hoster.

Ein managed Server ist aus Kostengründen leider nicht möglich.

07.12.2008 - 11:55 Uhr

verwendetes Datenbanksystem: MySQL

Hallo,
und zwar möchte ich 2 MySQL Datenbanken sychron halten, bevor ich aber nun auf Google verwiesen werde, möchte ich euch mein Problem etwas genauer erklären, denn es ist leider nicht so einfach wie gedacht.

Also ich schreibe eine Applikation, die wichtige Daten (Kundendaten etc.) auf einem MySQL Datenbank Server hinterlegt. Dieser Datenbank-Server ist bei einem entsprechenden Webhoster gemietet (normaler Webspace mit Datenbank).
Die Applikation arbeitet eigentlich primär auf dieser Datenbank.

Der Datenbank Server ist nun per Internet zu erreichen, da die Applikation an den verschiedensten Orten in Deutschland eingesetzt werden soll, wobei man aber nicht jedes mal wieder die Applikation mitschleppen muss, sprich, lokale Speicherung der Daten ist nicht möglich.

So nun ist aber das Problem, was passiert, wenn der Internet-Zugang mal nicht möglich ist. Dann würde das Programm nicht lauffähig sein, was vermieden werden soll.

Also dachte ich mir, ich arbeite mit 2 MySQL Datenbanken, eine lokal auf dem jeweiligen Rechner hinterlegt und eine Master-Datenbank im Internet.

Aber wie hält man diese nun sychron?
Da ich an der MySQL Datenbank im Internet nichts ändern kann, entfallen die MySQL Replikations Techniken soweit (oder?). Ebenso kann ich auf dem Web Space auch keine eigenen Anwendungen laufen lassen.

Nun hab ich mir folgendes Konzept überlegt:
Die lokale Anwendung kommuniziert ausschließlich mit der lokalen Datenbank. Wenn nun ein Insert, Update oder Delete durchgeführt wird, dann geschieht dieses auf der lokalen DB.
Zusätzlich werden diese Befehle an einen Background-Service gesendet der diese abspeichert und abarbeitet. Wenn also eine Internet Verbindung besteht, sendet der Background-Service diese SQL Befehle weiter an den Master-MySQL Server im Internet.
Dort wird eine Historie geführt (eine weitere SQL Tabelle), welche SQL Befehle (nur Insert etc.) im gesamten Leben der Datenbank bearbeitet wurde.

Wenn sich die lokale DB nun sychronisieren soll (es wird regelmäßig überprüft ob das nötig ist), dann wird in der Historie der Master-Datenbank nachgeguckt, ob neue SQL Befehle vorhanden sind. Sollte dies der Fall sein, werden diese an die lokale DB gesendet und in der lokalen DB als 'ausgeführt' vermerkt.

Die Datenbank ist relativ klein und der Zuwachs ist auch gering. Ebenso sind nur maximal 2 Personen mit dem Programm am arbeiten.

Seht ihr Probleme in meinem Konzept? Wie könnte man es besser lösen? Gibt es da irgendwelche Strategien die man anwenden könnte?

02.11.2008 - 14:10 Uhr

Hallo,
du kannst du GetHashCode() überschreiben und dann selber einen verlässlichen Algorithmus zur Bildung des Hashcodes schreiben, oder?

08.10.2008 - 15:19 Uhr

Hallo,
was verstehst du unter Berufsethik? Kann mit dem Begriff in Zusammenhang von (Software)-Entwickler nicht viel anfangen.
Klär uns auf, was du damit nun genau meinst.

04.10.2008 - 14:00 Uhr

Hallo,
leider erkenn ich den Sinn nicht ganz. Wenn ich eine List oder Hashtable/Dictonary verwende, dann kann ich die Methode Contains verwenden.
Was mir nun IsIn bringt, ist mir fraglich. Wann übergebe ich mal einer Methode mehrere Parameter um zu testen, ob dort der Wert enthalten ist? Eher selten.

Sinnvoller wäre da, wenn IsIn allgemein arbeitet, ich diesem ein Array, List, Hashtable, Dictonary oder eine param List übergeben könnte. Nur eine param List halte ich persönlich für etwas nutzlos, da solchen Daten meist eh in irgendwelchen Datenstrukturen (Liste, Hashtable, bin. Baum) anfallen und diese eigentlich eine Contains Methode anbieten sollten.

03.10.2008 - 13:58 Uhr

Hallo,
naja Ideen finden sich wie Sand an Meer, man muss einfach nur Anfangen. Zu empfehlen sind aber auch größere Projekte, denn daran wächst man am meisten.

Kannst z.B. ein kleines Spiel implementieren, z.B. 4-Gewinnt oder so. Kannst da ganz am Anfang mit einer Konsolen Variante anfangen, dann evt. ne echte GUI, dann noch ne KI, evt. so erweitern dass man es übers Netz spielen kann usw.

Das ist schon ne ganze Menge die man da machen kann, dennoch kann man klein Anfangen und einfach am Anfang ne simple Konsolen Variante haben.

Ansonsten evt. Programme schreiben, die dir schon immer gefehlt haben oder Programme, mit denen du nicht zufrieden bist.
Dich nervt der Download-Manager von IE, Firefox oder Opera? => Schreib deinen eigenen in .Net
Du hättest gern die Dateien in einem Ordner von deinem PC und deinem Laptop synchron => Schreib dir ein Programm dazu
Du vergisst oft Geburtstage => Schreib dir ein Programm dazu

Die Möglichkeiten sind eigentlich unbeschränkt.

Persönlich empfehle ich immer etwas umfangreichere Projekte. Diese Standard Programmieraufgaben (z.B. Primzahlen zwischen 1 und 1 Mio. ermitteln) sind einfach zu kompakt und lassen sich meist in einer Klasse bzw. Methode lösen. Wirkliches programmieren, so wie es später verlangt wird, erlernt man nicht.

08.09.2008 - 19:52 Uhr

Hi,
weil ein Fingerabdruck viel cooler kommt.

Öffnest dein Laptop, ziehst deinen Finger, streichst einmal kurz übers Pad und dann... 8)

Hat soetwas James Bond mäßiges.

Wer hat denn da noch Lust nach dem booten irgendein komisches Passwort einzutippen, ist doch mega uncool. So ein blöder schwarzer Bildschirm mit weißer Schrift... Nene, so kommst du nicht in die oberen Liegen der Geheimagenten...

01.09.2008 - 20:50 Uhr

Hallo,

... findet man mit 'Heimwissen' doch recht schnell einen Job in dem Bereich.
Nur weil das so ist, muss das nicht unbedingt heißen, dass es gut ist und die Leute die da eingestellt werden die Arbeit auch können!

Da gebe ich dir Recht. Es gibt immer noch sehr viele eher schlechte Programmierer. Vorallem im Bereich Webprogrammierung findet man viel murks.

Damit hat man in Deutschland eh noch ein Problem, da es zu wenige richtig ausgebildete Anwendungsentwickler gibt.

Fachkräftemangel gibts in allen Bereichen der IT, da muss man eben nehmen was kommt.

Wie auch DavidT schon sagte, kann man C#/.NET im Alleingang lernen (sag ich nix gegen). Aber Softwarentwicklung ist mehr als das und im Alleingang nicht einfach so gelernt.

Jein.
Man muss immer darauf achten, was man alles unter Softwareentwicklung versteht.

Mit gutem 'Heimwissen' findet man problemlos eine Anstellung als Programmierer (Programmieren nach Spezifikation), als Tester oder zum Schreiben z.B. einer technischen Dokumentation.
Auch findet man relativ leicht einen Platz bei kleineren Unternehmen, die z.B. individual Programmierung für klein und mittlere Unternehmen übernehmen.

Hier muss ich nicht der Guru sein, wenn ich für die Gärtnerei von nebenan ein kleines Progrämmchen für die Verwaltung der Bestände schreibe.

Hier ist man mit Heimwissen oftmals absolut ausreichend qualifiziert. Wie gesagt, wenn man selber, oder evt. mit anderen, Projekte in der Größenordnung geschrieben hat, ist man meines Erachtens mehr als gewappnet.

Klar, manche können gerade mal eine kleine Konsolenapplikation schreiben, die die Nullstellen eines Polynoms berechnet und die nennen sich dann Programmier bzw. Softwareentwickler. Aber davon geh ich hier nicht aus.

Ganz anders sieht es bei wirklich komplexen Business Lösungen aus, bei denen größere Software-Häsuer ganze Teams dauerhaft abstellen um z.B. für ein Energiekonzern eine Software zum Energiemanagement zu schreiben.
Hier kann ich natürlich als unbedarfter Quereinsteiger nicht direkt in die Softwareentwicklung einsteigen. Hier würde man dann eher im Bereich Programmierung (nach Vorgaben) arbeiten können.
Aber auch ein frisch ausgebildeter Anwendungsentwickler hat eigentlich keine große Chancen, in der Entwicklung mitzumischen zu können.

Hier sind wirklich Experten gefragt, aus den unterschiedlichsten Bereichen und vorallem mit viel Berufserfahrung. Solch eine Software zu entwickeln ist höchst komplex.

Aber nicht jede Software ist so umfangreich.

Applikationen fangen bei der kleinen Newsverwaltung für eine Firmenhomepage an und sind nach oben kaum beschränkt. Wie gesagt, es gibt Firmen, dort arbeiten dauerhaft dutzende Leute nur an einem Projekt, z.B. für eine CRM Anwendung.
Die kleine Newsverwaltung kostet evt. nur wenige hundert Euro, während so eine CRM Kosten in die Millionen verursachen kann [1].

Dennoch nennt sich beides Softwareentwicklung, auch wenn beide Anwendungsfelder sehr unterschiedliche Anforderungen haben.
Wenn für die kleine Newsverwaltung der Code unsauber ist, ist das meistens kein Problem. Solange es funktioniert, ist es gut (in diesem Fall).
In anderen Bereichen würde soetwas zum Scheitern des Projektes führen und enorme Kosten verursachen.

Ich schätze, ich hab genügend vom Thema abgelengt und hoffe, dass Softwarentwiklung nicht mehr wie Sandkastenspiele angesehen werden. 😉

Sowas hab ich auch nie behauptet.

Ich sagte nur, dass es vergleichsweise einfach ist, als Quereinsteiger bzw. als jemand mit 'Heimwissen' in der Softwareentwicklung (oder Programmierung) in Arbeit zu kommen.
Möchte man aber in den Bereich eingebettete Systeme, Halbleitertechnik, dann wird das mit Heimwissen erheblich schwieriger.

Das heißt nicht, dass Softwareentwicklung einfach oder leicht wäre, es gibt einfach deutlich mehr Stellen auch für nicht ganz so qualifizierte Arbeiter. Ebenso ist es auch leichter, in Softwareentwicklung/Programmierung sich die Grundzüge anzueignen.

Und es gibt diverse sehr sehr gute Softwareentwickler, die weder ein Studium noch eine Ausbildung in die Richtung absolviert haben.
Schaut man sich evt. mal etwas im Open Source Bereich, bzw. Linux/Unix Bereich, um, so stellt man fest, dass die Entwickler bzw. Gründer von Projekten nicht immer die Software-Entwicklungsgurus mit zig Jahren Berufserfahrung sind.
Solche Software-Gurus aus der Industrie haben oft nicht mehr die Zeit, irgendein freies Projekt nebenher zu betreiben.

Deswegen sollte man Quereinsteiger auch nicht runtermachen und die Meinung vertreten, dass man nur durch Studium/Ausbildung ein wirklich guter Softwareentwickler wird. Diverse freie Projekte belegen das Gegenteil.

@no1:

Es gibt übrigens (aus erster Hand) Unternehmen, die einen Master-Absolventen generell nicht mehr bezahlen, als einen Bachelor, sondern nur einen akademischen Abschluss (egal ob Bachelor oder Master) + die nachfolgende Berufserfahrung.

Die Statistiken [2] sagen meistens was anderes. Klar, nicht jedes Unternehmen hält sich an eine Statistik und es gibt natürlich auch diverse Bereiche, in denen ein Master wirklich keinen Sinn macht (z.B. Webdesign/(kleinere) Webprogrammierung).

Aber mit einem Master hat man doch schon die besseren Verhandlunskarten, klar, man wurde zwei Jahre länger ausgebildet.

Was man aber auch beachten muss, ist, dass man als Bachelor Absolvent zwei Jahre früher Arbeit findet und somit zwei Jahre mehr Berufserfahrung hat.
Wie man weiß, steigt das Gehalt recht schnell mit der Berufserfahrung, so dass sich evt. ein Bachelor sogar im Endeffekt rechnen könnte (früher Lohn, keine Ausgaben für Master, mehr Berufserfahrung).

Deswegen sollte jeder Wissen, was einem liegt und nicht so sehr auf irgendwelche Gehaltsstatistiken schauen.

PS:
Bevor mich jemand falsch versteht:
Ich möchte weder Bachelor, Berufsausbildungen, Quereinsteiger oder Softwareenwickler schlecht machen bzw. beleidigen noch irgendwie besondere Bereiche oder Wege belobigen.
Ich bin der Auffassung, dass es am besten ist, wenn man das macht, was einem liegt. Was soll man ein theoretisches Uni Studium beginnen, wenn einem eher die Praxis Spaß macht?
Mit dieser Strategie fährt man meistens am besten, da man normalerweise in dem gut ist, was einem auch Spaß macht.
Deswegen kann man froh sein, dass es soviele Kombinationsmöglichkeiten gibt und dass dort hoffentlich für jeden etwas dabei ist.

[1] Nach Reference customers slam Siebel kostet die durchschnittliche Implementierung von Siebel fast 7 Millionen Dollar.
Siebel ist eine CRM Applikation, die aber für Kunden normalerweise nochmal speziell zugeschnitten wird.

[2] Spiegel

31.08.2008 - 22:41 Uhr

Hallo,

Hallo Qwald,

Für jeden ist es problemlos möglich, PHP, HTML, CSS und JavaScript selbstständig zu erlernen und damit ein guter Webentwickler zu werden. Ebenso leicht kann man C#, ein paar Design Patterns und Vorgehensmodelle erlernen und ein anständiger .Net-Softwareentwickler werden.
Aber eine hardware description language zu erlenen und seinen Bereich soweit zu beherschen, dass man z.B. irgendwelche Mikrochips entwerfen kann, sowas kann man sich kaum zuhause beibringen.
Hey! Das ist ja schon fast beleidigend.

Es tut mir leid, falls es so rübergekommen ist. So war es nicht gemeint.

Job als Softwareentwickler ist nichts für Nebenbei und auch nicht "so" einfach. Es ist nicht so aufwändig wie Halbleitertechnik, aber schon merh als C#-Lernen und "ein paar Design Patterns lernen". Man wird kein Guter, noch nicht mal ein anständiger Softwarentwickler, wenn man es nicht gescheit gescheit lernt.

Das Softwareentwicklung nichts für Nebenbei ist, ist mir klar. Das habe ich auch nie behauptet. Gute, komplexe Software zu entwerfen und zu implementieren ist sehr aufwendig und auf gar keinen Fall ein Kinderspiel.

Aber wie DavidT schon anklag, meinte ich damit, dass man z.B. C#/.Net relativ selbstständig erlernen kann. Es gibt diverse gute Bücher und Tutorials die einem die Sprache näher bringen, dann liest man evt. noch 'Praxisbuch Objektorientierung', Standardlektüre über Design Patterns und Softwareentwurf, sowie über Vorgehensmodelle.
Mit ein bischen Erfahrung, indem man selber kleinere und größere Projekte realisiert, ist man mehr als Fit für den Arbeitsmarkt und sollte eigentlich problemlos eine Anstellung als Anwendungsentwickler/Softwareentwickler in dem Bereich finden.

Persönlich finde ich beim Softwareentwickeln/Programmieren mit am wichtigsten die Erfahrung. Wenn man mal Programmierneulinge beobachtet, dann können sie irgendwelche Probleme einfach nicht in Code fassen bzw. implementieren es extrem umständlich. Dies liegt meistens nicht am Know How über die Sprache, sondern haben einfach nicht die Erfahrung in dieser Art zu denken.
Und Erfahrungen sammeln tut man eigentlich zuhause, immer mal wieder kleinere und größere Sachen programmieren/entwerfen. Soetwas kann einem keiner beibringen, da ist es nahezu egal ob ich an eine Uni/FH gehe oder eine betriebliche Ausbildung mache.
Gut, im Betrieb hab ich den Vorteil, dass mir jemand auf die Finger schaut und meine Arbeit überwacht und so das ganze vermutlich schneller fortschreitet.

Es gibt andere Themengebiete, die man nicht so einfach erlernen kann. Dies liegt oft auch daran, dass man Scheuklappen aufhat und diese gar nicht wahrnehmen würde (z.B. viele Themen aus der theo. Inf.).
Für bestimmte Themen gute Einführungsbücher zu finden ist gar nicht so leicht. Und wie bei allen Disziplinen, braucht man Übung, Übung, Übung.
Irgendwelche Übungsaufgaben zu finden bzw. erfinden, ist bei Programmierung/Softwareentwicklung relativ leicht, einfach etwas programmieren, bei anderen Themen etwas zu finden ist sehr schwer. Hier braucht man die Uni/FH, da man dort erfahrene Leute hat, die einem Übungsaufgaben stellen.
Wer denkt sich z.B. selber Übungsaufgaben über Numerik oder formale Sprachen aus?

Dann gibts auch noch Themenfelder, bei denen man zuhause nicht unbedingt die Möglichkeit hat, diese zu trainieren. Wer würde zuhause auf die Idee kommen, irgendwelche Schaltkreise (z.B. zur Steuerung von Robotern) zu entwerfen und zu realisieren? Einen Compiler oder eine IDE kann man sich überall im Netz kostenlos runterladen, und sofort loslegen mit kleinen Programmen die man selber braucht. Aber eine ALU in Heimarbeit entwerfen und realisieren?

Zum Schluss gibts diverse Themengebiete, vor denen man einfach selber scheitern würde, dort ist man wirklich auf Lehrer bzw. Professoren und Tutoren angewiesen. Ich habe bisher noch keine Person getroffen, die sich z.B. selber höhere Mathematik (z.B. Körpererweiterungen, Minimalpolynome etc.) beigebracht hat.
Auch in der Informatik gibts diverse Themengebiete, bei denen es gut ist einen Tutor in der Nähe zu haben.

Bei der Programmierung/Softwareentwicklung ist man auf einen Tutor o.ä. nicht angewiesen. Da fängt man an, wird im Programmieren immer besser, irgendwann fängt man auch mit dem strukturierten Design von Software an und macht selbst die Erfahrungen, was gut läuft und was besser laufen könnte. So wird man von mal zu mal besser.

Klar, es braucht Zeit und Erfahrung, keine Frage. Das lernt man nicht mal ebenso in ein paar Wochen. Aber man kann es recht gut alleine erlernen, sofern man genug Ergeiz hat und auch ausreichend Zeit.

Sicher, Softwareentwicklung/Software-Architektur kann extrem anspruchsvoll sein, wenn man sich mal die größeren Softwarehäuser mit extrem komplexen Softwarelösungen anguckt.
Aber selbst wenn man kein absoluter Experte ist, findet man mit 'Heimwissen' doch recht schnell einen Job in dem Bereich.
Vorallem in größeren Firmen ist die Arbeit sehr stark aufgeteilt. Dort gibts die wirklichen Experten, die das Grobdesign übernehmen, dann viele gute Leute die das Feindesign übernehmen und zum Schluss oft noch viele Programmierer, die einfach bestimmte Klassen nach Spezifikation implementieren müssen.
Als Quereinsteiger, sprich jemand der es alleine zuhause gelernt hat, der sollte Problemlos als Programmier anfangen können, bzw. mit ausreichend Erfahrung, auch einen Job im Bereich 'Feindesign' finden können.
Hier ein Studium bzw. eine Ausbildung ist zwar Vorteilhaft, aber nicht unbedingt notwendig.
Es gibt sehr viele sehr gute Quereinsteiger in dem Bereich.

Diese haben oft schon während der Schulzeit angefangen zu programmieren und doch schon erstaunliche Arbeiten vollbracht, sowie schon mehrjährige Erfahrung in dem Bereich.
Viele die anfangen zu studieren bzw. eine Ausbildung absolvieren, habe oft gar nicht dieses Vorwissen. Klar, dass es dort dann länger dauert, bis erste verwendtbare Ergebnisse kommen.

Betrachte ich mal bei uns die Studienanfänger, was die so programmieren, dann schlägt man sich teilweise vor den Kopf.

31.08.2008 - 17:49 Uhr

Hallo DavidT,

Genrell denke ich siehst du die Lage der Bachelor etwas überspitzt, es gibt viele Berufe die früher mit einem Dipl.-Ing. besetzt wurden, welche dafür jedoch überqualifiziert waren (Dazu zählen in meinem Augen u.a. Softwareentwickler).

Ja gut, das stimmt.
In vielen Bereichen hat man gute Chancen als Quereinsteiger, z.B. Webdesign/Webentwicklung, Softwareentwicklung oder Systemadministration. Dort sind oft Fähigkeiten gefragt, die man nicht während eines Studiums lernt, sondern die sich dann auch normale Dipl. Informatiker neben dem Studium her beibringen müssen.

Aber dann gibts wieder andere Bereiche, bei denen es Bachelor Absolventen doch sehr schwer haben, wie z.B. bei den Ingenieuren oder z.B. eingebettete Systeme, Halbleitertechnik etc. für Informatiker oder Elektrotechniker. Dort ist einfach Wissen gefragt, welches man sich nur schwer nebenbei beibringen kann.

Für jeden ist es problemlos möglich, PHP, HTML, CSS und JavaScript selbstständig zu erlernen und damit ein guter Webentwickler zu werden. Ebenso leicht kann man C#, ein paar Design Patterns und Vorgehensmodelle erlernen und ein anständiger .Net-Softwareentwickler werden.
Aber eine hardware description language zu erlenen und seinen Bereich soweit zu beherschen, dass man z.B. irgendwelche Mikrochips entwerfen kann, sowas kann man sich kaum zuhause beibringen.

An der FH mag es evt. noch anders sein, an der Uni (Bachelor Student Inf., Uni) hat man aber im Bachelor Studiengang meistens nur sehr allgemeine Vorlesungen.

Das war früher beim Diplom (Uni) auch so, dort hatte jeder bis zum Vordiplom (ca. nach dem 4. Semester) in etwa die gleichen, grundlegenden Vorlesungen. Technische Informatik I & II, Algorithmen & Datenstrukturen I & II, Theortische Informatik I & II, Programmierkurs, Software Engineering, Mathematik.
Erst im Hauptstudium wurde dann der Schwerpunkt gewählt und mehr und mehr grundlegende Pflichtveranstaltungen wurden dann durch speziellere Wahlpflichtveranstaltungen ersetzt, bis man nachher nur noch Wahlpflichtveranstaltungen hat.

Beim Bachelor/Master System ist dieses weites gehend erhalten. Bis inkl. 4. Semester hat man fast nur allgemeine Vorlesungen, dann kommen solangsam speziellere Module. Hier wählt man seinen Schwerpunkt auch nicht gleich am Studienanfang, sonder erst später im Studium. So dass auch z.B. jemand der später in der Softwareentwicklung arbeiten möchte, z.B. Technische Informatik I & II hört.

Aber die wirkliche Vertiefung findet oft erst im Master Studium statt. Dort gibts dann auch verschiedene Programme für verschiedene Richtungen.

Und wie gesagt, möchte man später mal irgendwie im Chipdesign o.ä. tätig sein, dann sind 6 Semester des Bachelor eindeutig zu wenig.
Dementsprechend ist auch oft die Einstellung von vielen größeren Firmen. Dort nur mit einem Bachelor in der Entwicklung oder Forschung tätig zu sein, ist kaum möglich.
Wie gesagt, sehr viele Firmen sind bei z.B. Bachelor-Abschlüssen mehr als skeptisch, zumindest bei Uni Abschlüssen.

Die neun großen deutschen Technischen Universitäten ("TU9") sehen den Bachelor an Universitäten z.B. nicht als Ingenieurabschluss.

Der TU9 Präsident stellt auch klar, dass in der universitären Ingenieurausbildung der Bachelor noch kein Ingenieur sein kann. Hippler: "Sechs oder auch sieben Semester reichen zur Bewältigung des Stoffes und zum Aufbau von Forschungskompetenz einfach nicht aus. Deshalb ist der Ingenieurabschluss der Universitäten der Master."
Dessen Qualifikationsprofil ist definiert durch das des bisherigen universitären Diplom-Ingenieur. Dementsprechend setzt TU9 für die universitäre Bachelor-Phase 3 Jahre (6 Semester) und für die Masterphase 2 Jahre an (4 Semester).

>

Gut, in der Informatik ist es evt. nicht ganz so tragisch wie bei den Ingenieuren oder bei anderen Naturwissenschaften, dennoch sollte man für viele Bereiche einen Master mitbringen.

Naja aber wie bereits erwähnt, statt irgendeinen komischen Bachelor irgendwo zu erwerben, sollte man in meinen Augen doch lieber einen Uni/FH Bachelor bevorzugen.
Nicht jeder Bachelor ist gleich und man hat oftmals große Probleme diesen irgendwie später anerkannt zu bekommen.

Ein weiteres Problem welches hinzu kommt:
Bei deinem späteren Arbeitgeber legst du diese Bachelor-Urkunde vor. Da nun ein Berufskollege kein einheitlicher Begriff ist, weiß er gar nicht, wie er diesen Bachelor einstufen soll.
Gleichwertig mit einem FH-Bachelor? Oder doch eher wie die Urkunde zum staatl. geprüften Wirtschaftsinformatikassistenten (dessen Qualität mich nicht sonderleich überzeugt)?

Wenn du Pech hast, ist das Berufskolleg eher gleichwertig mit einer BBS. Dann würd ich dir eindeutig davon abraten.
Man erlebt es oft, dass Informatik Lehrer an Berufsschulen nicht annähernd so fit sind, wie man es sich wünschen würde, bzw. wie es notwendig ist, um eine gute und fundierte Ausbildung zu erhalten. Viele Informatikerlehrer müssen auch alle Unterrichten, von der Programmierung, Netzwerktechnik, bischen theoretische Informatik usw. Man kann aber nicht auf allen Gebieten ein Spezialist sein, so dass bei vielen doch ein relativ großes Wissenloch klafft.

An der Uni (FH vermutlich ähnlich) ist dies anderes. Dort übernimmt ein Professor meistens nur Vorlesungen aus seinem Fachbereich, sprich, die Vorlesungen die du dann hast, hast du bei einem wirklichen Experten auf dem Gebiet. Dessen wissen ist auch nicht veraltet, da dieser weiterhin an der Uni auf seinem Fachgebiet forscht.
Auch ist deren Wissen viel fundierter.

Für Berufsschulen studierst du normal deine 9 Semester, machst bischen Informatik o.ä., hast viel Pädagogik und arbeitest dann noch kurz in dem Sektor, wobei viele nur ein längeres Praktikum gemacht haben.
Ein Professor hat zuerst seine 9 Semester Dipl. studiert (oder mehr), macht dann über 3-4 Jahre seinen Doktor, anschließend folgen z.B. 7 Postdoc-Jahre um dann die Habilitation abzulegen. Nach dem die eine Prof. Stelle erhalten haben, forschen diese natürlich weiter auf ihrem Gebiet.

Aber wie gesagt, man weiß nicht was das Berufskolleg bei dir konkret ist. Probleme mit der Anerkennung von Unternehmen wird man aber vermutlich so oder so haben.

31.08.2008 - 15:02 Uhr

Hallo,

in der Industrie jetzt schon die Stimmung aufkommt, das Bachelor-Studenten weniger qualifizeirt sind, als Dipl.-Ings.

Das stimmt ja auch, Bachelor Studenten sind normalerweise deutlich geringer qualifiziert als Diplomer. Hängt einfach mit den 6 Semester Studienzeit bei Bachelor und 9 (meistens 12-14) Semestern bei Diplomer zusammen.
Da kann man gar nicht gleich qualifiziert sein.

er von der Industrie jedoch noch als gleichwertig mit dem Dipl.-Ing. angesehen wird

Das ist eine Aussage, die mir ehrlich gesagt absolut neu ist.

In vielen Zweigen der Industrie scheut man sich davor Bachelor Absolventen einzustellen. Besonders bei Ingenieuren ist dieses extrem, es gibt Unternehmen, die klipp und klar sagen, dass die mit Bachelor-Ingenieuren nichts anfangen können. Diese würden dann Aufgaben erhalten, die früher eigentlich für Personen mit Berufsausbildung gedacht waren. Gerne werden Bachelor-Ingenieure auch als Hilfsingenieure betrachtet, da dieses eben noch nicht vollwertig sind.

6 Semester oder 3 Jahre sind auch einfach viel zu wenig um ein vollwertiger Ingenieur zu sein. In der Informatik sehe ich dies ähnlich, klar, nach 3 Jahren kann man schon genug Know How haben (in der IT) um arbeiten zu können, sollte eigentlich kein Problem sein, bei den anspruchsvolleren Jobs reicht es nicht aus.
Dort braucht man schon die 5 Jahre Ausbildungszeit die man mit dem Master bzw. früher mit dem Diplom hatte.

Ein weiteres Problem ist, wenn man nur den Bachelor hat, dass man oft noch keine richtige Spezialisierung hat.
Der Bachelorstudiengang ist oft sehr allgemein aufgebaut, man hat viele Grundlagenmodule. Sicher sind diese wichtig, aber damit man später auch problemlos in Arbeit kommt, benötigt man einiges an Spezialwissen.
Diese Spezialisierungsmodule fehlen in vielen Bachelor Studiengängen oder man hat nur relativ wenige von denen, da der Hauptteil davon im Master Studiengang erst gemacht wird.

Deswegen ist es meistens doch schon sehr wichtig, einen Master an seinen Bachelor anzuschließen, sofern man auch eine gute Chance auf anspruchvolle Jobs haben möchte. Ich glaub, später im Bereich eingebette Systeme zu arbeiten mit nur einem Bachelor wird schwierig. Man hat zwar viele Grundlagen (theoritsche Informatik, Algorithmen und Datenstrukturen, Software Engineering etc.), aber wie man nun konkret eingebettete Systeme entwickelt und herstellt fehlen. Solche Erfahrung sammelt man zumeist nur im Master Studium.

Persönlich würde ich dir auch eher dazu raten, an einer Uni/FH zu studieren. Wie gesagt, nur einen Bachelor zu haben ist oftmals schwierig (je nach angestrebte Position und Branche) und oft kann man nach einem Berufskolleg keinen Master o.ä. anschließen.

Dann lies nochmal bitte diesen Artikel durch:
Berufskolleg - Wikipedia

Unter Berufskolleg sind verschiedene Bildungssysteme zu verstehen, wäre also interessant zu wissen, was du meinst.

Wenn der Unterricht ähnlich wie an einer Berufsschule ist, hier gibt z.B. eine zwei jährige Ausbildung zum Kaufmännischer Assistent Wirtschaftsinformatik, dann kann man das eigentlich total vergessen.
Diese zwei Jahre sind wirklich eine verschenkte Zeit, der Anspruch ist sehr gering und wirklich viel lernen tut man auch nicht. Absolut nicht zu vergleichen mit einem Studium.
Die Jobchancen sind dann auch eher bescheiden danach. Gut, man hat gute Chancen danach eine Ausbildung zum Fachinformatiker zu machen, aber ohne weiteres Ausbildungsprogramm kommt man schwer in eine anspruchsvolle Arbeit, sofern man sich nicht irgendwie andersweitig weitergebildet hat.

Würde also eher den klassischen Weg gehen, Bachelor und Master an einer Uni/FH machen, evt. ein oder zwei Semester im Ausland verbringen und danach wird dich jedes Unternehmen mit Kusshand aufnehmen.

13.08.2008 - 17:33 Uhr

Hallo,
das Problem zu lösen ist eigentlich sehr leicht, insbesondere für solch einen Zahlenbereich (1-999).
Mach dir einfach klar, wie unsere Zahlen aufgebaut sind und setzt die Wörter entsprechend aneinander.

Bevor man aber irgend etwas programmiert, erstmal ein paar Zahlen, z.B. 456, aufschreiben und schauen, wie ein Mensch diese schrittweise ins vierhundert... "konvertiert".

Ansonsten muss ich herbivore Recht geben:
Wenn man einen Algorithmus bereits irgendwo findet (und den abschreibst), ist der Lerneffekt sehr gering.
Auch wenn man diese noch nachvollziehen muss, weil er ggf. in einer anderen Sprache geschrieben ist, lernt man nicht sonderlich viel.

Solche Aufgaben sind dafür gedacht, dir das systematische/algorithmisches Lösen von Problemen beizubringen und nicht dafür gedacht, irgendwelche Algorithmen auswendig zu lernen.
Wenn man etwas Übung hat, dann ist solch eine Aufgabe trivial. Bis man aber soweit ist, muss üben üben üben...

Und das schlechteste was man machen kann, ist sich im Netz die Lösungen zu besorgen, denn bei komplizierteren Sachen, bzw. später in der Klausur, kannst du das auch nicht machen und musst deine eigenen grauen Zellen anstrengen.

02.08.2008 - 18:07 Uhr

Hallo,
oder der Kunde setzt VB.Net mit .Net gleich und sucht eigentlich nur eine .Net-Anwendung.

Möglichkeiten gibts viele, nur die Nachfrage beim Kunden hilft. Man muss beachten, dass nicht jeder Kunde soviel Kenntniss von .Net, Programmierung & Co. um genau zu wissen was er denn überhaupt will 😉

31.07.2008 - 14:46 Uhr

Hallo,
als Argumentation könntest du verwenden, dass du den Codestile von C# deutlich angenehmer findest und somit produktiver arbeiten kannst, da dir C# Code deutlich aufgeräumter und übersichtlicher vorkommt.

Ansonsten fallen mir spontan keine nennenswerten Einschränkungen von VB.Net ein, und wenn es der Kunde fordert, musst du dem auch nachkommen.

Ansonsten:
http://en.wikipedia.org/wiki/Comparison_of_C_sharp_and_Visual_Basic_.NET

30.07.2008 - 15:16 Uhr

Hallo,
und was machst du, wenn die Uhr beim User falsch geht und z.B. eine stark veraltete Zeit hat, z.B. den 1.1.2000?
Wie Jack sagte, sende alle x Minuten ein 'hallo ich bin noch da', der Server trägt dann in die DB die aktuelle Uhrzeit ein.

Und man muss überlegen, ob der Server inaktive User aus der DB streicht, oft reichts es aus, nur beim Login zu testen, was in der DB steht.

Ansonsten kannst du auch einfach beim Server auf ein disconnect der Verbindung reagieren, so kann man glaub ich das 'hallo ich bin noch da' sparen, da die Verbindung, sofern TCP genutzt wird, ja ein Timeout hat, oder irre ich mich dort?

30.07.2008 - 13:51 Uhr

Moin,

Gibt es nun eine Möglichkeit auch in diesem Fall noch Code auszuführen?

selbst wenn es möglich wäre, es wäre nicht sinnvoll.
Denn du musst auch immer den Fall betrachten, dass der User einen Stromausfall hat bzw. seinen Rechner 'gewaltsam' ausschaltet, oder dass die Netzwerkverbindung plötzlich getrennt wird.
Dann ist es ganz sicher nicht mehr möglich, irgendwelchen Code auszuführen, der den User abmeldet.
Musst es so wie Jack es vorgeschlagen hat machen.

21.06.2008 - 13:56 Uhr

Hallo,
Sprünge, wie sie bei for-Schleifen verwendet werden, sind extrem Zeitintensiv. Wenn man also sein Programm so optimiert, dass keine Sprünge mehr notwendig sind, bekommt man auch deutlich höhere Flops-Zahlen.

Evt. ist dieses in SiSoftware Sandra der Fall, es werden keine Sprünge benötigt sondern die Flops Anzahl wird an einem linear ablaufen Code festgestellt.

21.06.2008 - 13:44 Uhr

Hallo,
nach einem Tag habe ich Firefox 3 wieder runtergeschmissen und bin mit Firefox 2 wieder unterwegs.

Finde diese neue URL-Bar (Awesombar) einfach grausam. Wenn ich irgendwie my dort eintippe, möchte ich nicht die Seiten angezeigt bekommen, die My irgendwo in der URL (z.B. Dateinamen) haben oder nur My im Titel vorkommt, sondern bitte die Adressen die mit my starten.
Auch ist es so, dass manche URLs gar nicht mehr angezeigt werden wenn man deren Anfangsadresse eintippt, obwohl man die just ne Minute vorher besucht hat.

Ansonsten gibts kaum unterschiede. Finde das neue Design nicht wirklich schöner und wirklich viel mit Lesezeichen arbeite ich auch nicht.

Was mir noch negativ aufgefallen ist, dass der Alt-Text bei Bildern schon angezeigt wird, bevor das Bild geladen wird.
So wird bei vielen Seiten, vorallem bei Boards, das Design beim Laden zersört, da kleine 16x16 Grafiken beispielsweise 10 Zeichen alt-Text haben und somit das Design stark verschieben.
Ist sehr unangenehm, wenn die Seite hin und her springt, wenn die Bilder endlich geladen wurden.

Und einen merkbaren Speed-Up gibts auch nicht. Der FF startet zwar schneller, aber beim Seitenaufbau ist es mir nicht doll aufgefallen.
Evt müsste man beide parallel testen,

Ganz klar, bleibe FF 2

09.04.2008 - 16:46 Uhr

Hallo,

Mich wundert das aber, dass da bei der IHK ein so "schwieriges" Beispiel kommt. Denn normalerweise kommt da ja nur "Kinderkram" (so wars jedenfalls bei meiner IHK-Prüfung im Dezember).

ich sehe nicht, was an dem Beispiel schwierig sein soll.

Hier der Pseudocode:


plz = 12345; //Gesuchte PLZ
i = 0;
while(i < maxIndex) {
   if(array[i][0] == plz)
       return array[i][1]
    if(array[i][0] > plz)
       break;
    i++;
}

//Nächst kleinere PLZ ausgeben
if(i == 0)
  return -1;
else
  return array[i-1][1]; 

@knucKles: Dein Ansatz ist falsch, da array_ nicht die PLZ enthält.

Und wie das Array aufgebaut ist, ist eigentlich auch klar (zumindest würde ich es so machen)


 int[][] array  = { 
  new int[] {50606, 1200},
  new int[] {51491, 1100}
};

Also array_[0] = PLZ, array_[1] = Sonnenstunden

Aber manchmal sieht man vor lauter Bäumen den Wald nicht mehr 😉

Edit:
return array[i-1][0] durch return array[i-1][1]; ersetzt

09.04.2008 - 16:36 Uhr

Hallo,
afaik beeinflusst das using-Schlüsselwort nur den Compiler, dieser sucht dann für die Klassen überall die absoluten Verweise raus.
Es hat also keine wirklichen Auswirkungen, ob man nur ein paar mehr oder weniger usings im Code hat. Evt. wird dadurch das Compilieren (nicht der JIT) um 0,01 Sekunden schneller, aber am Prog. sollte sich nichts ändern.
Deswegen ist dein zweites *) auch überflüssig.

MFG

26.02.2008 - 14:47 Uhr

Hallo,
also 69 Euro für ein Zertifikat ist äußerst günstig, viele (z.B. alle CA) verlangen 159 Euro aufwärts.

Was aber viele Webhoster anbieten ist ein SSL Proxy, da ruft man dann seine Domain so auf:
https://ssl.webpack.de/deineDomain.de/ (bei Hosteurope z.B.).
Diese sind oft im normalen Webspace Angebot schon enthalten, bist also bei den richtigen Anbietern mit ein paar Euro im Monat dabei (inkl. Webspace).

Zwar nicht empfehlenswert für Banken o.ä., für private Zwecke meines Erachtens aber vollkommen ausreichend.

02.02.2008 - 22:41 Uhr

Hallo,
finde deine Lösung zur Invertierung von 2x2 bzw. 3x3 Matrizen sehr unschön. Mal abgesehen davon, dass du evt. eine Divsion durch Null hast, solltest du lieber einen allgemeinen Algorithmus implementieren, der eine nxn Matrix in sein Inverses überführt, sofern vorhanden. Auch wäre es deutlich schöner, wenn man nicht jeden Wert einzeln angeben müsste, sondern einfach ein nxn Array übergeben könnte und eine entsprechendes Array zurückbekommen würde.

Zur Not kann man bei genügend vorhanden Tools abgucken 😉

22.01.2008 - 16:30 Uhr

Hallo,
solch ein Programm würde nichts weiteres machen, als die Zahlen ins binär System umzuwandeln (was anderes können Computer nicht), dann im binärsystem zu rechnen und die ausgabe wieder zurück zu formatieren.
Es gibt diverse Classen die soetwas bereits implementiert haben, schau dir z.B. mal BigInteger (auf Codeproject.com) an, da kannst du auch die Basis angeben (ist nur die Frage ob Basen wie 13 klappen).

Ansonsten ein nützlicher Link:
http://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm

(Geht auch mit Kommazahlen)

13.01.2008 - 22:57 Uhr

Hallo,
ich glaub du hast das Prinzip mit den Ports noch nicht ganz verstanden.

Wenn du eine Server App (o.ä.) schreibt, muss diese auf einen bestimmten Port lauschen, diese musst du auch entsprechend angeben.
Über diesen Port kommen dann die Anfragen der Clients.

Wenn du aber dich mit einem Server verbindest, muss der Client die Zielport-Adresse angeben, die Portadresse, auf der der Server lauscht.
Danach läuft die Kommunikation über einen freien Port ab.

Einen freien Port zufällig zu wählen (für den Server) macht nur wenig sinn, denn woher soll der Client wissen, mit welchem Port er eine Verbindung aufbauen soll?

03.01.2008 - 14:17 Uhr

Hallo,
ne leider nicht, die .Net SSL-Klasse kann man in den Müll treten.

Statt dessen habe ich die SSL-Klassen aus dem Mono-Projekt extrahiert (haben glaub ich ein extra Namespace) und eingebunden.
Verwendet man dann noch den X509-Zertifikatsgenerator aus dem Mono-Projekt kann man bequem private, public und den unterzeichnenden public Key übergeben und alles läuft wunderbar.

MFG

30.12.2007 - 16:49 Uhr

Hallo,

@Qwald

  1. Du kannst nicht dementieren, was Du nicht selber von Dir gegeben hast.

Ja gut, falsches Wort gewählt X(

  1. Ich habe nichts generell behauptet, ich sagte ja, dass ich nicht pauschalisieren will. Und das sagt man, wenn man es nach eigenen Erfahrungswerten so erlebt hat.

Naja du sagtest, dass der durchschnittliche Uni-Absolvent sicher weniger Fit ist als ein FH-Absolvent, welches sich so nicht belegen lässt.
Kann ja sein, dass deine Erfahrungen dahin gehen, dass die Uni-Absolventen die du kennst weniger Fit sind als die FH-Absolventen die du kennst, dies führt aber nicht dazu dass der durchschnittliche Uni-Absolvent sicher weniger Fit ist.
Wäre dies so, würde sich soetwas auch im durchschnittlichem Gehalt widerspiegeln.

  1. Wer wieviel verdient ist doch bundeslands und leider auch immer noch geschlechtsabhängig. Und auch total unerheblich, es geht ja hier darum welche Ausbildung besser ist und nicht, womit man später mehr Geld verdient.

Ja das stimmt schon, dass die Einkommenunterschiede zwischen Bundesländern groß sind, generell kann man aber sagen, dass die Qualifikation sich stark im späteren Gehalt widerspiegelt, also eine Person mit höhere Qualifikation erhält normalerweise auch mehr Gehalt.
Eine vermeintlich schlechtere Ausbildung an Universitäten als an FHs passt somit nicht ins momentane Gehaltsbild in der Wirtschaft.

  1. Was bringt einem Uni Studenten das theoretische Wissen, wenn es viele gibt, die einen guten Bachelor o.ä. haben und nichtmal wissen wie man Visual Studio handhabt.

Und was macht man, wenn in der späteren Firma z.B. Eclipse verwendet wird?

Wie gesagt, in der Uni lernt man Grundlagen und Methoden die sich so schnell nicht verändern werden und versteift sich normalerweise nicht auf spezielle Produkte. Denn die Lebensdauern von Programmiersprachen, IDEs, Anwendungen ist vergleichsweise kurz und was bringt es dir in 10 Jahren, heute ausschließlich auf ein Datenbanksystem, z.B. MySQL, getrimmt zu werden?

Wie in dem Spiegel-Artikel geschrieben, geht der Trend hin zum spezialisierten Generalisten. Man sollte sich eine breite Basis aneignen, was einfach nicht möglich ist wenn man sich auf eine Anwendung/Konzept versteift aber das Konzept an sich nicht versteht, weswegen Quereinsteiger es momentan noch relativ schwer haben.
Diese sind evt. Experten in der (Visual)-C++ Programmierung, haben aber eben nicht so die fundierte Ausbildung wie Uni/FH-Absolventen.

Und ja du hast Recht, relativ selten wird an der Uni sich auf ein Produkt versteift und es wird versucht das Konzept zu vermitteln.
Viele lernen an der Uni z.B. die Programmiersprache Java, müssen dann aber auch in anderen Modulen z.B. auf C oder Assembler umsteigen ohne ein entsprechenden Kurs gehabt zu haben. Deswegen sollte der Student ein generelles Gefühl für die Programmierung bekommen.
Ähnlich sieht es z.B. beim Modul 'Betriebssysteme' aus, dort werden generelle Konzepte von Betriebssysteme vermitteln und in einem Betriebssystempraktikum hat man dann die Möglichkeit, selber ein eigenes OS zu schreiben.

Natürlich, später in der Wirtschaft wird meistens entweder Linux/Unix (&co.) oder Windows eingesetzt und durch das Modul Betriebssysteme ist der Student weder zum Unix-Guru noch zum Windows-Experten geworden, er versteht aber den generellen Aufbau von Betriebssystemen und ist in der Lage sich entsprechend neuen Entwicklungen anzupassen.
Selbstverständlich erfordert es von einigen Uni-Studenten eigene Leistung sich in bestimmten Bereichen/Produkten ein entsprechend gute Wissensstand anzueignen, um direkt mit dem Produkt arbeiten zu können und nicht nur das Konzept solcher Produkete zu verstehen.

geschweigedenn etwas selbstständig etwas programmieren können.

Naja das stimmt so auch nicht, wobei man immer darauf achten sollte welchen Schwerpunkt der Student hat.
Jmd. mit Schwerpunkt 'Eingebettete Systeme' muss nicht der Experte in der Windows-GUI Programmierung sein.
Vielleicht ist die Menge an Programmiererfahrungen die ein durchschnittlicher Uni-Abs. sammelt geringer als eines FH-Absolventen, aber das dieser selbstständig gar nichts programmieren kann ist so auch nicht wahr.
Außerdem, im späteren Job ist die Softwareentwicklung, also Anforderungsanalyse, Design etc. wichtiger als die spätere Implementierung der Methoden.

es geht ja hier darum welche Ausbildung besser ist und nicht, womit man später mehr Geld verdient.

Naja ist die Frage wie man eine 'bessere' Ausbildung definiert, wenn jmd. mehr Bezug zur Praxis hat ist er an der FH vermutlich besser aufgehoben, da er dort den Stoff deutlich besser aufnehmen kann.
Erfreut sich diese Person aber auch an Theorien die hinter Anwendungen stecken, sollte er evt. auf eine Uni gehen.

Allerdings dein Post hörte sich für mich so an, tut mir auch leid falls ich dich falsch verstanden haben sollte, dass die erworbene Qualifikation, oder der vermittelte Stoff, an einer Uni schlechter sei als die an einer FH.

26.12.2007 - 18:49 Uhr

Hallo,

Dazu möchte ich dann fragen, ob es einen Unterschied gibt, wenn ich (Theoretische) Informatik an der Uni München oder an der TU studieren; denn dieses Fach gibt es nämlich in beiden.

Es wird an beiden Unis Informatik als Studiengang angeboten?

Also die TU München hat für Informatik einen sehr guten Ruf und ich könnte mir vorstellen, dass dort der Informatikzweig stärker vertreten ist als an der Uni-München.
Da ich aber eigentlich nichts mit München zu tun hat, kann ich dir da nicht wirklich weiter helfen.
Evt. ist es auch möglich, dass beide die gleichen Vorlesungen besuchen?
Ansonsten wäre die TU vermutlich die besser Wahl

Und wie ist es mit dem Arbeitgeber? Bevorzugen diese im informationstechnischen Bereich eher Technische Unis?

Nur weil eine Uni im Namen 'technische' enthält, heißt dies nicht gleich, dass diese besser oder schlechter ist.
Arbeitergeber schauen einmal darauf, welche Uni du warst, da ist es egal ob TU oder nicht.
Aber viel wichtiger ist, welche Module du belegt hast und vorallem wie du die absolviert hast und evt. welche extra Qualifikationen du vorweisen kannst, also Sprachen, Auslandserfahrungen, Praktika etc.

25.12.2007 - 20:23 Uhr

Hallo,
zur 1. Frage:
Es gibt keinen Unterschied.
Technische Unis bieten i.d.R. nur technische orientierte Studiengänge an (Maschinenbau, Physik, Elektrotechnik etc.) während man an normalen Unis auch Geisteswissenschaften u.ä. hat, wie z.B. Musik, Philosophie, BWL etc.
Diese findet man oft an technischen Unis nicht.

Allerdings, die Technische Hochschule Aachen (RWTH Aachen) bietet auch Studiengänge wie Deutsch, Englisch (auf Lehramt) oder auch Geschichte an genauso wie BWL.

In größeren Städten, München z.B., ist das eben deutlicher getrennt. An der TU München werden im Prinzip nur technische orientierte Studiengänge angeboten, während die anderen Unis in München auch soetwas wie Musik anbieten.
Kleinere Städte, wo sich 2 Unis nicht lohnen, bietet eben alles quer durch an einer Uni an.

2.:
Schau dir an was dir liegt und wo du evt. eine Vertiefung drin haben möchtest. Manche Unis bieten nur Anwendungsfächer an, wie z.B. Bio, Physik, Mathe etc., andere auch Schwerpunkte wie Softwareentwicklung, eingebettete Systeme etc.

Sofern du schon ungefährt weißt, was du später machen willst, dann achte darauf welche Schwerpunkte die Uni so anbietet.
Ansonsten, wie es bei dir der Fall ist, und du dies noch nicht wirklich weißt, fang erstmal an Informatik zu studieren und gucke dann was dir liegt und worin du dir deinen Schwerpunkt dir suchst.

Am Anfang evt. wirklich nur schauen, ob die angeboten Schwerpunkte generell dir zusagen, aber im Verlauf des Studiums kann sich an der Interessenlage viel ändern.

PS:
In meinen Augen sind Wirtschaftsinformatiker keine wirklichen Informatiker sondern BWLer mit überdurchschnittlichen Computerkentnissen.
Selbst an unserer Uni, wo der Schwerpunkt auf Informatik und nicht auf Wirtschaft liegt, bei vielen ist anders rum, 60% BWL und 40% Informatik/Mathe, lernen die Wirtschaftsinformatiker überhaupt nicht die Grundlagen der Grundlagen, sprich die hören z.B. keine Technische Informatik und müssen auch nur 'Mathe für Wirtschaftswissenschaftler' (nichts anders als Oberstufen-Mathe) hören.

Wenn einem BWL mehr liegt, ist er dort gut aufgehoben, möchte man später aber wirklich als Informatiker arbeiten, ist der Informatikstudiengang der richtige.

Natürlich, auch als hardcore-Informatiker sind betriebswirtschaftliche Grundlagen wichtig und sie sollte man sich auch aneignen.
Aber wie gesagt, das Aufgabenfeld eines Wirtschaftsinformatiker ist komplett anders als die eines Informatikers.
Darüber sollte man sich im klaren sein und auch entsprechend informieren, wozu man später eingesetzt wird.

24.12.2007 - 14:10 Uhr

Hallo,
evt. sollte man die in der Programmierung übliche Notation für logische Ausdrücke verwenden, also bei euch die C-Notation.

Denn so ein String: A*B+/C

Ist einfach nur grausam anzugucken (zumindesten für mich).

Schöner wäre:
A && B || !C

Oder:
A & B | ~C

Vermutlich gibt es hierfür bereits einen parser.

Ansonsten zu eurem Problem wie er erkennt, dass C eine Variable ist:
Ihr habt ja nur eine bestimmte Anzahl an Quantoren (u.ä), &&, ||, ^, !, (,). Sprich, alles andere sind Variablen.
Du könntest z.B. das C in einen ASCII Wert (67) umwandeln und davon dann den ASCII Wert von A (65) subtrahieren. Schon hast du den Index für ein bool-Array.
Also:
int index = 'C'-'A'; //Sofern dies in C# geht wäre index=2

Alternativ könnte man auch mit einer Hashtable arbeiten, was aber bei aufsteigenden Buchstaben nicht notwendig wäre.

Das umwandeln von "A && B || !C" in ein boolsches Ergebnis sollte nicht so schwer sein, man muss nur die entsprechende Reihnfolge der Quantoren beachten, also negieren vor UND-Verknüpfung und dies vor Oder-Verknüpfungen etc.

24.12.2007 - 14:02 Uhr

Hallo,

Ich will nicht pauschalisieren, da man an der Uni relativ nah an der Forschung dran ist, aber der Durchschnittsabsolvent ist sicher weniger fit als ein Fachinformatiker oder FH Abgänger.

Das möchte ich mal dementieren, dass ein Uni-Absolvent weniger Fit ist als ein Fachinformatiker oder ein FH-Absolvent, oder wie erklärt man es, dass Uni-Absolventen im Schnitt deutlich mehr verdienen als Fachinformatiker und auch mehr als FH-Absolventen [1][2]?

Generell zu behaupten, dass es Uni-Absolventen an der Praxis fehlt kann man so nicht halten. Dies hängt stark von der Uni ab und bei vielen muss man praxis bezogene Projekte blegen, z.B. Softwareprojekt o.ä.
Klar, ein Uni-Absolvent hat nicht das Praxissemester wie ein FH Absolvent, dafür aber vermutlich deutlich besseres theoretisches Hintergrundwissen, was in der schnelllebigen Informatikwelt von großen Vorteil ist.
Bestimmte Anwendungen/Proukte o.ä. verschwinden schnell, die Theorien die dahinter stecken aber nicht.

Das der Uni-Absolvent aber weniger Fit ist, ist schlicht falsch, bzw. wieso sollte es dann solche Einkommensunterschiede geben zwischen FH und Uni-Absolventen?

Ein Universitäts-Absolvent bekommt rund acht bis zehn Prozent mehr als ein Fachhochschüler, Absolventen von Berufsakademien werden gleich eingestellt wie Fachhochschüler.

>

[1] Was Berufseinsteiger verdienen
[2] c't-Gehaltsumfrage 2006

23.12.2007 - 20:01 Uhr

Hallo,
also es ist so, dass man wenn man Studiert oft auch Bafög bekommt, besonders für Väter/Mütter ist der Satz erhöht, reicht aber vermutlich nicht an ein Arbeitsgehalt ran.

Zum Studieren an sich:
Man sollte ein Informatikstudium nicht unterschätzen, es ist doch sehr zeitaufwendig und nicht mal eben so gemacht, selbst mit guten Vorkentnissen bzw. mit hohen Interesse.

Ich weiß nicht wie der Stoff ist an einer FH oder an einer Fernuni ist, bei uns an der Uni ist der Stoff aber relativ theoretisch, was nicht schlecht ist, aber deswegen ist man mit diesem kaum vorher vertraut gewesen.
Gute Vorkentnisse helfen zwar, trotzdem wird man viel neues Lernen und entsprechend beschäftigt sein.

Aber ich sag mal so:
Den Lerninhalt, den du als Informatikkaufmann gelernt hast, bringt dir nicht sehr viel an einer Uni.
Evt. hast du Vorteile im Programmierkurs, oft lernt man Java, die restlichen Module werden aber bestimmt neu sein.
In den ersten Semestern hat man auch relativ viel Mathematik, allerdings komplett anders als in der Schule.
In der Schule hat man schön gerechnet mit konkreten Zahlen, hier geht es aber primär ums Beweisen (soll an vielen FHs ähnlich sein) und konkrete Zahlen sehen wir selten.
Du musst da in den ersten Stunden so "simple" Sachen beweisen wie:
x*y = 0 genau dann, wenn x oder y den Wert 0 haben.

Eigentlich denkt man sich, dass soetwas offensichtlich ist, wie man dies aber Beweisen soll, davon hat man keinen Plan, denn selbst z.B. x*0 = 0 hat man noch nicht eingeführt.

Hier der Beweis für die es Intressiert:
Sei (ohne Einschränkung) y = 0
=> x0 + x0 = x*(0+0) = x0 => x0 = 0

Sei xy = 0 und x != 0
0 = x-1 * 0 = x-1 (x
y) = (x^-1*x)y=1y=y

Naja ich schweife ab.

Also, ein Studium ist nicht mal eben so ein Kinderspiel, sonder sehr Zeitintensiv, zumindest an Unis. Man lernt viel neue Sachen, die einen so noch nie begenet sind und man sie i.d.R. in keinem Unternehmen lernt.

Obs auch bei Fernstudiengängen so ist (Zeitmäßig), kann ich nicht beantworten, denke mal aber es wird dort ähnlich sein.
Wenn du so einer bist, der wirklich Fleißig ist und gutes Zeitmanagment besitzt, dann kannst du dich gerne daran wagen, aber man sollte es auch ernst meinen mit dem Studium und auch bereit sein dort viel Zeit zu investieren.
Da aber Fernstudiengänge oft auf die arbeitende Bevölkerung zugeschnitten ist, wird der Zeitaufwand natürlich nicht so krass sein wie ein Präsenzstudiengang an einer Uni, wäre auch gar nicht möglich weil man dann eine >80 Stunden Woche hätte.

Aber ein Studium lohnt sich immer. Der Arbeitsmarkt will von uns spezialisierte Generalisten haben, also Personen mit breitem Wissenstand, die sich auf bestimmte Themengebiete spezialisiert haben, z.B. Softwareentwicklung.
Auch finanziell dürfte damit einiges zu machen sein, sofern du es absolvierst. Also versuch es ruhig, ob du es zeitlich schaffst.

Ansonsten, hier von der Uni wird auch ein Teilzeitstudium für Informatik angeboten. Man studiert dann nicht in 6 Semestern sondern in min. 10 Semestern mit entsprechend weniger Modulen pro Semester.
Ich weiß nicht in wie fern du eingespannt bist bei deiner Arbeit, aber ein Teilzeitstudium an einer Uni, sofern sich das kombinieren lässt (z.B. auch örtlich), ist einem Fernstudium in meinen Augen vorzuziehen.
Man kann sich ja selber aussuchen, welche Module man besucht und muss dann nicht nach dem Regelstudienplan studieren, sondern man macht dann evt. pro Semester nur 2 Module.

In der PFFH Darmstadt kostet das Studium 'Angewandte Informatik' irgendwas um die 12 000 Euro, dafür kann man auch 17 Semester 'normal' studieren, ohne Studiengebühren noch deutlich länger.

Wenn du also in einer Universitätsstadt wohnst, evt. man über Teilzeitstudium informieren bzw. ob nicht irgendwann bestande Module ungültig werden.

Man muss natürlich auch gucken, wie flexibel der Arbeitgeber ist. Wenn du einen festen Arbeitstag von 8 bis 17 Uhr hast, wird es schwer die Vorlesungen zu besuchen.

Naja, viel Glück! Aber studieren lohnt sich, nicht nur finanziell

Edit:
Achja, und Zukunftssicher ist eigentlich jeder Studiengang, egal ob Angewandte, Wirtschafts- oder normale Informatik.

Was zu lesen:
Der Trend geht zum Multi-Spezialisten (Weswegen ein Studium sehr Lohnenswert ist!)
IT-Fachkräfte räumen ab

09.11.2007 - 22:24 Uhr

Hallo,
es gibt doch von MS diesen Ant-Simulator für .Net. Evt. damit mal anfangen, kann man bestimmt lustige Dinge mit anstellen.

22.10.2007 - 16:49 Uhr

Hallo,

Original von Programmierhans

Original von TheHacker
Mir kommt da grad, gieng das nicht über ne einfache formel? falls ja, wie war denn die nochmal 😄

Findest Du so eine Frage nicht peinlich ?

wer sich 'TheHacker' nennt ist sooo l33t das er keine einfachste Schulmathematik kennen muss, schließlich owned er nen Taschenrechner.

Und mal bei Google nach den Grunsätzen des Prozentrechnens zu suchen, fragt er lieber hier im Forum. Wir sind doch schließlich für solche Fragen da, oder nicht?