Scegli il tuo primo linguaggio di programmazione

Sicuramente questa è una delle domande che più mi vengono poste quando parlo di programmazione. Se stiamo per iniziare una serie di articoli che ti permetteranno di imparare a programmare e restituire conoscenza gratuita sotto forma di contributi alle comunità di software libero / open source in tutto il mondo, è necessario rispondere a questa domanda di base anche se un po 'difficile. Quale linguaggio di programmazione dovrei imparare?

Un po' di storia

Per iniziare a capire e scegliere un linguaggio di programmazione, dobbiamo prima conoscere un po 'la loro storia, i loro usi e funzioni e come risolvono le diverse esigenze nel tempo.

Linguaggi macchina (livello basso)

Comunemente conosciuto come montaggio, sono linguaggi di programmazione che potremmo definire dialetti di un linguaggio più generale ... Sembra un po 'complicato ma lo esemplifico ... Sappiamo che il linguaggio universale dei computer è elettricità, questo significa che in definitiva ciò che un computer legge sono 0sy 1sì, chiamiamolo questo ecomputer inglese. In questo esempio, lo spagnolo è la regola di base, ma come ben sappiamo, lo spagnolo parlato dai latini non è lo stesso di quello parlato in Spagna, e anche così, lo spagnolo del Perù non è lo stesso dello spagnolo dell'Argentina. Ovviamente tutti abbiamo quasi le stesse parole (0sy 1s), ma l'uso e il significato possono variare a seconda del contesto.

Ciò accade a livello di processore. Quando parliamo di architetture informatiche, (amd64, intel, arm, ...) ci riferiamo al dialetto di quello computer spagnolo. Questo perché diverse società comprendono l'ordine e il significato a modo loro, quindi alcune variano in dettagli come il flusso della corrente o l'ordine in cui verranno mantenute. 0sy 1s.

Questi linguaggi di programmazione sono estremamente veloci, poiché funzionano al livello di programmazione più basso possibile, ma dipendono fortemente dall'architettura e sono certamente un po 'più complicati da imparare rispetto agli altri. Questi richiedono spesso una base più ampia di concetti per trasformare i dati ed essere in grado di eseguire cose utili su di essi. Per gli amanti dei videogiochi, un esempio potrebbero essere le console SEGA, che utilizzavano Assembly per programmare i loro giochi. Ovviamente a quel tempo la quantità di memoria era minima rispetto ad oggi, ed era necessario padroneggiare un linguaggio che potesse essere veloce e produrre programmi leggeri.

Linguaggi di alto livello

Questo grande gruppo contempla quelle lingue che sono venute dopo montaggio. La necessità di ottenere codice portatile ha portato alla nascita di un gruppo di linguaggi chiamati compilato. Tra questi, il primo a trarne vantaggio è stato C, che ha dominato la programmazione a livello di sistema operativo sin dagli anni '70.

Linguaggi compilati

Vediamo un esempio pratico di ciò che commento. Diamo un'occhiata a un programma in linguaggio C molto semplice che stampa una riga di codice.

Proprio. Christopher Diaz Riveros

Dopo averlo compilato abbiamo quanto segue:

Proprio design: Christopher Díaz Riveros

Ma ora vediamo cosa dovremmo scrivere per replicare lo stesso risultato in codice Assembly:

Proprio. Christopher Diaz Riveros

Questa è la traduzione delle nostre 3 righe di codice da simple.c, il file simple.s viene creato utilizzando il comando gcc -S simple.c ed è ciò che il nostro processore capirebbe in un dialetto montaggio. Ovviamente per creare un eseguibile che sia composto da 0sy 1s il file deve essere elaborato simple.s e collegalo alle librerie condivise del nostro sistema. Questo viene fatto utilizzando un file assemblatore (as) connettore (ld).

I linguaggi compilati offrono un grande vantaggio rispetto a quelli di basso livello, lo sono portatili. La portabilità fornisce codice che può essere eseguito su processori diversi senza la necessità di generare codice specifico per ciascuna architettura. Un altro ovvio vantaggio è la semplicità che utilizza durante la lettura e la scrittura del codice. Tra i suoi principali svantaggi abbiamo un'elevata complessità, poiché rispetto alle seguenti tipologie di linguaggi che vedremo, la libertà che offre il C può essere dannosa se non si sa controllare, è sicuramente come consegnare una pistola, potrebbe capitare che in mancanza di esperienza di una persona finisce per sparare al proprio piede nel tentativo di pulire la pistola.

Lingue interpretate

All'interno di questo gruppo abbiamo una grande varietà di linguaggi, tra i più importanti abbiamo Python, Ruby, Javascript, PHP, ecc ... L'idea di base di questi linguaggi è di fornire un modo rapido per creare ed eseguire programmi, questo perché molti dei processi difficili vengono eseguiti nell'interprete, e la programmazione della logica è ciò che è implementato nel codice. Diamo un'occhiata allo stesso esempio precedente ma questa volta scritto in Python:

Proprio. Christopher Diaz Riveros

