it-swarm.dev

Ist das Erlernen von C # als Muttersprache ein Fehler?

Ich weiß, dass es hier ähnliche Fragen gibt, die ich gelesen habe, aber ich habe kürzlich diesen Beitrag von Joel Spolsky gelesen:

Wie kann ich einer klugen Person ohne Programmiererfahrung das Programmieren beibringen?

Und es brachte mich dazu, über meine Art zu lernen nachzudenken und ob es auf lange Sicht tatsächlich schädlich sein könnte.

Ich habe mich mit verschiedenen Sprachen beschäftigt, aber C # ist meine erste ernsthafte, ich habe "Head First C #" gelesen und ein paar Projekte erstellt. Aber nachdem ich den obigen Beitrag gelesen habe, fand ich es ein bisschen entmutigend, dass ich alles falsch mache. Offensichtlich respektiere ich Joels Meinung, was mich ein bisschen geworfen hat.

Ich habe angefangen, "Code" zu lesen, wie in der Leseliste empfohlen, und ich finde es ziemlich schwierig, obwohl es Spaß macht. Ich habe das Gefühl, dass mein "noobish hacking about" in Visual Studio den Glanz genommen hat.

Jetzt bin ich mir nicht sicher, welchen Weg ich einschlagen soll? Sollte ich einen Schritt zurücktreten und Joels Rat befolgen und mit dem Lesen beginnen?

Ich denke, mein Hauptziel ist es, wie alle anderen auch ein guter Programmierer zu werden, aber ich möchte nicht schlecht lernen, indem ich eine .NET-Sprache lerne, wenn jemand, dessen Meinung ich respektiere, dies für schädlich hält.

Gedanken?

26

Ich habe mit verschiedenen Sprachen getupft, aber C # ist meine erste ernsthafte, ich habe "Head First C #" gelesen und ein paar Projekte erstellt. Aber nachdem ich den obigen Beitrag gelesen habe, fand ich es ein bisschen entmutigend, dass ich alles falsch mache. Offensichtlich respektiere ich Joels Meinung, was mich ein bisschen geworfen hat.

Ich respektiere auch Joels Meinungen, aber sie sind genau das: Meinungen. Es ist absolut nichts Falsches daran, C # als Startsprache zu verwenden.

Der größte Rat, den ich Ihnen geben kann, oder jeder, der beliebig programmiert (selbst wenn er in Vanilla C beginnt!), Ist nicht stagnieren und nicht religiös sein . Es ist mir egal was Programmiersprache, mit der Sie beginnen, oder wie rein oder gerecht diese Sprache ist - heutzutage können Sie es sich nicht leisten, nur in der Welt des Programmierens zu sitzen.

Zum Beispiel habe ich als Teenager angefangen, mit PHP3 zu programmieren. Ich habe einige kleine Web-Apps und einige Websites damit erstellt. Ich dachte, ich wäre ein genialer Programmierer und könnte alles mit PHP3 machen, und runzelte die Stirn, wenn es um ASP oder BASIC ging. Junge, habe ich mich geirrt?.

Ich begann nicht wirklich als Entwickler aufzublühen, bis ich anfing, meinen Horizont zu erweitern und andere Programmiersprachen und Konzepte zu studieren. Während der High School lernte ich RealBASIC und später Visual Basic. Nach der Business School, als ich ein professioneller Entwickler wurde, begann ich ernsthaft C # und Javascript zu lernen.

Verstehen Sie mich hier nicht falsch - ich bin nicht und befürworte, dass Sie versuchen, ein Alleskönner zu sein. Im Herzen und im Handel bin ich immer noch ein PHP Programmierer. PHP ist mein Brot und Butter, und ich weiß es innen und außen. Meine PHP Fähigkeiten wurden jedoch nicht zu dem, was sie nur mit PHP machten. Hier sind einige sehr wichtige Konzepte, die ich aus PHP nicht verstanden habe, obwohl ich professionell darin gearbeitet habe.

  • Javascript: Verschlüsse
  • jQuery (ja, getrennt): DOM und Ajax
  • Visual Basic: Objektorientierte Programmierung
  • C #: Generika und Verschlüsse
  • Ruby (auf Schienen): Die Kraft des MVC-Designs

