Für mich bin ich C # und Java Person. Ich finde diese zwei Sprachen sehr ähnlich sind, so ist es einfacher für mich, einander zu überkreuzen. Ich bin mir nicht sicher, ob seine gute Idee, andere Sprachen zu holen. Irgendwelche Gedanken?
programming-languages
Digitaler Typ
quelle
quelle
Antworten:
Ich kann mir mindestens fünf Gründe vorstellen, eine Sprache zu lernen, und es scheint, als ob Sie für jeden dieser Gründe irgendwann einen lernen sollten.
quelle
Es geht nicht darum, wie viele Sprachen Sie lernen. Es geht darum, neue Konzepte zu lernen. Einige Sprachen können Ihnen möglicherweise viele Konzepte beibringen, während andere möglicherweise nur eines beibringen können.
Wenn Sie C # kennen, würden Sie wahrscheinlich durch das Erlernen von Java nichts Schreckliches Neues lernen. Aber du würdest es tun, wenn du Haskell lernst.
Wenn Sie also eine neue Sprache zum Lernen auswählen, wählen Sie etwas, das Ihnen Konzepte beibringt, die Sie noch nicht kennen.
quelle
Ich würde sagen, das Wichtigste ist die Fähigkeit, schnell zu lernen. Das heißt, es ist wichtig, verschiedene Sprachen zu kennen, die für verschiedene Zwecke verwendet werden. Zum Beispiel weiß ich:
1) Python und Perl für die Kategorie Skriptsprachen
2) C ++ als "Framework" -Sprache
3) Java für mobile Anwendungen
4) C für die große Menge an Legacy-Code
5) Einige veraltete Sprachen, die ich verwendet wissen, als ich jung war (Basic, Pascal, Clipper, etc.)
Ich würde sagen, dass Sie mindestens eine Hauptsprache und ein Skript benötigen . Zu wissen , C # Ich würde sagen , dass Sie neben Python oder Perl oder Ruby zu lernen. (Ich würde mit Python gehen, aber das ist nur eine Frage der Präferenz).
quelle
Es ist gut, eine neue Programmiersprache jedes Jahr zu lernen. Aber anstatt etwas Ähnliches zu lernen, wie Sie es bereits wissen, rate ich Ihnen, etwas radikal anderes wie Scala oder F # zu lernen. Es wird Ihnen neue Wege zeigen, Dinge zu tun und schließlich Ihre Programmierfähigkeiten zu erweitern.
quelle
Sie sollten sich auf die Sprachen konzentrieren, die Sie benötigen und für das, was Sie tun, verwenden . Das Erlernen einer Sprache kommt wirklich aus dem Üben, sodass Sie den Vorteil dieser Sprache beim Üben nutzen können. Wenn Sie eine neue Sprache in Ihrer Freizeit lernen gehen, dann tut es , indem sie es in Aufgaben der zunehmenden Komplexität der Umsetzung, so dass Sie wirklich einen Griff auf es.
quelle
Konzentriere dich auf niemanden. Konzentrieren Sie sich darauf, sauberen Code zu lernen und zu schreiben. klar, ausdrucksstark, einfach und vor allem nicht dupliziert.
gehen für die Prinzipien dieser Art der Programmierung, die Grundlagen (zB Verkapselung für OOP, was bedeutet und was es bedeutet) und lernen einige Grundsätze
Dieses Zeug wird Ihnen die Arbeit erleichtern. Dies wird es sogar den Menschen erleichtern, die mit Ihnen oder nach Ihnen arbeiten.
ya, du musst die syntax auch ziemlich gut kennen. aber das ist nicht etwas, worauf du dich lange konzentrierst
und ja, Sie müssen die Technologien, die Sie auch verwenden, ziemlich gut verstehen. Diese können jedoch entsprechend der Komplexität, die Ihr Unternehmen erfordert, priorisiert werden.
Die letzten beiden sind nicht von zentraler Bedeutung, sondern von zentraler Bedeutung
quelle
Ein Programmierer muss sich auf die Programmierung konzentrieren, nicht auf eine bestimmte Sprache.
quelle
So viele wie nötig, um deine Arbeit zu erledigen.
Aber C # und Java sind so nah wie UK-Englisch und US-Englisch. Sie können etwas Neues lernen, indem Sie sich für Finnisch oder Navajo entscheiden.
quelle
Ich glaube nicht, dass man eine Sprache unbedingt beherrschen kann, ohne ausreichende Kenntnisse anderer Sprachen zu haben, um diese Sprache sozusagen "von außen" zu sehen. Jede andere Sprache bringt etwas anderes auf den Tisch und die Konzepte, die sie bringen, können Sie auf die Hauptsprachen zurückführen, mit denen Sie arbeiten.
So wird die Zeit, die Sie für das Erlernen anderer Sprachen aufgewendet haben, niemals verschwendet, auch wenn Sie nicht vorhaben, sie kommerziell zu nutzen.
Das alte Sprichwort ist, jedes Jahr eine Sprache zu lernen, und ich würde mit Sicherheit sagen, dass Sie dies in den ersten zehn Jahren tun müssen. Möglicherweise können Sie darüber hinaus wählen, ob Sie einige der bereits vertieften Themen untersuchen möchten (z. B. Ihr Wissen über die vor einigen Jahren erlernten Themen aktualisieren möchten) oder mit bestimmten Bibliotheken arbeiten möchten, anstatt nur endlos neue Sprachen anzusammeln, aber ein Auge darauf zu haben Das Erlernen der Programmierpraxis durch das Arbeiten mit verschiedenen Sprachen ist sicherlich eine Hilfe für Ihre Entwicklung als Programmierer.
quelle
Mit gängigen Programmiersprachen wie C # und Java sind Sie an den meisten Orten erwerbstätig, aber beide unterscheiden sich nicht genug voneinander, um neue Möglichkeiten zur Problemlösung zu erlernen. Ich denke, es gibt einige Sprachen, mit denen Sie essen (die Sie für Ihre Arbeit verwenden), und andere, mit denen Sie spielen. Beide haben ihre Ziele.
Ich habe festgestellt, dass ich durch das Erlernen neuer Programmiersprachen auch neue und elegantere Wege zur Lösung von Problemen kennengelernt habe. Es geht nicht um die Anzahl der Sprachen oder wie oft Sie sie abholen. Jede lernenswerte Programmiersprache hat eine eigene Sichtweise, die Sie dazu zwingt, Ihre Probleme mit einer neuen Denkweise anzugehen. Oft kommt der Wert aus dem Erlernen dieser Denkweise.
Ich habe mit Smalltalk gespielt und es hat mir sehr gut gefallen. Es war einfach eine Freude, die Sprache zu entwickeln. Sobald Sie sich an die Redewendungen gewöhnt haben, haben sie Ihnen geholfen, ausdrucksvoller mit Ihrem Code umzugehen. Ich habe die statische Typisierung in Java / C ++ / C # überhaupt nicht vermisst. Die Generika, mit denen wir in unseren statisch typisierten Sprachen leben, sind wirklich Konstrukte, um die Einschränkungen zu umgehen, die die statische Typisierung mit sich bringt.
Ich benutze Ruby und Ruby on Rails regelmäßig, obwohl ich gerade keine Jobs bezahle. Rubys Entwurfsprinzip lautete "das Glück der Programmierer erhöhen". Du musst dieses Gefühl lieben und zum größten Teil denke ich, dass es liefert.
Schließlich wird Java den Weg von Lisp und Smalltalk gehen, und C # wird folgen. Was da sein wird, um ihren Platz einzunehmen, bleibt abzuwarten. Wenn Sie am Ende des Tages wissen, wie man Probleme löst, und eine Reihe von Möglichkeiten haben, das Problem zu lösen, werden Sie in der Lage sein, einen Job zu finden und die Sprache zu erlernen, die Sie dafür benötigen.
quelle
Wenn Sie Ihre Kenntnisse auf dem neuesten Stand und flexibel halten möchten, sollten Sie versuchen, alle 6 Monate mindestens eine komplett neue Programmiersprache zu erlernen. Und ich meine eine Sprache, die sehr, sehr anders ist.
Wenn Sie also mehr über das .net-Framework lernen, während Sie C # oder das Java-Framework verwenden, können Sie mit Haskell, Smalltalk, Scala, Clojure oder Ruby Ihre Technik erweitern und auf verschiedene Arten denken, von denen einige möglicherweise nützlich sind Kehren Sie zu Ihrer Hauptsprache zurück, und einige davon können Ihnen helfen, weiterzumachen, wenn Java aufhört, König des Hügels zu sein.
Wenn Sie C noch nie gelernt haben, kann die Denkweise ganz anders sein, obwohl die Syntax auf Java übertragen wurde. Es lohnt sich zu wissen, wie OO-Code in dieser Sprache geschrieben werden kann, die nur prozedural zu sein scheint.
Ich empfehle Bruce Tates Buch "Beyond Java" zu lesen, in dem die Gefahren, nur in einer Sprache zu sein, nur allzu gut hervorgehoben werden, wobei der Aufstieg und Fall von C ++ erwähnt wird. Obwohl C ++ noch lange nicht tot ist und Jahrzehnte vergangen sind, wird es zunehmend eingeschränkt, es nur in Situationen zu verwenden, in denen Produktivitätssteigerungen in anderen Sprachen nicht möglich sind. Im Gegensatz dazu können Sie mit Sinatra, einem Ruby-Framework, einen einfachen Webdienst in etwa 6/7 Codezeilen erstellen. Das C ++ - Äquivalent kann eine Größenordnung größer sein.
quelle
Wenn Sie kein englischer Muttersprachler sind, müssen Sie sich zumindest darauf konzentrieren, Ihr Englisch zu verbessern . Ich sage das aufgrund meiner Erfahrung. Das Verstehen dieser Sprache hat mir sehr geholfen.
Alle guten Materialien (Bücher, Artikel, Code usw.) zum Erlernen von Programmiersprachen, Technologien und neuen Konzepten sind in Englisch verfasst.
quelle
Sprachen sind Werkzeuge, um Arbeit zu erledigen. Einige Sprachen eignen sich für bestimmte Arten von Problemen, andere für alle Arten der Problemlösung. Ich empfehle, neue Sprachen zu lernen, sobald sie herauskommen. Sei nicht besessen von dem, was diesen Monat in Mode ist, sondern lerne, was sie können, worin sie gut sind. Mein Rat ist 1 neue Sprache pro Jahr. Sie kommen schneller heraus, aber Sie möchten neue Werkzeuge in Ihren Werkzeugkasten stecken, nicht das modische neue Kind auf dem Block.
Ein Aufsatz, der über die Unterschiede in den Sprachen spricht, ist Paul Grahams "Beating the Averages". Ich empfehle es zu lesen, aber ein wichtiger Teil ist hier (er verwendet "Blub" als hypothetische Sprache, damit Sie nicht darüber streiten, was Ihre Lieblingssprache tun kann):
{snip}
http://www.paulgraham.com/avg.html
Die meisten von uns gelieferten Anwendungen sind in C # oder VB geschrieben. Als wir einer Anwendung Skripte hinzufügen mussten, entschieden wir uns für Python (Lua war die zweitbeste Wahl). Wir lernen F #, weil das einige haarige neue Dinge bewirken kann, die schwer zu erklären und zu verstehen sind, wenn man nur weiß, dass es sich um C # / Java / VB handelt.
quelle
Zunächst einmal gibt es eine Reihe von Sprachen, die für die meisten Programmierer sehr schwer zu vermeiden sind: Javascript, SQL, C usw. Sie können sich also genauso gut mit ihnen vertraut machen, sie verschwinden nicht.
Es ist auch eine gute Idee, eine entenartige Skriptsprache zu kennen ... zB Perl, Python, Ruby, Lua usw. Diese sind unglaublich nützlich für eine Vielzahl von Problemen, einschließlich der Automatisierung eines Großteils Ihrer täglichen Plackerei
zum guten oder zum schlechten werden sie wahrscheinlich auch irgendwann auf c # und / oder java stoßen, sie sind ziemlich allgegenwärtig.
beschränken Sie sich auf keinen Fall künstlich. Diejenigen Programmierer, die ich kenne und die es ausdrücklich vermeiden, interessante Werkzeuge in die Hand zu nehmen, scheinen verschlungene Weltanschauungen und eine begrenzte Wirkung zu haben.
quelle
Dies könnte in gewissem Sinne zu einer anderen Debatte zwischen Spezialisten und Generalisten werden. Einige Leute werden lange Zeit damit verbringen, eine Sprache bis in die Tiefe zu beherrschen, was für sie gut funktioniert. Andere mögen vielleicht ein wenig über eine Reihe verschiedener Sprachen wissen, die für sie gut funktionieren. Die meisten Menschen befinden sich zwischen diesen beiden Extremen.
Wenn Sie Vorschläge für Sprachen wünschen, die Sie hier entdecken können, sind einige Vorschläge:
Funktionale Programmierung - Haskell oder Lisp wären hier Beispiele, und der Paradigmenwechsel kann bis zu einem gewissen Grad ein Hingucker sein.
Datenbankspezifisch - PL / SQL oder T-SQL sind möglicherweise nützlich, wenn Sie mehr Back-End-Arbeiten mit Systemen ausführen möchten, für deren Funktionalität eine Datenbank erforderlich ist.
Web-Sprachen der Benutzeroberfläche - ActionScript oder Javascript sind hier Beispiele für Sprachen, die in Rich Internet Applications verwendet werden. In manchen Fällen kann AIR jedoch dazu führen, dass einige Desktop-Anwendungen Webanrufe verwenden, z. B. Twhirl mithilfe der Twitter-API.
Dies sind nur Ideen und je nachdem, wo Sie sein möchten, können diese für Sie nützlich oder nutzlos sein. Viel Glück bei allen Entscheidungen, die Sie treffen.
quelle
Ein Programmierer muss drei Sprachen beherrschen: C, Englisch und etwas anderes.
C ist in hohem Maße eine Kernsprache, es ist maschinennah und verfügt über Syntaxregeln, die mehreren Hochsprachen gemeinsam sind. C zwingt Sie dazu, Datenstrukturen auf eine ganz andere Art und Weise zu betrachten als Java. Python und Ruby sind beide in C integriert, und Sie können C in beide Sprachen einbinden, wenn Sie Ihre Geschwindigkeit steigern möchten.
Englisch ist die gebräuchliche Programmiersprache. Die meisten Bücher, technischen Berichte, technischen Websites und Zeitschriftenartikel werden zuerst in englischer Sprache und manchmal ausschließlich in englischer Sprache herausgegeben. Wenn Englisch nicht Ihre Muttersprache ist, können Sie mit dem Erlernen der englischen Sprache Ihr Toolkit für die Manipulation von Konzepten erweitern (dies gilt natürlich auch für Englischsprachige, die eine andere Sprache erlernen).
Das Etwas andere sollte eine Sprache sein, die weder prozedural noch statisch typisiert oder stark objektorientiert ist oder sich in irgendeiner Weise grundlegend von C. Haskell, Scala, Python, Ruby oder einem Lisp-Dialekt unterscheidet .
Danach können Sie lernen, was Ihre spezifische Situation erfordert, wahrscheinlich C # oder Java.
quelle