Tra le cose più importanti possiamo vedere che la prima riga è incaricata di chiamare l'interprete (il programma che eseguirà la nostra applicazione) e il codice successivo è più "semplice" della sua versione in C, poiché tutto il lavoro pesante è eseguita sull'interprete.

Proprio. Christopher Diaz Riveros

I linguaggi interpretati forniscono allo sviluppatore un livello di sicurezza maggiore, poiché hanno controlli di sicurezza più rigorosi (ATTENZIONE che non sono perfetti, poiché anche i migliori possono commettere errori) e non si rischia più di sparare con un'arma senza rendersene conto, poiché al primo tentativo l'interprete lanciava un avviso e l'esecuzione sarebbe annullata. Il principale svantaggio diventa evidente durante l'esecuzione del programma, poiché è più lento della sua controparte binaria, questo proprio a causa della maggiore quantità di elaborazione per poter garantire che il codice funzioni. Se il programma non richiede scadenze estremamente brevi, la differenza potrebbe passare inosservata, ma se parliamo di migliaia o milioni di dati al secondo, la differenza diventa esponenzialmente evidente nei linguaggi compilati.

Digitando

Questa è una caratteristica dei linguaggi di programmazione, questi possono essere fuertemente debolmente digitato. Lascio questo argomento per un altro post, poiché è necessario e curioso capire come viene immagazzinata la memoria in un programma, ma per ora dobbiamo solo fare la distinzione: le lingue fortemente tipizzate sono quelle che richiedono di conoscere il tipo di dati che sta andando da lavorare su una variabile o costante, mentre il debolmente i tipi possono eseguire conversioni in questo modo implicito e tutto dipenderà da una gerarchia di conversione seguita dalla lingua. (se non è compreso adesso, nessun problema, lo lasceremo per dopo)

Paradigmi

Come ogni cosa nel mondo GNU / Linux, i linguaggi di programmazione sono basati su paradigmi e attorno ad essi vengono generate comunità. Ad esempio, abbiamo il file Fondazione Python o Ruby o PHP o Bash (nel qual caso è la comunità GNU). Quello che voglio ottenere con questo è che non posso esprimere il gran numero di pro e contro che ognuno ha, ma posso dirti che dove c'è un linguaggio di programmazione libero, c'è una comunità da imparare e da cui partecipare. Vale la pena ricordare che molti se non tutti gli interpreti linguistici sono scritti in C, o in qualche derivato stretto, e il loro sviluppo è solitamente effettuato da un gruppo più piccolo della comunità, che ha il compito di decisioni che influenzeranno tutti gli utenti della lingua. Possono anche essere costituite istituzioni per garantire il corretto sviluppo del linguaggio, come nel caso di C.

Quale scegliere?

Abbiamo già parlato abbastanza di lingue e ancora non rispondo alla cosa più importante 😛. Ma spero che dopo aver esaminato questo piccolo articolo non sia necessario che ti dica quale lingua scegliere, poiché con queste informazioni sei perfettamente in grado di cercarne una che generi curiosità. Ovviamente se vuoi imparare a programmare in una lingua montaggio ci vorrà molto tempo prima che tu possa avere qualcosa di funzionale, il tempo sarà notevolmente ridotto se opti per un linguaggio compilato, dove oltre ad avere la portabilità sui sistemi * NIX, sarai in grado di apprendere informazioni riguardanti il ​​funzionamento dello stesso sistema, essendo in il contatto con C o derivati ​​ti fa in un modo o nell'altro imparare come funziona un sistema operativo in modo generale. Infine, se vuoi imparare qualcosa di leggero e che ti permette di fare molto senza la necessità di capire molto, i linguaggi interpretati sono un modo divertente per apprendere e sviluppare capacità di programmazione.

Impara con qualcosa di eccitante

Questo è il miglior consiglio che posso darti, se vuoi imparare qualcosa, devi prima trovare qualcosa di eccitante, altrimenti sarà abbastanza difficile superare la curva di apprendimento tipica di qualsiasi linguaggio di programmazione. Supponiamo che tu gestisca i sistemi, in tal caso potresti dover imparare una lingua ideale Scripting (interpretato), all'interno di questi abbiamo Perl, Python, Bash, ecc ecc ... Forse i tuoi sono giochi, ci sono molti progetti in linguaggi come Javascript, Lua, C ++, a seconda del tipo di gioco che vuoi giocare. Forse vorresti creare uno strumento a livello di sistema, dato che abbiamo C, Python, Perl, come vedrai, alcuni vengono ripetuti, e questo perché molti linguaggi possono essere usati per molte attività, ecco perché la definizione di linguaggi multiuso nella maggior parte di questi.

Inizia un progetto

Con questo non intendo che crei il seguente compilatore, o anche il seguente linguaggio di programmazione, un progetto può essere quello di correggere un piccolo bug nel tuo programma preferito, magari anche aiutare a migliorare la documentazione. Perché la documentazione? perché non c'è modo migliore per imparare come funziona il software che leggendo e aiutando a scrivere la sua documentazione, perché dopo il codice sorgente, è la più grande fonte di informazioni che troverai sul programma. In un altro momento vedremo come leggere il codice di un progetto e comprendere le funzioni ei valori che acquisiscono.