Ich könnte tagelang weitermachen, und viele andere auf dieser Seite auch. Obwohl ich ein PHP Programmierer bin, konnte ich all diese anderen wunderbaren Konzepte in meine tägliche Arbeit zurückbringen.

Was ist mein Punkt? Lerne C #. Werde ein Meister von C # - du wirst eine lange, erfolgreiche Karriere haben und wahrscheinlich einige erstaunliche Dinge erreichen. Aber nicht Taubenloch selbst. Reisen Sie und probieren Sie andere Sprachen, Umgebungen und Konzepte.

80
Jarrod Nettles

wenn jemand, dessen Meinung ich respektiere, denkt, dass es schädlich ist.

Dies erinnert mich an eine Geschichte mit Richard Feynman. Ein Student bei Caltech fragte den angesehenen Kosmologen Michael Turner, was seine "Voreingenommenheit" darin bestehe, eine Art Teilchen als Kandidaten für die Dunkle Materie zu bevorzugen, und Feynman schnappte und sagte: "Warum willst du wissen sein = Voreingenommenheit? Bilden Sie Ihre eigenen! ... Achten Sie nicht auf Behörden, denken Sie selbst. "

Programmierer kommen aus allen Lebensbereichen. Java wird heute an vielen High Schools und Colleges unterrichtet, aber es war noch nicht einmal erfunden als Joel Spolsky in der Schule war. Es gibt keinen "einen wahren Weg". Wenn es darum geht, ein guter Programmierer zu werden, gibt es sicherlich einige Klassiker wie SICP, über die die meisten Programmierer irgendwann stolpern, aber es gibt keinen festen Standard. Die Hauptsache ist, irgendwo anzufangen und sich auf das Erstellen von Konzepten zu konzentrieren. Ein großartiger Programmierer sagte einmal etwas wie:

Schlechte Programmierer konzentrieren sich auf Code, gute Programmierer konzentrieren sich auf Algorithmen.

Ich denke, C # ist eine gute Sprache für den Anfang, aber ich warne Sie, vorsichtig mit Visual Studio zu sein. Es ist eine enorme IDE, aber wenn Sie ein DropDownList ziehen und ein GridView an ein ObjectDataSource binden und ein Button Steuerelement verwenden, um ein DropDownList -basierte Suche, dann wird der größte Teil der Arbeit von IDE) erledigt und Sie programmieren nicht wirklich. Nutzen Sie die IDEs-Tools, aber versuchen Sie immer, Konzepte zu erstellen und Wissen zu entwickeln.

21
BlackJack

Ich bin nur ein Junior, aber bei aller Demut und Respekt für die unendlich Erfahrenen muss ich gestehen, dass ich diese Einstellung auch nicht verstehe.

Ein Programmierer kommentierte unter Joels Antwort: " als jemand, der seinen Kopf über" Programmierer "auf den Schreibtisch schlagen musste, die wegen ihrer C # -Fähigkeiten sehr empfohlen wurden, aber konnte nicht mache einfache Dinge wie implementiere eine sehr gut dokumentierte Basisklasse, finde Speicherlecks in c- und c ++ - Programmen " ...

Aber warum muss es für jemanden, der nie behauptet C++ kennt, einfach sein, Speicherlecks in C++ - Apps zu finden? :) Ich verstehe nicht. Es ist, als würde man einen Psychologen wegen mangelnder zahnärztlicher Fähigkeiten kritisieren. Ich bin sicherlich kein guter Programmierer, aber ich glaube, das liegt nicht daran, dass ich C++ nicht kenne - es liegt daran, dass ich das Framework und die Sprachen, die ich bin benutze, nicht gut genug kenne.

