Ich habe meine Programmierkarriere in der 9. Klasse bei BASIC begonnen. Ich habe ein bisschen BASIC gelernt, indem ich einfache Programme zum Addieren, Subtrahieren und Drucken geschrieben habe. Dann bin ich an die Universität gegangen und habe Informatik und Systemtechnik studiert. Im ersten Jahr wurde mir C beigebracht und ich habe ein gutes Kommando darüber.
Als nächstes lernte ich C ++ im zweiten Jahr. Es hat mir nur ein bisschen Wissen über OOP beigebracht. Jetzt mache ich PHP (zusammen mit HTML). Ich habe C ++, BASIC oder PHP nicht gemeistert. Ich plane jetzt, zur mobilen Entwicklung überzugehen. Aber ich habe das Gefühl, dass ich in den Sprachen, die ich gelernt habe, nicht alles abgedeckt habe.
Ist es wirklich wichtig?
Wenn Sie noch in der Universität sind, sollte es noch keine Rolle spielen, dass Sie nicht das Gefühl haben, alles in einer der Sprachen zu beherrschen, die Sie kennen. Viel wichtiger ist es, die gemeinsamen fundamentalen Theorien hinter diesen Sprachen zu verstehen . Sobald Sie die Grundlagen verstanden haben, können Sie die Details anderer Sprachen bei Bedarf lernen.
quelle
Ich glaube, das Wichtigste beim Programmieren ist, die verschiedenen Paradigmen zu verstehen .
In Ihrer Frage haben Sie die objektorientierte Programmierung (OOP) erwähnt . Wenn Sie dieses Thema beherrschen, sollten Sie in der Lage sein, es nur mit Pseudocode und im Wesentlichen einer grafischen Modelldarstellung (wie UML-Klassendiagrammen) zu erklären.
Ob Sie sich für Java, C ++ oder C # (...) entscheiden, liegt bei Ihnen oder bei dem Unternehmen, für das Sie arbeiten. Entscheidend ist jedoch, die verschiedenen Probleme zu verstehen / zu erkennen und das beste Modell zu finden, um sie zu lösen . Eine sehr wichtige Möglichkeit, Probleme bei der Programmierung zu lösen, besteht darin, die Entwurfsmuster zu verwenden, die Sie in diesem Nachschlagewerk finden .
Was eingebettete Sprachen angeht, so ist es meiner Meinung nach wichtig, die verschiedenen Probleme zu verstehen, die mit solchen Technologien verbunden sind.
In einer metaphorischen Weise würde ich das mit dem Schreiben eines guten wissenschaftlichen Buches vergleichen; Was wichtig ist, ist die Theorie, die Sie aufdecken, die Probleme, die Sie lösen können und so weiter. Ob Sie das Buch auf Englisch, Französisch oder Japanisch schreiben, ist am Ende nicht so wichtig.
Allerdings ist es auch wichtig, die Besonderheiten einer bestimmten Sprache zu kennen, wenn Sie sich auf diese Technologie spezialisieren möchten, um sie sehr effizient zu nutzen.
quelle
Meiner Meinung nach macht es wenig Sinn, die Sprache sehr häufig zu wechseln. Sie werden nie einen von ihnen fassen . Besonders einige wie C ++, wo einige Leute ein Jahrzehnt damit verbringen, die Sprache zu schreiben und ihren Code immer noch wie C aussehen lassen.
Wenn Sie keine Best Practices in einer Sprache schreiben können, fahren Sie nicht fort, IMO. Das bedeutet, dass die Abdeckung von mehr als einem Paar viele Jahre, wenn nicht Jahrzehnte dauern wird.
quelle
Ich denke, dass es nicht schaden wird, ein bisschen viele verschiedene Sprachen zu lernen, aber zur gleichen Zeit sollten Sie mindestens ein oder zwei gründlich lernen.
quelle
Ich habe während meiner Karriere viele Sprachen verwendet, wie AMOS Basic, Java, C ++, PHP, VB6, Delphi usw. Heute benutze ich C #, JavaScript, Ruby und einige Clojure bei der Arbeit und habe auch mit Pyhton, Erlang, Common Lisp und Schema.
Aber in diesem Herbst wollte ich einen speziellen Weihnachtskalender für meinen Blog erstellen und entschied mich, mich mit einem bestimmten Problem in 24 weiteren Sprachen vertraut zu machen und es zu lösen. Dies war eine großartige Erfahrung, ich habe viel gelernt, und ich kann es nur empfehlen, dies zu tun, wenn Sie über Programmiererfahrung verfügen.
Meine Antwort an Sie lautet: Lernen Sie ein paar Sprachen sehr gut (sie sollten sehr unterschiedlich sein), aber stellen Sie sicher, dass Sie viele probieren und sich mit ihnen vertraut machen.
Heute ist es wichtig, sowohl OOP als auch FP (Functional Programming) gut zu kennen, und Sie sollten sich sowohl in einer sehr statischen als auch in einer sehr dynamischen Sprache wohlfühlen.
PS: Mein Blog ist auf Norwegisch, aber wenn Sie die Liste der Sprachen sehen möchten, die ich behandelt habe, können Sie hier nachsehen .
quelle
Ich lerne, was ich in einer bestimmten Sprache lernen muss, wenn ich etwas Neues lernen möchte. Der "Auslöser", der mir sagt, dass ich mich eingehender mit einer Sprache befassen muss, ist, dass ein bestimmtes Stück Code hässlich oder ungeschickt aussieht, unerreichbar erscheint oder schwierig zu testen oder zu kommentieren ist. Oft deuten diese Auslöser auf einen Mangel an Kenntnissen über eine bestimmte Programmiersprache, einen bestimmten Stil, eine bestimmte Datenstruktur usw. hin.
quelle
Das Erlernen mehrerer Programmiersprachen ist eine gute Praxis und heutzutage erforderlich. So oft kann man nicht immer die Sprache seiner Wahl für alles verwenden.
Die Vorteile, zu sehen, wie andere Sprachen Dinge tun, werden Ihnen als Programmierer helfen. auch wenn gelegentlich , wenn Sie springen um Sie syntaktische Fehler machen (zB für Ungleichheit überprüft
!=
,~=
oder<>
). Sie sollten jedoch vorsichtig sein, um mehr als nur die Syntax einer Sprache zu lernen, sondern auch Best Practices innerhalb einer Sprache sowie allgemein gute Kenntnisse in der Softwareentwicklung. Wenn Sie C und dann C ++ gelernt haben, sollten Sie sicherstellen, dass Sie beim Schreiben von C ++ - Code den Stil von C ++ haben (und nicht nur C mit ein paar neuen Schlüsselwörtern. Das heißt, Sie haben mehrere Klassen / Objekte, bevorzugen Referenzen / intelligente Zeiger über rohe Zeiger usw.quelle
es ist gut, zumindest Sprachen aus verschiedenen Programmierparadigmen zu lernen! Prozedurale, deklarative, funktionale, objektorientierte, prototypische und dynamische Sprache - jede Programmierklasse bietet einen eigenen Einblick in die Organisation und Lösung eines Problems. Schließlich entdecken Sie ein oder mehrere Paradigmen, mit denen Sie am produktivsten und zufriedensten sind, und verwenden sie.
quelle
Definitiv nicht. Natürlich möchten Sie auch sicherstellen, dass Sie verschiedene Arten von Sprachen lernen. Das Erlernen von C # und Java wird Ihren Geist nicht wesentlich erweitern, das Erlernen von Java und Haskell jedoch.
Lesen Sie das Buch Sieben Sprachen in sieben Wochen , in dem Sie eine Einführung in Ruby, IO, Scala, Erlang, Prolog, Clojure und Haskell erhalten. Wenn Sie Sprachen mögen, werden Sie dieses Buch lieben.
quelle
Nun, C und C ++ schaden Ihnen bei der mobilen Programmierung nicht. Sie können beide mit Cocoa Touch oder dem Android NDK verwenden, und manchmal müssen Sie für die Leistung. Manchmal möchten Sie auch, weil Sie Code schreiben möchten, der auf mehreren Plattformen ausgeführt wird. In diesem Fall können Sie unter der Annahme, dass Sie nicht nur ein Framework eines Drittanbieters verwenden, Ihre App in C / C ++ schreiben und plattformspezifische Wrapper für erforderliche native Elemente kompilieren (z. B. die einzige Möglichkeit, einen OpenGL-Kontext zu erhalten) auf dem iPhone wird die native CAEAGLLayer-Klasse verwendet).
Je mehr Werkzeuge Sie in der Schublade haben, desto mehr Möglichkeiten haben Sie, die Arbeit zu erledigen. Sie werden feststellen, dass Sie bestimmte Aufgaben bevorzugen, da Sie sich auf verschiedene Arten von Aufgaben spezialisiert haben. Wenn Sie nur UI-Sachen machen, ist C möglicherweise nicht Ihr absoluter Favorit. Ich würde mir mehr Gedanken über die Dinge machen, die ich machen wollte, und dann jedes Werkzeug lernen, das ich brauchte, um sie zu machen.
quelle
Eigentlich ist es so nützlich, als würde man ein bisschen Französisch, Spanisch, Englisch, Arabisch, Hindi und Chinesisch lernen, ohne einen von ihnen zu kennen.
quelle
Im Gegenteil, ich denke, es tut weh, wenn ich keine neue Programmiersprache lernen kann. Dies kann an Zeitmangel oder anderen Gründen liegen. Soweit ich weiß, lieben es Programmierer / Softwareentwickler, die Sprachen herauszufordern, bessere Dinge / Produkte zu entwickeln, und wenn Sie feststellen, dass Sie immer dasselbe tun, fühlen Sie sich nicht gut. Sie möchten also eine neue Herausforderung, eine neue Sprache, etwas Neues lernen und mehr Produkte daraus machen.
Ich finde es aufregend, neuen Sprachen, neuen Bibliotheken, neuen Ansätzen und neuen Technologien zu folgen. Aber ich habe nicht die Zeit, um alle zu bekommen, und die Leute sind möglicherweise nicht in der Lage, immer tief genug zu gehen. Es tut also weh, nicht mehr zu lernen; tut aber nicht weh mehr zu lernen.
quelle
Ich bin mit Brian, FrustratedWithFormsDesign und SRKX einverstanden, aber ich möchte hinzufügen, dass dies während der Universität der wünschenswerte Weg ist, um ein guter Profi zu werden, indem Sie Ihre Kenntnisse mit mehreren Programmiersprachen und Paradigmen erweitern.
Es ist sehr unwahrscheinlich, dass Sie als ausgebildeter Programmierer das College verlassen. Das Programmieren ist ein hartes Handwerk, und Sie müssen die Jahre in der Branche damit verbringen, mit guten Programmierern zusammenzuarbeiten, an guten Schulungsprogrammen und Community-Meetings teilzunehmen. Meistens müssen Sie sich mit den Handwerksproblemen auseinandersetzen und scheitern, bis Sie lernen, wie man es beherrscht es.
Das Erlernen mehrerer Paradigmen, mehrerer Sprachen und das Lösen der vielfältigen Probleme in unserer Region bieten Ihnen eine gute Grundlage, um das Handwerk selbstständig zu erlernen und gleichzeitig als Profi in der Branche zu agieren.
Sie können an einem Compiler-Kurs teilnehmen, kommen aber nicht als Sprachdesigner, Schöpfer oder sogar als Compiler-Entwickler heraus. Sie erhalten die Schritte, die Prozesse und die Probleme sowie die grundlegenden Lösungen, und das gibt Ihnen den Vorteil, dieses Wissen an ein breites Spektrum von Problemen anzupassen.
quelle
Kurze Antwort: Nein.
Lange Antwort: Ein Großteil der Arbeit eines Programmierers, Softwareentwicklers oder Designers ist von einer bestimmten Sprache unabhängig, hängt jedoch stark von einer bestimmten Methodik ab. Bei der objektorientierten Programmierung geht es zum Beispiel vor allem darum, wo sich Dinge im Arbeitsspeicher und zur Laufzeit befinden, wie zugänglich sie sind und wie sie für eine spätere Verwendung zur Verfügung stehen (Vererbung und Kapselung). Die Implementierungen sind unterschiedlich, z. B. Java mit einem geerbten Klassenobjekt der obersten Ebene, ob es Ihnen gefällt oder nicht, und C ++ ohne eines, das Sie nicht angeben.
Viele Sprachen haben gemeinsame Merkmale (und viele gehen auseinander). Die Syntax unterscheidet sich natürlich und es ist schwieriger, wenn Sie ganz unterschiedliche Paradigmen wie Imperativ und Funktional miteinander vergleichen. Die Verarbeitung von Zeichenfolgen ist jedoch überall weitgehend identisch, sobald Sie keine weiteren Fragen zu Syntax, Index und Wandlungsfähigkeit mehr haben. Jede Sprache mit statischer Typisierung verfügt im Allgemeinen über eine Methode zum Umsetzen und Ausüben von Zwang. Wie und wann Sie dies tun können, hängt jedoch vom Sprachdesigner ab.
Die Sprache ist das Werkzeug. Sie stecken einfach mehr Werkzeuge in Ihren Gürtel. Aber das Werkzeug ist nur so gut wie der Handwerker, der es einsetzt.
Nun, wie viele Sie lernen, ist eine persönliche Entscheidung. Ich würde niemals eine Sprache lernen, um eine neue zu lernen. Jede Entscheidung, eine neue Sprache zu lernen, wird durch eine Kursanforderung (musste im letzten Jahr für eine einzelne Klasse js, php und R lernen), eine bestehende Projektanforderung (wenn 90% der Arbeit zuvor in Perl 6 erledigt wurden), veranlasst Sie werden eingestellt, die verbleibenden 10% später) oder ein anwendungsspezifischer Vorteil (R over say Java kombiniert mit einer zuckerhaltigen Bibliothek für statistische Analysen).
Das heißt, Sie möchten wissen, was da draußen und verfügbar ist. Mein College unterrichtete einen Kurs zu diesem Thema, Programming Language Concepts . Es war ein umfassender Überblickskurs, kein strenger Mathematik- oder Codierungskurs, in dem die Grundlagen dessen behandelt wurden, was als praktisch und nicht als theoretische Informatik angesehen werden könnte. Es war ein großartiger Kurs und ich wünschte, es wäre etwas gewesen, das im 1.-2. Jahr statt im 3.-4. Jahr angeboten wurde. Der Text lautete Konzepte von Programmiersprachen . Das heißt nicht, dass Sie dieses Buch lesen müssen, aber das würde sicherlich Ihren Horizont erweitern.
quelle
Nun, so wie ich das sehe, musst du nicht jedes bisschen Sprache lernen. Versuchen Sie jedoch, grundlegende Funktionen zu erlernen, die auch in anderen Sprachen erforderlich sind.
Zum Beispiel sind OOPS-Konzepte in allen Sprachen erforderlich, sei es in Java , PHP oder einer anderen Sprache.
Speicherzuweisungskonzepte sind in vielen Programmiersprachen ziemlich ähnlich. Diese Art von Themen sollten Sie sich niemals entgehen lassen.
Jede Sprache hat Grammatik und Regeln. Gleiches gilt für Programmiersprachen. Dennis Ritchie selbst akzeptierte diese Tatsache. Man sollte also die Grammatik dieser Sprache lernen.
Ich sehe es aber so, dass man die nicht alltäglichen Faktoren zwischen zwei Programmiersprachen lernen muss. Mit ihnen können Sie identifizieren, welche Sprache für was steht. C ++ ist alles grundlegende OOP (Object Oriented Programming). Wenn Sie also die OOP- Konzepte kennen, lernen Sie die Grammatik, die Sie auch in PHP und Java sehen werden.
Mein Lernfluss war:
Visual Basic 5 (teilweise) -> HTML 2.0 (teilweise) -> C (teilweise) -> CPP (teilweise) -> Java (teilweise)
und dann habe ich wieder C-Sprache gelernt , gefolgt von C ++ gefolgt von JAVA ( Vervollständigen Sie diese Zeit), dann bin ich zu Android gewechselt, da ich mit Java und XML vertraut war(teilweise) und es in der Zwischenzeit gelernt. Der erste Versuch hat mir weniger beigebracht, aber im zweiten Versuch musst du alles lernen, was dir beim nächsten Mal helfen wird.
quelle