Auswahl Ihrer ersten Programmiersprache

Dies ist sicherlich eine der Fragen, die mir beim Programmieren am meisten in den Posteingang kommen. Wenn wir eine Reihe von Artikeln starten möchten, in denen Sie lernen können, freies Wissen in Form von Beiträgen zu Freier Software / Open Source-Communities auf der ganzen Welt zu programmieren und zurückzugeben, ist es notwendig, diese grundlegenden Fragen zu beantworten, wenn auch etwas schwierig Frage. Welche Programmiersprache soll ich lernen?

Ein wenig Geschichte

Um eine Programmiersprache verstehen und auswählen zu können, müssen wir zunächst ein wenig über ihre Geschichte, ihre Verwendung und Funktionen und darüber wissen, wie sie unterschiedliche Bedürfnisse im Laufe der Zeit lösen.

Maschinensprachen (niedriges Niveau)

Üblicherweise bekannt als Versammlungsind Programmiersprachen, die wir als Dialekte einer allgemeineren Sprache definieren könnten ... Das klingt etwas kompliziert, aber ich werde es veranschaulichen ... Wir wissen, dass die universelle Sprache des Rechnens ist StromDies bedeutet, dass letztendlich das, was ein Computer liest, ist 0sy 1Ja, nennen wir das eComputer Englisch. In diesem Beispiel ist Spanisch die Grundregel, aber wie wir wissen, ist das von Latinos gesprochene Spanisch nicht dasselbe wie das in Spanien gesprochene, und trotzdem ist das Spanisch von Peru nicht dasselbe wie das Spanisch von Argentinien. Offensichtlich haben wir alle fast die gleichen Wörter (0sy 1s), aber die Verwendung und Bedeutung kann je nach Kontext variieren.

Dies geschieht auf Prozessorebene. Wenn wir darüber reden Computerarchitekturen, (amd64, intel, arm, ...) Wir beziehen uns auf den Dialekt davon Computer Spanisch. Dies liegt daran, dass verschiedene Unternehmen die Reihenfolge und Bedeutung auf ihre eigene Weise verstehen. Einige unterscheiden sich daher in Details wie dem Stromfluss oder der Reihenfolge, in der sie aufbewahrt werden sollen. 0sy 1s.

Diese Programmiersprachen sind extrem schnell, da sie auf der niedrigstmöglichen Programmierebene arbeiten, aber sie hängen stark von der Architektur ab und sind sicherlich etwas komplizierter zu lernen als die anderen. Diese erfordern häufig eine breitere Basis von Konzepten, um die Daten zu transformieren und nützliche Dinge darauf auszuführen. Ein Beispiel für Videospielliebhaber wären SEGA-Konsolen, die Assembly zum Programmieren ihrer Spiele verwendeten. Offensichtlich war zu dieser Zeit der Speicher im Vergleich zu heute minimal, und es war notwendig, eine Sprache zu beherrschen, die schnell sein und leichte Programme produzieren konnte.

Hochsprachen

Diese große Gruppe betrachtet die Sprachen, die danach kamen Versammlung. Die Notwendigkeit, tragbaren Code zu erhalten, führte zur Entstehung einer Gruppe von Sprachen namens zusammengestellt. Unter diesen war C das erste, das davon profitierte und seit den 70er Jahren eine dominierende Programmierfunktion auf Betriebssystemebene hatte.

Kompilierte Sprachen

Sehen wir uns ein praktisches Beispiel für das an, was ich kommentiere. Schauen wir uns ein sehr einfaches C-Sprachprogramm an, das eine Codezeile druckt.

Besitzen. Christopher Diaz Riveros

Nach dem Kompilieren haben wir folgendes:

Eigenes Design: Christopher Díaz Riveros

Aber jetzt wollen wir sehen, was wir schreiben müssten, um das gleiche Ergebnis im Assembly-Code zu replizieren:

Besitzen. Christopher Diaz Riveros

Dies ist die Übersetzung unserer 3 Codezeilen aus simple.c, die Datei simple.s wird mit dem Befehl erstellt gcc -S simple.c und das würde unser Prozessor in einem Dialekt verstehen Versammlung. Offensichtlich, um eine ausführbare Datei zu erstellen, die aus besteht 0sy 1s Die Datei muss verarbeitet werden simple.s und verbinden Sie es mit den gemeinsam genutzten Bibliotheken unseres Systems. Dies geschieht mit a Assembler (as) und conector (ld).

Kompilierte Sprachen bieten einen großen Vorteil gegenüber einfachen Sprachen tragbare Geräte. Portability liefert Code, der auf verschiedenen Prozessoren ausgeführt werden kann, ohne dass für jede Architektur spezifischer Code generiert werden muss. Ein weiterer offensichtlicher Vorteil ist die Einfachheit beim Lesen und Schreiben von Code. Zu den Hauptnachteilen gehört eine hohe Komplexität, da die Freiheit, die C bietet, im Vergleich zu den folgenden Arten von Sprachen, die wir sehen werden, schädlich sein kann, wenn Sie nicht wissen, wie man sie kontrolliert. Es ist sicherlich wie die Übergabe einer Waffe Es kann vorkommen, dass eine Person mangels Erfahrung ihren eigenen Fuß schießt, um die Waffe zu reinigen.

Interpretierte Sprachen

Innerhalb dieser Gruppe gibt es eine Vielzahl von Sprachen, darunter Python, Ruby, Javascript, PHP usw. Die Grundidee dieser Sprachen besteht darin, eine schnelle Möglichkeit zum Erstellen und Ausführen von Programmen bereitzustellen Dies liegt daran, dass viele der schwierigen Prozesse im Interpreter ausgeführt werden und die Programmierung der Logik im Code implementiert ist. Schauen wir uns das gleiche Beispiel oben an, diesmal jedoch in Python:

Besitzen. Christopher Diaz Riveros

Unter den herausragendsten Dingen können wir sehen, dass die erste Zeile für den Aufruf des Interpreters (des Programms, das unsere Anwendung ausführt) zuständig ist und der nachfolgende Code "einfacher" ist als seine Version in C, da die ganze schwere Arbeit ausgeführt wird auf dem Dolmetscher.

