Wie gelingt mir am besten der Einstieg in C# ?

6 Antworten

Mit Verlaub: aber ich bezweifle das C++ dir "theoretisch bereits bekannt" ist. Du erinnerst dich vielleicht an ein paar Brocken. Wenn du noch keine Anwendungen geschrieben hast, dann, so muss ich dir das leider sehr direkt sagen, kannst du gar nichts.

Ich will dich nicht entmutigen, aber du scheinst mir hier mit völlig falschen Einschätzungen an die Sache heran zu gehen.

Videos sind in der Regel übrigens schon 'spannender' als Bücher oder andere verschriftliche Formen. Der Nachteil ist allerdings das spulen immer unpraktischer ist als noch einmal zu lesen. Ohne Englisch wirst du nie eine ernsthafte IT-Kompetenz erwerben können.

Sinnvolle GUI-Programmierung ohne die Grundlagen einer Sprache komplett und sicher zu beherrschen ist schlicht nicht möglich.

Hier bietet dir die Microsoft Academy erstmal eine kostenlose Einführung zu C# als Video-Reihe an:

https://www.microsoftvirtualacademy.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-8295

Ich würde dir empfehlen dich da erst einmal durchzuarbeiten und dann schauen wir weiter. Wenn dein Englisch nicht so gut ist, dann schalte die Untertitel ein und verwende ein Wörterbuch, z.B.: das vom Pons im Internet.

Am Ende wird dir empfohlen womit du danach weitermachen kannst. Vielleicht kannst du dann ja auch schon deine erste eigene Anwendung realisieren.

KnorxyThieus 
Fragesteller
 11.08.2015, 21:27

Videos sind in der Regel übrigens schon 'spannender' als Bücher oder andere verschriftliche Formen. Der Nachteil ist allerdings das spulen immer unpraktischer ist als noch einmal zu lesen.

Also ich komme mit schriftlichem Material besser voran. Da kann man einfacher besser im Individualtempo arbeiten.

Aus demselben Grund habe ich auch keine Lust, mir Stunden englisches (!) Videomaterial vorzunehmen, wenn es deutsche Text dazu gibt. Die Untertitel verwirren nur noch mehr – immer hin- und herswitchen … -,-

0

Ein Buch? Lieber nicht, ich suche etwas kürzer Gefasstes

Das ist jetzt nicht dein Ernst, oder?! "Kürzer als EIN Buch" soll es sein? 

Ich habe ... warte ... knapp 70 Bücher allein über C#, bin von der ersten Stunde (Version 0.3); also seit ca. 16 Jahren, dabei, habe zeitweise im internationalen Recommendation-Team gearbeitet und unterrichte sie auch gelegentlich. Und wenn ich in der ganzen Zeit eines gelernt habe, dann das: Die entwickeln die Sprache schneller weiter, als ich lesen - geschweige denn verstehen - kann...

Heute bin ich mittlerweile schon froh, wenn ich von den meisten neuen Entwicklungen in dieser Sprache wenigstens schon mal gehört oder gelesen habe. Von "kennen" mag ich schon gar nicht mehr reden...

(C++ ist mir theoretisch bereits bekannt)

Ja, nee, is' klar. :) 

"... während einer langen Krankheitsphase habe ich daher ein langes Buch für Einsteiger zu dieser Sprache verschlungen ... aber viel habe ich damit dann nicht einmal probiert – weil mir einfach der Grundaufwand für ein kleines Konsolenprogramm schon zu groß war." (O-Ton deines anderen Posts)

Damit hast du - nimm es mir nicht übel, sondern nimm es als HINWEIS für den kommenden Weg - ungefähr (grob geschätzt und plastisch veranschaulicht) 0,00000000000000001 Prozent des Wissens über C++ erlangt. "Theoretisch bekannt" ist dir daran jetzt nur, dass man C++ mit einem großen Buchstaben und zwei Plus-Zeichen schreibt und dass es aufwändiger als Blitz Basic ist. ;)

Schon, wenn ich dich fragen würde, was denn die 3 wichtigsten Unterschiede zu C (also das C ohne Plus-Zeichen) sind, wirst du ins Schwimmen kommen, oder?! ;) (Nein, auch das ist nicht böse gemeint. Es soll dich nur aufmerksam machen.)

Ich will mich generell auf die GUI konzentrieren, natürlich aber auch die Grundlagen beherrschen!

Ohne Grundlagen gar nix ... auch nicht GUI. Und schon gar nicht mehr als "Knöpfchen drücken - Passiert was?! ... Nein? .... Hmmmmm .... Warum nicht?!"

Du kannst dir natürlich was zusammenklicken, und sowas hier (TaskDialogIndirect) wird dir erstaunlich schnell von der Hand gehen; aber anderes wird sich noch mindestens einige Jahre lang deinem Verständnis entziehen. Ganz besonders, wenn du tiefer in die GUI willst, als einfach nur ein paar Schalter draufpappen.

Allein der Schock der OOP wird dich - gutmütig geschätzt - viele Monate kosten. Eher mehrere Jahre. Und manche begreifen es nie.

keine Videos! Die labern immer so langatmig

Dann wird's verdammt eng. Im Grunde gibt's dann nur: "Versuch macht kluch."

Ansonsten würde ich mal hier vorbeischauenhttp://www.c-sharpcorner.com/

Die beschäftigen sich schon seit vielen Jahren mit Tutorials und Details der Sprache. Wenn du da nicht fündig wirst, wirst du es nirgendwo. 

für C# für Fortgeschrittene empfehlen?

