Uw eerste programmeertaal kiezen

Dit is zeker een van de vragen die het meest in mijn inbox opkomen als ik het over programmeren heb. Als we een reeks artikelen gaan beginnen waarmee je kunt leren programmeren en gratis kennis kunt teruggeven in de vorm van bijdragen aan gratis software / open source-gemeenschappen over de hele wereld, is het noodzakelijk om deze eenvoudige, zij het een beetje moeilijke vraag te beantwoorden. Welke programmeertaal moet ik leren?

Een beetje geschiedenis

Om een ​​programmeertaal te begrijpen en te kiezen, moeten we eerst een beetje weten over hun geschiedenis, hun gebruik en functies, en hoe ze in de loop van de tijd verschillende behoeften oplossen.

Machinetalen (laag niveau)

Algemeen bekend als bijeenkomstHet zijn programmeertalen die we zouden kunnen definiëren als dialecten van een meer algemene taal ... Dit klinkt een beetje ingewikkeld, maar ik ga het illustreren ... We weten dat de universele computertaal is elektriciteitbetekent dit dat uiteindelijk wat een computer leest, is 0sy 1ja, laten we dit noemen ecomputer engels. In dit voorbeeld is Spaans de basisregel, maar zoals we goed weten, is het Spaans dat door Latino's wordt gesproken niet hetzelfde als dat in Spanje wordt gesproken, en toch is het Spaans van Peru niet hetzelfde met het Spaans van Argentinië. Het is duidelijk dat we allemaal bijna dezelfde woorden hebben (0sy 1s), maar het gebruik en de betekenis kunnen per context verschillen.

Dit gebeurt op processorniveau. Als we erover praten computerarchitecturen, (amd64, intel, arm, ...) verwijzen we naar het dialect daarvan computer spaans. Dit komt omdat verschillende bedrijven de volgorde en betekenis op hun eigen manier begrijpen, dus sommige variëren in details, zoals de stroom van de stroom of de volgorde waarin ze zullen worden aangehouden. 0sy 1s.

Deze programmeertalen zijn extreem snel, omdat ze op het laagst mogelijke programmeerniveau werken, maar ze zijn sterk afhankelijk van de architectuur en zijn zeker iets gecompliceerder om te leren dan de rest. Deze vereisen vaak een bredere basis van concepten om de gegevens te transformeren en er nuttige dingen op uit te voeren. Voor liefhebbers van videogames is een voorbeeld SEGA-consoles, die Assembly gebruikten om hun games te programmeren. Het was duidelijk dat in die tijd de hoeveelheid geheugen minimaal was in vergelijking met tegenwoordig, en het was nodig om een ​​taal te beheersen die snel kon zijn en lichte programma's kon produceren.

Talen op hoog niveau

Deze grote groep denkt na over de talen die daarna kwamen bijeenkomst. De behoefte aan draagbare code leidde tot de opkomst van een groep talen met de naam gecompileerd. Onder deze was C de eerste die profiteerde, dat sinds de jaren 70 een overheersende rol speelt in het programmeren op het niveau van het besturingssysteem.

Gecompileerde talen

Laten we eens kijken naar een praktisch voorbeeld van wat ik becommentarieer. Laten we eens kijken naar een heel eenvoudig C-taalprogramma dat één regel code afdrukt.

Eigen. Christopher Diaz Riveros

Na het compileren hebben we het volgende:

Eigen ontwerp: Christopher Díaz Riveros

Maar laten we nu eens kijken wat we zouden moeten schrijven om hetzelfde resultaat in Assembly-code te repliceren:

Eigen. Christopher Diaz Riveros

Dit is de vertaling van onze 3 regels code van simple.c, het bestand simple.s wordt gemaakt met de opdracht gcc -S simple.c en het is wat onze bewerker zou begrijpen in een dialect bijeenkomst. Uiteraard om een ​​uitvoerbaar bestand te maken dat bestaat uit 0sy 1s het bestand moet worden verwerkt simple.s en verbind het met de gedeelde bibliotheken van ons systeem. Dit gebeurt met een assembler (as) en een connector (ld).

Gecompileerde talen bieden een groot voordeel ten opzichte van low-level-talen, dat zijn ze draagbaar. Portability levert code die kan worden uitgevoerd op verschillende processors zonder dat er voor elke architectuur specifieke code moet worden gegenereerd. Een ander duidelijk voordeel is de eenvoud die het gebruikt bij het lezen en schrijven van code. Een van de belangrijkste nadelen is dat we een hoge complexiteit hebben, aangezien in vergelijking met de volgende soorten talen die we zullen zien, de vrijheid die C biedt schadelijk kan zijn als je niet weet hoe je controle moet uitoefenen, het is zeker als het overhandigen van een pistool, het kan gebeuren dat bij gebrek aan ervaring dat een persoon uiteindelijk met zijn eigen voet schiet in een poging het pistool schoon te maken.

Geïnterpreteerde talen

Binnen deze groep hebben we een grote verscheidenheid aan talen, een van de belangrijkste zijn Python, Ruby, Javascript, PHP, enz ... Het basisidee van deze talen is om een ​​snelle manier te bieden om programma's te maken en uit te voeren, dit komt omdat veel van de moeilijke processen worden uitgevoerd in de tolk, en de programmering van de logica is wat in de code is geïmplementeerd. Laten we naar hetzelfde voorbeeld hierboven kijken, maar deze keer geschreven in Python:

Eigen. Christopher Diaz Riveros