"konnte keine einfachen Dinge tun, wie eine sehr gut dokumentierte Basisklasse implementieren (...) oder einfach ein Problem selbst herausfinden oder eine neue Idee auch nur in mäßigem Tempo lernen"

OK, aber - Korrelation bedeutet nicht Kausalität, und was lässt uns annehmen, dass ihr Mangel an allgemeinen Programmierkenntnissen - was ich nicht bezweifle - ein Ergebnis ihrer Sprachwahl ist?

Oder ein Effekt, dass C # ihre erste Sprache der Wahl ist?

Ich kann andere plausible Erklärungen sehen (vielleicht ist C # nur im Trend und zieht daher viele Anfänger an ... Die meisten Leute, für die C # die erste Sprache ist, haben nicht sehr lange programmiert überhaupt und Das ist eher ein Handicap für sich, als niemals in einer anderen Sprache zu programmieren ... usw. usw.).

7
Konrad Morawski

Für mich war das Zeug in diesem anderen Artikel ein bisschen elitär. Ja, ich empfehle SICP ernsthaften Entwicklern, die wirklich besser werden wollen, aber nur denen, die über die "Norm" hinausgehen und die Tiefe lernen wollen Magie. In der Tat war jahrelang SICP der Standard MIT Freshman-Programmiertext; aber viele solide funktionierende Programmierer hatten das nie Gelegenheit, diese schöne, aber teure und hochselektive Institution zu besuchen.

Was mache ich , um Ihre Frage zu beantworten? Beginnen Sie mit dem, was Sie haben, und lernen Sie, wie man wie ein Programmierer denkt, anstatt nur eine bestimmte Sprache zu lernen.

Wenn Sie zufällig eine C # -Implementierung zur Verfügung haben, kann ich Ihnen sagen, dass dies eine perfekte Sprache für einen Arbeitsstifter wie mich ist - ebenso wie Java, JavaScript, Python, Ruby, Scala, Scheme und die vielen anderen Sprachen, die ich habe im Laufe der Jahre gelernt. Am Ende versuche ich, die richtigen Sprachen und Werkzeuge für den jeweiligen Job auszuwählen, und das bedeutet, Sprachen wie Hüte zu wechseln.

Es ist nichts Falsches daran, unterhaltsame Lernmethoden zu verwenden, z. B. die Annäherung an Ruby via Why's Poignant Guide und Shoes (wie ich in - empfohlen habe) ein weiterer kürzlich veröffentlichter Beitrag ) Es gibt arkane und mystische Pfade, wie z. B. den Kopf gegen Der kleine Schemer und Der erfahrene Schemer auf dem Weg zu - zu schlagen. SICP . Viele moderne Denker würden Sie dazu bringen, all das ältere akademische und "unternehmerische" Zeug zu überspringen und stattdessen direkt in JavaScript, JQuery und HTML5 einzutauchen. Es gibt viele Möglichkeiten Verschwenden Sie also nicht zu viel Zeit. Wählen Sie einfach eine aus und erhalten Sie die Codierung!

Realistisch gesehen glaube ich, dass heutzutage nur wenige Berufstätige Sie rückwärts schicken würden, um zuerst Assembler oder C/C++ zu lernen. Ehrlich gesagt, wenn sie das taten, glaube ich nicht, dass sie Ihnen einen großen Dienst erweisen würden.

Um ein wenig mit "Beginnen Sie mit dem, was Sie haben" zu verschönern, habe ich drei weitere Ratschläge:

  • Wählen Sie eine Programmiersprache, die Ihnen cool erscheint, und einen Lernansatz, der sinnvoll erscheint, und geben Sie ihnen alles. Lesen und schreiben Sie in der von Ihnen gewählten Sprache. Lesen Sie so viel guten Code, wie Sie verwalten können!
  • Nehmen Sie sofort Ihre Tastatur in die Hand und beginnen Sie mit dem Codieren, während Sie lernen. Machen Sie alle Grundübungen in Ihren Programmierbüchern selbst und üben Sie alle Tutorials, die Sie finden können, mit Ihren Fingern, die glücklich wegklicken, damit sie wirklich funktionieren. Sie werden überrascht sein, wie viele Fähigkeiten Sie beim Beheben von Fehlern in Demos erwerben, die als funktionierender Code gelten sollen, aber nicht!
  • Geben Sie den größten Teil Ihrer Mühe darauf, zu lernen, wie gute Programmierer sich durch Probleme denken. Erfahren Sie, wie Sie komplexe Probleme und Systeme analysieren, zerlegen und aufschlüsseln, bis Sie sie wirklich verstehen. Dann lernen Sie, automatisierte Lösungen zu synthetisieren und zu entwerfen und sie so aufzubauen, dass sie einigen Menschen auf diesem Planeten die Arbeit erleichtern.

Ich habe mit FORTRAN IV und QBASIC angefangen und wenn mich das nicht ruiniert hat, wird C # dich auch nicht verletzen! Viel Glück und stellen Sie sicher, dass Sie Spaß haben, während Sie lernen!

5
John Tobler

Der Fokus Ihrer Frage und viele der Antworten hier liegt auf C #. Von Wikipedia :

Die C # -Sprache soll eine einfache, moderne, universelle, objektorientierte Programmiersprache sein.

Allein auf dieser Grundlage kann man mit Sicherheit sagen, dass Sie C # als Muttersprache lernen können, ohne Ihr Gehirn langfristig zu schädigen. Ich glaube nicht, dass Joel die gesamte Sprache verurteilte, als er schrieb :

Versuche, eine Verknüpfung zu verwenden und direkt genau das zu lernen, was Sie gerade lernen möchten (z. B. mit C # und ASP.NET beginnen), sind zum Scheitern verurteilt.

Das Problem ist nicht die Sprache, sondern Verknüpfungen. Zu oft versuchen Menschen, einen schnellen Weg zu ihrem Endziel zu finden, indem sie Schritt-für-Schritt-Anleitungen folgen oder Bücher "Alles in 24 Stunden lernen". Sie müssen nicht zu viel Zeit mit Stack Overflow verbringen, bevor Sie feststellen, dass es viele Fragen gibt: "Ich habe noch nie in meinem Leben eine Codezeile geschrieben, aber ich steige in das iPhone ein Programmieren! Kann mir bitte jemand Schritt für Schritt Anweisungen geben, um genau das zu tun, was ich tun möchte? Danke! " Ich sage nicht, dass Sie diesen Ansatz verfolgen, aber es ist etwas, vor dem Sie sich schützen müssen.

Wenn Sie solide Programmierkenntnisse entwickeln möchten, sollten Sie zunächst grundlegende Fähigkeiten erlernen. Wenn Sie versuchen, direkt zu OOP und GUI-Anwendungen und dergleichen) zu springen, werden Sie wahrscheinlich diese Grundlagen vermissen. Die Bücher, auf die Joel hingewiesen hat, sind in der Tat sehr gut. Ich habe nur die - überflogen C # Yellow Book (PDF), aber es scheint wahrscheinlich eine bessere Einführung in die Programmierung zu sein als die meisten C # -Bücher, die ich in Geschäften sehe.

5
Caleb

Ich würde sagen, eine Sprache zu lernen und dabei zu bleiben ist eher ein Fehler als zu entscheiden, mit welcher Sprache Sie beginnen sollen. Es gibt einige Sprachen, die Sie lernen können, die natürlich einfacher sind, aber es ist besser, zu versuchen, eine zu lernen, die Sie häufig verwenden (in einer Schulumgebung wird die Sprachauswahl bereits von der Schule getroffen). Nachdem Sie eine Sprache richtig gelernt und nach einigen Monaten aktiv verwendet haben, sollten Sie sich mit einer anderen Programmiersprache beschäftigen und vergleichen.

In .NET können Sie problemlos zwei ( sort-of) verschiedene Programmiersprachen verwenden, da Sie zwischen Visual Basic und C # wechseln können. So können Sie Visual Basic lernen und die Unterschiede erkennen. Auf dieser Ebene sollten Sie mit der grundlegenden prozeduralen Codierung mit den drei grundlegenden Programmierstrukturen vertraut sein. Wenn Sie mit allen kreativ sein können (und wissen, wie man Variablen verwendet), sind Sie auf dem Weg, ein großartiger Programmierer zu werden:

  • Sequenz - Der Code wird in einer Reihenfolge von Schritten geschrieben, die in einer von Ihnen festgelegten Weise aufeinander folgen (definiert einen "Sprung", Schritt für Schritt und Gotos).
  • Bedingt - Code kann Entscheidungspunkte haben (definiert if-Anweisungen, switch-case-Anweisungen)
  • Schleifen/Wiederholen - Der Code kann sich bei einer bestimmten Entscheidung wiederholen (dies ist eine Erweiterung von beiden oben, definiert for-, do-while-Schleifen).

Es spielt keine Rolle, ob Ihre sekundäre Programmiersprache Ihre aktivste ist oder nicht, nur zu wissen, dass Programmiersprachen (insbesondere wenn sie demselben Paradigma folgen) einander sehr ähnlich sind und es kleine Nuancen gibt, die tatsächlich einen langen Weg gehen damit Sie verstehen, wie Softwareprogrammierung funktioniert.

Versuchen Sie daher mindestens einmal im Jahr, eine neue Programmiersprache zu lernen die einem anderen folgt Programmierparadigma . Sie müssen nicht vollständig mit der neuen Sprache Schritt halten, aber es gibt einige Vorteile, andere Paradigmen zu kennen. Es gibt mehrere Paradigmen und einige Programmiersprachen vermischen sich zwischen vielen (beachten Sie, dass C # tatsächlich die folgenden drei Teilmengen hat):

Das Wichtigste, was Sie lernen sollten, ist, dass viele Programmiersprachen ihren eigenen Redewendungen und einer grundlegenden API folgen. Wenn Sie also eine neue Sprache lernen, versuchen Sie, diese Redewendungen und APIs gut zu lernen, und Sie werden in Ordnung sein, wenn Sie Dinge erstellen. Ein guter Grund ist, dass Sie Programmierprobleme besser entwerfen und lösen können. Einige Redewendungen in einer Sprache geben Ihnen möglicherweise einen Einblick in die Lösung eines Problems in Ihrer Hauptsprache.

Wissen Sie auch, dass es noch einen weiteren sehr guten Grund gibt, warum Sie andere Programmiersprachen als die Hauptsprache lernen sollten, die Sie am häufigsten verwenden: Ihre Beschäftigungschancen sind viel größer.

5
Spoike

Ich denke, der beste Rat, den ich je gesehen habe, wenn es um Leute geht, die fragen: "Welche Sprache soll ich lernen?" ist einfach: Ein guter Programmierer kann in jeder Sprache arbeiten.

Ich bin mir sicher, dass es Argumente gegen diese Aussage gibt, aber der Punkt ist: Lernen Sie zuerst, ein guter Programmierer zu sein, anstatt ein Sprachexperte. Bauherren sind nicht darauf spezialisiert, auf genau einem Grundstück zu bauen, sie lernen die Fähigkeiten ihres Fachs und wenden sie auf jedes Grundstück an, auf dem sie benötigt werden.

4
Andy Hunt

Manchmal vermute ich, dass Sprachen der Wahl viel mehr mit unserer Persönlichkeit zu tun haben und wie wir miteinander verbunden sind, und viel weniger mit praktischen oder akademischen Überlegungen, als wir zugeben möchten.

Das heißt, neue Dinge zu lernen ist niemals schädlich. Sie werden den Tag kennen, an dem Sie die Schwelle zu einem weiterentwickelten oder vielleicht gebrochenen Gehirn überschritten haben (alles eine Frage der Perspektive, nehme ich an), wenn Sie feststellen, dass alles ein Handbuch hat. Sie können letztendlich wirklich alles tun, was Sie wollen, wenn Sie Talent haben und tatsächlich eher am Tun als am Sein eines Programmierers interessiert sind.

Zumindest mit Python und JavaScript) herumspielen. Es ist ein klarer Lernvorteil, wirklich nur Code schreiben zu können und zu sehen, wie er sofort in einer auf Datei-E/A zugänglichen Konsolenumgebung wie IDLE oder einer Sandbox ausgeführt wird Umgebung wie ein Browser. Was ich an C # und Java nicht mag) ist, dass alles auf Klassen beschränkt sein soll, auch wenn Sie wirklich nur eine einfache Funktion mit sinnlosen Wrappern schreiben, um Ihre zu behalten Peers oder ein übermäßig restriktiver Compiler freuen sich. Das andere, was ich an JS und Python) mag, ist, dass Sie damit wirklich Ihr eigenes Paradigma festlegen können. Ein wenig zu flexibel durch viele Entwicklerpräferenzen. Ich bin mir immer noch nicht sicher, was ich von der Weisheit halten soll, grundlegende Operatoren zu überladen, aber ich bin mir ziemlich sicher, dass ich Python für das Zulassen der Option) liebe.

Verlieben Sie sich auch nicht in die grausame Lüge, die Hauptsprache mit den meisten Stellenangeboten zu wählen. Es ist besser, ein großer Fisch in mittleren Gewässern zu sein und das zu tun, was Sie wollen, als ein Mitglied einer Horde von meist beschissenen, unerträglichen Fischen, die jede Jobsuche eher zu einer Lotterie als zu einem Matching-Prozess machen.

3
Erik Reppen

C # ist nicht so schlecht wie Java bei weitem. Sie unterstützen viele Konzepte wie funktionale Programmierung, generische Programmierung, deterministische Zerstörung und Werttypen, Operatorüberladung usw. besser. Ihre Unterstützung für diese Features könnten natürlich noch viel Arbeit kosten, aber es ist weitaus besser als Java, selbst wenn es kein C++ ist.

Zweitens denke ich, dass Sie falsch lesen, was Joel gesagt hat. Wenn Sie können Zeiger und Rekursion beherrschen, spielt es keine Rolle, welche Sprache Sie gerade verwenden. Das Wichtigste wäre, ein wenig unsafe Code zu verwenden, sich mit unsafe quicksort Oder etwas anderem auseinanderzusetzen und dann zum Rest des normalen C # zurückzukehren.

Oh, und lesen Sie :)