Sportfreund, du kommst von "Blitz Basic". Da ist "C# für Fortgeschrittene" für dich "Chinesisch rückwärts. Im HanZouJang-Dialekt. Aus dem 9. Jahrhundert vor Christus. Mit Geheim-Alphabet geschrieben."

Will sagen: Fange nicht damit an! Der Frustschock dürfte gewaltig sein. Und das wäre traurig, denn es ist wirklich eine wunderschöne Sprache.

Lerne erst mal fundamentale Grundlagen der OOP. Unabhängig von der Sprache. Bastle nebenbei deine ersten Programme. 

Und wenn du mich fragst: Fange mit Visual Basic an. Das ist viel vertrauter, fehlertoleranter und weniger strikt objektorientiert. Und damit mildert es den "Kulturschock", den du unweigerlich in den nächsten Wochen und Monaten erleben wirst, erheblich ab. 

Danach kannst du den nächsten Schritt machen und dich auf C# stürzen. ... Ist aber nur ein gut gemeinter Rat. Musst du nicht ernst nehmen.

BTW:

Auf jeden Fall deutsch!

Vergiss es! Diese Sprache ist so englisch, wie nur irgendwas. Gefühlte 99,5 Prozent der "guten" Tutorials wirst du nur in englischer Sprache finden. 

Und wenn du dich in neue Features einarbeiten willst, wartest du mehrere Monate, bevor es ein Buch in deutscher Sprache gibt. Der Aufwand der Übersetzung lohnt sich einfach kaum noch. Denn sobald das Buch ins Deutsche übersetzt ist, ist es auch schon veraltet...

Aber für den Einstieg kannst du sicherlich "deutsche Literatur" nutzen. An den Grundlagen - da sind sie wieder! - hat sich in den vergangenen 16 Jahren nix geändert. Nur wird sie eben "ziemlich langatmig" sein...

reddox86  11.08.2015, 20:32

Interessant geschriebene Antwort...hat Spaß gemacht zu lesen, deswegen DH.

Aber ich habe auch Ergänzungen/Einsprüche. Der wichtigste zuerst: Fang nicht mit VB. Ich persönlich halte dies für die grauenvollste Sprache die heute existiert (und ich habe mit Basic angefangen, aber die Sprache hat ihren Zenit meiner Meinung nach schon lange überschritten).

Zweiter Punkt: Deutsche Quellen veraltet - mag durchaus sein. C# ist heute aber so gut entwickelt das Erweiterungen nur noch Inkremente und keine Meilensteine sind, du musst nicht zwingend auf dem topaktuellem Stand sein. Ansonsten halte ich es aber für eine gute Sache, sich mit englischsprachigen Ressourcen auseinandersetzen zu können, da sich hier - insbesondere im Problemfall - viel schneller Antworten finden lassen.

Zur OOP: Das kann man man skaliert lernen. Ich bin kein großer Fan davon sein komplettes Programm in eine Klasse zu packen und zu sagen das ist objektorientiert (wie es leider viel zu oft - auch im professionellem Bereich - passiert). ABER: Du musst irgendwo anfangen. Ich halte C# für eine der potentere Sprachen um jemanden daran zu führen. Das ist ein Konzept was du am Anfang nur bedingt nutzen musst (C# zwingt dich einigermaßen dazu) - aber später schätzen lernst und konkreter nutzt. Ich bin ein Freund vom praktischen Anwenden - und das passiert nicht durch Bücher lesen und parallel weiter strukturiert zu programmieren.

GUI Programmierung ist in C# trivial...wen man von den Grundlagen ausgeht. Klar kann man das zu komplexeren Konzepten wie MVVM mit Databinding und Validation und was auch immer aufblähen. Aber das ist für einen Anfänger wahrscheinlich zu komplex. Was ja so toll ist: Du klickst dir dein Fenster zusammen und kannst direkt damit was tun. Ich glaube das ist unglaublich motivierend. Die fortgeschrittenen Themen kommen quasi von alleine.

Von C# für Fortgeschrittene würde ich aber auch abraten. Das mag funktionieren, wenn du fundierte Kenntnisse in Java oder C++ hast, ansonsten ist es wahrscheinlich tatsächlich frustrierend (kenne die konkreten Seiten jetzt aber auch nicht)

Zur Lernresource...ich habe mal das C# Openbook durchgeskippt und fand es nicht schlecht, habe auch in einer Antwort eine sinnvolle Lesereihenfolge nach meiner Meinung vorgeschlagen (kann die Antwort spontan nicht finden) - vielleicht mal danach schauen.

0
Unsinkable2  11.08.2015, 21:06
@reddox86

Der wichtigste zuerst: Fang nicht mit VB. Ich persönlich halte dies für die grauenvollste Sprache die heute existiert

Ich meine, dich schon hin und wieder bemerkt zu haben. Also gehe ich davon aus, dass du mich auch schon gelesen hast. Und dann dürfte dir klar sein, dass ich nur selten etwas "dahin sage oder schreibe".

Wenn ich VB empfehle, dann aus zwei Gründen:

  1. Der Junge kommt von Blitz Basic. Er beherrscht also schon - im doppelten Sinne - viele "BASICs". 
  2. VB ist .NET. Der Umstieg von BB nach VB und dann nach C# ist weniger brutal, als der Umstieg von BB nach C#.

Ganz egal, wofür du die Sprache hältst (und aus HEUTIGER Perspektive gebe ich dir - und wird dir auch KnorxThieus in ein paar Jahren - unumwunden Recht): Sie ist ein softer Einstieg mit ERHEBLICH WENIGER HÜRDEN. Ganz besonders für einen Einsteiger.