Onder de meest opvallende dingen kunnen we zien dat de eerste regel verantwoordelijk is voor het bellen van de tolk (het programma dat onze applicatie zal uitvoeren) en de daaropvolgende code is 'simpeler' dan de versie in C, aangezien al het zware werk uitgevoerd op de tolk.

Eigen. Christopher Diaz Riveros

Geïnterpreteerde talen bieden de ontwikkelaar een grotere beveiligingslaag, aangezien ze strengere beveiligingscontroles hebben (PAS OP dat ze niet perfect zijn, aangezien zelfs de besten fouten kunnen maken) en we niet langer het risico lopen een wapen af ​​te vuren zonder het te beseffen, aangezien bij de eerste poging de tolk een waarschuwing zou geven en de uitvoering zou worden geannuleerd. Het grootste nadeel wordt duidelijk bij het uitvoeren van het programma, aangezien het langzamer is dan zijn binaire tegenhanger, dit juist vanwege de grotere hoeveelheid verwerking om ervoor te zorgen dat de code werkt. Als het programma geen extreem korte deadlines nodig heeft, kan het verschil onopgemerkt blijven, maar als we het hebben over duizenden of miljoenen gegevens per seconde, wordt het verschil exponentieel merkbaar in gecompileerde talen.

Typen

Dit is een kenmerk van programmeertalen, deze kunnen zijn sterk zwak getypt. Ik laat dit onderwerp achter voor een ander bericht, omdat het nodig en nieuwsgierig is om te begrijpen hoe geheugen in een programma wordt opgeslagen, maar voorlopig hoeven we alleen het onderscheid te maken: sterk getypte talen zijn talen die moeten weten welk type gegevens om aan een variabele of constante te werken, terwijl de zwak typen kunnen dus conversies uitvoeren impliciet en alles hangt af van een conversiehiërarchie gevolgd door de taal. (als het nu niet wordt begrepen, geen probleem, we laten het voor later staan)

Paradigma's

Zoals alles in de GNU / Linux-wereld, zijn programmeertalen gebaseerd op paradigma's en worden er gemeenschappen omheen gegenereerd. We hebben bijvoorbeeld de Python-stichting o Ruby o PHP o Bash (in welk geval het de GNU-gemeenschap is). Wat ik hiermee wil bereiken, is dat ik het grote aantal voor- en nadelen dat elk heeft, niet kan uitdrukken, maar ik kan je wel vertellen dat waar een gratis programmeertaal is, er een gemeenschap is om te leren en aan deel te nemen. Het is vermeldenswaard dat veel, zo niet alle, taaltolken in C zijn geschreven, of in een soortgelijk derivaat, en dat hun ontwikkeling gewoonlijk wordt uitgevoerd door een kleinere groep van de gemeenschap, die verantwoordelijk is voor het nemen van beslissingen die van invloed zijn op alle taalgebruikers. Er kunnen zelfs instellingen worden gevormd die zorgen voor de juiste taalontwikkeling, zoals het geval is bij C.

Welke te kiezen?

We hebben al genoeg over talen gesproken en ik geef nog steeds geen antwoord op het belangrijkste 😛. Maar ik hoop dat het na het lezen van dit kleine artikel niet nodig is om u te vertellen welke taal u moet kiezen, aangezien u met deze informatie volledig in staat bent om een ​​taal te zoeken die nieuwsgierigheid opwekt. Uiteraard als je wilt leren programmeren in een taal bijeenkomst het zal lang duren voordat je iets functioneels kunt hebben, de tijd zal aanzienlijk worden verkort als je kiest voor een gecompileerde taal, waar je naast overdraagbaarheid op * NIX-systemen ook informatie kunt leren over de werking van hetzelfde systeem, aangezien je in contact met C of afgeleiden doet je op de een of andere manier leren hoe een besturingssysteem in het algemeen werkt. Ten slotte, als je iets lichts wilt leren en dat je in staat stelt veel te doen zonder veel te hoeven begrijpen, dan zijn vertolkte talen een leuke manier om programmeervaardigheden te leren en te ontwikkelen.

Leer met iets spannends

Dit is het beste advies dat ik je kan geven, als je iets wilt leren, moet je eerst iets spannends vinden, anders zal het behoorlijk moeilijk zijn om de typische leercurve van alle programmeertalen te overwinnen. Stel dat u systemen beheert, in dat geval moet u wellicht een ideale taal leren scripting (geïnterpreteerd), daarbinnen hebben we Perl, Python, Bash, etc etc ... Misschien zijn die van jou games, er zijn veel projecten in talen zoals Javascript, Lua, C ++, afhankelijk van het type game dat je wilt spelen. Misschien wilt u een tool op systeemniveau maken, aangezien we C, Python, Perl hebben, zoals u zult zien, worden sommige herhaald, en dit komt omdat veel talen kunnen worden gebruikt voor veel taken, daarom is de definitie van multifunctionele talen in de meeste hiervan.

Start een project

Hiermee bedoel ik niet dat je de volgende compiler maakt, of zelfs de volgende programmeertaal, een project kan een kleine bug in je favoriete programma oplossen, misschien zelfs helpen bij het verbeteren van de documentatie. Waarom de documentatie? omdat er geen betere manier is om te leren hoe de software werkt dan door de documentatie te lezen en te helpen schrijven, want na de broncode is het de grootste bron van informatie die u over het programma zult vinden. Op een ander moment zullen we zien hoe we de code van een project kunnen lezen en de functies en waarden die ze verwerven, begrijpen.