3
DeadMG

Die erste für mich produktive Sprache war C #. Obwohl ich in der Schulzeit mit Foxpro und ein bisschen C im College herumgespielt hatte. C # ist ziemlich gut und ein sehr guter Ausgangspunkt für jeden. Es folgt den allgemeinen Grundlagen der Programmierung wie starker Typisierung, Kapselung, Vererbung usw., die man meiner Meinung nach immer lernen sollte, egal ob sie verwendet werden oder nicht. Später können Sie jederzeit zu anderen Sprachen wie Python] wechseln, was nicht der Standardisierung der grundlegenden Programmierung folgt.

Der andere zusätzliche Faktor, den die Leute dem Lernaspekt von C # nicht wirklich hinzufügen, ist die Verfügbarkeit von best IDE für jede Sprache, die ich gesehen habe. Eclipse IDE) ist auch gut, aber sobald Sie Visual Studio verwendet haben, werden Sie Microsoft danken.

Wenn C # gegenüber C erweitert wird, müssen Sie vorher keine anderen Sprachen lernen. Alle Sprachen über ein Jahrzehnt oder so haben sich aus der Natur von C entwickelt, sogar Java.

Das Urteil lautet also: C # ist ein guter Ausgangspunkt, mit dem Sie in Zukunft schnell andere Sprachen lernen können