Ansonsten halte ich es aber für eine gute Sache, sich mit englischsprachigen Ressourcen auseinandersetzen zu können ... viel schneller Antworten finden lassen.

Du nennst die richtigen Voraussetzungen, ziehst aber die falschen Schlussfolgerungen: 

Leute, wie KnorxThieus, die gezielt auf "Laber nich'!" abstellen, kommen mit "Ressourcen" besser klar. Dort steht meist nur das Allernotwendigste. Doch listigerweise meist auf Englisch. Und die Übersetzungen machen das "Think Microsoft!" nicht gerade einfacher.

Zur OOP: Das kann man man skaliert lernen.

Hier bist du schon zwei, drei Schritte vorgelaufen. Nochmals: Der Junge kommt von BB. Er hat NOCH NIE IN SEINEM GANZEN LEBEN OO gesehen. 

Sei versichert: Der Schock wird ein Kracher. Und bevor er die ersten - allerfundamentalsten(!) - Grundlagen kapiert hat, haben wir Ostern. 2016. Und wenn er sich dieser Grundlagen nicht annimmt, wird er es im Laufe der Zeit immer schwerer und schwerer haben, essenzielle Konzepte zu verstehen. Das Resultat sind dann solche Stümper-Texte, wie du sie erwähnst. Texte also, denen man auf den ersten Blick ansieht, was der Autor leisten kann, wenn es darauf ankommt...

DANACH gebe ich dir Recht: Wenn man erst mal die OO-Basics WIRKLICH VERSTANDEN hat, läuft's fast von allein.

GUI Programmierung ist in C# trivial...wen man von den Grundlagen ausgeht. Klar kann man das zu komplexeren Konzepten wie MVVM mit Databinding und Validation und was auch immer aufblähen.

"GUI-Programmierung" ist ein bisschen mehr als "MVVM-Konzept". Es mag sein, dass ich ihn missverstanden habe; und dass er eigentlich wirklich nur meint, ein paar vorgefertigte Controls hin und her zu schieben.

Aber schon bei der Entwicklung von einfachsten visuellen Controls stehen wir wieder ... ach, siehe oben. Und wenn DIE Dinger nicht super-anwenderfreundlich (und hier ist "Programmierer-freundlich" gemeint) funktionieren, ziehst du dir den Zorn ganzer Rattenschwänze auf dich...

Was ja so toll ist: Du klickst dir dein Fenster zusammen und kannst direkt damit was tun.

Richtig. (Die 3-Zeilen-Datenbank-Anbindung ist immer noch der Knaller auf meinen "Missions-Veranstaltungen", wenn ich C++-Jünger zu C#-Apologeten mache. :)) Aaaaaber: KnorxThieus redet von GUI-PROGRAMMIERUNG. 

Das hat NIX mit "Fenster zusammenklicken" zu tun. Oder zumindest: Sowas ist eine Aufgabe, die man beim ersten Frühstück zwischen zwei Tassen Kaffee erledigt. Zum wach werden. 

Und es hat noch weniger mit "... kannst direkt was damit tun." zu tun. Vielmehr geht es hier um Komponenten-Entwicklung, performante Darstellungen, etc. ... Da wird stellenweise selbst C# zu eng.

Auch hier gilt: Ich mag ihn missverstehen; aber wenn er nach GUI-PROGRAMMIERUNG fragt, informiere ich ihn auch darüber. Alles andere wäre - in meinen Augen - Verrat am "Guten Rat".

Von C# für Fortgeschrittene würde ich aber auch abraten. Das mag funktionieren, wenn du fundierte Kenntnisse in Java oder C++ hast, ansonsten ist es wahrscheinlich tatsächlich frustrierend

Java? Ja! Unbedingt! Aber C++? Da liegen ganze Welten zwischen... Kaum weniger als zwischen BB und C#. Nur, dass BB erheblich weniger komplex ist.

ich habe mal das C# Openbook durchgeskippt ... abe auch in einer Antwort eine sinnvolle Lesereihenfolge nach meiner Meinung vorgeschlagen

Denk dran: "Die in den Videos labern zu viel."; daran müssen sich auch deine Buch-Vorschläge messen lassen. 

Und, ganz ehrlich, ich könnte KEIN EINZIGES meiner Bücher reinen Gewissens empfehlen. In ALLEN wird "gelabert". Und bei etlichen bin sogar ICH der Überzeugung, dass der Verlag eine Mindest-Gewichtsvorgabe für das Buch gemacht hat... ;)

0
KnorxyThieus 
Fragesteller
 11.08.2015, 21:40
@reddox86

Deinen ersten beiden Punkten stimme ich voll und ganz zu, so sehe ich das auch.
Auch mit deinem dritten Absatz nimmst du mir fast das Wort aus dem Mund … Als reiner Hobbyist möchte ich meine Ideen verwirklichen und nicht studieren (bzw. möglichst wenig).

"GUI-Programmierung" ist ein bisschen mehr als "MVVM-Konzept". Es mag sein, dass ich ihn missverstanden habe; und dass er eigentlich wirklich nur meint, ein paar vorgefertigte Controls hin und her zu schieben.

MVVM habe ich noch nie gehört, aber an was dachtest du unter GUI?
An komplette Suites oder Studios habe ich nie gedacht, nur an die Erstellung kleinerer bis mittlerer Oberflächen, wie sie einem unter Windows überall begegnen. (Unter B+ habe ich solche schon geschaffen.) Expandieren kann man ja immer noch – mein Traum ist es (der mich mit motiviert!), in ferner Zukunft einen Registry-Editor aufzubauen.