Besitzen. Christopher Diaz Riveros

Interpretierte Sprachen bieten dem Entwickler eine größere Sicherheitsebene, da sie strengere Sicherheitskontrollen haben (ACHTUNG, dass sie nicht perfekt sind, da selbst die Besten Fehler machen können) und wir nicht länger das Risiko haben, eine Waffe abzufeuern, ohne es zu merken da der Dolmetscher beim ersten Versuch eine Warnung auslöst und die Ausführung abgebrochen wird. Der Hauptnachteil wird bei der Ausführung des Programms deutlich, da es langsamer als sein binäres Gegenstück ist, und zwar genau aufgrund des größeren Verarbeitungsaufwands, um sicherzustellen, dass der Code funktioniert. Wenn das Programm keine extrem kurzen Fristen erfordert, bleibt der Unterschied möglicherweise unbemerkt. Wenn es sich jedoch um Tausende oder Millionen von Daten pro Sekunde handelt, macht sich der Unterschied in kompilierten Sprachen exponentiell bemerkbar.

Tippen

Dies ist ein Merkmal von Programmiersprachen, das können sein stark schwach getippt. Ich werde dieses Thema für einen anderen Beitrag verlassen, da es notwendig und neugierig ist zu verstehen, wie Speicher in einem Programm gespeichert ist, aber im Moment müssen wir nur den Unterschied machen: Stark typisierte Sprachen sind diejenigen, die das Wissen über das benötigen Datentyp, der an einer Variablen oder Konstante bearbeitet werden soll, während die schwach Typen können also Konvertierungen durchführen implizit und alles hängt von einer Konvertierungshierarchie ab, gefolgt von der Sprache. (Wenn es jetzt nicht verstanden wird, kein Problem, werden wir es für später belassen)

Paradigmen

Wie alles in der GNU / Linux-Welt basieren Programmiersprachen auf Paradigmen, und um sie herum werden Communities generiert. Zum Beispiel haben wir die Python Foundation o Ruby o PHP o Bash (in diesem Fall ist es die GNU-Community). Was ich damit erreichen möchte, ist, dass ich nicht die große Anzahl von Vor- und Nachteilen ausdrücken kann, die jeder hat, aber ich kann Ihnen sagen, dass es dort, wo es eine kostenlose Programmiersprache gibt, eine Community gibt, an der man lernen und teilnehmen kann. Es ist erwähnenswert, dass viele, wenn nicht alle Sprachdolmetscher in C oder einer engen Ableitung geschrieben sind und ihre Entwicklung normalerweise von einer kleineren Gruppe der Gemeinschaft durchgeführt wird, die für Entscheidungen zuständig ist, die alle Sprachbenutzer betreffen. Es können sogar Institutionen gebildet werden, um die korrekte Entwicklung der Sprache sicherzustellen, wie dies bei C der Fall ist.

Welches soll ich wählen?

Wir haben bereits genug über Sprachen gesprochen und ich beantworte immer noch nicht das Wichtigste 😛. Ich hoffe jedoch, dass ich Ihnen nach Durchsicht dieses kleinen Artikels nicht sagen muss, welche Sprache Sie wählen sollen, da Sie mit diesen Informationen in der Lage sind, nach einer Sprache zu suchen, die Neugier weckt. Natürlich, wenn Sie lernen möchten, in einer Sprache zu programmieren Versammlung Es wird lange dauern, bis Sie etwas funktionsfähiges haben. Wenn Sie sich für eine kompilierte Sprache entscheiden, wird die Zeit erheblich verkürzt. Neben der Portabilität auf * NIX-Systemen können Sie auch Informationen zum Betrieb des Systems erhalten Das gleiche System, da Sie durch den Kontakt mit C oder Derivaten auf die eine oder andere Weise lernen, wie ein Betriebssystem allgemein funktioniert. Wenn Sie etwas Leichtes lernen möchten und damit viel tun können, ohne viel verstehen zu müssen, sind interpretierte Sprachen eine unterhaltsame Möglichkeit, Programmierkenntnisse zu erlernen und zu entwickeln.

Lerne mit etwas Aufregendem

Dies ist der beste Rat, den ich Ihnen geben kann. Wenn Sie etwas lernen möchten, müssen Sie zuerst etwas Aufregendes finden, da es sonst ziemlich schwierig ist, die typische Lernkurve einer Programmiersprache zu überwinden. Angenommen, Sie verwalten Systeme. In diesem Fall müssen Sie möglicherweise eine ideale Sprache lernen Scripting (interpretiert), in diesen haben wir Perl, Python, Bash, etc etc ... Vielleicht sind deine Spiele, es gibt viele Projekte in Sprachen wie Javascript, Lua, C ++, abhängig von der Art des gewünschten Spiels spielen. Vielleicht möchten Sie ein Tool auf Systemebene erstellen, da wir C, Python, Perl haben, wie Sie sehen werden, werden einige wiederholt, und dies liegt daran, dass viele Sprachen für viele Aufgaben verwendet werden können, weshalb die Definition von Mehrzwecksprachen in den meisten von diesen.

Starten Sie ein Projekt

Damit meine ich nicht, dass Sie den folgenden Compiler oder sogar die folgende Programmiersprache erstellen. Ein Projekt kann darin bestehen, einen kleinen Fehler in Ihrem Lieblingsprogramm zu beheben und möglicherweise sogar zur Verbesserung der Dokumentation beizutragen. Warum die Dokumentation? Es gibt keinen besseren Weg, um zu lernen, wie die Software funktioniert, als die Dokumentation zu lesen und beim Schreiben zu helfen, denn nach dem Quellcode ist sie die beste Informationsquelle, die Sie über das Programm finden. In einem anderen Moment werden wir sehen, wie man den Code eines Projekts liest und die Funktionen und Werte versteht, die sie erwerben.