2
Pankaj Upadhyay

Das Erlernen von C # als Muttersprache ist kein Fehler, solange Sie früher oder später eine zweite Sprache lernen. Das ist viel wichtiger. Noch besser, wenn sich diese zweite Sprache etwas von C # unterscheidet (Javascript oder Ruby wäre in dieser Hinsicht besser als Java). Jede Sprache hat ihre Vor- und Nachteile, und es sind die Unterschiede, die Sie ausmachen ein besserer Programmierer auf lange Sicht.

2
henrik

Mach dir keine Sorgen, dass du zuerst C # gelernt hast. Es ist fast so, als wäre man besorgt, dass der erste Schritt mit dem linken oder rechten Fuß gemacht wurde. Der einzige Unterschied zwischen dem Erlernen einer verwalteten Sprache besteht darin, dass Sie nur verzögern, wenn Sie Zeiger und eine detaillierte Speicherverwaltung lernen müssen. Dies kann tatsächlich zu Ihren Gunsten wirken, denn wenn es Zeit ist, C zu lernen, sind die einzigen neuen Dinge, über die Sie sich Sorgen machen müssen, die Speicherverwaltung. Sie werden nicht auch damit jonglieren, Kontrollstrukturen, das Konzept von Funktionen usw. zu lernen und werden sich ganz auf Zeiger und Speicherverwaltung konzentrieren können.