Denk dran: "Die in den Videos labern zu viel."; daran müssen sich auch deine Buch-Vorschläge messen lassen. 

Schon, aber in Büchern und Texttutorials kann ich wenigstens nach Belieben überfliegen und vorscrolllen. Der MSDN-Player hingegen bietet zum Vorspringen nicht mal ein Vorschaubild …

0
Unsinkable2  11.08.2015, 22:31
@KnorxyThieus

an was dachtest du unter GUI?

"GUI-Programmierung" ist in weiten Teilen sogenannte "Komponenten-Entwicklung". 

An komplette Suites oder Studios habe ich nie gedacht, nur an die Erstellung kleinerer bis mittlerer Oberflächen, wie sie einem unter Windows überall begegnen.

Ich auch nicht. Jedenfalls nicht für die ersten 5 - 7 Jahre. Bei täglicher Anwendung. Mindestens 2 - 5 Stunden am Tag.

Beispielsweise kannst du diese Kommentar-Funktion hier nehmen: Sie besteht im Wesentlichen aus drei Komponenten: "Menü", "Text-Eingabefeld" und "Abschicken-Button". Fertig. 

Doch darin stecken zahlreiche Features, die Optik, Ablauf und Funktion beeinflussen:

Dieses Text-Eingabefeld kann beispielsweise dicke und kursive Buchstaben darstellen, so dass man "WYSIWYG" ("What-you-see-is-what-you-get") hat. Das macht die Komponente vollautomatisch, sobald man ihr einen bestimmten Darstellungs-Befehl gibt. Die Entwickler dieser Website mussten sich also nicht mehr darum kümmern, sondern konnten das Eingabefeld samt Menü einfach mit wenigen Zeilen Code einfügen und nutzen. Und DAS zu erreichen, ist die Aufgabe von GUI-Entwicklern.

Ein GUI-Entwickler bastelt also genau solche Dinge, damit spätere Programmierer sie einfach auf die Oberfläche ziehen und mit (möglichst) wenig Aufwand nutzen können.

mein Traum ist es (der mich mit motiviert!), in ferner Zukunft einen Registry-Editor aufzubauen.

Kein Traum. Keine ferne Zukunft. 

Mit dem Visual Studio kannst du das in wenigen Stunden zusammenbauen. Zumindest, wenn er nicht viel mehr als der "echte" Registry-Editor können soll. Das hat aber nur wenig mit Programmierung zu tun. 

Wir reden hier aber über GUI, also Graphical User Interfaces, oder?! Und da ist ein "Registry-Editor" bestenfalls eine Einstiegsübung für den Anfang...

Also komplett strukturlos ist Blitz auch nicht gewesen! 

Ich will dich doch nicht demotivieren. Und ich lache auch nicht über BB. 

Es ist nur ein Unterschied zwischen "Strukturen" und "OO". Und welcher das ist, wirst du in den nächsten Wochen und Monaten selbst feststellen. 

DANN, also in 1, 2 Jahren, wirst du glauben, du hättest vorher mit einem Faustkeil gearbeitet. Auf dem Weg dorthin wirst du dir mit dem "neuen Hammer" aber so oft auf die Finger schlagen, dass du dir deinen "gewohnten Faustkeil" mehr als einmal zurückwünschen wirst.

Als ich damals mit der OO anfing (ich kam von Assembler und C), habe ich die [zensiert] [zensiert] Entwicklungsumgebung (damals begann ich mit O-Pascal, weil ich schon einige Pascal-Ausflüge gemacht hatte) mehr als einmal frustriert deinstalliert und in die [zensiert] [zensiert] Ecke geworfen, weil die ganze [zensiert] [zensiert] so verdammt [zensiert] [zensiert] war, dass [zensiert] [zensiert] [zensiert] und [zensiert], so dass ich die [zensiert] [zensiert] [zensiert] [zensiert] gemacht habe... Und das kannst du mir glauben!

Und bis heute sehe ich immer wieder in glasige Augen, wenn wir auf OO-Themen zu sprechen kommen müssen, um fundamentale Probleme lösen zu können.

Dabei ist die OO eine ganz merkwürdige Sache: Viele Leute quälen sich Jahre lang damit rum; und dann - fast über Nacht - macht's irgendwann mal *knack* ... und plötzlich denkt man: "Mööööööönsch, und damit habe ich mich so lange rumgequält? Das ist doch ganz natürlich und intuitiv. Es gibt gar keine andere Interpretation.

Aber der Weg dorthin ist frustrierend und steinig. Und davor wollte ich dich warnen. Nicht, um diesen Weg zu vermeiden, sondern, um dir Knieschoner bereitzulegen.

1
KnorxyThieus 
Fragesteller
 11.08.2015, 22:48
@Unsinkable2

Danke für deine weitere Antwort.

In diesem Fall meinte ich wohl Programmierung mit der GUI, also eher Softwareentwicklung Front-end (?).

WYSIWYG kannte ich schon (das kannte aber selbst der Support hier nicht …)

mein Traum ist es (der mich mit motiviert!), in ferner Zukunft einen Registry-Editor aufzubauen.

Kein Traum. Keine ferne Zukunft. 

Mit dem Visual Studio kannst du das in wenigen Stunden zusammenbauen. Zumindest, wenn er nicht viel mehr als der "echte" Registry-Editor können soll.

Wirklich? Der Faustkeil stellt sich ein …

