Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Qwald
Thema: Datentyp für Zahlen, die über 100 Stellen nach dem Komma haben, und damit rechnen???
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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

Thema: Wie Unterklasse von HashAlgorithm korrekt implementieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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.

Thema: Lizenz für IT Unternehmen?
Am im Forum: Smalltalk

Hallo,

Zitat
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.

Thema: Integralrechnung - grundlegende Verständnisprobleme
Am im Forum: Smalltalk

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.

Thema: Künstliche Intelligenz - Ein neuer Fehlschlag
Am im Forum: Projekte

Hallo,

Zitat von Richter
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 ;)).

Zitat
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.

Thema: Künstliche Intelligenz - Ein neuer Fehlschlag
Am im Forum: Projekte

Hallo,

Zitat von Richter
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.

Thema: Künstliche Intelligenz - Ein neuer Fehlschlag
Am im Forum: Projekte

Hallo,

Zitat
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.

Thema: [erledigt] Kommunikation zwischen 2 Applikationen
Am im Forum: GUI: WPF und XAML

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.

Thema: Zugriff wahlweise auf diverse Datenbanken (mySQL,MSSQl,Oracle,..)
Am im Forum: Datentechnologien

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.

Thema: Müssen Programmierer Mathematik-Genies sein?
Am im Forum: Smalltalk

Hallo,

Zitat von See Sharp
Zitat von GMLOD
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.

Thema: Müssen Programmierer Mathematik-Genies sein?
Am im Forum: Smalltalk

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).

Zitat von no1gizmo
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.

Thema: Maschinencode nach C++ decompilieren
Am im Forum: Rund um die Programmierung

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.

Thema: Per C# auf J#-Library zugreifen
Am im Forum: Rund um die Programmierung

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.

Thema: Ein EventHandler für mehrere Buttons?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

Zitat von IchRoque81
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;

Thema: Ein EventHandler für mehrere Buttons?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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.

Thema: serverbasierte .NET Entwicklungsumgebung wie unter PHP das ZEND Studio?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

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.

Thema: [gelöst] performanter(?) vs übersichtlicher
Am im Forum: Rund um die Programmierung

Hallo,

Zitat von winSharp93
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.

Thema: 2 Datenbanken synchron halten
Am im Forum: Datentechnologien

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.

Thema: 2 Datenbanken synchron halten
Am im Forum: Datentechnologien

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?

Thema: "Verlässlicher" HashCode von Objekten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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

Thema: Berufsethik bei Informatikern
Am im Forum: Smalltalk

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.

Thema: In-Methode in C#
Am im Forum: .NET-Komponenten und C#-Snippets

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.

Thema: Programmierpraktikum/-tutorial für Anfänger schaffen
Am im Forum: Smalltalk

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.

Thema: Fingerabdruckscanner an Notebooks - Ein biometrischer Witz?
Am im Forum: Smalltalk

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...

Thema: Abschluss: Berufskolleg mit einem "richtigen" Studium an einer Uni/FH vergleichbar?
Am im Forum: Smalltalk

Hallo,

Zitat von JuyJuka
Zitat
... 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.
Zitat
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.


Zitat
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.

Zitat
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:
Zitat
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

Thema: Abschluss: Berufskolleg mit einem "richtigen" Studium an einer Uni/FH vergleichbar?
Am im Forum: Smalltalk

Hallo,

Zitat von JuyJuka
Hallo Qwald,
Zitat
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.


Zitat
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.

Thema: Abschluss: Berufskolleg mit einem "richtigen" Studium an einer Uni/FH vergleichbar?
Am im Forum: Smalltalk

Hallo DavidT,

Zitat
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.
Zitat
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).
Presse - Uni Karlsruhe

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.

Thema: Abschluss: Berufskolleg mit einem "richtigen" Studium an einer Uni/FH vergleichbar?
Am im Forum: Smalltalk

Hallo,

Zitat
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.

Zitat
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.

Thema: Zahl in Wort konvertieren
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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.

Thema: VB.NET Einschränkung gegenüber C#
Am im Forum: Rund um die Programmierung

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