Das Stereotyp existiert, weil es verwaltete Sprachprogrammierer gibt, die diesen zweiten Teil nie gemacht und C und C++ gelernt und dann auf C- und C++ - Jobs angewendet haben.

Es ist wie das Erlernen eines Musikinstruments - das erste ist schwierig, weil Sie versuchen, die Mechanik des Lesens geschriebener Musik UND die physikalische Mechanik des Artikulierens eines Instruments zu lernen, um das zu tun, was Sie wollen. Für das zweite und nachfolgende Instrument, das Sie lernen, können Sie sich ausschließlich darauf konzentrieren, was dieses Instrument von dem unterscheidet, was Sie bereits kennen.

1
anon

Es ist ohne Zweifel hart für den Anfänger. Ich habe vb, Javascript, PL/SQL, T-SQL, Uniface und ein bisschen C # gemacht, um nur einige zu nennen.

Jemand hat Visual Basic bereits erwähnt, als er etwas über objektorientierte Programmierung gelernt hat, und um ehrlich zu sein, hat VB.NET die einfachste Syntax aller Sprachen, die ich je gesehen habe. Das Beste daran ist, dass die Schlüsselwörter genau mit den beschriebenen Konzepten übereinstimmen.

z.B. Die Funktion myHandler () behandelt myButton.click