Aber kann man nicht auch unter C# OOP lernen?‭
Wenn's mir zu schwierig wird, kann ich ja immer noch abbrechen.

0
Unsinkable2  11.08.2015, 22:56
@KnorxyThieus

In diesem Fall meinte ich wohl Programmierung mit der GUI, also eher Softwareentwicklung Front-end (?).

Siehst du: Ich habe dich missverstanden.

In diesem Fall solltest du aber m. E. trotzdem noch über Visual Basic nachdenken. Nicht unbedingt dauerhaft; denn, wie @reddox86 schon schrieb: Visual Basic hat die besten Zeiten hinter sich. Und auch dort wirst du schon nach einiger Zeit an Grenzen stoßen, vor allem bei der Qualität des Codes.

Aber es ist ein leichterer Einstieg in die OO, weil es ERHEBLICH fehlertoleranter ist und gerade Anfängerfehler sehr viel gnädiger behandelt, als C# oder andere Hochsprachen.

Aber kann man nicht auch unter C# OOP lernen?‭

OO ist ein sprachen-unabhängiges Konzept. 

Ja, du kannst es unter C# lernen. Aber das bedeutet sehr viel mehr Beulen und Kratzer für dich, als wenn du das Grundverständnis auf der Meta-Ebene suchst. Sobald du letzteres - also das Grundverständnis - hast, wirst du ersteres - also die Konstruktion der Sprache C# - sehr viel leichter durchschauen können. 

Wenn du beides gleichzeitig versuchst, wird es nur schwieriger werden, weil dein Kopf sich unheimlich viele Dinge gleichzeitig merken muss, wenn du Erfolg haben willst.

Deshalb auch mein Vorschlag: Beschäftige dich mit der OO komplett unabhängig von Sprachen. Kaufe dir ein Buch. Schleppe es überall hin mit. Und wenn du auf die Bahn wartest, oder am Strand liegst, kannst du es lesen, ohne einen Computer in der Nähe zu brauchen, um irgendwas "nachzubasteln". 

PARALLEL dazu kannst du dich mit C# und der Programmierung im VS beschäftigen. Entkopple es gedanklich. Baue deine alten BB-Programme nach. Die Verknüpfung kommt mit der Übung von ganz allein. Und wenn du die Konzepte aus dem Buch in deinem Programmcode SELBST AUSTÜFTELN musst, lernst du erheblich schneller, effektiver und frustfreier...

1
KnorxyThieus 
Fragesteller
 11.08.2015, 23:16
@Unsinkable2

Das klingt ganz vernünftig; weißt du ein unabhängiges OO-Tutorial für mich? :)

Zur Zeit (nach dem Lesen des C++-Buches) habe ich noch nicht mal eine Vorstellung, was es über OO weiteres zu wissen gibt …

0
CSANecromancer  12.08.2015, 08:30
@reddox86

GUI Programmierung ist in C# trivial...wen man von den Grundlagen ausgeht.

Meeep! Einspruch euer Ehren!

Sobald du von Form1 aus auf GUI-Elemente von Form2 zugreifen willst (und solch einen Zugriff sehe ich auch als etwas triviales an), bist du auch schon ruckzuck in der Threading-Thematik drin. 

Oder wenn du in Form1 eine längere Schleife durchlaufen lässt und gleichzeitig eine weitere Form mit ShowDialog() öffnest (z.B. längerer Kopiervorgang, zu dem eine Form mit ProgressBar eingeblendet werden soll, die aber nicht einfach weggeklickt werden können soll; also wieder etwas, was gelegentlich in der Praxis vorkommt) - RUMMS, schon wird dir Form1 gnadenlos gebremst/gestoppt. Es sei denn, du weisst, wie du innerhalb des Kontext von Form1 den ShowDialog() in einen separaten Thread zu verpacken hast.

Das sehe ich nicht wirklich als "trivial" an.

Und von irgendwelchem MVVM/MVC-Unfug sind wir da immer noch ein gutes Stück entfernt. (Sorry, komme aus der VCL-Ecke, da war das MVC-Gekasper von Microsoft für mich die Seuche in Binärform ;) ).

1
KnorxyThieus 
Fragesteller
 11.08.2015, 21:19

Hallo,

Ein Buch? Lieber nicht, ich suche etwas kürzer Gefasstes

Das ist jetzt nicht dein Ernst, oder?! "Kürzer als EIN Buch" soll es sein? 

Ich meinte ja nur für den Einstieg; den allgemeinen Aufbau und die Option, einfache Kommandozeilenprogramme entwerfen zu können.

(C++ ist mir theoretisch bereits bekannt)

Ja, nee, is' klar. :) 

[…]

Damit hast du - nimm es mir nicht übel, sondern nimm es als HINWEIS für den kommenden Weg - ungefähr (grob geschätzt und plastisch veranschaulicht) 0,00000000000000001 Prozent des Wissens über C++ erlangt. […]

Auch dies war nur ein Einsteigerbuch. Und zumindest die objektorientierten Grundzüge habe ich einigermaßen verstanden.

Schon, wenn ich dich fragen würde, was denn die 3 wichtigsten Unterschiede zu C (also das C ohne Plus-Zeichen) sind, wirst du ins Schwimmen kommen, oder?! ;)

Das liegt daran, dass ich mir nicht vorher explizit C betrachtet habe.

Ich will mich generell auf die GUI konzentrieren, natürlich aber auch die Grundlagen beherrschen!

Ohne Grundlagen gar nix ... auch nicht GUI. Und schon gar nicht mehr als "Knöpfchen drücken - Passiert was?! ... Nein? .... Hmmmmm .... Warum nicht?!"

