Välja ditt första programmeringsspråk

Visst detta är en av de frågor som kommer mest till min inkorg när jag pratar om programmering. Om vi ​​ska starta en serie artiklar som gör att du kan lära dig att programmera och ge tillbaka gratis kunskap i form av bidrag till fri programvara / öppen källkodsgrupper runt om i världen, är det nödvändigt att svara på detta grundläggande om det är lite svårt fråga. Vilket programmeringsspråk ska jag lära mig?

Lite historia

För att börja förstå och välja ett programmeringsspråk måste vi först veta lite om deras historia, deras användningsområden och funktioner och hur de löser olika behov över tid.

Maskinspråk (låg nivå)

Allmänt känd som Montage, är programmeringsspråk som vi kan definiera som dialekter av ett mer allmänt språk ... Det här låter lite komplicerat men jag ska exemplifiera det ... Vi vet att det universella datorspråket är el, det betyder att i slutändan är vad en dator läser 0sy 1ja, låt oss kalla det här edator engelska. I detta exempel är spanska den grundläggande regeln, men som vi väl vet är det spanska som talas av latinos inte detsamma som det som talas i Spanien, och ändå är det spanska i Peru inte detsamma som det spanska i Argentina. Uppenbarligen har vi alla nästan samma ord (0sy 1s), men användningen och betydelsen kan variera beroende på sammanhanget.

Detta händer på processornivå. När vi pratar om dataarkitekturer, (amd64, intel, arm, ...) vi hänvisar till dialekten av det dator spanska. Detta beror på att olika företag förstår ordningen och innebörden på sitt eget sätt, så vissa varierar i detaljer som strömmen av strömmen eller i vilken ordning de ska hållas. 0sy 1s.

Dessa programmeringsspråk är extremt snabba, eftersom de fungerar på lägsta möjliga nivå av programmering, men de är mycket beroende av arkitekturen och är verkligen lite mer komplicerade att lära sig än resten. Dessa kräver ofta en bredare konceptbas för att transformera data och köra användbara saker på den. För videospelälskare skulle SEGA-konsoler, som använde Assembly för att programmera sina spel, vara ett exempel. Uppenbarligen vid den tiden var mängden minne minimalt jämfört med idag, och det var nödvändigt att behärska ett språk som kunde vara snabbt och producera ljusprogram.

Språk på hög nivå

Den här stora gruppen överväger de språk som kom efter Montage. Behovet av att skaffa bärbar kod ledde till att en grupp av språk som kallades uppstod sammanställt. Bland dessa var den första som utnyttjade C, som har haft en övervägande inom programmering på operativsystemsnivå sedan 70-talet.

Kompilerade språk

Låt oss se ett praktiskt exempel på vad jag kommenterar. Låt oss titta på ett mycket enkelt C-språkprogram som skriver ut en kodrad.

Egen. Christopher Diaz Riveros

Efter att ha sammanställt det har vi följande:

Egen design: Christopher Díaz Riveros

Men nu ska vi se vad vi måste skriva för att replikera samma resultat i församlingskod:

Egen. Christopher Diaz Riveros

Detta är översättningen av våra tre kodrader från simple.c, filen simple.s skapas med kommandot gcc -S simple.c och det är vad vår processor skulle förstå i en dialekt Montage. Uppenbarligen för att skapa en körbar som består av 0sy 1s filen måste bearbetas simple.s och anslut den till de delade biblioteken i vårt system. Detta görs med hjälp av en assemblerare (as) och en kontakt (ld).

Kompilerade språk ger en stor fördel jämfört med låga nivåer bärbara. Portabilitet levererar kod som kan köras på olika processorer utan att behöva generera specifik kod för varje arkitektur. En annan uppenbar fördel är enkelheten den använder när man läser och skriver kod. Bland dess största nackdelar har vi en hög komplexitet, eftersom den frihet som C erbjuder kan vara skadlig jämfört med följande typer av språk som vi kommer att se om du inte vet hur du kontrollerar, det är verkligen som att lämna över en pistol , det kan hända att i brist på erfarenhet slutar en person skjuta sin egen fot i ett försök att rengöra pistolen.

Tolkade språk

Inom denna grupp har vi ett stort antal språk, bland de viktigaste har vi Python, Ruby, Javascript, PHP, etc. ... Grundidén med dessa språk är att ge ett snabbt sätt att skapa och genomföra program , detta beror på att många av de svåra processerna utförs i tolken, och programmeringen av logiken är det som implementeras i koden. Låt oss titta på samma exempel ovan men den här gången skrivet i Python:

Egen. Christopher Diaz Riveros

Bland de mest framstående sakerna kan vi se att den första raden är ansvarig för att ringa tolk (programmet som kommer att utföra vår ansökan) och den efterföljande koden är mer "enkel" än dess version i C, eftersom allt tungt arbete är utförs på tolk.