oder Class Human Extends Säugetier implementiert intelligentLifeform

Im Ernst, aus Gründen der Lesbarkeit, wenn Sie ein Anfänger sind, wie soll die Syntax sonst noch aussehen?

Wenn Sie nach Eigenschaften und Methoden suchen (und zwischen Subs und Funktionen unterscheiden), ist das Lesen in VB viel einfacher.

Ähnliches gilt für die Deklaration von Variablen

Dim myString As string - offensichtlich, welcher Typ und welche Instanz ist

C # Groß- und Kleinschreibung ermutigt, was für mich eine ernsthaft schlechte Angewohnheit ist - den gleichen Namen für Klasse und Instanz zu haben, wobei einer in Großbuchstaben und einer in Kleinbuchstaben geschrieben ist.

z.B.

Mensch Mensch

  • gibt es ernsthaft so wenige Wörter in Ihrem Wortschatz, dass Sie vorhandene Wörter in Großbuchstaben wiederverwenden müssen?

wenn Sie human.think aufrufen, ist es leicht, eine Instanz mit einer Klasse zu verwechseln und zu glauben, Sie würden auf einen Blick eine statische Methode aufrufen. Und auf einen Blick nehmen wir oft Code wahr. Wir haben keine Zeit, über jedes einzelne Element zu fahren, damit der Editor uns sagt, was los ist.