Da widersprichst du mir gar nicht.

Allein der Schock der OOP wird dich - gutmütig geschätzt - viele Monate kosten. Eher mehrere Jahre. Und manche begreifen es nie.

Ebenso. Aber irgendwann muss ich ja anfangen.

für C# für Fortgeschrittene empfehlen?

Sportfreund, du kommst von "Blitz Basic". Da ist "C# für Fortgeschrittene" für dich "Chinesisch rückwärts. Im HanZouJang-Dialekt. Aus dem 9. Jahrhundert vor Christus. Mit Geheim-Alphabet geschrieben."

Kennst du BlitzPlus überhaupt?
Sicherlich, ganz ohne Zweifel, wie auch bereits selber langsam erfahren habe, besitzt es erhebliche Primitivität gegenüber einer Profi-Sprache; aber – wie nur zu viele Tutorien und Anlaufsstellen für Anfänger immer wieder betonen – größtenteils besteht das Programmieren doch aus dem logischen Denken und Planen und nicht nur dem Verstehen der Syntax. Und Ersteres habe ich bereits einige Jahre lang trainiert!

Nebenbei, aus Interesse habe ich mal in ein winziges C#-Projekt hineingeschaut. (https://github.com/theblixguy/MetroRemove/tree/master/mremGUI)
Und so im Groben habe ich es auch verstanden, also wären wir wohl eher bei Frühhochdeutsch gelandet!

Lerne erst mal fundamentale Grundlagen der OOP. Unabhängig von der Sprache. Bastle nebenbei deine ersten Programme. 

Also komplett strukturlos ist Blitz auch nicht gewesen!
Praktische Listenverwaltung gibt es dort zumindest, die man einfach verschachteln konnte, und ich habe für einen Ansatz eines Grammatikinterpreters OOP teilweise nachgeahmt – vielfache Schachtelung, Verarbeitung der Objekte unterschiedlich gemäß eigens deklarierter Typenvariablen, und mittendrin habe ich mir auch gewünscht, ich könnte das schon unter einer richtigen Sprache bewerkstelligen. Ich will nicht protzen, aber gewisse Vorverständnisse möchte ich da doch behaupten!
Und wenn man 2 Monate lang keine große Beschäftigung außer einem neuen spannenden C++-Buch hat, setzt man sich damit doch recht intensiv auseinander.

Und damit mildert es den "Kulturschock", den du unweigerlich in den nächsten Wochen und Monaten erleben wirst, erheblich ab.

Ach, ich möchte mich schon ganz gerne fordern … und wird es mir wider Erwarten doch zu bunt, kann ich ja immer noch zurückziehen.


Deutsch/Englisch:

 Ja, für die Dauer werde ich wohl mit mindestens gelegentlichem Englisch leben müssen, das ist mir schon klar … aber warum aufwändig machen, wo es nicht sein muss?

0
Unsinkable2  11.08.2015, 22:39
@KnorxyThieus

erhebliche Primitivität gegenüber einer Profi-Sprache

Höre auf, in solchen Kampf-Begriffen zu denken!

Es gibt keine "Profi-Sprachen"! Es gibt Werkzeuge. <- Punkt.

Es gibt auch keine "perfekten Werkzeuge". Es gibt nur "viele unterschiedliche Werkzeuge". Und wer behauptet, er könne mit einer Sprache alle seine Probleme lösen, dem kannst du tief in die Augen schauen und laut und deutlich "Spinner! Du hast nicht den Hauch einer Ahnung!" sagen.

Und wenn wir von "primitiv" reden, dann nicht, weil es "subjektiv doof" ist, sondern weil "primitiv" schlicht EINFACH heißt. Und ja, du wirst noch feststellen, dass BB im Vergleich zu vielen anderen Sprachen - auch VB - extrem einfach gehalten wurde.

Ach, ich möchte mich schon ganz gerne fordern … und wird es mir wider Erwarten doch zu bunt, kann ich ja immer noch zurückziehen.

Genau das würde ich gern vermeiden. Deshalb all die Hinweise und vielen Worte. 

Das Gute wirst du schnell allein rausfinden. Dazu brauchst du keine Lobreden. Es reicht, wenn du mal ein BB-Programm in VB oder C# nachbastelst und die Zeit stoppst. Wenn du nicht in weniger als 1/3 der Zeit fertig wirst, bist du nicht fit genug. ;)

Aber vor den Schwierigkeiten warnen nur die Wenigsten. Nicht zuletzt, weil der Mensch gern vergisst, wie lang und steinig sein Weg bis zu dem Punkt, an dem er sich befindet, tatsächlich war.

Doch nochmals: Nicht, damit du erschreckt aufgibst, sondern damit du es als Hinweis - als "guten Rat" - mitnimmst und daran denkst, dass du in keiner Sekunde deines zukünftigen Weges allein bist: Über jeden ver[zensiert] [zensiert] Stein sind vor dir schon Hunderte anderer gestolpert. Entscheidend ist, dass du wieder aufstehst und weitergehst.

1
KnorxyThieus 
Fragesteller
 11.08.2015, 23:10
@Unsinkable2

Für de Rat danke ich dir aufrichtig. Ich werde ihn aber wahrscheinlich erst später richtig beherzigen können …

Und wo fange ich jetzt an? Ich habe von einem Buch (hatten wir doch schon da!) und zwei Online-Artikeln bislang nichts gefunden, dass nicht auf C- oder allgemeinen Grundlagen aufbaute.
Kennst du da etwas?