Grazie mille per essere arrivato qui e, come sempre, i tuoi commenti mi aiutano a generare contenuti migliori e sapere dove concentrarmi, Saluti.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   anonimo suddetto

    Come sempre un 10 !!!!!! Grazie per i tuoi articoli. Saluti e molto altro in arrivo !!!!

    1.    Chris ADR suddetto

      Grazie mille 🙂 mi incoraggia a continuare a scrivere. Saluti

  2.   Rubén suddetto

    Penso che sia un errore porre la domanda "quale lingua scegliere?" Sono uno di quelli che pensano che il linguaggio sia l'ultima cosa, l'importante è imparare le basi della programmazione e "pensare in modo computazionale". Decidi una sintassi, la sua digitazione, se supporta OOP, la sua utilità, ecc. Penso che sia qualcosa che verrà naturalmente nello studio e dopotutto, ogni programmatore conosce più di 1, 2 e 3 linguaggi ... e grazie ai concetti di programmazione (e non alla sintassi) che ha, è in grado di programmare in una lingua in cui non hai ancora esperienza.
    Tuttavia, per gli iniziati, penso che un buon linguaggio possa essere Python per la sua semplicità, ma soprattutto, andare un po 'oltre, studiare algoritmi e sapere come funzionano le cose "dentro".

    Saluti ChrisADR

    1.    Chris ADR suddetto

      Ciao Rubén, grazie per la condivisione
      C'è una cosa che ho imparato nel tempo nel mondo della programmazione, ed è che "chi copre molto non stringe" e con questa frase ben nota intendo che molte volte, e soprattutto le più entusiaste, decido di provare tutto un po 'e svolgi molto rapidamente in termini di come impari a programmare. Credo, ed è opinione personale, che un buon sviluppatore dovrebbe conoscere e padroneggiare un linguaggio di compilazione e un linguaggio di interprete, oltre ad avere una nozione di qualche dialetto dell'Assemblea.
      Il motivo è il seguente, la prototipazione deve essere sempre qualcosa di semplice e veloce, di facile generazione e che in genere mostri un risultato, ma se non è sufficiente ci deve essere un "piano B" a cui ricorrere quando è arrivato l'interprete al suo limite.
      Conoscere un dialetto dell'Assembly non solo ti dà sicurezza, ma ti insegna anche a pensare "computazionalmente", ma ovviamente questa parte è la più complicata di tutte, ed è certamente qualcosa a cui non tutti i programmatori arrivano.
      Ma torniamo all'argomento, perché l'idea principale penso sia "scegliere una lingua e fare molta pratica", perché in realtà l'unico modo per diventare bravo nella programmazione è leggere e scrivere codice, e questo è qualcosa che ho imparato dalla comunità del kernel Quando mantieni la stessa sintassi per molto tempo, smetti di vedere il modulo e inizi a preoccuparti dello BACKGROUND. L'idea di scegliere un linguaggio o una sintassi dall'inizio è che si è in grado di abituarne la lettura e la scrittura in modo tale da poter iniziare a leggere il SIGNIFICATO del programma invece della sintassi del programma.
      Questo è il motivo principale di questo post, che ognuno sceglie la propria lingua in modo che di seguito si possano spiegare i concetti, magari con questo si chiariscono i dubbi 🙂
      Saluti e grazie per la condivisione.

  3.   deibis contras suddetto

    grazie per il post è stato bello.

    saluti

    1.    Chris ADR suddetto

      Ciao Deibis, grazie per aver condiviso 🙂 Saluti

  4.   JorgeFS suddetto

    Il mio consiglio: qualcosa di diverso da PHP. Vent'anni fa PHP aveva un certo senso nella sua esistenza a causa dell'alto livello di complessità che stava programmando il Web in un altro linguaggio utilizzando CGI. Ma oggi c'è una grande varietà di Framework per rendere lo sviluppo Web molto più piacevole in linguaggi potenti, come Django per Python, Spring per Java o Rails per Ruby. Sebbene PHP attualmente appaia in tutte le classifiche di popolarità delle lingue, a mio parere PHP perderà la sua rilevanza nel tempo.
    Consiglio vivamente di iniziare con C \ C ++ per comprendere la realtà della programmazione, sebbene la curva di apprendimento sia ripida.
    Saluti.

    1.    Chris ADR suddetto

      Ciao Jorge, grazie per la condivisione, ricordo solo Laravel, che è un Framework piuttosto solido, personalmente non mi è mai piaciuto Spring o Java per lo sviluppo web, lo trovo piuttosto ingombrante, ma immagino che faccia parte del tempo che hanno trascorso il mercato, all'epoca erano dei pionieri e sicuramente oggi alternative moderne (Js, Python e Ruby) hanno saputo migliorare il modo di presentare codice leggibile e modificabile senza molto lavoro.
      Sono anche propenso a persone che imparano C / C ++ ad un certo punto della loro vita, ho iniziato con Java, ma suppongo che questa sia la bellezza della programmazione, puoi iniziare con quello che vuoi, fintanto che sei coerente sarà utile 🙂 Saluti

    2.    Rubén suddetto

      Non posso più essere in disaccordo con te. Ho iniziato molti anni fa con C e VB, per poi concentrarmi su PHP e JS (da quando mi sono concentrato sullo sviluppo web) e successivamente durante gli studi ho imparato principalmente C / C ++ e Java.
      PHP ha una serie di vantaggi che non ho potuto elencare in questo messaggio. PHP7 è veloce (più veloce di Python ... senza usare hhvm, cache diverse, framework come Phalcon o bytecode nel caso di Python), ha un numero enorme di librerie e framework, ha un numero enorme di funzioni implementate direttamente per usarle in qualsiasi momento, la sua sintassi così simile al C rende molto facile la migrazione ad altri linguaggi.
      Il 30% dei siti web nel mondo sono realizzati con WordPress (PHP) e questo sembra non cambiare, lo usa Wikipedia, Facebook (con hhvm) e un gran numero di siti, in totale, l'80%.

      Ti ricordo che Ruby on Rails come Django hanno 12 anni! Che quota hanno raggiunto in questo tempo? E ovviamente, stiamo parlando di 2 framework che praticamente hanno il monopolio e non c'è tipo di frammentazione. Quali altre alternative serie ho? Dire che PHP perderà rilevanza non ha molto senso.

      Ora che Python è di moda perché ha una curva di apprendimento veloce, è un linguaggio semplice e te lo vendono come «diventa un programmatore in 20 ore con Python e lavoraci», con il supporto di aziende come Google e che ora c'è il La moda di cercare nuovi linguaggi (Go, Dart….) Per differenziarsi in un CV (o come nascita quotidiana di 50 framework per Javascript!), Non vuol dire che le cose cambino.

      Ruby è un linguaggio molto interessante, ma rompe così tanto con schemi consolidati che trovo difficile credere che sia diventato più popolare di PHP. Ovviamente Ruby credo sia il peggior linguaggio per iniziare a programmare.
      Capisco che tu mi dica che Python può essere divertente da programmare, anche Ruby con le sue infinite particolarità ... ma Spring with Java? Veramente? Java può essere molte cose ... ma più divertente di Python e PHP?

      Va tutto bene iniziare con Python, ma se ti attieni al solo Python, corri il rischio che molte aziende credano che il tuo livello di programmazione non sia "profondo" (anche se sei molto bravo in Python). Questo perché competi con altri linguaggi "multiuso" come C ++ o Java. Puoi programmare in Python senza sapere la differenza che diavolo è un puntatore, operazioni bit per bit, come funziona un garbage collector e un lungo eccetera.
      Python è forse il meno simile alla "programmazione classica" che esiste e può essere visto come un "linguaggio per bambini" (capite la metafora), e questo a sua volta è un vantaggio e uno svantaggio.

      1.    JorgeFS suddetto

        "Python è forse il meno simile alla 'programmazione classica' che esiste e può essere visto come un 'linguaggio per bambini' (capisci la metafora), e questo a sua volta è un vantaggio e uno svantaggio." LOL, questa è una delle cose più divertenti che abbia mai visto dire su Python. Hai mai veramente imparato Python?
        Quanto tempo è passato in giro per il mondo al di fuori di PHP?
        L'amico PHP è nato morto. PHP (\ d +) ha molto peso a causa di una progettazione iniziale pessima e per mantenere la comunità degli utenti continua a trascinare tutti quegli errori di progettazione iniziali in modo molto accurato. PHP è nato senza modularità, con molte funzionalità in stile C (che a proposito, non so da dove l'hai preso poiché la sua sintassi è simile a C, può essere facilmente trasferita in altri linguaggi). Un linguaggio di alto livello, come dovrebbe comportarsi PHP, ha cose così brutte come questa scia di funzioni elencate sul suo sito ufficiale http://php.net/manual/en/indexes.functions.phpQuesto perché è nato senza modularità, quindi tutto è sporco mischiato e senza namespace.
        Questo è un pezzo di codice PHP:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        a un certo punto si può determinare da dove sono state importate tutte queste funzionalità di "flusso"? NO, allora potresti dire che sono funzioni incorporate, ma poi l'intero ecosistema è funzioni incorporate? E così, c'è un sacco di spazzatura nel codice PHP, che se non sei in grado di capire la complessità e l'inutilità di un design così pessimo, perdonami ma ha ancora molto mondo da vedere.
        Wordpress è un'ottima soluzione software, ma questo non significa che abbia una buona base tecnologica. Puoi martellare con una pietra e cacciare i chiodi con i denti, e puoi ancora fare un ottimo lavoro di falegnameria, ma ovviamente, con molto più lavoro di un altro falegname che usa un buon martello.

        D'altronde: "diventare un programmatore in 20 ore con Python e lavorarci", non ho mai visto tanta stupidità. Puoi creare un sito web in PHP in 20 ore e senza avere alcuna conoscenza di come funziona la programmazione Web o della programmazione stessa. In effetti questo è il motivo per cui PHP è così popolare, perché i neofiti che entrano in questo mondo vedono PHP come un punto di rapido sviluppo (motivo per cui così tanto codice PHP fa schifo).
        Per quanto riguarda i difetti di Python, l'unico in cui ha avuto successo è stato lavorare con i puntatori, ma in ogni caso Python è un linguaggio di alto livello (come Java) e non li usa a livello di sintassi; ma operazioni bit per bit, serie ?, intendi questo x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Ho seriamente capito molto meno la cosa del garbage collector: https://docs.python.org/3/library/gc.html.
        Lacune PHP:
        -PHP ha un design di programmazione orientato agli oggetti (OOP) molto scadente.
        -Non puoi ancora sovraccaricare gli operatori.
        -Sorpresa, function overloading in PHP non è quello che ti aspetti naturalmente da questo concetto.
        … .. e mi sono appena annoiato hehe.
        Saluti.

        1.    Rubén suddetto

          Ho messo tra parentesi "capisci la metafora" (dal confronto di Python con C ++ / Java nello stesso ambiente di lavoro), è chiaro che non l'hai capito. Potrei dirti che un programmatore C ++ può imparare Python in un modo molto più veloce di quanto un programmatore Python possa imparare C ++, così come non sorprende che lo stipendio medio di un programmatore C / C ++ sia più alto di uno Python.
          Te lo potrei spiegare con altri esempi, anche con un disegno! ma sembra che ti concentri solo sulla decontestualizzazione e sul ridicolizzare ciò che ho messo.

          In nessun momento ho detto che PHP è il miglior linguaggio al mondo o che ha un design esemplare, non so da dove lo prendi. Penso che prima di giudicare la conoscenza degli altri dovresti migliorare la tua comprensione della lettura. Quello che è vero (e l'ho detto nel mio messaggio) è che sviluppare con esso è molto agile, oltre all'intero ecosistema di framework, librerie e utilità che puoi trovare.
          Inoltre, che tipo di confronto facciamo? Python come linguaggio multiuso o per il web? In tal caso, perché lo confrontiamo con PHP? PHP ha un campo specifico, ed è in quel campo che Python (con una quota dello 0.2%, che non è cambiata durante tutto l'anno) impallidisce accanto a PHP.
          Ora vedremo le tendenze di PHP; dall'82,4% di gennaio 2017 all'83.1% di gennaio 2018: https://w3techs.com/technologies/history_overview/programming_language

          Python sta per detronizzare PHP? In che anno? in quali cinque anni? decennio?
          Python potrà essere utilizzato in molte altre attività e persino diventare più ampiamente utilizzato di PHP, ma Python come linguaggio di sviluppo web è lontano anni luce dall'essere persino rilevante, lo 0.2% stagnante contro l'83.1% (con un aumento quest'anno).

          Dai le cose per scontate anche dicendo che non vado in giro al di fuori di PHP, suggerendo che conosco PHP solo quando precisamente non ho programmato in PHP da molto tempo ahah. Attualmente, per motivi di lavoro, programma principalmente in Java.
          Né ho detto che programmando in Python non si ha conoscenza di bit per bit, di un garbage collector o di un puntatore. Piuttosto, puoi programmare in Python senza nemmeno sapere di cosa si tratta. Tuttavia, dubito fortemente che sarebbe il caso di un programmatore C ++. E ovviamente faccio il confronto quando Python entra nel campo del "linguaggio multiuso", non per la programmazione web.

          Diventare programmatore in 20 ore è semplicemente uno scherzo, un'esagerazione. Tuttavia, potrei inserire qui vari link su piattaforme e corsi di formazione online che promettono cose simili. Non incolpare me, biasimare un mercato del lavoro che pensa che diventare un "programmatore esperto" sia questione di seguire un corso di 20 ore. E Python è uno dei linguaggi alla moda e anche, con la curva di apprendimento più veloce ... bianco e in bottiglia.

          Insisto, tu basi il tuo messaggio dicendo quanto sia cattivo PHP (cosa che in una certa parte, sono d'accordo). Mi sembra corretto, tranne che il mio messaggio non riguarda questo, ma perché PHP continuerà ad essere utilizzato e non scomparirà domani come pensi.

          saluti

  5.   nessuno suddetto

    C -> Vai -> (Lisp | Haskell | Java | qualunque cosa)

    1.    Chris ADR suddetto

      Recentemente un lettore mi ha inviato alla mia mail la raccomandazione di un libro Go, sicuramente un linguaggio da tenere in considerazione in futuro e di cui forse ci sarà un post qui 🙂 Tante grafiche da condividere

  6.   MVR1981. suddetto

    Bene ... e cosa programma? Perché imparare un linguaggio di programmazione oggi con programmatori così bravi ed esperti che già esistono? Quali problemi posso risolvere che altri non hanno già risolto in modo molto più efficiente?… In breve: quanto è originale essere un programmatore oggi? Come posso collaborare con gli altri senza essere preso a calci o escluso dalla mia mancanza di conoscenza ed esperienza?

    1.    Chris ADR suddetto

      Ciao mvr1981, domande davvero interessanti 🙂 le raccogliamo dall'ultima alla prima.

      Come posso collaborare con gli altri senza essere preso a calci o escluso dalla mia mancanza di conoscenza ed esperienza?

      Se non vuoi essere preso a calci, il primo passo è imparare il processo, non puoi immaginare il numero di persone che vengono ai progetti che vogliono fare le cose esclusivamente a modo loro, vogliono che la comunità si adatti ai loro desideri. Certamente è come se venissi a casa tua e facessi casino e mancassi di rispetto alla tua famiglia (è così che ci si sente molte volte). Se vuoi evitare che ciò accada, presta molta attenzione alle linee guida per contribuire, ai mezzi con cui farlo, e non inviare qualcosa di incompleto, se hai bisogno di aiuto ci sono sempre mezzi per comunicare, ma un lavoro mal fatto probabilmente creerà cattive prime impressioni. Se non vuoi escluderti dipende da te, puoi vederlo come il programmatore inutile che non sa cosa sta facendo o quello che sta per diventare un eccellente programmatore, e questo accade solo con la pratica e certamente con i bug lungo la strada. Ho sbagliato molte volte prima di acquisire il mio status di sviluppatore su Gentoo, e questo non mi ha impedito di provare nonostante il "brutto momento".

      Quanto è originale essere un programmatore oggi?

      -Non si tratta di originalità, è una necessità oggi, basti pensare a quanto segue, 20 o 30 anni fa, la digitazione era una necessità, molti lavori hanno dedotto che tu lo sapessi o almeno potessi farlo. Oggi conoscere Office è una necessità, non c'è praticamente lavoro che non ti metta davanti ai documenti di Office. Domani, molto presto, la programmazione sarà una necessità. E questo vale anche da un punto di vista personale, sapere cosa succede nei programmi a cui affidi cose importanti come i tuoi soldi, la salute, la famiglia, è una cosa logica per me, perché puoi conoscere i loro limiti solo se sai come funzionano e per per saperlo, devi sapere come programmare.

      Quali problemi posso risolvere che altri non hanno già risolto in modo molto più efficiente?

      -Saresti sorpreso dalla quantità di Caratteristiche che sono richiesti oggi e, a dire il vero, non importa che ci siano i migliori programmatori al mondo nella comunità, il lavoro sarà sempre maggiore della capacità di lavoro degli sviluppatori, posso verificarlo in Gentoo, ci sono persone che sviluppano il kernel, persone che lavorano per Google, Sony, ecc. ecc ... l'unica cosa che abbiamo tutti in comune è che nessuno ha tutto il tempo che vorrebbe poter fare tutto il lavoro in sospeso.

      Perché imparare un linguaggio di programmazione oggi con programmatori così bravi ed esperti che già esistono?

      -Questo trova risposta nella seconda domanda 😉 Ma ora posso aggiungere che le generazioni devono essere in grado di supportare il lavoro che è già stato sviluppato, con questo intendo che quegli sviluppatori "esperti" scompariranno gradualmente e sarà necessario per i "più giovani »Gli sviluppatori si assumono la responsabilità e aiutano a mantenere vivo il ciclo, una comunità che non ha persone giovani e inesperte tende a scomparire nel tempo, proprio perché non ci sarà la possibilità di trasmettere conoscenza.

      E cosa programma?

      -Questa è forse la cosa più difficile a cui rispondere, ma cercherò di farti un esempio poco Recentemente ho iniziato a soffrire di problemi con GNOME 24 e la sua connessione a Wayland che impedisce a programmi come Shutter di acquisire screenshot. Questo è un problema per me perché quando scrivo i miei articoli, ho bisogno di mostrarti quello che dico 🙂 cercando un po 'sono arrivato all'applicazione GNOME Screenshot, un po' "minimalista" per non dire altro. Tra le sue funzioni, c'è quella di scattare una regione dello schermo, ma cosa succede se non ho scattato bene la foto? Bene, devo uscire e rientrare nel programma, sicuramente una cosa noiosa, un pulsante che dice "Ripeti" o qualcosa del genere che mi permette di fare una nuova cattura senza dover uscire ed entrare di nuovo mi aiuterebbe. è un piccolo progetto di programmazione, non ho mai programmato nulla nel framework GNOME quindi ovviamente ho molto da imparare prima di inviare la mia "patch" con il nuovo pulsante, ma lungo la strada imparo a programmare e spero che questo caratteristica sarà di aiuto a più di uno quando sarà a disposizione di tutti.

      Questo è un esempio, è qualcosa di semplice e che sicuramente qualsiasi altro programmatore "esperto" avrebbe potuto già farlo, ma per evidente mancanza di tempo non è stato così, ora sono io che ho la possibilità di farlo, senza essere effettivamente un super programmatore.

      Ora sta solo a te trovare qualcosa che ti renda la vita "più semplice" in quel software che usi così spesso, il bello è che se seguiamo i consigli che ti darò nei seguenti articoli, la lingua non avrà importanza, perché Conoscerai le basi per iniziare a capire il codice che leggi e modificarlo per fare quello che vuoi, questa è una sensazione molto speciale 🙂

      Saluti e grazie ancora

      1.    nessuno suddetto

        Penso che solo dopo aver aperto il programma Gnome Capture, la cosa più semplice sia andare alle scorciatoie da tastiera e assegnare tre combinazioni print per catturare tutto alt-print per catturare la finestra attiva e super-print per fare una selezione dal cattura la regione, le scorciatoie disponibili sono qui, si tratta semplicemente di assegnarle

        1.    Chris ADR suddetto

          Ecco perché ti diamo un esempio 🙂 perché piccole cose come quel pulsante sono programmazioni, possono aiutare alcuni in quanto possono passare inosservate agli altri, ma certamente raggiungono l'obiettivo principale, aiutano a imparare a programmare e lasciano il posto a nuove funzionalità, Dopo quel pulsante è possibile avviare molte cose, come una gestione delle sessioni, o una schermata di anteprima di tutte le foto scattate, o in breve, molte cose che potrebbero essere fatte. L'idea è che trovi qualcosa che ti fa saltare la curiosità, qualsiasi software che gira sul tuo sistema potrebbe aver bisogno di miglioramenti o nuove funzionalità che per mancanza di tempo o di personale non sono state ancora implementate 🙂

      2.    MVR1981. suddetto

        Grazie a te. sono risposte molto buone.

    2.    fattura suddetto

      Ebbene, per qualcuno che non vuole essere un professionista del settore, sarebbe necessario vedere in quale ambiente lavorano, sia per compiti amministrativi che per direttive può essere interessante conoscere, ad esempio, Python / Basic e sapere come programmare macro in pacchetti office come LibreOffice o MS Office. Ci sono momenti in cui questo può far risparmiare molte ore di lavoro a te o ad altri lavoratori che ti circondano e chiedere loro di eseguire qualsiasi attività ripetitiva, puoi creare un dashboard per calcolare rapidamente i rapporti principali dell'azienda dopo esserti connesso al database di esso ed eseguire alcune query SQL.
      Come ogni cosa, se conosci gli strumenti a portata di mano puoi pensare a come sfruttarli al meglio. Non tutto è inventato.

  7.   Marcelo suddetto

    Guillermo, totalmente d'accordo con te, "Non tutto è inventato" e ciò che è inventato è modificabile. Devi ottenere il massimo dagli strumenti e utilizzare quello più adatto alle tue esigenze.

  8.   Ricardo suddetto

    Per la programmazione, la prima lingua da imparare è l'inglese, poi quella che gli piace di più e che sembra loro più bella.

    1.    Chris ADR suddetto

      Non l'avevo scritto, ma è vero 🙂 conoscere l'inglese aiuta molto dato che la maggior parte delle lingue sono scritte in esso, ma anche perché la maggior quantità di informazioni di prima mano anche Grazie mille per la condivisione

  9.   Ruben salgado suddetto

    Ottimo articolo, oltre che motivante.

    1.    Chris ADR suddetto

      Molto gentile, grazie mille 🙂 Saluti

  10.   Gonzalo martinez suddetto

    Programmare è saper ragionare e tradurre quel ragionamento in istruzioni.

    Due chiarimenti sull'articolo:

    1) Sulla base della mia esperienza come insegnante di programmazione di quasi 10 anni, non importa con quale lingua impari, ma come impari e quanto sia complesso.

    Penso che un linguaggio che può essere appreso in modo strutturato, per poi passare ad altre cose più complesse, sia più facile che iniziare con un linguaggio come Java dall'inizio.

    È più facile imparare qualcosa come Hello World in C o Pascal come base, che con poche righe (PROGRAM nel caso di Pascal, o #include Nel caso di C) puoi iniziare a sviluppare l'algoritmo e codificare il programma direttamente con la sua logica, come in Java, che di per sé ha bisogno di una classe, un metodo e alcune altre cose che per un principiante sono un sovraccarico di informazioni inutile, e questo può essere ignorato e passare ad altre cose, ma sono concetti che ci sono e, secondo me, trascurare le cose non è un buon modo per imparare, soprattutto se la lingua ti costringe a usarli. È come iniziare a fare pratica per la prima volta con un M-16 e sparare per mesi in modalità semiautomatica tenendo il manico con entrambe le mani come una pistola.

    2) Se una lingua viene interpretata o compilata dipende dalla sua implementazione, non dalla lingua stessa. Ad esempio, se viene utilizzato Python, per un'app Web che utilizza wsgi (mod_wsgi in apache o uwsgi per Nginx), il codice Python viene compilato all'avvio del modulo corrispondente, generando file .pyc

    Esistono anche generatori di file binari per java (che generano binari nativi invece di bytecode) o compilatori di script php in binari puri.

    Per quanto riguarda quello che si dice di PHP, è semplicemente un linguaggio progettato in un'altra epoca, con altre cose in mente, e senza considerare aspetti che all'epoca non esistevano. Chiaramente il fatto che sia il più utilizzato non lo rende il migliore per niente al mondo, ma c'è una realtà: è il linguaggio con cui ci sono più possibilità di trovare lavoro in tutta la programmazione. Sapere che non fa male, anche se non ti piace.

    Anche io lavoro come amministratore di sistema da diversi anni e ho lasciato il lavoro di sviluppatore, ogni tanto devo inserire del codice PHP in qualcosa.

    1.    Chris ADR suddetto

      Ciao Gonzalo, grazie per la condivisione,

      Certamente parlare di inutili sovraccarichi di informazioni, sapere che lo stesso linguaggio può essere interpretato o compilato è qualcosa che non è necessario in questa fase 🙂 Certamente l'implementazione è importante, ma se diciamo che a questo livello non generiamo altro che confusione. Allo stesso modo non vengono affrontati problemi di programmazione orientata agli oggetti, o altri concetti che devono essere dosati gradualmente per non creare vertigini.

      Poiché lo spazio è limitato, l'obiettivo principale del post è mostrare ai lettori che vogliono programmare che ci sono due grandi mondi di linguaggi, che quelli "tradizionalmente" interpretati sono più "semplici", che quelli "tradizionalmente" compilati sono un po ' più "complesso" ma vale quel livello di complessità per avere una comprensione più solida e che spetta ad ogni persona scegliere la lingua, poiché a seconda dell'approccio di programmazione, potrà scegliere i propri progetti preferiti e allo stesso tempo sarà in grado di capire quello che leggono e / o scrivono 🙂

      Grazie mille ancora, saluti.

      1.    Gonzalo martinez suddetto

        Questo è un errore, non esistono linguaggi compilati o interpretati, ci sono interpreti e compilatori per ogni lingua, entrambi per casi diversi.

        Non è un sovraccarico di informazioni menzionarlo ora, è un errore fare una simile affermazione. A mio parere, sarebbe stato più produttivo ignorare gli interpreti se non si volesse sovraccaricare di informazioni.

        1.    Chris ADR suddetto

          Grazie per il chiarimento, lo terrò in considerazione quando tornerò sull'argomento. Saluti

  11.   Ares suddetto

    Quale lingua consigliate per il lato server visto che php è caduto in disgrazia?
    Lo stesso per i database, non so se ci sarà qualcosa di migliore e più moderno di mySQL.

    1.    Chris ADR suddetto

      PHP non è caduto in disgrazia ... Ogni lingua ha il suo ciclo di vita, e php è sicuramente già un linguaggio che entra nella scala del "maturo", il che lo rende utile a livello aziendale, dove la stabilità è soprattutto ... Come alcune banche dove è ancora sviluppato in java, che è più "maturo" di php e sicuramente ha i suoi seguaci e detrattori ... E per non parlare di COBOL ...

      Se quello che cerchi è uniformità e modernità, javascript sta diventando uno dei preferiti dei cosiddetti “sviluppatori full stack”, sebbene anche il paradigma ruby ​​o la “semplicità” di python siano buoni riferimenti…. Anche perl potrebbe essere l'opzione a seconda delle esigenze 🙂

      Oggigiorno gli ORM (object relational mapper) stanno prendendo molta forza in termini di gestione dei dati relazionali. Va dalla sintassi SQL alla gestione di classi e attributi ... Quasi tutti i linguaggi (se non tutti) gestiscono alcuni ORM.

      . Mongo DB è un'alternativa ai database relazionali che è diventata piuttosto importante; tuttavia, è necessario conoscerne pro e contro e convalidare se sarebbe la soluzione migliore a seconda delle esigenze specifiche.

      Spero che ti aiuti, saluti 🙂

      1.    Ares suddetto

        Grazie, lo controllerò.

      2.    Ares suddetto

        Ho dimenticato.

        Cosa mi consigliate di lavorare con JAVA in Linux?
        Se riesci a distinguere tra libero e chiuso meglio.

        1.    Chris ADR suddetto

          Eclipse e NetBeans sono open source, non sono sicuro che ce ne sia uno che sia puramente gratuito, ho l'abitudine di usare vim perché a volte la quantità di codice rende l'uso di un intero IDE lento e soggetto a errori di esecuzione. Saluti 🙂

        2.    Paolo Zeta suddetto

          Per lavorare con java in Linux uso IntelliJ ti consiglio.

          1.    Chris ADR suddetto

            PS, IntelliJ è un software proprietario 🙂

  12.   je suddetto

    Ragazzi, ricordate anche che ... Lavoro in una banca e vi dico che i linguaggi di programmazione passano in secondo piano per lasciare che SQL e le procedure memorizzate vengano eseguite per prime.

    1.    Gonzalo martinez suddetto

      Devi tenerne conto delle stored procedure, ma non usando un linguaggio portabile tra i motori, almeno nella mia esperienza, si tratta sempre di evitarle a meno che non ci sia altra opzione.