C # mag einige Vorteile haben, aber es ist viel schwieriger, damit zu beginnen - selbst wenn es das Tippen spart. Deshalb sollte es auf jeden Fall einen Platz für beide Sprachen geben.

1
Andy R

So sehr ich Ihnen rate, viele Sprachen zu lernen (wie die anderen vorschlagen), stellen Sie sicher, dass Sie eine (einige) Sprache (n) kennen, die Sie lernen sehr gut.

Das Risiko, viele Sprachen zu beherrschen, besteht darin, dass Sie möglicherweise nie eine Sprache vollständig lernen, was zu Frustration führt, wenn Sie tatsächlich ein Problem lösen möchten.

Die Kenntnis der For-Loop-Konstruktion in vielen Sprachen macht Spaß, ist aber nutzlos, wenn Sie nicht wissen, wie Sie mit Fehlern in einer dieser Sprachen umgehen sollen.

1
Erno

Der größte Nachteil, den ich sehen kann, ist, dass Visual Studio und die zugehörigen Tools sehr, sehr schön sind - Dinge wie Intellisense und Code-Vervollständigung können leicht zu Krücken werden. Ich würde allgemein argumentieren, dass die Umgebung so schön und unterstützend sein kann, dass Sie sich ein bisschen verloren fühlen, wenn Sie beispielsweise hack Ruby Code in einem Texteditor) ausführen müssen. Oh, und du wirst normalerweise auch Sachen wie linq vermissen.

0
Wyatt Barnett

C # ist vollkommen in Ordnung, um mit dem Programmieren zu beginnen.

Es ist das, womit ich anfangen sollte, ohne die Möglichkeit zu haben, mich mit irgendetwas anderem zu beschäftigen (abgesehen von der Hello World in Java, einigen grundlegenden LOGO-Dingen und einigen Dingen in Scratch, aber nichts "Ernsthaftem").

Insgesamt kann es schwierig sein - es gibt viele Dinge, die nicht intuitiv zu sein scheinen, und sie haben ihre Grenzen, aber ich denke, sie fördern eine gute Codierung und sind großartig, wenn Sie erst einmal den Dreh raus haben. Ich meine, es gibt Ihnen mehr Leistung und ist ein wenig professioneller als Python (was normalerweise vorgeschlagen wird), und das würde einen großen Unterschied machen - C++ nach C # zu versuchen, war nicht zu schmerzhaft, aber wenn ich hatte mit Python angefangen, dann wäre es in der Tat eine sehr große Hürde, selbst nur auf der Syntaxebene.

Außerdem bietet es eine gute plattformübergreifende Unterstützung in Form von Mono (für diejenigen unter Ihnen, die Mono für keine große Sache halten - mit der Unity Game Engine können Sie eine Version davon codieren). Es ist auch für die meisten Dinge ziemlich nützlich, egal ob es sich um Spieleskripte, Webdesign oder Windows-Anwendungen handelt. Natürlich sind einige Sprachen für bestimmte Zeilen besser, daher hängt es davon ab, in welche allgemeine Richtung Sie gehen möchten. Wenn Sie beispielsweise in die Webrichtung gehen, ist C # (ASP.NET) definitiv eine gute Idee. Wenn Sie vorhaben, in Spiele einzusteigen, sollten Sie stattdessen an C++ denken.

Am Ende lohnt es sich, es zu lernen, auch wenn Sie es nicht zugunsten der Einfachheit von Python oder der archaischen Natur von Java (als Release) verwenden Zyklus für Java ist WIRKLICH langsam) - Sie lernen gute Codierungspraktiken, ohne dass dies für einen Neuling zu kompliziert ist.

0
Sbspider