0
Unsinkable2  12.08.2015, 11:22
@KnorxyThieus

Wie bei den Sprachen, so sehe ich es auch bei den Büchern: Es gibt nicht "das perfekte Buch". (Vielleicht sollte man mal eins schreiben? XD)

1. Der Sommerville ist ein Klassiker und Standard: "Software Engineering" (Ian Sommerville) (ISBN 3868940995). Es ist aber knochentrocken geschrieben. Dafür gibt's hier einen guten Überblick, was so alles geht. Und du wirst die letzte Seite mit jeder Menge offener Fragen zuschlagen. ... Es ist also eigentlich "der perfekte Anfang".

2. Auch der Balzert gehört dazu: "Lehrbuch der Software-Technik" (Helmut Balzert) (ISBN 3827417058). Noch trockener als das erste Buch. Und im Grunde für dich erst mal ein "Entweder/Oder"-Buch: Also dieses oder das oben. Eins reicht für den Anfang.

3. Dann kannst du bei seiner Frau weiterlesen: "Lehrbuch der Objektmodellierung" (Heide Balzert) (ISBN 382742903X) Das Buch ist schon 10 Jahre alt, aber die Inhalte haben sich im Wesentlichen nicht geändert. (Lies VORHER den Sommerville oder den anderen Balzert!)

4. Die "Entwurfsmuster" (Matthias Geirhos) (ISBN 3836227622) gehen schon ins Detail und zeigen dir etliche verschiedene Modelle. Hier findest du auch Informationen zu MVVM (genauer: MVC, das quasi die Basis darstellt), über das wir weiter oben sprachen.

---------------------------------

Also: 1 & 4 = mindestens; (1|2) & 3 & 4 = reicht, um dich bis weit nach Ostern (und noch 5 Jahre länger) zu beschäftigen.

Danach wirst du so viele Fragen haben, die du konkret formulieren kannst, dass dir das Internet helfen kann bzw. du auch gezielt Bücher finden kannst, die deinen Wissensdurst stillen werden.

---------------------------------

Und mittlerweile tendiere ich dazu: Keine Bücher zur Sprache mehr. Das ist in 99% der Fälle verschwendetes Geld. Wenn du C# oder VB oder irgendeine andere Sprache lernen willst, findest du Zehntausende Tutorials, Snippets und Erklärungen im Internet. 

1. Beginne ein überschaubares Projekt (deine alten BB-Programme)

2. Setze es in der von dir gewählten Sprache um. (Ganz egal, Hauptsache es läuft irgendwie)

3. Verfeinere es! Baue es um. Mache es "Funktions-orientierter", "Klassen-orientierter", isoliere den Code, zerhacke ihn, mache ihn wiederverwendbar, etc. 

4. Je mehr du von den o. g. Büchern verstehst, desto mehr setze davon um. Insbesondere der Geirhos kann dir hier verschiedene Ansätze zeigen, so dass du irgendwann merken wirst, dass du ein Programm auf Dutzende Weisen schreiben kannst. Mache davon so viele du kannst. Das vertieft das Verständnis, warum mal eines mehr und das andere weniger nützlich ist (oder sogar gar nicht umzusetzen geht) und warum es an anderer Stelle umgekehrt ist.  

Maßgeblich entscheidend für deine Lernerfahrung ist insbesondere Punkt 3. In der praktischen Arbeit kann man es sich kaum leisten. Aber wenn du die gleichen Dinge auf unterschiedlichen Wegen erreichst, wirst du schneller feststellen, wo die jeweiligen Vorteile liegen.

Hier gibt's den Einstieg in den Einstieg zur Praxis: 

https://msdn.microsoft.com/de-de/library/Aa288436(v=VS.71).aspx

---------------------------------

Bei der Umsetzung hilft dir das MSDN immer weiter. Es wäre meine erste Anlaufstelle. Das gilt auch - und insbesondere - wenn es um den "theoretischen Einstieg" geht. 

msdn.microsoft.com/de-de/library/vstudio/hh156542(v=vs.110).aspx

Wenn da irgendwo was von "Grundlagen" steht: Draufpatschen!

Und damit du schon mal siehst, was noch alles geht, guckst du hier: msdn.microsoft.com/developer-centers-msdn

1
KnorxyThieus 
Fragesteller
 12.08.2015, 12:40
@Unsinkable2

Puh, das sieht ja nach richtiger Arbeit aus …
Und online findet man zur OOP nichts Richtiges?

Wenn du C# oder VB oder irgendeine andere Sprache lernen willst, findest du Zehntausende Tutorials, Snippets und Erklärungen im Internet.

Ja, ich habe jetzt die dotnetcademy.net gefunden (oder hatte mir die jemand empfohlen …?). Das ist zwar auch Englisch, aber ich finde es richtig gut.

Das mit dem Code Umschreiben hätte ich normalerweise abgelehnt, weil es öde und oberflächlich betrachtet ineffektiv scheint. Aber die Motivation, dass kleine gebaute Tools so eine enorme Beschleunigung erfahren, hilft! Wirklich ein guter Rat, weil ich mich dann auch nicht aufs Ideen-Entwickeln konzentrieren muss.

0
Unsinkable2  13.08.2015, 11:57
@KnorxyThieus

Und online findet man zur OOP nichts Richtiges?

Das gibt's sicherlich mittlerweile auch. Ich habe nie danach gesucht. (Das waren für mich noch die Zeiten, als das Internet eher wenig Informationen, dafür aber viele "Aquarien-Tipps" bot.)