Heel erg bedankt dat je hier bent gekomen en zoals altijd helpen je opmerkingen me om betere inhoud te genereren en te weten waar ik me op moet concentreren, Gegroet.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   anoniem zei

    Zoals altijd een 10 !!!!!! Bedankt voor uw artikelen. Groeten en nog veel meer !!!!

    1.    Chris ADR zei

      Heel erg bedankt 🙂 moedigt me aan om te blijven schrijven. Proost

  2.   Ruben zei

    Ik denk dat het een vergissing is om de vraag "welke taal te kiezen?" Ik ben een van degenen die denken dat taal de minste is, het belangrijkste is om de basisprincipes van programmeren te leren en 'computationeel te denken'. Beslis over een syntaxis, het typen ervan, of het OOP ondersteunt, het nut ervan, enz. Ik denk dat het iets is dat van nature zal komen in de studie en tenslotte kent elke programmeur meer dan 1, 2 en 3 talen ... en dankzij de programmeerconcepten (en niet de syntaxis) die hij heeft, is hij in staat om te programmeren in een taal waarin je nog geen ervaring hebt.
    Voor ingewijden denk ik echter dat een goede taal Python kan zijn vanwege zijn eenvoud, maar ga vooral een beetje verder, bestudeer algoritmen en weet hoe de dingen "van binnen" werken.

    Groeten ChrisADR

    1.    Chris ADR zei

      Hallo Rubén, bedankt voor het delen
      Er is iets dat ik in de loop van de tijd heb geleerd in de programmeerwereld, en dat is dat 'hij die veel bedekt, niet knijpt' en met deze bekende zin bedoel ik dat vaak, en vooral de meest enthousiaste, besluiten om probeer het allemaal een beetje, en maak snelle beurten in termen van hoe je leert coderen. Ik geloof, en het is mijn persoonlijke mening, dat een goede ontwikkelaar een compilertaal en een tolkentaal moet kennen en beheersen, naast een notie van een of ander Assembly-dialect.
      De reden is de volgende, de prototyping moet altijd iets eenvoudigs en snel zijn, gemakkelijk te genereren en dat geeft over het algemeen een resultaat, maar als het niet genoeg is, moet er een 'plan B' zijn om op terug te vallen wanneer de tolk is aangekomen zijn limiet.
      Het kennen van een dialect van Assembly geeft je niet alleen vertrouwen, maar leert je ook "computationeel" te denken, maar dit deel is duidelijk het meest gecompliceerde van allemaal, en het is zeker iets waar niet alle programmeurs naar toe komen.
      Maar terug naar het onderwerp, want het belangrijkste idee is volgens mij "kies een taal en oefen VEEL", omdat de enige manier om goed te worden in programmeren is door code te lezen en te schrijven, en dit is iets waar ik van heb geleerd de kernel-gemeenschap Als je dezelfde syntaxis lange tijd behoudt, zie je het formulier niet meer en begin je je zorgen te maken over de ACHTERGROND. Het idee om vanaf het begin een taal of syntaxis te kiezen, is dat men het lezen en schrijven ervan zo kan wennen dat men de BETEKENIS van het programma kan gaan lezen in plaats van de syntaxis van het programma.
      Dit is de belangrijkste reden voor dit bericht, dat iedereen zijn taal kiest, zodat we in het volgende de concepten kunnen uitleggen, misschien worden hiermee de twijfels opgehelderd 🙂
      Groeten en bedankt voor het delen.

  3.   deibis contraras zei

    bedankt voor de post, het was goed.

    groeten

    1.    Chris ADR zei

      Hallo Deibis, bedankt voor het delen van 🙂 Groeten

  4.   JorgeFS zei

    Mijn advies: iets anders dan PHP. Twintig jaar geleden had PHP een zekere betekenis in zijn bestaan ​​vanwege het hoge niveau van complexiteit dat het programmeren van het web in een andere taal met behulp van CGI was. Maar tegenwoordig is er een grote verscheidenheid aan Frameworks om webontwikkeling veel aangenamer te maken in krachtige talen, zoals Django voor Python, Spring voor Java of Rails voor Ruby. Hoewel PHP momenteel in alle populariteitskaarten van alle talen voorkomt, zal PHP naar mijn mening na verloop van tijd zijn relevantie verliezen.
    Ik raad sterk aan om met C \ C ++ te beginnen om de realiteit van programmeren te begrijpen, hoewel de leercurve steil is.
    Groeten.

    1.    Chris ADR zei

      Hallo Jorge, bedankt voor het delen, ik herinner me alleen Laravel, wat een behoorlijk solide Framework is 🙂 Ik heb persoonlijk nooit van Spring of Java gehouden voor webontwikkeling, ik vind het behoorlijk omslachtig, maar ik denk dat het een deel is van de hoeveelheid tijd die ze hebben doorgebracht markt, waren ze destijds pioniers en zeker vandaag hebben moderne alternatieven (Js, Python en Ruby) zonder veel werk de manier kunnen verbeteren om code te presenteren die leesbaar en aanpasbaar is.
      Ik ben er ook toe geneigd dat mensen op een bepaald moment in hun leven C / C ++ leren, ik ben begonnen met Java, maar ik denk dat dat het mooie is van programmeren, je kunt beginnen met wat je wilt, zolang je maar consistent bent. wees behulpzaam 🙂 Proost

    2.    Ruben zei

      Ik kan het niet meer met je oneens zijn. Ik ben vele jaren geleden begonnen met C en VB, om me later te concentreren op PHP en JS (aangezien ik me op webontwikkeling richtte) en later tijdens mijn studie leerde ik vooral C / C ++ en Java.
      PHP heeft een aantal voordelen die ik niet in dit bericht kon noemen. PHP7 is snel (sneller dan Python ... zonder gebruik te maken van hhvm, verschillende caches, frameworks zoals Phalcon of bytecode in het geval van Python), het heeft een groot aantal bibliotheken en frameworks, het heeft een groot aantal direct geïmplementeerde functies om gebruik op elk moment, de C-achtige syntaxis maakt het heel gemakkelijk om naar andere talen te migreren.
      30% van de websites wereldwijd is gemaakt met WordPress (PHP) en dat lijkt niet te veranderen, Wikipedia gebruikt het, Facebook (met hhvm) en een groot aantal sites in totaal 80%.

      Ik herinner je eraan dat Ruby on Rails zoals Django 12 jaar oud zijn! Welk quotum hebben ze in deze tijd bereikt? En natuurlijk hebben we het over 2 frameworks die praktisch een monopolie hebben en er is geen sprake van fragmentatie. Welke andere serieuze alternatieven heb ik? Zeggen dat PHP aan relevantie gaat verliezen, heeft weinig zin.

      Nu Python in de mode is omdat het een snelle leercurve heeft, is het een eenvoudige taal en ze verkopen het aan jou als "word een programmeur in 20 uur met Python en werk eraan", met de steun van bedrijven zoals Google en dat er nu de mode is om naar nieuwe talen te zoeken (Go, Dart….) om jezelf te onderscheiden in een cv (of zoals de dagelijkse geboorte van 50 frameworks voor Javascript!), betekent niet dat dingen veranderen.

      Ruby is een erg interessante taal, maar het breekt zozeer met gevestigde patronen dat ik moeilijk kan geloven dat het populairder werd dan PHP. Natuurlijk is Ruby volgens mij de slechtste taal om te beginnen met programmeren.
      Ik begrijp dat je me vertelt dat Python leuk kan zijn om te programmeren, zelfs Ruby met zijn vele eigenaardigheden ... maar Spring met Java? Werkelijk? Java kan veel dingen zijn ... maar leuker dan Python en PHP?

      Het is allemaal heel goed om met Python te beginnen, maar als je alleen bij Python blijft, loop je het risico dat veel bedrijven zullen geloven dat je programmeerniveau niet "diep" is (zelfs als je erg goed bent in Python). Dit komt doordat u concurreert met andere "multifunctionele" talen zoals C ++ of Java. Je kunt in Python programmeren zonder het verschil te weten wat in godsnaam een ​​pointer is, bitsgewijze bewerkingen, hoe een garbage collector werkt en een lange enzovoort.
      Python lijkt misschien het minst op "klassiek programmeren" dat bestaat en kan worden gezien als een "kindertaal" (begrijp de metafoor), en dat is op zijn beurt een voordeel en een nadeel.

      1.    JorgeFS zei

        "Python lijkt misschien het minst op 'klassiek programmeren' dat bestaat en kan worden gezien als een 'kindertaal' (begrijp de metafoor), en dat is op zijn beurt een voordeel en een nadeel. ' LOL, dit is een van de grappigste dingen die ik ooit over Python heb gezien. Heb je Python ooit echt geleerd?
        Hoe lang is het al over de hele wereld buiten PHP?
        Vriend PHP werd doodgeboren. PHP (\ d +) heeft er veel last van vanwege een zeer slecht initieel ontwerp en om de gebruikersgemeenschap te behouden blijft het al die initiële ontwerpfouten zeer grondig slepen. PHP is geboren zonder modulariteit, met veel C-stijl functionaliteiten (wat trouwens, ik weet niet waar je vandaan komt, aangezien de syntaxis vergelijkbaar is met C en het gemakkelijk naar andere talen kan worden geport). Een taal op hoog niveau, zoals PHP zich zou moeten gedragen, heeft zulke lelijke dingen als dit spoor van functies dat op de officiële site wordt vermeld http://php.net/manual/en/indexes.functions.phpDit komt omdat het werd geboren zonder modulariteit, dus alles is smerig door elkaar en zonder naamruimten.
        Dit is een stukje PHP-code:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        kan op een gegeven moment worden bepaald van waaruit al deze 'stream'-functionaliteiten werden geïmporteerd? NEE, je zou dan kunnen zeggen dat het ingebouwde functies zijn, maar dan is het hele ecosysteem ingebouwde functies? En dus zit er veel rotzooi in de PHP-code, dat als je de complexiteit en nutteloosheid van zo'n slecht ontwerp niet begrijpt, vergeef me, maar er is nog veel wereld te zien.
        Wordpress is een uitstekende software-oplossing, maar dit betekent niet dat het een goede technologische basis heeft. Je kunt met een steen hameren en er met je tanden spijkers uit slaan, en je kunt nog steeds uitstekend timmerwerk doen, maar natuurlijk met veel meer werk dan een andere timmerman die een goede hamer gebruikt.

        Aan de andere kant: "word programmeur in 20 uur met Python en werk eraan", zoiets heb ik nog nooit gezien. U kunt in 20 uur een website in PHP maken zonder enige kennis te hebben van hoe webprogrammering werkt, of het programmeren zelf. Dit is in feite de reden waarom PHP zo populair is, omdat nieuwkomers bij het betreden van deze wereld PHP zien als een punt van snelle ontwikkeling (en daarom is zoveel PHP-code zo waardeloos).
        Wat betreft de tekortkomingen van Python, de enige waarin het succesvol was, was het werken met pointers, maar in elk geval is Python een taal op hoog niveau (zoals Java) en het maakt er geen gebruik van op syntaxisniveau; maar bitsgewijze bewerkingen, serieus?, je bedoelt dit x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Ik begreep het ding van de vuilnisman serieus, veel minder: https://docs.python.org/3/library/gc.html.
        PHP-hiaten:
        -PHP heeft een zeer slecht objectgeoriënteerd programmeren (OOP) -ontwerp.
        -U kunt operators nog niet overbelasten.
        -Verrassing, function overloading in PHP is het niet wat je van nature verwacht van dit concept.
        … .. en ik verveelde me gewoon hehe.
        Groeten.

        1.    Ruben zei

          Ik zette tussen haakjes "begrijp de metafoor" (door Python te vergelijken met C ++ / Java in dezelfde werkomgeving), het is duidelijk dat je het niet begreep. Ik zou je kunnen vertellen dat een C ++ programmeur Python op een veel snellere manier kan leren dan een Python programmeur C ++ kan leren, net zoals het geen verrassing is dat het gemiddelde salaris van een C / C ++ programmeur hoger is dan een Python een.
          Ik zou het je kunnen uitleggen met andere voorbeelden, zelfs met een tekening! maar het lijkt erop dat je je alleen concentreert op het decontextualiseren en belachelijk maken van wat ik zeg.

          Ik heb nooit gezegd dat PHP de beste taal ter wereld is of dat het een voorbeeldig ontwerp heeft, ik weet niet waar je dat vandaan haalt. Ik denk dat je, voordat je de kennis van anderen beoordeelt, je begrijpend lezen moet verbeteren. Wat waar is (en ik zei in mijn bericht) is dat het erg wendbaar is om ermee te ontwikkelen, naast het hele ecosysteem van frameworks, bibliotheken en hulpprogramma's die je kunt vinden.
          En wat voor soort vergelijking maken we? Python als multifunctionele taal of voor het web? Waarom vergelijken we het in dat geval met PHP? PHP heeft een specifiek veld, en het is in dat veld waar Python (met een aandeel van 0.2%, dat dit hele jaar niet is veranderd) verbleekt naast PHP.
          Laten we nu eens kijken naar de PHP-trends; van 82,4% in januari 2017 tot 83.1% in januari 2018: https://w3techs.com/technologies/history_overview/programming_language

          Gaat Python PHP onttronen? In welk jaar? in welke vijf jaar? decennium?
          Python kan voor veel andere taken worden gebruikt en wordt zelfs op grotere schaal gebruikt dan PHP, maar Python als webontwikkelingstaal is lichtjaren verwijderd van zelfs maar relevant, 0.2% stagneert tegen 83.1% (met een stijging dit jaar).

          Je neemt ook dingen als vanzelfsprekend aan door te zeggen dat ik niet buiten PHP rondloop, wat erop duidt dat ik alleen PHP ken, terwijl ik juist lange tijd niet in PHP heb geprogrammeerd haha. Momenteel programmeer ik om werkredenen voornamelijk in Java.
          Ik heb ook niet gezegd dat je door te programmeren in Python geen kennis hebt van bitwise, een garbage collector of een pointer. U kunt eerder in Python programmeren zonder zelfs maar te weten wat dit is. Ik betwijfel echter ten zeerste dat dit het geval is voor een C ++ -programmeur. En natuurlijk maak ik de vergelijking wanneer Python dat gebied van "multifunctionele taal" betreedt, niet voor webprogrammering.

          In 20 uur programmeur worden is gewoon een grap, overdreven. Ik zou hier echter verschillende links kunnen plaatsen over online onderwijsplatforms en cursussen die soortgelijke dingen beloven. Geef mij niet de schuld, maar geef het de schuld op een arbeidsmarkt die denkt dat een "expert programmeur" een kwestie is van een cursus van 20 uur volgen. En Python is een van de modieuze talen en ook, met de snelste leercurve ... wit en in een fles.

          Ik sta erop, je baseert je bericht op het zeggen hoe slecht PHP is (wat ik in een bepaald deel eens ben). Het lijkt mij juist, behalve dat mijn bericht daar niet over gaat, maar waarom PHP gebruikt blijft worden en het morgen niet zal verdwijnen zoals je denkt.

          groeten

  5.   niemand zei

    C -> Go -> (Lisp | Haskell | Java | wat dan ook)

    1.    Chris ADR zei

      Onlangs stuurde een lezer me naar mijn e-mail een aanbeveling van een Go-boek, zeker een taal om in de toekomst rekening mee te houden en waarvan misschien hier een post zal zijn 🙂 Veel afbeeldingen om te delen

  6.   mvr1981 zei

    Nou ... en wat programmeer ik? Waarom zou je vandaag een programmeertaal leren met zulke goede en ervaren programmeurs die al bestaan? Welke problemen kan ik oplossen die anderen niet al op een veel efficiëntere manier hebben opgelost?… Kortom: hoe origineel is het tegenwoordig om programmeur te zijn? Hoe kan ik samenwerken met anderen zonder te worden geschopt of uitgesloten door mijn gebrek aan kennis en ervaring?

    1.    Chris ADR zei

      Hallo mvr1981, echt interessante vragen 🙂 we gaan ze van de laatste naar de eerste halen.

      Hoe kan ik samenwerken met anderen zonder te worden geschopt of uitgesloten door mijn gebrek aan kennis en ervaring?

      Als je niet geschopt wilt worden, is de eerste stap om het proces te leren, je kunt je niet voorstellen hoeveel mensen naar projecten komen die dingen uitsluitend op hun manier willen doen, en willen dat de gemeenschap zich aanpast aan hun wensen. Het is zeker alsof ik naar je huis kom en er een puinhoop van maak en je familie niet respecteer (zo voelt het vaak). Als je dit wilt voorkomen, let dan goed op de richtlijnen om bij te dragen, de middelen om het te doen, en stuur niets onvolledig, als je hulp nodig hebt, zijn er altijd middelen om te communiceren, maar een slechte baan zal waarschijnlijk slechte eerste indrukken creëren. Als je jezelf niet wilt uitsluiten, dat is aan jou, je kunt hem zien als de nutteloze programmeur die niet weet wat hij doet of degene die op weg is om een ​​uitstekende programmeur te worden, en dat gebeurt alleen met oefenen en zeker met bugs onderweg. Ik heb me vele malen vergist voordat ik mijn ontwikkelaarstatus op Gentoo verwierf, en dat weerhield me er niet van om te proberen ondanks de "slechte tijd".

      Hoe origineel is het om tegenwoordig programmeur te zijn?

      -Het gaat niet om originaliteit, het is een noodzaak vandaag, denk maar eens aan het volgende, 20 of 30 jaar geleden, typen was een noodzaak, veel banen gingen ervan uit dat je het wist of op zijn minst zou kunnen doen. Tegenwoordig is het een noodzaak om Office te kennen, er is praktisch geen baan die u niet voor Office-documenten plaatst. Morgen, heel binnenkort, is programmeren een noodzaak. En dat geldt ook vanuit persoonlijk oogpunt, weten wat er gebeurt in de programma's waaraan je dingen toevertrouwt die zo belangrijk zijn als je geld, gezondheid, gezin, is voor mij iets logisch, want je kunt hun beperkingen alleen kennen als je weet hoe ze werken en voor om het te weten, moet u weten hoe u moet programmeren.

      Welke problemen kan ik oplossen die anderen niet al op een veel efficiëntere manier hebben opgelost?

      -Je zou verrast zijn door de hoeveelheid functionaliteiten die vandaag nodig zijn, en om de waarheid te zeggen, het maakt niet uit dat er de beste programmeurs ter wereld in de gemeenschap zijn, het werk zal altijd groter zijn dan de werkcapaciteit van de ontwikkelaars, ik kan dit verifiëren in Gentoo, daar zijn mensen die de kernel ontwikkelen, mensen die voor Google, Sony, enz. werken. Het enige dat we allemaal gemeen hebben, is dat niemand zoveel tijd heeft als ze zouden willen om al het werk dat nog in behandeling is te kunnen doen.

      Waarom zou je vandaag een programmeertaal leren met zulke goede en ervaren programmeurs die al bestaan?

      -Dit wordt beantwoord in de tweede vraag 😉 Maar nu kan ik eraan toevoegen dat generaties het werk dat al is ontwikkeld moeten kunnen ondersteunen, hiermee bedoel ik dat die "ervaren" ontwikkelaars geleidelijk zullen verdwijnen en dat het nodig zal zijn voor de " jongere »Ontwikkelaars nemen hun verantwoordelijkheid en helpen de cyclus levend te houden. Een gemeenschap zonder jonge en onervaren mensen is geneigd om na verloop van tijd te verdwijnen, juist omdat er geen gelegenheid zal zijn om kennis over te dragen.

      En wat programmeer ik?

      -Dit is misschien het moeilijkste om te beantwoorden, maar ik zal proberen je een voorbeeld te geven van poco. Ik begon onlangs problemen te krijgen met GNOME 24 en de verbinding met Wayland die voorkomen dat programma's zoals Shutter screenshots maken. Dit is een probleem voor mij, want als ik mijn artikelen schrijf, moet ik je laten zien wat ik zeg 🙂 een beetje zoeken kwam ik bij de GNOME Screenshot-applicatie, op zijn zachtst gezegd enigszins "minimalistisch". Onder de functies is er een van het nemen van een schermgebied, maar wat gebeurt er als ik de foto niet goed heb gemaakt? Welnu, ik moet het programma verlaten en opnieuw invoeren, zeker iets vervelends, een knop met de tekst "Opnieuw" of iets dergelijks stelt me ​​in staat om een ​​nieuwe opname te maken zonder dat ik het programma hoef te verlaten en opnieuw binnen te gaan, zou me helpen. programmeerproject, ik heb nog nooit iets in het GNOME-framework geprogrammeerd, dus ik moet duidelijk veel leren voordat ik mijn "patch" met de nieuwe knop verstuur, maar gaandeweg leer ik programmeren en met een beetje geluk is het zo kenmerken het zal meer dan één helpen als het voor iedereen beschikbaar is.

      Dit is een voorbeeld, het is iets eenvoudigs en dat zou zeker elke andere "deskundige" programmeur al kunnen hebben gedaan, maar door kennelijk tijdgebrek is het niet zo geweest, nu ben ik degene die de mogelijkheid heeft om het te doen zonder echt een superprogrammeur te zijn.

      Nu is het alleen aan jou om iets te vinden dat je leven "eenvoudiger" zou maken in de software die je zo vaak gebruikt, het mooie daarvan is dat als we het advies opvolgen dat ik je in de volgende artikelen ga geven, de taal maakt niet uit, omdat je de basis kent om de code die je leest te begrijpen en aan te passen om te doen wat je wilt, dat is een heel speciaal gevoel 🙂

      Groeten en nogmaals bedankt

      1.    niemand zei

        Ik denk dat ik pas als ik het gnome captures-programma heb geopend, het gemakkelijkste is om naar de sneltoetsen te gaan en drie combinaties print toe te wijzen om alle alt-print vast te leggen om het actieve venster vast te leggen en super-print om een ​​selectie te maken uit de regio vastleggen, zijn de beschikbare snelkoppelingen al beschikbaar, het is gewoon een kwestie van ze toe te wijzen

        1.    Chris ADR zei

          Daarom geven we u een voorbeeld 🙂 omdat kleine dingen zoals die knop programmeren, ze sommigen kunnen helpen omdat ze onopgemerkt kunnen blijven door anderen, maar ze voldoen zeker aan het hoofddoel, helpen bij het leren programmeren en maken plaats voor nieuwe functies, Na die knop kunnen veel dingen worden gestart, zoals een sessiebeheer, of een voorbeeldscherm van alle gemaakte foto's, of kortom een ​​heleboel dingen die gedaan kunnen worden. Het idee is dat je iets vindt dat je nieuwsgierig maakt, software die op je systeem draait, heeft mogelijk verbeteringen of nieuwe functies nodig die vanwege tijdgebrek of personeel nog niet zijn geïmplementeerd 🙂

      2.    mvr1981 zei

        Dankzij jou. zijn zeer goede antwoorden.

    2.    Guillermo zei

      Welnu, voor iemand die geen professional in het veld wordt, zou het nodig zijn om te zien in welke omgeving ze werken, zowel voor administratieve taken als voor richtlijnen kan het interessant zijn om bijvoorbeeld Python / Basic te kennen en te weten hoe je macro's moet programmeren in Office-pakketten zoals LibreOffice of MS Office. Er zijn momenten waarop dit u of andere werknemers om u heen vele uren werk kan besparen en hen vraagt ​​om repetitieve taken uit te voeren, u kunt een dashboard maken om snel de belangrijkste verhoudingen van het bedrijf te berekenen nadat u verbinding hebt gemaakt met de database ervan en voer een SQL-query uit.
      Zoals alles, kunt u, als u de tools binnen handbereik heeft, nadenken over hoe u er het meeste uit kunt halen. Niet alles is verzonnen.

  7.   Marcelo zei

    Guillermo, het is helemaal met je eens: "Niet alles is uitgevonden" en wat is uitgevonden, kan worden gewijzigd. U moet het meeste uit de tools halen en degene gebruiken die het beste bij u past.

  8.   Ricardo zei

    Voor programmeren is Engels de eerste taal die ze leren, en vervolgens de taal die hen het meest aanspreekt en het mooist lijkt

    1.    Chris ADR zei

      Ik had het niet geschreven, maar waar 🙂 Engels kennen helpt veel omdat de meeste talen erin zijn geschreven, maar ook omdat de grotere hoeveelheid informatie uit de eerste hand ook 🙂 Heel erg bedankt voor het delen

  9.   Ruben salgado zei

    Uitstekend artikel, naast motiverend.

    1.    Chris ADR zei

      Heel vriendelijk, heel erg bedankt 🙂 Groeten

  10.   Gonzalo Martinez zei

    Programmeren is weten hoe je moet redeneren en die redenering moet vertalen in instructies.

    Twee verduidelijkingen over het artikel:

    1) Gebaseerd op mijn ervaring als programmeerleraar van bijna 10 jaar, maakt het niet uit met welke taal je leert, maar hoe je leert en hoe complex het is.

    Ik denk dat een taal die op een gestructureerde manier kan worden geleerd en vervolgens kan worden overgegaan op andere, complexere dingen, gemakkelijker is dan vanaf het begin met een taal als Java te beginnen.

    Het is gemakkelijker om zoiets als een Hallo wereld in C of Pascal als basis te leren dan met een paar regels (PROGRAM in het geval van Pascal, of #include In het geval van C) kun je beginnen met het ontwikkelen van het algoritme en het programma rechtstreeks coderen met zijn logica, zoals in Java, dat op zichzelf een klasse, een methode en enkele andere dingen nodig heeft die voor een beginner een informatie-overload is onnodig, en dat kan heel goed worden genegeerd en overgaan op andere dingen, maar het zijn concepten die er zijn, en naar mijn mening is het over het hoofd zien van dingen geen goede manier om te leren, vooral als de taal je dwingt ze te gebruiken. Het is alsof je voor de eerste keer een schietoefening start met een M-16, en maandenlang fotografeert in halfautomatische modus terwijl je het handvat met beide handen vasthoudt als een pistool.

    2) Of een taal wordt geïnterpreteerd of gecompileerd, hangt af van de implementatie ervan, niet van de taal zelf. Als Python bijvoorbeeld wordt gebruikt, voor een webapp die wsgi gebruikt (ofwel mod_wsgi in apache, of uwsgi voor Nginx), wordt de python-code gecompileerd bij het starten van de bijbehorende module, waarbij .pyc-bestanden worden gegenereerd

    Er zijn ook binaire bestandsgeneratoren voor java (die native binaries genereren in plaats van bytecode), of compilers van php-scripts in pure binaries.

    Wat betreft wat ze zeggen over PHP, het is gewoon een taal die in een ander tijdperk is ontworpen, met andere dingen in gedachten, en zonder rekening te houden met aspecten die op dat moment niet bestonden. Het is duidelijk dat het feit dat het het meest wordt gebruikt, het niet het beste maakt voor wat dan ook ter wereld, maar er is een realiteit: het is de taal waarmee de kans het grootst is om een ​​baan te krijgen in alle programmering. Weten dat het geen pijn doet, zelfs als je het niet leuk vindt.

    Zelfs ik werk al een aantal jaren als systeembeheerder en verliet de baan van ontwikkelaar, af en toe moet ik PHP-code ergens in stoppen.

    1.    Chris ADR zei

      Hallo Gonzalo, bedankt voor het delen,

      Zeker gesproken over onnodige informatie-overloads, wetende dat dezelfde taal kan worden geïnterpreteerd of gecompileerd is iets dat in dit stadium niet nodig is 🙂 Zeker, de implementatie is belangrijk, maar als we dat zeggen op dit niveau, genereren we niet meer dan verwarring. Op dezelfde manier worden objectgeoriënteerde programmeerproblemen niet aangepakt, of andere concepten die geleidelijk moeten worden gedoseerd om mensen niet duizelig te maken.

      Omdat de ruimte beperkt is, is het hoofddoel van de post om lezers die willen programmeren te laten zien dat er twee grote talenwerelden zijn, dat de 'traditioneel' geïnterpreteerde 'eenvoudiger' is, dat de 'traditioneel' gecompileerde iets meer zijn 'complex', maar dat het dat niveau van complexiteit waard is om een ​​beter begrip te hebben en dat het aan elke persoon is om de taal te kiezen, aangezien ze afhankelijk van de programmeeraanpak hun favoriete projecten kunnen kiezen en tegelijkertijd zullen ze kunnen begrijpen wat ze lezen en / of schrijven 🙂

      Nogmaals hartelijk dank, groeten.

      1.    Gonzalo Martinez zei

        Dit is een fout, er zijn geen gecompileerde of geïnterpreteerde talen, er zijn tolken en compilers voor elke taal, beide voor verschillende gevallen.

        Het is geen overdaad aan informatie om het nu te noemen, het is een vergissing om zoiets te zeggen. Naar mijn mening zou het productiever zijn geweest om de tolken te negeren als je niet met informatie wilde overladen.

        1.    Chris ADR zei

          Bedankt voor de verduidelijking, ik zal er rekening mee houden wanneer ik op het onderwerp terugkom. Proost

  11.   Ares zei

    Welke taal raad je aan voor de server, aangezien php uit de gratie viel?
    Hetzelfde voor databases, ik weet niet of er iets beters en moderners zal zijn dan mySQL.

    1.    Chris ADR zei

      PHP is niet uit de gratie geraakt ... Elke taal heeft zijn levenscyclus, en php is zeker al een taal die de schaal van "volwassen" betreedt, wat het nuttig maakt op zakelijk niveau, waar stabiliteit bovenal is ... Zoals sommige banken waar het nog steeds wordt ontwikkeld in Java, dat meer "volwassen" is dan php en zeker zijn volgers en tegenstanders heeft ... En niet te vergeten COBOL ...

      Als wat u zoekt uniformiteit en moderniteit is, wordt javascript een van de favorieten van de zogenaamde "full stack-ontwikkelaars", hoewel het robijnrode paradigma of de "eenvoud" van python ook goede referenties zijn…. Zelfs perl kan de optie zijn, afhankelijk van de behoeften 🙂

      Tegenwoordig neemt de ORM (object relationele mappers) veel kracht in termen van relationeel gegevensbeheer. Het gaat van SQL-syntaxis naar klasse- en attribuutafhandeling ... Bijna alle talen (zo niet alle) verwerken een aantal ORM.

      . Mongo DB is een alternatief voor relationele databases dat behoorlijk belangrijk is geworden; het is echter noodzakelijk om de voor- en nadelen ervan te kennen en te valideren of dit de beste oplossing zou zijn, afhankelijk van de specifieke behoefte.

      Ik hoop dat het je helpt, groeten 🙂

      1.    Ares zei

        Bedankt, ik zal dat controleren.

      2.    Ares zei

        Ik vergat.

        Wat raad je me aan om met JAVA in Linux te werken?
        Als je beter onderscheid kunt maken tussen gratis en gesloten.

        1.    Chris ADR zei

          Eclipse en NetBeans zijn open source, ik weet niet zeker of er een is die puur gratis software is, ik heb de gewoonte om vim te gebruiken omdat de hoeveelheid code het gebruik van een hele IDE soms traag maakt en vatbaar voor uitvoeringsfouten. Groeten 🙂

        2.    paulzeta zei

          Om onder Linux met Java te werken, gebruik ik IntelliJ. Ik raad je aan.

          1.    Chris ADR zei

            PS, IntelliJ is eigen software 🙂

  12.   je zei

    Jongens herinneren zich ook dat ... ik bij een bank werk en ik vertel je dat programmeertalen op de achtergrond staan ​​om SQL en Stored-procedures eerst te laten gaan.

    1.    Gonzalo Martinez zei

      Je moet er rekening mee houden met de opgeslagen procedures, maar door geen draagbare taal tussen engines te gebruiken, althans in mijn ervaring, gaat het er altijd om ze te vermijden, tenzij er geen andere optie is.