Egen. Christopher Diaz Riveros

Tolkade språk ger utvecklaren ett större lager av säkerhet, eftersom de har strängare säkerhetskontroller (SE upp att de inte är perfekta, eftersom även de bästa kan göra misstag) och vi inte längre riskerar att skjuta ett vapen utan att inse det, eftersom tolken vid första försöket skulle göra en varning och avrättningen skulle avbrytas. Den största nackdelen blir uppenbar när programmet körs, eftersom det är långsammare än dess binära motsvarighet, detta just på grund av den större mängden bearbetning för att kunna säkerställa att koden fungerar. Om programmet inte kräver extremt korta tidsfrister kan skillnaden gå obemärkt förbi, men om vi talar om tusentals eller miljoner data per sekund blir skillnaden exponentiellt märkbar i sammanställda språk.

Skriver

Detta är ett kännetecken för programmeringsspråk, det kan vara starkt svagt skrivit. Jag ska lämna detta ämne för ett annat inlägg, eftersom det är nödvändigt och nyfiken att förstå hur minne lagras i ett program, men för närvarande behöver vi bara göra skillnad: Starkt skrivna språk är de som kräver kunskap om typen av data som kommer att bearbetas på en variabel eller konstant, medan svagt typer kan utföra omvandlingar så implicit och allt beror på en konverteringshierarki följt av språket. (om det inte förstås nu, inga problem, lämnar vi det för senare)

Paradigmer

Precis som allt i GNU / Linux-världen är programmeringsspråk baserade på paradigm och samhällen skapas runt dem. Till exempel har vi Python Foundation o Rubin o PHP o Bash (i vilket fall det är GNU-communityn). Vad jag vill komma till med detta är att jag inte kan uttrycka det stora antalet för- och nackdelar som alla har, men jag kan säga att där det finns ett gratis programmeringsspråk finns det en gemenskap att lära sig och delta i. Det är värt att nämna att många om inte alla språktolkar är skrivna i C, eller någon nära derivat, och deras utveckling utförs vanligtvis av en mindre grupp i samhället, som har ansvaret för att ta beslut som kommer att påverka alla språkanvändare. Institutioner kan till och med bildas för att säkerställa rätt språkutveckling, vilket är fallet med C.

Vilket ska man välja?

Vi har redan pratat tillräckligt om språk och jag svarar fortfarande inte det viktigaste 😛. Men jag hoppas att efter att ha granskat den här lilla artikeln är det inte nödvändigt för mig att berätta vilket språk du ska välja, eftersom du med denna information är fullt kapabel att leta efter ett som genererar nyfikenhet. Uppenbarligen om du vill lära dig att programmera på ett språk Montage det kommer att ta lång tid innan du kan ha något funktionellt, tiden kommer att minskas kraftigt om du väljer ett sammanställt språk, där du förutom att ha portabilitet på * NIX-system kommer att kunna lära dig information om hur systemet fungerar, eftersom du är i kontakt med C eller derivat gör att du på ett eller annat sätt lär dig hur ett operativsystem fungerar på ett allmänt sätt. Slutligen, om du vill lära dig något lätt och som gör att du kan göra mycket utan att behöva förstå mycket, är tolkade språk ett roligt sätt att lära sig och utveckla programmeringsförmåga.

Lär dig med något spännande

Det här är det bästa rådet jag kan ge dig, om du vill lära dig något måste du hitta något spännande först, annars blir det ganska svårt att övervinna den typiska inlärningskurvan för något programmeringsspråk. Antag att du hanterar system, i så fall kan du behöva lära dig ett perfekt språk att scripting (tolkad), inom dessa har vi Perl, Python, Bash, etc etc ... Kanske är din sak spel, det finns många projekt på språk som Javascript, Lua, C ++, beroende på vilken typ av spel du vill spela. Kanske skulle du vilja skapa ett verktyg på systemnivå, eftersom vi har C, Python, Perl, som du kommer se att vissa upprepas, och det beror på att många språk kan användas för många uppgifter, det är därför definitionen av mångsidiga språk i de flesta av dessa.

Starta ett projekt

Med detta menar jag inte att du skapar följande kompilator, eller till och med följande programmeringsspråk, ett projekt kan vara att fixa ett litet fel i ditt favoritprogram, kanske till och med förbättra dokumentationen. Varför dokumentationen? eftersom det inte finns något bättre sätt att lära sig hur programvaran fungerar än genom att läsa och hjälpa till att skriva dess dokumentation, för efter källkoden är det den största informationskällan som du hittar om programmet. I ett annat ögonblick kommer vi att se hur man läser koden för ett projekt och förstår de funktioner och värden de förvärvar.