Vielen Dank, dass Sie hierher gekommen sind. Wie immer helfen mir Ihre Kommentare dabei, bessere Inhalte zu generieren und zu wissen, wo ich mich konzentrieren muss. Grüße.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   anonym sagte

    Wie immer eine 10 !!!!!! Danke für deine Artikel. Grüße und noch mehr !!!!

    1.    ChrisADR sagte

      Vielen Dank 🙂 ermutigt mich, weiter zu schreiben. Prost

  2.   Rubén sagte

    Ich denke, es ist ein Fehler, die Frage zu stellen: "Welche Sprache soll man wählen?" Ich bin einer von denen, die denken, dass Sprache die geringste ist. Wichtig ist, die Grundlagen der Programmierung zu lernen und "rechnerisch zu denken". Entscheiden Sie sich für eine Syntax, ihre Typisierung, ob sie OOP, ihr Dienstprogramm usw. unterstützt. Ich denke, es ist etwas, das im Studio selbstverständlich sein wird, und schließlich kennt jeder Programmierer mehr als 1, 2 und 3 Sprachen ... und dank der Programmierkonzepte (und nicht der Syntax), die er hat, ist er in der Lage in einer Sprache zu programmieren, in der Sie noch keine Erfahrung haben.
    Für die Eingeweihten denke ich jedoch, dass eine gute Sprache aufgrund ihrer Einfachheit Python sein kann, aber vor allem gehen Sie ein wenig weiter, studieren Sie Algorithmen und wissen Sie, wie die Dinge "im Inneren" funktionieren.

    Grüße ChrisADR

    1.    ChrisADR sagte

      Hallo Rubén, danke fürs Teilen
      Es gibt etwas, das ich im Laufe der Zeit in der Welt des Programmierens gelernt habe, und das heißt, "wer viel abdeckt, drückt nicht", und mit diesem bekannten Satz meine ich, dass sich viele und besonders die enthusiastischsten dazu entschließen Probieren Sie alles ein wenig aus und lernen Sie sehr schnell, wie Sie das Codieren lernen. Ich glaube, und es ist eine persönliche Meinung, dass ein guter Entwickler eine Compilersprache und eine Interpretersprache kennen und beherrschen sollte, zusätzlich zu einer Vorstellung von einem Versammlungsdialekt.
      Der Grund ist folgender: Das Prototyping muss immer einfach und schnell sein, leicht zu generieren sein und das zeigt im Allgemeinen ein Ergebnis. Wenn es jedoch nicht ausreicht, muss es einen "Plan B" geben, auf den zurückgegriffen werden kann, wenn der Dolmetscher angekommen ist seine Grenze.
      Wenn Sie einen Dialekt der Versammlung kennen, erhalten Sie nicht nur Vertrauen, sondern lernen auch, "rechnerisch" zu denken. Offensichtlich ist dieser Teil der komplizierteste von allen, und es ist sicherlich etwas, zu dem nicht alle Programmierer kommen.
      Aber zurück zum Thema, denn die Hauptidee, die ich denke, ist "eine Sprache wählen und viel üben", denn der einzige Weg, um gut zu programmieren, ist das Lesen und Schreiben von Code, und daraus habe ich gelernt Die Kernel-Community Wenn Sie lange Zeit dieselbe Syntax beibehalten, sehen Sie das Formular nicht mehr und sorgen sich um den HINTERGRUND. Die Idee, eine Sprache oder Syntax von Anfang an zu wählen, besteht darin, dass man das Lesen und Schreiben so gewöhnen kann, dass man beginnen kann, die BEDEUTUNG des Programms anstelle der Syntax des Programms zu lesen.
      Dies ist der Hauptgrund für diesen Beitrag, dass jeder seine Sprache wählt, damit wir im Folgenden die Konzepte erklären können, vielleicht werden damit die Zweifel geklärt 🙂
      Grüße und danke fürs Teilen.

  3.   deibis contraras sagte

    danke für den Beitrag war es gut.

    Grüße

    1.    ChrisADR sagte

      Hallo Deibis, danke fürs Teilen 🙂 Grüße

  4.   JorgeFS sagte

    Mein Rat: alles andere als PHP. Vor zwanzig Jahren ergab PHP aufgrund der hohen Komplexität, mit der das Web mithilfe von CGI in einer anderen Sprache programmiert wurde, einen gewissen Sinn. Heute gibt es eine Vielzahl von Frameworks, mit denen die Webentwicklung in leistungsstarken Sprachen wie Django für Python, Spring für Java oder Rails für Ruby viel angenehmer wird. Obwohl PHP derzeit in allen Sprach-Beliebtheitstabellen erscheint, wird PHP meiner Meinung nach mit der Zeit an Relevanz verlieren.
    Ich empfehle dringend, mit C \ C ++ zu beginnen, um die Realität der Programmierung zu verstehen, obwohl die Lernkurve steil ist.
    Grüße.

    1.    ChrisADR sagte

      Hallo Jorge, danke fürs Teilen, ich erinnere mich nur an Laravel, ein ziemlich solides Framework. Ich persönlich mochte Spring oder Java für die Webentwicklung nie. Ich finde es ziemlich umständlich, aber ich denke, es ist Teil der Zeit, in der sie waren Der Markt, zu der Zeit waren sie Pioniere und sicherlich heute haben moderne Alternativen (Js, Python und Ruby) die Art und Weise verbessert, Code zu präsentieren, der ohne viel Arbeit lesbar und modifizierbar ist.
      Ich neige auch dazu, Menschen zu lernen, die irgendwann in ihrem Leben C / C ++ lernen. Ich habe mit Java angefangen, aber ich denke, das ist das Schöne an der Programmierung. Sie können mit allem beginnen, was Sie wollen, solange Sie konsequent sind hilfreich sein 🙂 Prost

    2.    Rubén sagte

      Ich kann dir nicht mehr widersprechen. Ich habe vor vielen Jahren mit C und VB angefangen, um mich später auf PHP und JS zu konzentrieren (da ich mich auf die Webentwicklung konzentrierte) und später während des Studiums hauptsächlich C / C ++ und Java zu lernen.
      PHP hat eine Reihe von Vorteilen, die ich in dieser Nachricht nicht auflisten konnte. PHP7 ist schnell (schneller als Python ... ohne Verwendung von hhvm, verschiedenen Caches, Frameworks wie Phalcon oder Bytecode im Fall von Python), es verfügt über eine große Anzahl von Bibliotheken und Frameworks, es verfügt über eine große Anzahl direkt implementierter Funktionen Ihre Syntax, die C so ähnlich ist, macht es jederzeit sehr einfach, in andere Sprachen zu migrieren.
      30% der Websites weltweit werden mit WordPress (PHP) erstellt und das scheint sich nicht zu ändern. Wikipedia verwendet es, Facebook (mit hhvm) und eine große Anzahl von Websites, insgesamt 80%.

      Ich erinnere dich daran, dass Ruby on Rails wie Django 12 Jahre alt sind! Welche Quote haben sie in dieser Zeit erreicht? Und natürlich sprechen wir über zwei Frameworks, die praktisch ein Monopol haben und es gibt keine Art von Fragmentierung. Welche anderen ernsthaften Alternativen habe ich? Zu sagen, dass PHP an Relevanz verlieren wird, macht wenig Sinn.

      Jetzt, da Python in Mode ist, weil es eine schnelle Lernkurve hat, ist es eine einfache Sprache und sie verkaufen es Ihnen als «in 20 Stunden Programmierer mit Python werden und daran arbeiten», mit Unterstützung von Unternehmen wie Google und dass die Art und Weise, nach neuen Sprachen zu suchen (Go, Dart….), um sich in einem Lebenslauf zu differenzieren (oder als tägliche Geburt von 50 Frameworks für Javascript!), nicht bedeutet, dass sich die Dinge ändern.

      Ruby ist eine sehr interessante Sprache, aber sie bricht so sehr mit etablierten Mustern, dass ich kaum glauben kann, dass sie populärer wurde als PHP. Natürlich denke ich, dass Ruby die schlechteste Sprache ist, um überhaupt mit dem Programmieren zu beginnen.
      Ich verstehe, dass Sie mir sagen, dass es Spaß machen kann, Python zu programmieren, selbst Ruby mit seinen unendlichen Besonderheiten ... aber Frühling mit Java? "Ja wirklich?" Java kann vieles sein ... aber angenehmer als Python und PHP?

      Es ist alles sehr gut, mit Python zu beginnen, aber da Sie nur bei Python bleiben, laufen Sie Gefahr, dass viele Unternehmen glauben, dass Ihr Programmierniveau nicht "tief" ist (selbst wenn Sie sehr gut in Python sind). Dies liegt daran, dass Sie mit anderen "Mehrzweck" -Sprachen wie C ++ oder Java konkurrieren. Sie können in Python programmieren, ohne den Unterschied zu kennen, was zum Teufel ein Zeiger ist, bitweise Operationen, wie ein Garbage Collector funktioniert und eine lange usw.
      Python ähnelt vielleicht am wenigsten der "klassischen Programmierung", die es gibt und die als "Kindersprache" angesehen werden kann (erhalten Sie die Metapher), und dies ist wiederum ein Vorteil und ein Nachteil.

      1.    JorgeFS sagte

        "Python ähnelt vielleicht am wenigsten der 'klassischen Programmierung', die es gibt und die als 'Sprache für Kinder' angesehen werden kann (verstehen Sie die Metapher), und das ist wiederum ein Vorteil und ein Nachteil." LOL, das ist eines der lustigsten Dinge, die ich über Python gesagt habe. Hast du Python jemals wirklich gelernt?
        Wie lange ist es weltweit außerhalb von PHP?
        Freund PHP war tot geboren. PHP (\ d +) hat aufgrund eines sehr schlechten Anfangsdesigns viel Widerstand und um die Benutzergemeinschaft aufrechtzuerhalten, zieht es all diese anfänglichen Designfehler sehr gründlich. PHP wurde ohne Modularität mit vielen Funktionen im C-Stil geboren (was ich übrigens nicht weiß, woher Sie kommen, da seine Syntax C ähnelt und es leicht in andere Sprachen portiert werden kann). Eine Hochsprache, wie sich PHP verhalten sollte, hat so hässliche Dinge wie diese Funktionsspur, die auf ihrer offiziellen Website aufgeführt ist http://php.net/manual/en/indexes.functions.phpDies liegt daran, dass es ohne Modularität geboren wurde, also ist alles schmutzig und ohne Namespaces.
        Dies ist ein Stück PHP-Code:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        Können Sie irgendwann feststellen, woher all diese Stream-Funktionen importiert wurden? NEIN, man könnte dann sagen, dass es sich um eingebaute Funktionen handelt, aber dann ist das gesamte Ökosystem eingebaute Funktionen? Und so gibt es eine Menge Müll im PHP-Code. Wenn Sie die Komplexität und Nutzlosigkeit eines so schlechten Designs nicht verstehen können, verzeihen Sie mir, aber es gibt immer noch viel Welt zu sehen.
        Wordpress ist eine ausgezeichnete Softwarelösung, aber dies bedeutet nicht, dass es eine gute technologische Basis hat. Sie können mit einem Stein hämmern und Nägel mit den Zähnen herausschlagen, und Sie können immer noch hervorragende Tischlerarbeiten ausführen, aber natürlich mit viel mehr Arbeit als ein anderer Schreiner, der einen guten Hammer verwendet.

        Auf der anderen Seite: "Werden Sie in 20 Stunden Programmierer mit Python und arbeiten Sie daran", habe ich noch nie eine solche Dummheit gesehen. Sie können eine Website in PHP in 20 Stunden erstellen, ohne Kenntnisse über die Funktionsweise der Webprogrammierung oder die Programmierung selbst zu haben. In der Tat ist dies der Grund, warum PHP so beliebt ist, weil Neulinge, die diese Welt betreten, PHP als einen Punkt der schnellen Entwicklung ansehen (weshalb so viel PHP-Code so hart saugt).
        In Bezug auf die Mängel von Python war das einzige, bei dem es erfolgreich war, die Arbeit mit Zeigern, aber auf jeden Fall ist Python eine Hochsprache (wie Java) und nutzt sie nicht auf Syntaxebene. aber bitweise Operationen, ernst?, meinst du das x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Ich habe die Sache mit dem Müllsammler viel weniger verstanden: https://docs.python.org/3/library/gc.html.
        PHP-Lücken:
        -PHP hat ein sehr schlechtes OOP-Design (Object Oriented Programming).
        -Sie können Operatoren noch nicht überlasten.
        -Überraschung, function overloading In PHP ist es nicht das, was Sie natürlich von diesem Konzept erwarten.
        … .. und ich habe mich gerade gelangweilt, hehe.
        Grüße.

        1.    Rubén sagte

          Ich habe in Klammern "Verstehe die Metapher" gesetzt (indem ich Python mit C ++ / Java in derselben Arbeitsumgebung vergleiche), es ist klar, dass du es nicht verstanden hast. Ich könnte Ihnen sagen, dass ein C ++ - Programmierer Python viel schneller lernen kann als ein Python-Programmierer C ++, genauso wie es keine Überraschung ist, dass das durchschnittliche Gehalt eines C / C ++ - Programmierers höher ist als a Python eins.
          Ich könnte es Ihnen mit anderen Beispielen erklären, sogar mit einer Zeichnung! aber es scheint, dass Sie sich nur darauf konzentrieren, das zu dekontextualisieren und zu verspotten, was ich gesagt habe.

          Zu keinem Zeitpunkt habe ich gesagt, dass PHP die beste Sprache der Welt ist oder ein vorbildliches Design hat. Ich weiß nicht, woher Sie das bekommen. Ich denke, bevor Sie das Wissen anderer beurteilen, sollten Sie Ihr Leseverständnis verbessern. Was wahr ist (und ich sagte in meiner Botschaft), ist, dass die Entwicklung damit sehr agil ist, zusätzlich zu dem gesamten Ökosystem von Frameworks, Bibliotheken und Dienstprogrammen, das Sie finden können.
          Welche Art von Vergleich machen wir auch? Python als Mehrzwecksprache oder für das Web? Warum vergleichen wir es in diesem Fall mit PHP? PHP hat ein bestimmtes Feld, und in diesem Feld verblasst Python (mit einem Anteil von 0.2%, der sich in diesem Jahr nicht geändert hat) neben PHP.
          Jetzt werden wir die PHP-Trends sehen; von 82,4% im Januar 2017 auf 83.1% im Januar 2018: https://w3techs.com/technologies/history_overview/programming_language

          Wird Python PHP entthronen? In welchem ​​Jahr? in welchen fünf Jahren? Dekade?
          Python kann in vielen anderen Aufgaben verwendet werden und wird sogar noch häufiger als PHP verwendet, aber Python als Webentwicklungssprache ist Lichtjahre davon entfernt, überhaupt relevant zu sein. 0.2% stagnieren gegenüber 83.1% (mit einem Anstieg in diesem Jahr). .

          Sie halten es auch für selbstverständlich, wenn Sie sagen, dass ich nicht außerhalb von PHP unterwegs bin, was darauf hindeutet, dass ich PHP nur kenne, wenn ich genau lange nicht mehr in PHP programmiert habe, haha. Derzeit programmiere ich aus beruflichen Gründen hauptsächlich in Java.
          Ich habe auch nicht gesagt, dass Sie beim Programmieren in Python nicht über bitweise Kenntnisse, einen Garbage Collector oder einen Zeiger verfügen. Vielmehr können Sie in Python programmieren, ohne zu wissen, was dies ist. Ich bezweifle jedoch sehr, dass dies bei einem C ++ - Programmierer der Fall wäre. Und natürlich mache ich den Vergleich, wenn Python in dieses Feld der "Mehrzwecksprache" eintritt, nicht für die Webprogrammierung.

          In 20 Stunden Programmierer zu werden, ist einfach ein Witz, eine Übertreibung. Ich könnte Ihnen hier jedoch verschiedene Links zu Online-Bildungsplattformen und Kursen setzen, die ähnliche Dinge versprechen. Beschuldigen Sie mich nicht, beschuldigen Sie einen Arbeitsmarkt, der der Meinung ist, dass es eine Frage eines 20-stündigen Kurses ist, ein "erfahrener Programmierer" zu werden. Und Python ist eine der modischen Sprachen und auch mit der schnellsten Lernkurve ... weiß und in einer Flasche.

          Ich bestehe darauf, dass Sie Ihre Botschaft darauf stützen, zu sagen, wie schlecht PHP ist (was ich in einem bestimmten Teil zustimme). Es scheint mir richtig zu sein, außer dass es in meiner Nachricht nicht darum geht, sondern darum, warum PHP weiterhin verwendet wird und es morgen nicht verschwinden wird, wie Sie denken.

          un saludo

  5.   Nadie sagte

    C -> Go -> (Lisp | Haskell | Java | was auch immer)

    1.    ChrisADR sagte

      Kürzlich hat mir ein Leser eine Empfehlung für ein Go-Buch an meine E-Mail gesendet, sicherlich eine Sprache, die in Zukunft berücksichtigt werden muss und von der möglicherweise hier ein Beitrag veröffentlicht wird. Viele Grafiken zum Teilen

  6.   mvr1981 sagte

    Nun ... und was programmiere ich? Warum heute mit so guten und erfahrenen Programmierern, die es bereits gibt, eine Programmiersprache lernen? Welche Probleme kann ich lösen, die andere noch nicht viel effizienter gelöst haben?… Kurz gesagt: Wie originell ist es heute, Programmierer zu sein? Wie kann ich mit anderen zusammenarbeiten, ohne von meinem Mangel an Wissen und Erfahrung getreten oder ausgeschlossen zu werden?

    1.    ChrisADR sagte

      Hallo mvr1981, wirklich interessante Fragen 🙂 wir werden sie von der letzten zur ersten aufrollen.

      Wie kann ich mit anderen zusammenarbeiten, ohne von meinem Mangel an Wissen und Erfahrung getreten oder ausgeschlossen zu werden?

      Wenn Sie nicht gekickt werden möchten, besteht der erste Schritt darin, den Prozess zu lernen. Sie können sich nicht vorstellen, wie viele Menschen zu Projekten kommen, die Dinge ausschließlich auf ihre Weise tun möchten und möchten, dass sich die Community an ihre Wünsche anpasst. Es ist sicherlich so, als würde ich zu Ihnen nach Hause kommen und ein Chaos anrichten und Ihre Familie nicht respektieren (so fühlt es sich oft an). Wenn Sie dies verhindern möchten, achten Sie genau auf die Richtlinien, die dazu beitragen sollen, die Mittel, mit denen Sie dies tun können, und senden Sie nichts Unvollständiges. Wenn Sie Hilfe benötigen, gibt es immer Mittel zur Kommunikation, aber ein schlechter Job wird wahrscheinlich schlechte erste Eindrücke schaffen. Wenn Sie sich nicht ausschließen möchten, können Sie ihn als den nutzlosen Programmierer ansehen, der nicht weiß, was er tut, oder als den, der auf dem Weg ist, ein ausgezeichneter Programmierer zu werden, und das geschieht nur mit Übung und mit Sicherheit mit Käfern auf dem Weg. Ich habe mich viele Male geirrt, bevor ich meinen Entwicklerstatus bei Gentoo erlangt habe, und das hat mich nicht davon abgehalten, es trotz der "schlechten Zeit" zu versuchen.

      Wie originell ist es heute, Programmierer zu sein?

      -Es geht nicht um Originalität, es ist heute eine Notwendigkeit. Denken Sie nur an Folgendes: Vor 20 oder 30 Jahren war das Tippen eine Notwendigkeit. Viele Jobs schlossen daraus, dass Sie es wussten oder zumindest konnten. Heutzutage ist es eine Notwendigkeit, Office zu kennen. Es gibt praktisch keinen Job, der Sie nicht vor Office-Dokumente stellt. Morgen, sehr bald, wird die Programmierung eine Notwendigkeit sein. Dies gilt auch aus persönlicher Sicht. Zu wissen, was in den Programmen passiert, denen Sie Dinge anvertrauen, die so wichtig sind wie Ihr Geld, Ihre Gesundheit, Ihre Familie, ist für mich logisch, denn Sie können ihre Grenzen nur kennen, wenn Sie wissen, wie sie sind arbeiten und um es zu wissen, müssen Sie wissen, wie man programmiert.

      Welche Probleme kann ich lösen, die andere noch nicht viel effizienter gelöst haben?

      -Du würdest von der Menge überrascht sein Funktionen Das ist heute erforderlich, und um die Wahrheit zu sagen, es spielt keine Rolle, dass es die besten Programmierer der Welt in der Community gibt. Die Arbeit wird immer größer sein als die Arbeitskapazität der Entwickler. Ich kann dies in Gentoo dort überprüfen sind Leute, die den Kernel entwickeln, Leute, die für Google, Sony usw. usw. arbeiten. Das einzige, was wir alle gemeinsam haben, ist, dass niemand so viel Zeit hat, wie er möchte, um alle anstehenden Arbeiten erledigen zu können.

      Warum heute mit so guten und erfahrenen Programmierern, die es bereits gibt, eine Programmiersprache lernen?

      -Das wird in der zweiten Frage beantwortet. 😉 Aber jetzt kann ich hinzufügen, dass Generationen in der Lage sein müssen, die bereits entwickelte Arbeit zu unterstützen. Damit meine ich, dass diese "erfahrenen" Entwickler allmählich verschwinden und es für die "notwendig sein wird." jünger »Entwickler übernehmen Verantwortung und helfen, den Kreislauf am Leben zu erhalten. Eine Community ohne junge und unerfahrene Menschen neigt dazu, im Laufe der Zeit zu verschwinden, gerade weil es keine Möglichkeit gibt, Wissen zu vermitteln.

      Und was plane ich?

      -Das ist vielleicht am schwierigsten zu beantworten, aber ich werde versuchen, Ihnen ein Beispiel zu geben, bei dem ich kürzlich Probleme mit GNOME 24 und seiner Verbindung zu Wayland hatte, die verhindern, dass Programme wie Shutter Screenshots machen. Dies ist ein Problem für mich, denn wenn ich meine Artikel schreibe, muss ich Ihnen zeigen, was ich sage. Als ich mich ein wenig umsah, kam ich zur GNOME-Screenshot-Anwendung, gelinde gesagt etwas "minimalistisch". Zu seinen Funktionen gehört das Aufnehmen eines Bildschirmbereichs. Was passiert jedoch, wenn ich das Foto nicht gut aufgenommen habe? Nun, ich muss das Programm verlassen und erneut aufrufen, was sicherlich mühsam ist. Eine Schaltfläche mit der Aufschrift «Wiederholen» oder ähnliches ermöglicht es mir, eine neue Aufnahme zu machen, ohne dass ich das Programm verlassen und erneut eingeben muss. Es ist ein kleines Programmierprojekt, ich habe noch nie etwas im GNOME-Framework programmiert, daher muss ich natürlich noch viel lernen, bevor ich meinen "Patch" mit der neuen Schaltfläche sende, aber auf dem Weg lerne ich das Programmieren und hoffentlich dies -Funktion Es wird mehr als einem helfen, wenn es allen zur Verfügung steht.

      Dies ist ein Beispiel, es ist etwas Einfaches und das hätte sicherlich jeder andere "erfahrene" Programmierer schon tun können, aber aufgrund des offensichtlichen Zeitmangels war es nicht so, jetzt bin ich derjenige, der die Möglichkeit dazu hat es, ohne wirklich ein super Programmierer zu sein.

      Jetzt liegt es nur noch an Ihnen, etwas zu finden, das Ihr Leben in dieser Software, die Sie so oft verwenden, "einfacher" macht. Das Schöne daran ist, dass wir, wenn wir den Rat befolgen, den ich Ihnen in den folgenden Artikeln geben werde, Die Sprache spielt keine Rolle, da Sie die Grundlagen kennen, um den von Ihnen gelesenen Code zu verstehen und zu ändern, um das zu tun, was Sie wollen. Das ist ein ganz besonderes Gefühl

      Grüße und nochmals vielen Dank

      1.    Nadie sagte

        Ich denke, dass es am einfachsten ist, zu den Tastaturkürzeln zu wechseln und drei Druckkombinationen zuzuweisen, um alle Alt-Drucke zu erfassen, um das aktive Fenster zu erfassen, und Super-Drucke, um eine Auswahl aus der Erfassung zu treffen Region, die verfügbaren Verknüpfungen sind hier, es ist nur eine Frage der Zuweisung

        1.    ChrisADR sagte

          Aus diesem Grund geben wir Ihnen ein Beispiel: Weil kleine Dinge wie diese Schaltfläche programmieren, können sie einigen helfen, da sie von anderen unbemerkt bleiben können, aber sie erfüllen sicherlich das Hauptziel, helfen beim Programmieren und weichen neuen Funktionen. Nach dieser Schaltfläche können viele Dinge gestartet werden, z. B. eine Sitzungsverwaltung oder ein Vorschaubildschirm aller aufgenommenen Fotos oder kurz gesagt, viele Dinge, die getan werden könnten. Die Idee ist, dass Sie etwas finden, das Sie neugierig macht. Jede Software, die auf Ihrem System ausgeführt wird, benötigt möglicherweise Verbesserungen oder neue Funktionen, die aus Zeit- oder Personalgründen noch nicht implementiert wurden

      2.    mvr1981 sagte

        Danke dir. sind sehr gute Antworten.

    2.    Rechnung sagte

      Nun, für jemanden, der kein Profi auf diesem Gebiet sein wird, wäre es notwendig zu sehen, in welcher Umgebung er arbeitet, sowohl für administrative Aufgaben als auch für Anweisungen. Es kann interessant sein, beispielsweise Python / Basic und Know-how zu kennen zum Programmieren von Makros in Office-Paketen wie LibreOffice oder MS Office. Es gibt Zeiten, in denen dies Ihnen oder anderen Mitarbeitern, die Sie umgeben, viele Arbeitsstunden ersparen und sie auffordern kann, sich wiederholende Aufgaben auszuführen. Sie können ein Dashboard erstellen, um die Hauptkennzahlen des Unternehmens nach dem Herstellen einer Verbindung mit der Datenbank schnell zu berechnen Führen Sie eine SQL-Abfrage durch.
      Wie alles können Sie sich überlegen, wie Sie das Beste daraus machen können, wenn Sie die Werkzeuge kennen, die Ihnen zur Verfügung stehen. Nicht alles ist erfunden.

  7.   Marcelo sagte

    Guillermo, stimme dir vollkommen zu: "Nicht alles ist erfunden" und was erfunden wird, ist veränderbar. Sie müssen das Beste aus den Werkzeugen herausholen und das verwenden, das Ihren Anforderungen am besten entspricht.

  8.   Ricardo sagte

    Beim Programmieren lernt man zuerst Englisch, dann diejenige, die sie am meisten anspricht und ihnen am schönsten erscheint.

    1.    ChrisADR sagte

      Ich hatte es nicht geschrieben, aber es ist wahr - Englischkenntnisse helfen sehr, da die meisten Sprachen darin geschrieben sind, aber auch, weil die größere Menge an Informationen aus erster Hand auch Vielen Dank für das Teilen

  9.   Ruben salgado sagte

    Hervorragender Artikel, zusätzlich zur Motivation.

    1.    ChrisADR sagte

      Sehr nett, vielen Dank 🙂 Grüße

  10.   Gonzalo Martinez sagte

    Beim Programmieren weiß man, wie man argumentiert und in Anweisungen übersetzt.

    Zwei Klarstellungen zum Artikel:

    1) Aufgrund meiner fast 10-jährigen Erfahrung als Programmierlehrer spielt es keine Rolle, mit welcher Sprache Sie lernen, sondern wie Sie lernen und wie komplex sie ist.

    Ich denke, dass eine Sprache, die strukturiert gelernt werden kann und dann zu anderen komplexeren Dingen übergeht, einfacher ist, als von Anfang an mit einer Sprache wie Java zu beginnen.

    Es ist einfacher, so etwas wie eine Hallo-Welt in C oder Pascal als Basis zu lernen, als mit ein paar Zeilen (PROGRAMM im Fall von Pascal oder #include) Im Fall von C) können Sie mit der Entwicklung des Algorithmus beginnen und das Programm mit seiner Logik direkt codieren, wie in Java, das an sich eine Klasse, eine Methode und einige andere Dinge benötigt, die für einen Anfänger eine unnötige Informationsüberflutung sind. und das mag ignoriert werden und zu anderen Dingen übergehen, aber es sind Konzepte, die es gibt, und meiner Meinung nach ist das Übersehen von Dingen kein guter Weg, um zu lernen, besonders wenn die Sprache Sie zwingt, sie zu benutzen. Es ist, als würde man das Zieltraining zum ersten Mal mit einer M-16 beginnen und monatelang im halbautomatischen Modus schießen, wobei man den Griff mit beiden Händen wie eine Pistole hält.

    2) Ob eine Sprache interpretiert oder kompiliert wird, hängt von ihrer Implementierung ab, nicht von der Sprache selbst. Wenn beispielsweise Python für eine Web-App verwendet wird, die wsgi verwendet (entweder mod_wsgi in Apache oder uwsgi für Nginx), wird der Python-Code beim Starten des entsprechenden Moduls kompiliert und generiert .pyc-Dateien

    Es gibt auch Generatoren für Binärdateien für Java (die native Binärdateien anstelle von Bytecode generieren) oder Compiler von PHP-Skripten in reinen Binärdateien.

    In Bezug auf das, was sie über PHP sagen, handelt es sich einfach um eine Sprache, die in einer anderen Ära entwickelt wurde, unter Berücksichtigung anderer Aspekte und ohne Berücksichtigung von Aspekten, die zu diesem Zeitpunkt noch nicht existierten. Die Tatsache, dass es das am häufigsten verwendete ist, macht es natürlich nicht zum besten für irgendetwas auf der Welt, aber es gibt eine Realität: Es ist die Sprache, mit der die größte Chance besteht, einen Job in der gesamten Programmierung zu bekommen. Zu wissen, dass es nicht weh tut, auch wenn Sie es nicht mögen.

    Selbst ich, der ich seit mehreren Jahren als Systemadministrator arbeite und den Entwicklerjob verlassen habe, muss von Zeit zu Zeit PHP-Code in etwas einfügen.

    1.    ChrisADR sagte

      Hallo Gonzalo, danke fürs Teilen,

      Wenn wir von unnötigen Informationsüberflutungen sprechen und wissen, dass dieselbe Sprache interpretiert oder kompiliert werden kann, ist dies in dieser Phase nicht erforderlich. 🙂 Natürlich ist die Implementierung wichtig, aber wenn wir dies auf dieser Ebene sagen, erzeugen wir nicht mehr als Verwirrung. Auf die gleiche Weise werden objektorientierte Programmierprobleme oder andere Konzepte, die schrittweise dosiert werden müssen, um Menschen nicht schwindelig zu machen, nicht angesprochen.

      Da der Platz begrenzt ist, besteht das Hauptziel des Beitrags darin, Lesern, die programmieren möchten, zu zeigen, dass es zwei große Sprachenwelten gibt, dass die "traditionell" interpretierten "einfacher" sind, dass die "traditionell" kompilierten etwas mehr sind "komplex", aber dass es dieses Maß an Komplexität wert ist, ein solideres Verständnis zu haben, und dass es an jeder Person liegt, die Sprache zu wählen, da sie je nach Programmieransatz in der Lage sein wird, ihre Lieblingsprojekte und das zu wählen Gleichzeitig können sie verstehen, was sie lesen und / oder schreiben 🙂

      Nochmals vielen Dank, Grüße.

      1.    Gonzalo Martinez sagte

        Dies ist ein Fehler. Es gibt keine kompilierten oder interpretierten Sprachen. Es gibt Dolmetscher und Compiler für jede Sprache, beide für verschiedene Fälle.

        Es ist keine Informationsüberflutung, es jetzt zu erwähnen, es ist ein Fehler, eine solche Aussage zu machen. Meiner Meinung nach wäre es produktiver gewesen, die Dolmetscher zu ignorieren, wenn Sie nicht mit Informationen überladen wollten.

        1.    ChrisADR sagte

          Vielen Dank für die Klarstellung, ich werde es berücksichtigen, wenn ich auf das Thema zurückkomme. Prost

  11.   Ares sagte

    Welche Sprache empfehlen Sie für die Serverseite, wenn man bedenkt, dass PHP in Ungnade gefallen ist?
    Das gleiche gilt für Datenbanken. Ich weiß nicht, ob es etwas Besseres und Moderneres als mySQL geben wird.

    1.    ChrisADR sagte

      PHP ist nicht in Ungnade gefallen ... Jede Sprache hat ihren Lebenszyklus, und PHP ist sicherlich bereits eine Sprache, die in die Skala von "ausgereift" eintritt, was es auf Unternehmensebene nützlich macht, wo Stabilität vor allem ... Wie einige Banken, in denen es noch in Java entwickelt wird, das "reifer" als PHP ist und sicherlich seine Anhänger und Kritiker hat ... Und ganz zu schweigen von COBOL ...

      Wenn Sie nach Einheitlichkeit und Modernität suchen, wird Javascript zu einem der Favoriten der sogenannten "Full-Stack-Entwickler", obwohl das Ruby-Paradigma oder die "Einfachheit" von Python auch gute Referenzen sind. Sogar Perl könnte je nach Bedarf die Option sein 🙂

      Heutzutage gewinnt der ORM (Object Relational Mapper) im Hinblick auf das relationale Datenmanagement an Kraft. Es geht von der SQL-Syntax zur Behandlung von Klassen und Attributen ... Fast alle Sprachen (wenn nicht alle) verarbeiten ORM.

      . Mongo DB ist eine Alternative zu relationalen Datenbanken, die sehr wichtig geworden ist. Es ist jedoch erforderlich, die Vor- und Nachteile zu kennen und zu überprüfen, ob dies je nach Bedarf die beste Lösung ist.

      Ich hoffe es hilft dir, Grüße 🙂

      1.    Ares sagte

        Danke, ich werde das überprüfen.

      2.    Ares sagte

        Ich habe vergessen.

        Was empfehlen Sie mir, um mit JAVA unter Linux zu arbeiten?
        Wenn Sie besser zwischen frei und geschlossen unterscheiden können.

        1.    ChrisADR sagte

          Eclipse und NetBeans sind Open Source. Ich bin mir nicht sicher, ob es rein freie Software gibt. Ich habe die Angewohnheit, vim zu verwenden, da die Codemenge manchmal die Verwendung einer gesamten IDE langsam und anfällig für Ausführungsfehler macht. Grüße 🙂

        2.    paulzeta sagte

          Um mit Java unter Linux zu arbeiten, verwende ich IntelliJ. Ich empfehle Ihnen.

          1.    ChrisADR sagte

            PS, IntelliJ ist eine proprietäre Software

  12.   je sagte

    Leute erinnern sich auch daran, dass ... ich in einer Bank arbeite und Ihnen sage, dass Programmiersprachen in den Hintergrund treten, damit SQL und gespeicherte Prozeduren an erster Stelle stehen.

    1.    Gonzalo Martinez sagte

      Sie müssen die gespeicherten Prozeduren berücksichtigen, aber wenn Sie zumindest nach meiner Erfahrung keine tragbare Sprache zwischen Engines verwenden, geht es immer darum, sie zu vermeiden, es sei denn, es gibt keine andere Option.