... und selbst heute würde ich bei "theoretischen Themen" immer noch Bücher bevorzugen. Aber das ist wohl subjektiv.

Aber die Motivation, dass kleine gebaute Tools so eine enorme Beschleunigung erfahren, hilft!

Nimm es vor allem als Lernerfahrung, dass die Dinge, die du gewohnt bist, nun "anders" sind. Der schwierigste Teil für Umsteiger ist es, sich von den Gewohnheiten zu lösen. Daher sind "vergleichende Studien" nicht nur in der theoretischen Wissenschaft, sondern auch beim "Lernen von Sprachen" extrem hilfreich, weil weniger frustorientiert.

1
KnorxyThieus 
Fragesteller
 13.08.2015, 12:02
@Unsinkable2

Na ja, das C#-Buch, was ich zuhause noch entdeckt habe, geht nur wenig auf die tatsächlichen Befehle ein, sondern mehr auf den ganzen Konstrukt; damit werde ich es mal versuchen.

Dummerweise ist der interaktive Kurs, den ich in meinem letzten Kommentar erwähnt habe, viel zu kurz gewesen, da werde ich wohl noch mal was Neues suchen müssen.

0
Apps4Fun  14.08.2015, 19:40
@KnorxyThieus

programmieren lernen ist leichter als dieses profilier Gehabe zu erdulden. VisuellBasic ist auch für bb Programmierer heftig. ich empfehle Delphi pascal. hat eine starke communitiy und viel Lehrmaterial.

0
KnorxyThieus 
Fragesteller
 01.12.2016, 15:25

Hallihallo,

ich wollte mich nach rund einem Jahr noch mal zurückmelden und von meiner Freude mit C# berichten. :-)

Mithilfe von einem ausgedienten C#-Buch, MSDN, stackoverflow.com und dotnetperls.com habe ich mir einige Grundlagen, was allgemeine Klassen- und Schnittstellenstrukturen angeht, erfolgreich beibringen können und programmiere seit nunmehr ca. 12 Monaten an einem für mich recht anspruchsvollen Projekt. :)

Okay, Dinge wie MVVM kenne ich (natürlich) noch nicht - was aber auch einfach daran liegen mag, dass ich beim Suchen nach Lösungen für Probleme bisher nicht darauf gestoßen bin bzw. keinen Anreiz dafür gesehen habe. Den Umstieg habe ich dafür bisher noch nie bereut.

Nur eines erstaunt mich:

Und bis heute sehe ich immer wieder in glasige Augen, wenn wir auf OO-Themen zu sprechen kommen müssen, um fundamentale Probleme lösen zu können.

Dabei ist die OO eine ganz merkwürdige Sache: Viele Leute quälen sich Jahre lang damit rum; und dann - fast über Nacht - macht's irgendwann mal *knack* ... und plötzlich denkt man: "Mööööööönsch, und damit habe ich mich so lange rumgequält? Das ist doch ganz natürlich und intuitiv. Es gibt gar keine andere Interpretation.

So ein Aha-Erlebnis habe ich auf meinem bisherigen Weg eigentlich noch nicht bewusst erlebt. Das wundert mich, habe ich bis jetzt wirklich noch keine objektorientierte Erkenntnis erfahren? Oder aber ist es mir gleich bei meinen ersten Versuchen klar gewesen? Das würde ich gerne wissen.

Jedenfalls noch mal Danke an eure Ratschläge und noch eine schöne Adventszeit! :-)

0

Wenn dir C++ geläufig ist und sämtliche OOP Muster vertraut sind dann würde ich mich an ein selbstgestecktes Ziel wagen und für die jeweiligen Probleme die Lösung suchen. Bei jedem anderen Zeugs wirst du Themen haben die du bereits kennst.

Wenn dich GUI so interessiert dann würde ich in XAML (mit einem Anfänger-Tutorial :)) einsteigen.

KnorxyThieus 
Fragesteller
 11.08.2015, 19:15

Wenn dir C++ geläufig ist und sämtliche OOP Muster vertraut sind […]

Das nun auch wieder nicht (mehr); ich kenne die Grundzüge so ungefähr, würde aber lieber komplett neu in C# einsteigen.
Ich möchte bloß nicht wieder hören: Das ist ein Integer, das ist eine Funktion, das ist ein Operator …

0

Das könnte dir helfen:

http://www.amazon.de/Einstieg-Visual-2013-Programmieranf%C3%A4nger-geeignet/dp/3836228149/ref=sr_1_1?ie=UTF8&qid=1441048445&sr=8-1&keywords=c%23

ist zwar ein Buch, aber nach den ersten 50 Seiten habe sogar ich als kompletter Neueinsteigern OHNE Vorkenntnisse das GUI ganz gut hinbekommen. Wenn du aber detailliertere Informationen zur Sprache, bzw. zu GUI-Elementen und deren Benutzung haben willst, empfehle ich dir, den Rest des Buches zu lesen (nicht viel Arbeit, leicht verständlich geschrieben).

Ich hoffe, ich konnte dir weiterhelfen

KnorxyThieus 
Fragesteller
 31.08.2015, 21:41

Danke, jedoch habe ich in einem Schrank noch ein altes Buch gefunden – 10 Jahre alt, aber doch ganz okay :)

0

Als guten Einstiegspunkt in C# empfehle ich den Guide to C# 

Seine Online-Version:  http://www.guidetocsharp.de/Guide.aspx 

KnorxyThieus 
Fragesteller
 11.08.2015, 22:37

Danke dir! Kommt in die Auswahl!

0