Tack så mycket för att du kom hit och som alltid hjälper dina kommentarer mig att skapa bättre innehåll och veta var jag ska fokusera, hälsningar.


37 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   anonym sade

    Som alltid en 10 !!!!!! Tack för dina artiklar. Hälsningar och mer framöver !!!!

    1.    ChrisADR sade

      Tack så mycket 🙂 uppmuntrar mig att fortsätta skriva. Hälsningar

  2.   Rubén sade

    Jag tror att det är ett misstag att ställa frågan "vilket språk att välja?" Jag är en av dem som tycker att språket är det minsta av det, det viktiga är att lära sig grunderna i programmering och att "tänka beräkningsmässigt." Bestäm en syntax, dess typ, om den stöder OOP, dess verktyg etc. Jag tror att det är något som kommer att komma naturligt i studien och trots allt kan varje programmerare mer än 1, 2 och 3 språk ... och tack vare de programmeringskoncept (och inte syntax) som han har kan han att programmera på ett språk som du ännu inte har upplevt.
    Men för de initierade tror jag att ett bra språk kan vara Python för sin enkelhet, men framför allt gå lite längre, studera algoritmer och veta hur saker fungerar "inuti".

    Hälsningar ChrisADR

    1.    ChrisADR sade

      Hej Rubén, tack för att du delar
      Det finns något som jag har lärt mig över tid i programmeringsvärlden, och det är att "den som täcker mycket inte klämmer sig" och med denna välkända fras menar jag att många gånger, och särskilt de mest entusiastiska, beslutar att prova allt lite och ha mycket snabba vändningar när det gäller att lära sig att koda. Jag tror, ​​och det är min personliga åsikt, att en bra utvecklare borde kunna och behärska ett kompilatorspråk och ett tolkningsspråk, förutom att ha en uppfattning om någon församlingsdialekt.
      Anledningen är följande, prototypen måste alltid vara något enkelt och snabbt, lätt att generera och som generellt visar ett resultat, men om det inte räcker måste det finnas en "plan B" att tillgripa när tolk har kommit till dess gräns.
      Att känna till en dialekt av församlingen ger dig inte bara självförtroende utan lär dig också att tänka "beräkningsmässigt", men uppenbarligen är denna del den mest komplicerade av alla, och det är verkligen något som inte alla programmerare kommer till.
      Men tillbaka till ämnet, för jag tror att huvudidén är att "välja ett språk och öva MYCKET", för det enda sättet att bli bra på programmering är att läsa och skriva kod, och detta har jag lärt mig av kärngemenskapen När du behåller samma syntax under lång tid slutar du se formuläret och börjar oroa dig över BAKGRUNDEN. Tanken med att välja språk eller syntax från början är att man kan vänja sig på att läsa och skriva på ett sådant sätt att man kan börja läsa BETYDNINGEN av programmet istället för programmets syntax.
      Detta är den främsta anledningen till det här inlägget, att var och en väljer sitt språk så att vi i det följande kan förklara begreppen, kanske med detta klargör tvivlen 🙂
      Hälsningar och tack för delningen.

  3.   deibis contraras sade

    tack för inlägget det var bra.

    hälsningar

    1.    ChrisADR sade

      Hej Deibis, tack för att du delar 🙂 Hälsningar

  4.   JorgeFS sade

    Mitt råd: allt annat än PHP. För tjugo år sedan gjorde PHP en viss mening i sin existens på grund av den höga nivå av komplexitet som programmerade webben på ett annat språk med CGI. Men idag finns det ett stort utbud av ramar för att göra webbutveckling mycket roligare på kraftfulla språk, som Django för Python, Spring för Java eller Rails för Ruby. Även om PHP för närvarande visas i alla språkpopulationskartor kommer PHP enligt min mening att förlora sin relevans över tiden.
    Jag rekommenderar starkt att man börjar med C \ C ++ för att förstå verkligheten i programmering, även om inlärningskurvan är brant.
    Hälsningar.

    1.    ChrisADR sade

      Hej Jorge, tack för att du delade, kom bara ihåg Laravel, som är en ganska solid ram 🙂 Jag personligen gillade aldrig våren eller Java för webbutveckling, jag tycker det är ganska besvärligt, men jag antar att det är en del av den tid de har varit i marknaden, då de var pionjärer och i själva verket idag har moderna alternativ (Js, Python och Ruby) kunnat förbättra sättet att presentera kod som är läsbar och modifierbar utan mycket arbete.
      Jag är också benägen att människor lär sig C / C ++ någon gång i livet, jag började med Java, men jag antar att det är skönheten i programmering, du kan börja med vad du vill, så länge du är konsekvent kommer det att var till hjälp 🙂 hälsningar

    2.    Rubén sade

      Jag kan inte hålla med dig längre. Jag började för många år sedan med C och VB för att senare fokusera på PHP och JS (eftersom jag fokuserade på webbutveckling) och senare under studietiden lärde jag mig C / C ++ och Java främst.
      PHP har ett antal fördelar som jag inte kunde lista i detta meddelande. PHP7 är snabb (snabbare än Python ... utan att använda hhvm, olika cacher, ramar som Phalcon eller bytecode i fallet med Python), det har ett stort antal bibliotek och ramar, det har ett stort antal direkt implementerade funktioner att använda dem när som helst, dess C-liknande syntax gör det mycket enkelt att migrera till andra språk.
      30% av webbplatserna världen över är gjorda med WordPress (PHP) och det verkar inte förändras, Wikipedia använder det, Facebook (med hhvm) och ett stort antal webbplatser, totalt 80%.

      Jag påminner er om att Ruby on Rails som Django är 12 år! Vilken kvot har de uppnått under den här tiden? Och naturligtvis talar vi om två ramar som praktiskt taget har monopol och det finns ingen typ av fragmentering. Vilka andra seriösa alternativ har jag? Att säga att PHP kommer att förlora relevans är väldigt lite meningsfullt.

      Nu när Python är på mode eftersom det har en snabb inlärningskurva är det ett enkelt språk och de säljer det till dig som «bli en programmerare på 20 timmar med Python och arbeta på det», med stöd från företag som Google och att det nu är modet att leta efter nya språk (Go, Dart ....) för att differentiera dig i ett CV (eller som den dagliga födelsen av 50 ramar för Javascript!), betyder inte att saker förändras.

      Ruby är ett mycket intressant språk, men det bryter så mycket med etablerade mönster att jag tycker det är svårt att tro att det blev mer populärt än PHP. Naturligtvis Ruby tycker jag är det värsta språket att börja programmera av alla.
      Jag förstår att du säger till mig att Python kan vara kul att programmera, till och med Ruby med sin oändlighet av särdrag ... men Spring med Java? Verkligen? Java kan vara många saker ... men roligare än Python och PHP?

      Det är mycket bra att börja med Python, men när du håller dig till Python ensam riskerar du att många företag tror att din programmeringsnivå inte är "djup" (även om du är mycket bra på Python). Detta beror på att du tävlar med andra "multifunktionella" språk som C ++ eller Java. Du kan programmera i Python utan att veta skillnaden vad i helvete är en pekare, bitvis operationer, hur en sopsamlare fungerar och en lång osv.
      Python är kanske minst lika "klassisk programmering" som finns och kan ses som ett "språk för barn" (förstå metaforen), och det är i sin tur en fördel och en nackdel.

      1.    JorgeFS sade

        "Python är kanske minst lika" klassisk programmering "som finns och kan ses som ett" språk för barn "(förstå metaforen), och det är i sin tur en fördel och en nackdel." LOL, det här är en av de roligaste sakerna jag någonsin har sagt om Python. Har du någonsin verkligen lärt dig Python?
        Hur länge har det varit runt om i världen utanför PHP?
        Vän PHP föddes död. PHP (\ d +) har en stor börda med det på grund av en mycket dålig initial design och för att upprätthålla användargemenskapen fortsätter den att dra alla dessa initiala designfel mycket grundligt. PHP föddes utan modularitet, med många C-stilfunktioner (som förresten, jag vet inte var du fick den ifrån eftersom dess syntax liknar C, den kan enkelt överföras till andra språk). Ett språk på hög nivå, som PHP borde bete sig, har sådana fula saker som det här spåret av funktioner som anges på sin officiella webbplats http://php.net/manual/en/indexes.functions.phpDet beror på att den föddes utan modularitet, så allt är smutsigt blandat och utan namnområden.
        Detta är en del av PHP-kod:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        kan du någon gång avgöra var alla dessa "ström" -funktioner importerades från? NEJ, du kan då säga att de är inbyggnadsfunktioner, men då är hela ekosystemet inbyggnadsfunktioner?. Och så finns det mycket skräp i PHP-koden, att om du inte kan förstå komplexiteten och värdelösheten med sådan dålig design, förlåt mig, men det har fortfarande mycket att se.
        Wordpress är en utmärkt mjukvarulösning, men det betyder inte att den har en bra teknisk bas. Du kan hamra med en sten och driva ut naglarna med tänderna, och du kan fortfarande göra utmärkt snickeriarbeten, men naturligtvis med mycket mer arbete än en annan snickare som använder en bra hammare.

        Å andra sidan: "bli en programmerare på 20 timmar med Python och arbeta med det", jag har aldrig sett en sådan dumhet. Du kan bygga en webbplats i PHP på 20 timmar och utan att ha någon kunskap om hur webbprogrammering fungerar eller själva programmeringen. I själva verket är det därför PHP är så populärt, eftersom nybörjare när de kommer in i världen ser PHP som en punkt för snabb utveckling (det är därför så mycket PHP-kod suger så hårt).
        När det gäller Pythons brister var den enda som den lyckades med att arbeta med pekare, men i vilket fall som helst är Python ett högnivåspråk (som Java) och det använder inte dem på syntaxnivå; men bitvisa operationer, seriöst?, menar du detta x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Jag förstod allvarligt sopuppsamlaren mycket mindre: https://docs.python.org/3/library/gc.html.
        PHP-luckor:
        -PHP har en mycket dålig objektorienterad programmeringsdesign (OOP).
        -Du kan inte överbelasta operatörer än.
        -Överraskning, function overloading i PHP är det inte vad du naturligtvis förväntar dig av detta koncept.
        ... .. och jag blev bara uttråkad hehe.
        Hälsningar.

        1.    Rubén sade

          Jag satte inom parentes "förstår metaforen" (genom jämförelse av Python med C ++ / Java i samma arbetsmiljö), är det tydligt att du inte förstod det. Jag kan berätta att en C ++ - programmerare kan lära sig Python på ett mycket snabbare sätt än en Python-programmerare kan lära sig C ++, precis som det inte är någon överraskning att den genomsnittliga lönen för en C / C ++ - programmerare är högre Python en.
          Jag kunde förklara det för dig med andra exempel, även med en ritning! men det verkar som att du bara fokuserar på att avkontextualisera och förlöjliga det jag lägger.

          Inte vid något tillfälle har jag sagt att PHP är det bästa språket i världen eller att det har en exemplarisk design, jag vet inte var du får det ifrån. Jag tror att innan du bedömer andras kunskaper bör du förbättra din läsförståelse. Det som är sant (och jag sa i mitt meddelande) är att utvecklingen med det är väldigt smidigt, förutom hela ekosystemet av ramar, bibliotek och verktyg som du kan hitta.
          Vilken typ av jämförelse gör vi också? Python som ett mångsidigt språk eller för webben? I så fall, varför jämför vi det med PHP? PHP har ett specifikt fält, och det är i det fält där Python (med en andel på 0.2%, som inte har förändrats hela året) bleknar bredvid PHP.
          Nu ska vi se PHP-trenderna; från 82,4% i januari 2017 till 83.1% i januari 2018: https://w3techs.com/technologies/history_overview/programming_language

          Kommer Python att avmontera PHP? Vilket år? på vilka fem år? årtionde?
          Python kommer att kunna användas i många andra uppgifter och till och med bli mer utbredd än PHP, men Python som webbutvecklingsspråk är ljusår från att vara ens relevant, 0.2% stagnerar mot 83.1% (med en ökning i år).

          Du tar också saker för givet genom att säga att jag inte går runt utanför PHP och antyder att jag bara kan PHP när jag inte har programmerat i PHP på länge haha. För närvarande, av arbetsskäl, programmerar jag mestadels i Java.
          Inte heller har jag sagt att genom att programmera i Python har du inte kunskap om bitvis, en skräpsamlare eller en pekare. Snarare kan du programmera i Python utan att ens veta vad det här är. Jag tvivlar dock starkt på att det skulle vara fallet för en C ++ - programmerare. Och självklart gör jag jämförelsen när Python går in i det fältet med "multipurpose language", inte för webbprogrammering.

          Bli programmerare på 20 timmar är helt enkelt ett skämt, en överdrift. Jag kan dock sätta dig här olika länkar om onlineutbildningsplattformar och kurser som lovar liknande saker. Skyll inte på mig, skylla det på en arbetsmarknad som tycker att det blir en "expertprogrammerare" att ta en 20-timmars kurs. Och Python är ett av de moderna språken och också, med den snabbaste inlärningskurvan ... vit och i en flaska.

          Jag insisterar, du baserar ditt meddelande på att säga hur dåligt PHP är (vilket jag håller med om i en viss del). Det verkar korrekt för mig, förutom att mitt meddelande inte handlar om det, utan varför PHP kommer att fortsätta att användas och det kommer inte att försvinna i morgon som du tror.

          hälsningar

  5.   ingen sade

    C -> Go -> (Lisp | Haskell | Java | vad som helst)

    1.    ChrisADR sade

      Nyligen skickade en läsare mig en rekommendation om en Go-bok till min e-post, säkert ett språk att ta hänsyn till i framtiden och som kanske kommer att finnas ett inlägg här 🙂 Många bilder att dela

  6.   mvr1981 sade

    Tja ... och vad programmerar jag? Varför lära sig ett programmeringsspråk idag med så bra och erfarna programmerare som redan finns? Vilka problem kan jag lösa som andra inte redan har löst på ett mycket mer effektivt sätt? ... Kort sagt: Hur original är det att vara programmerare idag? Hur kan jag samarbeta med andra utan att bli sparkad eller utesluten av min brist på kunskap och erfarenhet?

    1.    ChrisADR sade

      Hej mvr1981, riktigt intressanta frågor 🙂 vi ska rulle dem från det sista till det första.

      Hur kan jag samarbeta med andra utan att bli sparkad eller utesluten av min brist på kunskap och erfarenhet?

      Om du inte vill bli sparkad är det första steget att lära sig processen, du kan inte föreställa dig hur många människor som kommer till projekt som vill göra saker uteslutande på sitt sätt och vill att samhället ska anpassa sig till sina önskemål. Det är verkligen som att jag kommer till ditt hus och gör en röra och respekterar din familj (så känns det många gånger). Om du vill förhindra att detta händer, var noga med riktlinjerna för att bidra, sättet att göra det och skicka inte något ofullständigt, om du behöver hjälp finns det alltid sätt att kommunicera, men ett dåligt gjort jobb kommer att förmodligen skapa dåliga första intryck. Om du inte vill utesluta dig själv, det är upp till dig, du kan se honom som den värdelösa programmeraren som inte vet vad han gör eller den som är på väg att bli en utmärkt programmerare, och det händer bara med övning och säkert med misstag på vägen. Jag har tagit fel många gånger innan jag fick min utvecklarstatus på Gentoo, och det hindrade mig inte från att försöka trots "dålig tid".

      Hur original är det att vara programmerare idag?

      -Det handlar inte om originalitet, det är en nödvändighet idag, tänk bara på följande, för 20 eller 30 år sedan, att skriva var en nödvändighet, många jobb drog slutsatsen att du visste eller åtminstone kunde göra det. Idag är det en nödvändighet att veta Office, det finns praktiskt taget inget jobb som inte ger dig framför Office-dokument. I morgon, mycket snart, kommer programmering att vara en nödvändighet. Och detta gäller också ur personlig synvinkel, att veta vad som händer i de program som du anförtror saker som är lika viktiga som dina pengar, hälsa, familj, är något logiskt för mig, för du kan bara känna till deras begränsningar om du vet hur de arbete och för att veta det måste du veta hur man programmerar.

      Vilka problem kan jag lösa som andra inte redan har löst på ett mycket mer effektivt sätt?

      -Du skulle bli förvånad över mängden pass som krävs idag, och för att säga sanningen spelar det ingen roll att det finns de bästa programmerarna i världen i samhället, arbetet kommer alltid att vara större än utvecklarnas arbetskapacitet, jag kan verifiera detta i Gentoo, där är människor som utvecklar kärnan, människor som arbetar för Google, Sony, etc etc ... det enda som vi alla har gemensamt är att ingen har så mycket tid som de vill kunna göra allt pågående arbete.

      Varför lära sig ett programmeringsspråk idag med så bra och erfarna programmerare som redan finns?

      -Detta besvaras i den andra frågan 😉 Men nu kan jag tillägga att generationer måste kunna stödja det arbete som redan har utvecklats, med detta menar jag att de "erfarna" utvecklarna gradvis kommer att försvinna och det kommer att bli nödvändigt för " yngre »Utvecklare tar ansvar och hjälper till att hålla livscykeln vid liv, ett samhälle som inte har unga och oerfarna människor är benägna att försvinna med tiden, just för att det inte finns någon möjlighet att överföra kunskap.

      Och vad planerar jag?

      -Det här är kanske det svåraste att svara på, men jag ska försöka ge dig ett exempel poco Jag började nyligen drabbas av problem med GNOME 24 och dess anslutning till Wayland som hindrar program som Shutter från att ta skärmdumpar. Detta är ett problem för mig för när jag skriver mina artiklar måste jag visa dig vad jag säger 🙂 när jag tittade lite omkring kom jag till GNOME Screenshot-applikationen, lite "minimalistisk" minst sagt. Bland dess funktioner finns det att ta en skärmregion, men vad händer om jag inte tog bilden bra? Tja, jag måste lämna och gå in i programmet igen, något tråkigt säkert, en knapp som säger "Återuppta" eller något liknande gör att jag kan ta en ny fångst utan att behöva avsluta och gå in igen skulle hjälpa mig. Det är en liten programmeringsprojekt, jag har aldrig programmerat någonting i GNOME-ramverket så jag har självklart mycket att lära mig innan jag skickar min "patch" med den nya knappen, men på vägen lär jag mig att programmera och förhoppningsvis detta särdrag det kommer att vara till hjälp för mer än en när det är tillgängligt för alla.

      Detta är ett exempel, det är något enkelt och att säkert någon annan "expert" programmerare kunde ha gjort det redan, men på grund av tydlig brist på tid har det inte varit så, nu är det jag som har möjlighet att göra det , utan att vara en superprogrammerare.

      Nu är det bara upp till dig att hitta något som skulle göra ditt liv "enklare" i den programvaran du använder så ofta, det vackra med det är att om vi följer de råd jag ska ge dig i följande artiklar, språket spelar ingen roll, för du kommer att känna till grunderna för att börja förstå koden du läser och ändra den för att göra vad du vill, det är en mycket speciell känsla 🙂

      Hälsningar och tack igen

      1.    ingen sade

        Jag tror att först när jag har öppnat gnome-inspelningsprogrammet är det enklaste att gå till kortkommandon och tilldela tre kombinationer utskrift för att fånga all alt-print för att fånga det aktiva fönstret och super-print för att göra ett val från fånga region, de tillgängliga genvägarna är redan tillgängliga, det är helt enkelt en fråga om att tilldela dem

        1.    ChrisADR sade

          Det är därför vi ger dig ett exempel 🙂 eftersom små saker som den knappen programmerar, de kan hjälpa vissa eftersom de kan gå obemärkt av andra, men de uppfyller verkligen huvudmålet, hjälper till att lära sig programmera och vika för nya funktioner, Efter den knappen kan många saker startas, till exempel en sessionshantering eller en förhandsgranskningsskärm av alla tagna foton, eller kort sagt, många saker som kan göras. Tanken är att du hittar något som får dig att hoppa över din nyfikenhet, programvara som körs på ditt system kan behöva förbättringar eller nya funktioner som på grund av tidsbrist eller personal inte har implementerats ännu 🙂

      2.    mvr1981 sade

        Tack vare dig. är mycket bra svar.

    2.    Guillermo sade

      Tja, för någon som inte kommer att bli en professionell inom området, skulle det vara nödvändigt att se i vilken miljö de arbetar, både för administrativa uppgifter och direktiv kan det vara intressant att veta, till exempel Python / Basic och veta hur för att programmera makron i kontorspaket som LibreOffice eller MS Office. Det finns tillfällen då detta kan spara många timmar arbete för dig eller andra arbetare som omger dig och be dem att utföra upprepade uppgifter, du kan skapa en instrumentpanel för att snabbt beräkna företagets huvudförhållanden efter att ha anslutit till databasen och utföra några SQL-frågor.
      Som allt, om du känner till verktygen till hands kan du tänka på hur du får ut det mesta. Inte allt består.

  7.   Marcelo sade

    Guillermo, håller helt med dig, "Inte allt uppfinns" och det som uppfinnas är modifierbart. Du måste få ut det mesta av verktygen och använda det som bäst passar dina behov.

  8.   Ricardo sade

    För programmering är det första språket att lära sig engelska, sedan det som tilltalar dem mest och verkar vackrast för dem.

    1.    ChrisADR sade

      Jag hade inte skrivit det, men det är sant 🙂 att kunna engelska hjälper mycket eftersom de flesta språk är skrivna i det, men också för att den större mängden förstahandsinformation också tackar dig för att du delar

  9.   Ruben salgado sade

    Utmärkt artikel, förutom motiverande.

    1.    ChrisADR sade

      Mycket snäll, tack så mycket 🙂 Hälsningar

  10.   Gonzalo Martinez sade

    Programmering är att veta hur man resonerar och översätter detta resonemang till instruktioner.

    Två förtydliganden om artikeln:

    1) Baserat på min erfarenhet som programmeringslärare i nästan 10 år spelar det ingen roll vilket språk du lär dig med, utan hur du lär dig och hur komplex det är.

    Jag tror att ett språk som kan läras på ett strukturerat sätt, och sedan gå vidare till andra mer komplexa saker, är lättare än att börja med ett språk som Java från början.

    Det är lättare att lära sig något som Hello World i C eller Pascal som bas, än med några rader (PROGRAM i fallet Pascal, eller #include När det gäller C) kan du börja utveckla algoritmen och koda programmet med sin logik direkt, som i Java, som i sig behöver en klass, en metod och några andra saker som för en nybörjare är en informationsöverbelastning onödigt, och det kan mycket väl ignoreras och gå vidare till andra saker, men de är begrepp som finns där, och enligt min mening är det inte ett bra sätt att lära sig att se över saker, särskilt om språket tvingar dig att använda dem. Det är som att starta målövning för första gången med en M-16 och skjuta i flera månader i halvautomatiskt läge och hålla handtaget med båda händerna som en pistol.

    2) Huruvida ett språk tolkas eller sammanställs beror på dess genomförande, inte på själva språket. Till exempel, om Python används, för en webbapp som använder wsgi (antingen mod_wsgi i apache eller uwsgi för Nginx), kompileras pythonkoden när du startar motsvarande modul och genererar .pyc-filer

    Det finns också binära filgeneratorer för java (som genererar inbyggda binärer istället för bytekod) eller kompilatorer av php-skript i rena binärer.

    När det gäller vad de säger om PHP är det helt enkelt ett språk utformat i en annan era, med andra saker i åtanke och utan att beakta aspekter som inte fanns på den tiden. Det är uppenbart att det faktum att det är det mest använda inte gör det bäst för någonting i världen, men det finns en verklighet: det är det språk som det finns störst chans att få jobb i all programmering. Att veta att det inte skadar, även om du inte gillar det.

    Till och med jag har jobbat som systemadministratör i flera år och lämnat jobbet som utvecklare, så ofta måste jag lägga in PHP-kod i något.

    1.    ChrisADR sade

      Hej Gonzalo, tack för att du delar,

      Visst talar om onödig överbelastning av information, att veta att samma språk kan tolkas eller sammanställas är något som inte är nödvändigt i detta skede 🙂 Visst är implementeringen viktigt, men om vi säger att på denna nivå genererar vi inte mer än förvirring. På samma sätt behandlas inte objektorienterade programmeringsfrågor, eller andra begrepp som måste doseras gradvis för att inte göra människor yr.

      Eftersom utrymmet är begränsat är huvudsyftet med inlägget att visa läsare som vill programmera att det finns två stora språkvärldar, att de "traditionellt" tolkade är mer "enkla", att de "traditionellt" sammanställda är lite mer "komplex" men att det är värt den komplexitetsnivån att ha en mer gedigen förståelse och att det är upp till varje person att välja språk, eftersom det beroende på programmeringsmetoden kommer att kunna välja sina favoritprojekt och samtidigt kommer de att kunna förstå vad de läser och / eller skriver 🙂

      Tack så mycket igen, hälsningar.

      1.    Gonzalo Martinez sade

        Detta är ett fel, det finns inga kompilerade eller tolkade språk, det finns tolkar och kompilatorer för varje språk, båda för olika fall.

        Det är inte en överbelastning av informationen att nämna det nu, det är ett misstag att göra ett sådant uttalande. Enligt min mening hade det varit mer produktivt att ignorera tolkarna om du inte ville överbelasta information.

        1.    ChrisADR sade

          Tack för förtydligandet, jag tar hänsyn till det när jag återvänder till ämnet. Skål

  11.   Ares sade

    Vilket språk rekommenderar du för serversidan med hänsyn till att PHP föll i tjänst?
    Samma sak för databaser, jag vet inte om det kommer att finnas något bättre och modernare än mySQL.

    1.    ChrisADR sade

      PHP har inte fallit ur favör ... Varje språk har sin livscykel, och php är verkligen redan ett språk som går in i skalan av "moget", vilket gör det användbart på affärsnivå, där stabilitet är framför allt ... Som vissa banker där det fortfarande är utvecklat i java, som är mer "moget" än php och verkligen har sina anhängare och motsägare ... Och för att inte tala om COBOL ...

      Om det du letar efter är enhetlighet och modernitet, blir javascript en av favoriterna hos de så kallade "full stack-utvecklarna", även om rubinparadigmet eller "enkelheten" med python också är bra referenser ... Även perl kan vara alternativet beroende på behoven 🙂

      Numera tar ORM (objektrelationskartläggare) mycket kraft när det gäller relationell datahantering. Det går från SQL-syntax till klass- och attributhantering ... Nästan alla språk (om inte alla) hanterar en del ORM.

      . Mongo DB är ett alternativ till relationsdatabaser som har blivit ganska viktigt. Det är dock nödvändigt att känna till dess fördelar och nackdelar och validera om det skulle vara den bästa lösningen beroende på det specifika behovet.

      Jag hoppas att det hjälper dig, hälsningar 🙂

      1.    Ares sade

        Tack, jag ska kontrollera det.

      2.    Ares sade

        Jag glömde.

        Vad rekommenderar du mig att arbeta med JAVA i Linux?
        Om du kan skilja mellan gratis och stängd bättre.

        1.    ChrisADR sade

          Eclipse och NetBeans är öppen källkod, jag är inte säker på om det finns någon som är helt gratis programvara, jag har en vana att använda vim eftersom ibland gör mängden kod att använda en hel IDE långsam och benägen för körfel. Hälsningar 🙂

        2.    paulzeta sade

          För att arbeta med java i Linux använder jag IntelliJ jag rekommenderar dig.

          1.    ChrisADR sade

            PS, IntelliJ är egen programvara 🙂

  12.   je sade

    Killar kommer också ihåg att ... Jag arbetar i en bank och jag säger att programmeringsspråk tar baksätet för att låta SQL och Stored procedurer gå först.

    1.    Gonzalo Martinez sade

      Du måste ta hänsyn till de lagrade procedurerna, men genom att inte använda ett bärbart språk mellan motorer, åtminstone enligt min erfarenhet, handlar det alltid om att undvika dem om det inte finns något annat alternativ.