Velge ditt første programmeringsspråk

Dette er absolutt et av spørsmålene som kommer mest til innboksen min når jeg snakker om programmering. Hvis vi skal starte en serie artikler som lar deg lære å programmere og gi tilbake gratis kunnskap i form av bidrag til gratis programvare / open source-samfunn over hele verden, er det nødvendig å svare på dette grunnleggende hvis det er litt vanskelig spørsmål. Hvilket programmeringsspråk skal jeg lære?

Litt historie

For å begynne å forstå og velge et programmeringsspråk, må vi først vite litt om deres historie, deres bruk og funksjoner, og hvordan de løser forskjellige behov over tid.

Maskinspråk (lavt nivå)

Vanligvis kjent som Montering, er programmeringsspråk som vi kan definere som dialekter på et mer generelt språk ... Dette høres litt komplisert ut, men jeg skal eksemplifisere det ... Vi vet at det universelle språket i databehandling er elektrisitet, dette betyr at til slutt hva en datamaskin leser er 0sy 1ja, la oss kalle dette edatamaskin engelsk. I dette eksemplet er spansk den grunnleggende regelen, men som vi vet er ikke spansk som snakkes av latinoer det samme som det som snakkes i Spania, og til og med så er ikke spansk i Peru det samme med spansk i Argentina. Tydeligvis har vi alle nesten de samme ordene (0sy 1s), men bruken og betydningen kan variere i henhold til konteksten.

Dette skjer på prosessornivå. Når vi snakker om databehandlingsarkitekturer, (amd64, intel, arm, ...) vi refererer til dialekten til det datamaskin spansk. Dette er fordi forskjellige selskaper forstår rekkefølgen og betydningen på sin egen måte, så noen varierer i detaljer som strømmen av strømmen eller rekkefølgen de skal holdes i. 0sy 1s.

Disse programmeringsspråkene er ekstremt raske, siden de fungerer på et lavest mulig nivå av programmering, men de er veldig avhengige av arkitekturen og er absolutt litt mer kompliserte å lære enn resten. Disse krever ofte en bredere konseptbase for å transformere dataene og kjøre nyttige ting på den. For elskere av videospill vil et eksempel være SEGA-konsoller, som brukte Assembly for å programmere spillene sine. Åpenbart på den tiden var minnemengden minimal sammenlignet med i dag, og det var nødvendig å mestre et språk som kunne være raskt og produsere lette programmer.

Språk på høyt nivå

Denne store gruppen tenker på de språkene som kom etter Montering. Behovet for å skaffe bærbar kode ga opphav til en gruppe språk som heter kompilert. Blant disse var den første som utnyttet C, som har hatt en overvekt i programmering på operativsystemnivå siden 70-tallet.

Kompilert språk

La oss se et praktisk eksempel på hva jeg kommenterer. La oss se på et veldig enkelt C-språkprogram som skriver ut en linje med kode.

Egen. Christopher Diaz Riveros

Etter å ha samlet det har vi følgende:

Eget design: Christopher Díaz Riveros

Men la oss nå se hva vi må skrive for å replikere det samme resultatet i samlingskode:

Egen. Christopher Diaz Riveros

Dette er oversettelsen av våre 3 kodelinjer fra simple.c, filen simple.s blir opprettet ved hjelp av kommandoen gcc -S simple.c og det er hva prosessoren vår ville forstå i en dialekt Montering. Åpenbart for å lage en kjørbar som består av 0sy 1s filen må behandles simple.s og koble den til de delte bibliotekene i systemet vårt. Dette gjøres ved hjelp av en montør (as) og en kontakt (ld).

Kompilerte språk gir en stor fordel fremfor språk på lavt nivå bærbare. Bærbarhet leverer kode som kan kjøres på forskjellige prosessorer uten behov for å generere spesifikk kode for hver arkitektur. En annen åpenbar fordel er enkelheten den bruker når du leser og skriver kode. Blant de viktigste ulempene har vi høy kompleksitet, siden i forhold til følgende typer språk som vi vil se, kan friheten som C tilbyr være skadelig hvis du ikke vet hvordan du skal kontrollere, er det absolutt som å overlevere en pistol , kan det skje at i mangel på erfaring en person ender opp med å skyte sin egen fot i et forsøk på å rengjøre pistolen.

Tolket språk

Innenfor denne gruppen har vi et stort utvalg av språk, blant de viktigste vi har Python, Ruby, Javascript, PHP, osv ... Den grunnleggende ideen med disse språkene er å gi en rask måte å lage og utføre programmer på , dette er fordi mange av de vanskelige prosessene blir utført i tolken, og programmeringen av logikken er det som er implementert i koden. La oss se på det samme eksemplet ovenfor, men denne gangen skrevet i Python:

Egen. Christopher Diaz Riveros

Blant de mest fremragende tingene kan vi se at første linje har ansvaret for å ringe tolk (programmet som skal utføre søknaden vår) og den påfølgende koden er mer "enkel" enn sin versjon i C, siden alt det tunge arbeidet utføres på tolk.

Egen. Christopher Diaz Riveros

Tolkte språk gir utvikleren et større lag med sikkerhet, siden de har strengere sikkerhetskontroller (PAS PÅ at de ikke er perfekte, siden selv de beste kan gjøre feil) og vi ikke lenger lider risikoen for å skyte et våpen uten å innse det, siden ved første forsøk ville tolken varsle og henrettelsen ville bli kansellert. Den største ulempen blir tydelig når programmet kjøres, siden det er tregere enn dets binære motstykke, dette nettopp på grunn av større prosessering for å kunne sikre at koden fungerer. Hvis programmet ikke krever ekstremt korte tidsfrister, kan forskjellen gå ubemerket, men hvis vi snakker om tusenvis eller millioner av data per sekund, blir forskjellen eksponentielt merkbar i kompilerte språk.

Skrive

Dette er et kjennetegn ved programmeringsspråk, det kan være sterkt svakt skrevet. Jeg kommer til å legge igjen dette emnet for et nytt innlegg, siden det er nødvendig og nysgjerrig å forstå hvordan minne lagres i et program, men foreløpig trenger vi bare å skille ut: Sterkt skrevet språk er de som krever kunnskap om type data som skal bearbeides på en variabel eller konstant, mens svakt typer kan utføre konverteringer slik implisitt og alt vil avhenge av et konverteringshierarki etterfulgt av språket. (hvis det ikke er forstått nå, ikke noe problem, vil vi la det være for senere)

Paradigmer

Som alt i GNU / Linux-verdenen, er programmeringsspråk basert på paradigmer, og samfunn blir generert rundt dem. For eksempel har vi Python Foundation o Rubin o PHP o Bash (i så fall er det GNU-fellesskapet). Det jeg vil komme til med dette er at jeg ikke kan uttrykke det store antallet fordeler og ulemper som hver enkelt har, men jeg kan fortelle deg at der det er et gratis programmeringsspråk, er det et samfunn å lære og delta i. Det er verdt å nevne at mange, hvis ikke alle språktolker er skrevet med C, eller noen nære derivater, og deres utvikling utføres vanligvis av en mindre gruppe av samfunnet, som har ansvaret for å ta beslutninger som vil berøre alle språkbrukere. Institusjoner kan til og med dannes for å sikre riktig språkutvikling, slik tilfellet er med C.

Hvilken skal jeg velge?

Vi har allerede snakket nok om språk, og jeg svarer fortsatt ikke det viktigste 😛. Men jeg håper at etter å ha lest gjennom denne lille artikkelen er det ikke nødvendig for meg å fortelle deg hvilket språk du skal velge, siden du med denne informasjonen er i stand til å lete etter et som genererer nysgjerrighet. Åpenbart hvis du vil lære å programmere på et språk Montering det vil ta lang tid før du kan ha noe funksjonelt, tiden vil reduseres kraftig hvis du velger et kompilert språk, der du i tillegg til å ha portabilitet på * NIX-systemer, vil kunne lære informasjon om driften av samme system, siden det å være i kontakt med C eller derivater får deg til på en eller annen måte å lære hvordan et operativsystem fungerer på en generell måte. Til slutt, hvis du vil lære noe lett og som lar deg gjøre mye uten behov for å forstå mye, er tolket språk en morsom måte å lære og utvikle programmeringsferdigheter på.

Lær med noe spennende

Dette er det beste rådet jeg kan gi deg, hvis du vil lære noe, må du finne noe spennende først, ellers vil det være ganske vanskelig å overvinne den typiske læringskurven til noe programmeringsspråk. Anta at du administrerer systemer, i så fall må du kanskje lære et ideelt språk å scripting (tolket), innenfor disse har vi Perl, Python, Bash, etc etc ... Kanskje dine er spill, det er mange prosjekter på språk som Javascript, Lua, C ++, avhengig av hvilken type spill du vil ha å leke. Kanskje du vil lage et verktøy på systemnivå, siden vi har C, Python, Perl, som du vil se, noen blir gjentatt, og dette er fordi mange språk kan brukes til mange oppgaver, det er derfor definisjonen av flerbruksspråk i de fleste av disse.

Start et prosjekt

Med dette mener jeg ikke at du lager følgende kompilator, eller til og med følgende programmeringsspråk, et prosjekt kan være å fikse en liten feil i favorittprogrammet ditt, kanskje til og med bidra til å forbedre dokumentasjonen. Hvorfor dokumentasjonen? fordi det ikke er noen bedre måte å lære hvordan programvaren fungerer enn ved å lese og hjelpe til med å skrive dokumentasjonen, for etter kildekoden er det den største informasjonskilden du finner om programmet. I et nytt øyeblikk vil vi se hvordan vi kan lese koden til et prosjekt og forstå funksjonene og verdiene de tilegner seg.

Tusen takk for at du kom hit, og som alltid hjelper kommentarene meg med å generere bedre innhold og vite hvor jeg skal fokusere, Hilsen.


37 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   anonym sa

    Som alltid en 10 !!!!!! Takk for artiklene dine. Hilsen og mer som kommer !!!!

    1.    ChrisADR sa

      Tusen takk 🙂 oppfordrer meg til å fortsette å skrive. Jubel

  2.   Rubén sa

    Jeg tror det er feil å stille spørsmålet "hvilket språk å velge?" Jeg er en av dem som mener at språket er det minste av det, det viktigste er å lære det grunnleggende om programmering og å "tenke beregningsmessig." Bestem deg for en syntaks, typen, om den støtter OOP, dens verktøy osv. Jeg tror det er noe som vil komme naturlig i studien, og når alt kommer til alt, vet hver programmerer mer enn 1, 2 og 3 språk ... og takket være programmeringskonseptene (og ikke syntaksen) han har, er han i stand til å programmere på et språk du ennå ikke har opplevd.
    For de innviede tror jeg imidlertid at et godt språk kan være Python for sin enkelhet, men fremfor alt å gå litt lenger, studere algoritmer og vite hvordan ting fungerer "inni".

    Hilsen ChrisADR

    1.    ChrisADR sa

      Hei Rubén, takk for at du delte
      Det er noe jeg har lært over tid i programmeringsverdenen, og det er at "den som dekker mye klemmer ikke" og med denne velkjente setningen mener jeg at mange ganger, og spesielt den mest entusiastiske, bestemmer seg for å prøve alt litt, og har veldig raske svinger når det gjelder å lære å kode. Jeg tror, ​​og det er min personlige mening, at en god utvikler skal kunne og beherske et kompilatorspråk og et tolkespråk, i tillegg til å ha en forestilling om noen forsamlingsdialekt.
      Årsaken er følgende, prototypen må alltid være noe enkelt og raskt, lett å generere og som generelt viser et resultat, men hvis det ikke er nok, må det være en "plan B" å ty til når tolk har kommet til grensen.
      Å kjenne en dialekt av Assembly gir deg ikke bare selvtillit, men lærer deg også å tenke "beregningsmessig", men åpenbart er denne delen den mest kompliserte av alle, og det er absolutt noe som ikke alle programmerere kommer til.
      Men tilbake til temaet, fordi hovedideen jeg tror er, "velg et språk og øv mye", fordi egentlig den eneste måten å bli god på programmering er å lese og skrive kode, og dette er noe jeg har lært av kjernefellesskapet Når du holder den samme syntaksen i lang tid, slutter du å se skjemaet og begynner å bekymre deg for BAKGRUNNEN. Tanken med å velge et språk eller en syntaks fra begynnelsen er at man er i stand til å venne seg til å lese og skrive på en slik måte at man kan begynne å lese BETYDNINGEN av programmet i stedet for syntaksen til programmet.
      Dette er hovedårsaken til dette innlegget, at hver og en velger sitt språk slik at vi i det følgende kan forklare begrepene, kanskje med dette blir tvilen klargjort 🙂
      Hilsen og takk for delingen.

  3.   deibis contraras sa

    takk for innlegget det var bra.

    Hilsen

    1.    ChrisADR sa

      Hei Deibis, takk for at du delte 🙂 Hilsen

  4.   JorgeFS sa

    Mitt råd: noe annet enn PHP. For tjue år siden ga PHP en viss mening i eksistensen på grunn av den høye grad av kompleksitet som programmerte nettet på et annet språk ved hjelp av CGI. Men i dag er det et stort utvalg av rammeverk for å gjøre webutvikling mye morsommere på kraftige språk, for eksempel Django for Python, Spring for Java eller Rails for Ruby. Selv om PHP for øyeblikket vises på alle språkpopulæritetskart, vil PHP etter min mening miste sin relevans over tid.
    Jeg anbefaler på det sterkeste å starte med C \ C ++ for å forstå virkeligheten ved programmering, selv om læringskurven er bratt.
    Hilsener.

    1.    ChrisADR sa

      Hei Jorge, takk for at du delte, bare husket Laravel, som er et ganske solid Framework 🙂 Jeg personlig likte aldri Spring eller Java for webutvikling, jeg synes det er ganske tungvint, men jeg antar at det er en del av tiden de har vært i markedet, da de var pionerer, og absolutt i dag, har moderne alternativer (Js, Python og Ruby) vært i stand til å forbedre måten å presentere kode som er lesbar og modifiserbar uten mye arbeid.
      Jeg er også tilbøyelig til at folk lærer C / C ++ på et eller annet tidspunkt i livet, jeg startet med Java, men jeg antar at det er skjønnheten i programmering, du kan begynne med hva du vil, så lenge du er konsistent vil det vær hjelpsom 🙂 Skål

    2.    Rubén sa

      Jeg kan ikke være uenig lenger. Jeg startet for mange år siden med C og VB, for senere å fokusere på PHP og JS (siden jeg fokuserte på webutvikling) og senere mens jeg studerte lærte jeg C / C ++ og Java hovedsakelig.
      PHP har en rekke fordeler som jeg ikke kunne liste opp i denne meldingen. PHP7 er rask (raskere enn Python ... uten å bruke hhvm, forskjellige cacher, rammer som Phalcon eller bytecode når det gjelder Python), den har et stort antall biblioteker og rammer, den har et stort antall direkte implementerte funksjoner å bruke når som helst, gjør syntaksen så lik C det veldig enkelt å migrere til andre språk.
      30% av nettstedene over hele verden er laget med WordPress (PHP), og det ser ikke ut til å endres, Wikipedia bruker det, Facebook (med hhvm) og et stort antall nettsteder, totalt 80%.

      Jeg minner deg om at Ruby on Rails som Django er 12 år! Hvilken kvote har de oppnådd på denne tiden? Og selvfølgelig snakker vi om to rammer som praktisk talt har monopol og det er ingen type fragmentering. Hvilke andre seriøse alternativer har jeg? Å si at PHP kommer til å miste relevans gir veldig lite mening.

      Nå som Python er på moten fordi den har en rask læringskurve, er det et enkelt språk og de selger det til deg som «bli en programmerer om 20 timer med Python og jobbe med det», med støtte fra selskaper som Google og at det nå er moten til å lete etter nye språk (Go, Dart ....) for å skille deg ut i en CV (eller som den daglige fødselen av 50 rammer for Javascript!), betyr ikke at ting endrer seg.

      Ruby er et veldig interessant språk, men det bryter så mye med etablerte mønstre at jeg synes det er vanskelig å tro at det ble mer populært enn PHP. Selvfølgelig, Ruby, synes jeg er det verste språket å starte programmering av alle.
      Jeg forstår at du forteller meg at Python kan være morsomt å programmere, til og med Ruby med sin uendelige særegenheter ... men vår med Java? Egentlig? Java kan være mange ting ... men morsommere enn Python og PHP?

      Det er veldig bra å starte med Python, men når du holder deg til Python alene, risikerer du at mange selskaper vil tro at nivået på programmering ikke er "dyp" (selv om du er veldig god i Python). Dette er fordi du konkurrerer med andre "multifunksjonelle" språk som C ++ eller Java. Du kan programmere i Python uten å vite forskjellen hva i helvete er en peker, bitvis operasjoner, hvordan en søppeloppsamler fungerer og en lang osv.
      Python er kanskje minst lik "klassisk programmering" som eksisterer og kan sees på som et "barnespråk" (få metaforen), og som igjen er en fordel og en ulempe.

      1.    JorgeFS sa

        "Python er kanskje minst lik" klassisk programmering "som eksisterer og kan sees på som et" språk for barn "(forstå metaforen), og det er igjen en fordel og en ulempe." LOL, dette er en av de morsomste tingene jeg noensinne har sett om Python. Har du noen gang virkelig lært Python?
        Hvor lenge har det vært rundt om i verden utenfor PHP?
        Venn PHP ble født død. PHP (\ d +) har mye belastning på grunn av en veldig dårlig innledende design, og for å opprettholde brukerfellesskapet fortsetter den å dra alle de første designfeilene veldig grundig. PHP ble født uten modularitet, med mange funksjoner i C-stil (som forresten, jeg vet ikke hvor du fikk den fra, siden syntaksen ligner C, den kan lett porteres til andre språk). Et språk på høyt nivå, slik PHP burde oppføre seg, har slike stygge ting som dette sporet av funksjoner som er oppført på det offisielle nettstedet http://php.net/manual/en/indexes.functions.phpDette er fordi den ble født uten modularitet, så alt er skittent blandet og uten navneområder.
        Dette er et stykke PHP-kode:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        på et eller annet tidspunkt kan det bestemmes ut fra hvor alle disse 'stream'-funksjonene ble importert? NEI, du kan da si at de er buildin-funksjoner, men så er hele økosystemet buildin-funksjoner?. Og så er det mye søppel i PHP-koden, hvis du ikke er i stand til å forstå kompleksiteten og ubrukeligheten av en så dårlig design, tilgi meg, men det har fortsatt mye verden å se.
        Wordpress er en utmerket programvareløsning, men dette betyr ikke at den har en god teknologisk base. Du kan hamre med en stein og drive negler ut med tennene, og du kan fortsatt gjøre utmerket tømrerarbeid, men selvfølgelig med mye mer arbeid enn en annen tømrer som bruker en god hammer.

        På den annen side: "bli programmerer på 20 timer med Python og jobbe med det", jeg har aldri sett så dumhet. Du kan opprette et nettsted i PHP på 20 timer og uten å ha kunnskap om hvordan nettprogrammering fungerer, eller selve programmeringen. Faktisk er dette grunnen til at PHP er så populært, fordi nybegynnere som kommer inn i denne verden, ser PHP som et poeng med rask utvikling (det er grunnen til at så mye PHP-kode suger så hardt).
        Når det gjelder Pythons mangler, var den eneste den hadde suksess i å jobbe med pekere, men i alle fall er Python et språk på høyt nivå (som Java), og det bruker ikke disse på syntaksnivå; men bitvis operasjoner, seriøs?, mener du dette x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Jeg forsto søppeloppsamlerens ting seriøst: https://docs.python.org/3/library/gc.html.
        PHP-hull:
        -PHP har en veldig dårlig objektorientert programmeringsdesign (OOP).
        -Du kan ikke overbelaste operatørene ennå.
        -Overraskelse, function overloading i PHP er det ikke det du naturlig nok forventer av dette konseptet.
        … .. og jeg ble bare lei hehe.
        Hilsener.

        1.    Rubén sa

          Jeg satte i parentes "forstå metaforen" (ved sammenligning av Python med C ++ / Java i samme arbeidsmiljø), det er klart at du ikke forsto det. Jeg kunne fortelle deg at en C ++ programmerer kan lære Python på en mye raskere måte enn en Python programmerer kan lære C ++, akkurat som det ikke er overraskende at gjennomsnittslønnen til en C / C ++ programmerer er høyere enn en Python.
          Jeg kunne forklare det for deg med andre eksempler, selv med tegning! men det ser ut til at du bare fokuserer på å dekontekstualisere og latterliggjøre det jeg legger.

          På ingen tid har jeg sagt at PHP er det beste språket i verden, eller at det har et eksemplarisk design, jeg vet ikke hvor du får det fra. Jeg tror at før du vurderer andres kunnskap, bør du forbedre leseforståelsen din. Det som er sant (og jeg sa i meldingen min) er at det å utvikle seg med det er veldig smidig, i tillegg til hele økosystemet med rammer, biblioteker og verktøy du kan finne.
          Hva slags sammenligning gjør vi også? Python som et flerbruksspråk eller for nettet? I så fall, hvorfor sammenligner vi det med PHP? PHP har et bestemt felt, og det er i det feltet der Python (med en andel på 0.2%, som ikke har endret seg hele året) blekner ved siden av PHP.
          La oss nå se PHP-trender; fra 82,4% i januar 2017 til 83.1% i januar 2018: https://w3techs.com/technologies/history_overview/programming_language

          Kommer Python til å trone PHP? I hvilket år? på hvilke fem år? tiår?
          Python vil kunne brukes i mange andre oppgaver, og til og med bli mer brukt enn PHP, men Python som et webutviklingsspråk er lysår unna å være til og med relevant, 0.2% stopper mot 83.1% (med en økning i år) .

          Du tar også ting for gitt ved å si at jeg ikke går rundt utenfor PHP, og antyder at jeg bare kjenner til PHP, når nettopp jeg ikke har programmert i PHP på lenge haha. For øyeblikket programmerer jeg av arbeidsgrunner for det meste i Java.
          Jeg har heller ikke sagt at du ved å programmere i Python ikke har kunnskap om bitvis, en søppeloppsamler eller en peker. Snarere kan du programmere i Python uten å vite hva dette er. Imidlertid tviler jeg sterkt på at det ville være tilfelle for en C ++ programmerer. Og tydeligvis gjør jeg sammenligningen når Python går inn i feltet "flerbruksspråk", ikke for webprogrammering.

          Bli programmerer på 20 timer er rett og slett en spøk, en overdrivelse. Imidlertid kan jeg sette deg her forskjellige lenker om online utdanningsplattformer og kurs som lover lignende ting. Ikke klandre meg, skyld det på et arbeidsmarked som mener at det å bli en "ekspert programmerer" er et spørsmål om å ta et 20-timers kurs. Og Python er et av de fasjonable språkene, og også med den raskeste læringskurven ... hvit og i en flaske.

          Jeg insisterer, du baserer meldingen din på å si hvor dårlig PHP er (som jeg til en viss del er enig). Det virker riktig for meg, bortsett fra at meldingen min ikke handler om det, men hvorfor PHP kommer til å fortsette å bli brukt, og den vil ikke forsvinne i morgen som du tror.

          En hilsen

  5.   ingen sa

    C -> Gå -> (Lisp | Haskell | Java | hva som helst)

    1.    ChrisADR sa

      Nylig sendte en leser meg en anbefaling om en Go-bok til e-posten min, absolutt et språk å ta hensyn til i fremtiden, og som det kanskje vil være et innlegg om her 🙂 Mange grafikk å dele

  6.   mvr1981 sa

    Vel ... og hva programmerer jeg? Hvorfor lære et programmeringsspråk i dag med så gode og erfarne programmerere som allerede eksisterer? Hvilke problemer kan jeg løse som andre ikke allerede har løst på en mye mer effektiv måte? ... Kort sagt: Hvor originalt er det å være programmerer i dag? Hvordan kan jeg samarbeide med andre uten å bli sparket eller ekskludert av min mangel på kunnskap og erfaring?

    1.    ChrisADR sa

      Hei mvr1981, veldig interessante spørsmål 🙂 vi skal spole dem fra den siste til den første.

      Hvordan kan jeg samarbeide med andre uten å bli sparket eller ekskludert av min manglende kunnskap og erfaring?

      Hvis du ikke vil bli sparket, er det første trinnet å lære prosessen, du kan ikke forestille deg antall mennesker som kommer til prosjekter som ønsker å gjøre ting utelukkende på sin måte, og som vil at samfunnet skal tilpasse seg deres ønsker. Det er absolutt som om jeg kommer hjem til deg og gjør et rot og respekterer familien din (slik føles det mange ganger). Hvis du vil forhindre at dette skjer, må du følge nøye med retningslinjene for å bidra, hvordan du kan gjøre det, og ikke sende noe ufullstendig. Hvis du trenger hjelp, er det alltid kommunikasjonsmidler, men en dårlig utført jobb vil sannsynligvis skape dårlige førsteinntrykk. Hvis du ikke vil ekskludere deg selv som er opp til deg, kan du se ham som den ubrukelige programmereren som ikke vet hva han gjør eller den som er på vei til å bli en utmerket programmerer, og det skjer bare med praksis og absolutt med bugs underveis. Jeg har tatt feil mange ganger før jeg fikk utviklerstatusen min på Gentoo, og det hindret meg ikke i å prøve til tross for "dårlig tid" 🙂.

      Hvor originalt er det å være programmerer i dag?

      -Det handler ikke om originalitet, det er en nødvendighet i dag, bare tenk på følgende, for 20 eller 30 år siden, å skrive var en nødvendighet, mange jobber utledte at du visste eller i det minste kunne gjøre det. I dag å vite at Office er en nødvendighet, er det praktisk talt ingen jobb som ikke gir deg foran Office-dokumenter. I morgen, veldig snart, vil programmering være en nødvendighet. Og dette gjelder også fra et personlig synspunkt. Å vite hva som skjer i programmene du overlater ting som er like viktige som pengene dine, helsen, familien din, er noe logisk for meg, fordi du bare kan vite begrensningene deres hvis du vet hvordan de fungerer og for for å vite det, må du vite hvordan du programmerer.

      Hvilke problemer kan jeg løse som andre ikke allerede har løst på en mye mer effektiv måte?

      -Du vil bli overrasket over mengden av egenskaper som kreves i dag, og for å si sannheten, spiller det ingen rolle at det er de beste programmererne i verden i samfunnet. Arbeidet vil alltid være større enn utviklernes arbeidskapasitet, jeg kan bekrefte dette i Gentoo, der er mennesker som utvikler kjernen, folk som jobber for Google, Sony, etc etc ... det eneste vi alle har til felles er at ingen har så mye tid som de ønsker å kunne gjøre alt det ventende arbeidet.

      Hvorfor lære et programmeringsspråk i dag med så gode og erfarne programmerere som allerede eksisterer?

      -Dette blir besvart i det andre spørsmålet 😉 Men nå kan jeg legge til at generasjoner må kunne støtte arbeidet som allerede er utviklet, med dette mener jeg at de "erfarne" utviklerne gradvis vil forsvinne og det vil være nødvendig for " yngre »Utviklere tar ansvar og hjelper til med å holde liv i syklusen, et samfunn som ikke har unge og uerfarne mennesker er tilbøyelige til å forsvinne over tid, nettopp fordi det ikke vil være mulighet til å overføre kunnskap.

      Og hva planlegger jeg?

      -Dette er kanskje det vanskeligste å svare på, men jeg prøver å gi deg et eksempel poco. Jeg begynte nylig å lide av problemer med GNOME 24 og forbindelsen til Wayland som forhindrer programmer som Shutter i å ta skjermbilder. Dette er et problem for meg fordi når jeg skriver artiklene mine, må jeg vise deg hva jeg sier 🙂 Jeg så meg litt rundt til GNOME Screenshot-applikasjonen, litt "minimalistisk" for å si det mildt. Blant funksjonene er det å ta et skjermområde, men hva skjer hvis jeg ikke tok bildet bra? Vel, jeg må gå og gå inn i programmet igjen, noe kjedelig absolutt, en knapp som sier «Gjenopptak» eller noe sånt som gjør at jeg kan ta et nytt bilde uten å måtte gå og gå inn igjen vil hjelpe meg. Det er en liten programmeringsprosjekt, har jeg aldri programmert noe i GNOME-rammeverket, så åpenbart har jeg mye å lære før jeg sender "lappen" med den nye knappen, men underveis lærer jeg å programmere og forhåpentligvis dette funksjonen det vil være til hjelp for mer enn én når det er tilgjengelig for alle.

      Dette er et eksempel, det er noe enkelt og at sikkert enhver annen "ekspert" programmerer kunne ha gjort det allerede, men på grunn av tydelig mangel på tid har det ikke vært slik, nå er jeg den som har muligheten til å gjøre det, uten å faktisk være en super Programmerer.

      Nå er det bare opp til deg å finne noe som vil gjøre livet ditt "enklere" i den programvaren du bruker så ofte, det fine med det er at hvis vi følger rådene jeg skal gi deg i de følgende artiklene, vil ikke språket ha noe å si Du vil vite det grunnleggende for å begynne å forstå koden du leser og endre den for å gjøre det du vil, det er en veldig spesiell følelse 🙂

      Hilsen og takk igjen

      1.    ingen sa

        Jeg tror at det bare når jeg har åpnet gnome-opptaksprogrammet, er det enkleste å gå til hurtigtastene og tildele tre kombinasjoner utskrift for å fange all alt-utskrift for å fange det aktive vinduet og superutskrift for å gjøre et valg fra opptaket region, de tilgjengelige snarveiene er her, er det bare å tilordne dem

        1.    ChrisADR sa

          Derfor gir vi deg et eksempel 🙂 fordi små ting som den knappen programmerer, kan de hjelpe noen, da de kan gå ubemerket av andre, men de oppfyller absolutt hovedmålet, hjelper deg med å lære å programmere og vike for nye funksjoner, Etter den knappen kan mange ting startes, for eksempel en øktadministrasjon, eller en forhåndsvisning av alle bildene som er tatt, eller kort sagt mange ting som kan gjøres. Tanken er at du finner noe som får deg til å hoppe over nysgjerrigheten din. Programvare som kjører på systemet ditt kan trenge forbedringer eller nye funksjoner som på grunn av mangel på tid eller personell ikke er implementert ennå 🙂

      2.    mvr1981 sa

        Takket være deg. er veldig gode svar.

    2.    Bill sa

      Vel, for noen som ikke skal være profesjonelle i feltet, ville det være nødvendig å se i hvilket miljø de jobber, både for administrative oppgaver og direktiver, det kan være interessant å vite, for eksempel Python / Basic og vite hvordan man kan programmere makroer i kontorpakker som LibreOffice eller MS Office. Det er tider når dette kan spare mange timer arbeid for deg eller andre arbeidstakere som omgir deg og ber dem om å utføre en gjentatt oppgave. Du kan opprette et dashbord for raskt å beregne hovedforholdene til selskapet etter å ha koblet til databasen av det og utfør noen SQL-spørringer.
      Som alt, hvis du kjenner verktøyene innen fingertuppene, kan du tenke på hvordan du får mest mulig ut av det. Ikke alt er sminket.

  7.   Marcelo sa

    Guillermo, helt enig med deg, "Ikke alt er oppfunnet" og det som er oppfunnet er modifiserbart. Du må få mest mulig ut av verktøyene og bruke den som passer best for dine behov.

  8.   Ricardo sa

    For programmering er det første språket å lære engelsk, deretter det som appellerer mest til dem og virker vakrest for dem.

    1.    ChrisADR sa

      Jeg hadde ikke skrevet det, men sant 🙂 å vite engelsk hjelper mye siden de fleste språk er skrevet i den, men også fordi større mengde førstehåndsinformasjon også Tusen takk for at du delte

  9.   Ruben salgado sa

    Utmerket artikkel, i tillegg til å motivere.

    1.    ChrisADR sa

      Veldig snill, tusen takk 🙂 Hilsen

  10.   Gonzalo martinez sa

    Programmering er å vite hvordan man resonnerer og oversetter resonnementet til instruksjoner.

    To presiseringer om artikkelen:

    1) Basert på min erfaring som programmeringslærer i nesten 10 år, spiller det ingen rolle hvilket språk du lærer med, men hvordan du lærer og hvor kompleks det er.

    Jeg tror at et språk som kan læres på en strukturert måte, og deretter gå videre til andre mer komplekse ting, er lettere enn å starte med et språk som Java fra begynnelsen.

    Det er lettere å lære noe sånt som en Hello World i C eller Pascal som base, enn med noen få linjer (PROGRAM i tilfelle Pascal, eller #include I tilfelle C) kan du begynne å utvikle algoritmen og kode programmet med logikken direkte, som i Java, som i seg selv trenger en klasse, en metode og noen andre ting som for en nybegynner er unødvendig informasjonsoverbelastning, og det kan godt være ignorert og gå videre til andre ting, men de er begreper som er der, og etter min mening er det ikke en god måte å lære å se på ting, spesielt hvis språket tvinger deg til å bruke dem. Det er som å starte måløvelse for første gang med en M-16, og skyte i flere måneder i halvautomatisk modus mens du holder håndtaket med begge hender som en pistol.

    2) Hvorvidt et språk tolkes eller kompileres, avhenger av implementeringen, ikke av språket. For eksempel, hvis Python brukes til en webapp som bruker wsgi (enten mod_wsgi i apache, eller uwsgi for Nginx), blir python-koden kompilert når du starter den tilsvarende modulen, og genererer .pyc-filer

    Det er også binære filgeneratorer for java (som genererer innfødte binære filer i stedet for bytekode), eller kompilatorer av php-skript i rene binærfiler.

    Når det gjelder hva de sier om PHP, er det rett og slett et språk designet i en annen tid, med andre ting i tankene, og uten å ta i betraktning aspekter som ikke eksisterte på den tiden. Det faktum at det er mest brukt, gjør det klart ikke det beste for noe i verden, men det er en realitet: det er språket som det er størst sjanse for å få jobb i all programmering. Å vite at det ikke gjør vondt, selv om du ikke liker det.

    Selv har jeg jobbet som systemadministrator i flere år og forlatt jobben som utvikler, hver gang så ofte må jeg sette PHP-kode i noe.

    1.    ChrisADR sa

      Hei Gonzalo, takk for at du delte,

      Absolutt å snakke om unødvendig informasjonsoverbelastning, å vite at det samme språket kan tolkes eller kompileres er noe som ikke er nødvendig på dette stadiet. 🙂 Visstnok er implementeringen viktig, men hvis vi sier at på dette nivået, genererer vi ikke mer enn forvirring. På samme måte blir ikke objektorienterte programmeringsspørsmål tatt opp, eller andre konsepter som må doseres gradvis for ikke å bli svimmel.

      Siden plassen er begrenset, er hovedmålet med innlegget å vise lesere som ønsker å programmere at det er to store verdener av språk, at de "tradisjonelt" tolket er mer "enkle", at de "tradisjonelt" kompilert er litt mer "komplekst", men at det er verdt det nivået av kompleksitet å ha en mer solid forståelse og at det er opp til hver person å velge språk, siden avhengig av programmeringsmetoden, vil de kunne velge sine favorittprosjekter og samtidig vil de kunne forstå hva de leser og / eller skriver 🙂

      Tusen takk igjen, hilsen.

      1.    Gonzalo martinez sa

        Dette er en feil, det er ingen kompilert eller tolket språk, det er tolker og kompilatorer for hvert språk, begge for forskjellige tilfeller.

        Det er ikke en informasjonsoverbelastning å nevne det nå, det er en feil å komme med en slik uttalelse. Etter min mening hadde det vært mer produktivt å ignorere tolkene hvis du ikke ønsket å overbelaste med informasjon.

        1.    ChrisADR sa

          Takk for avklaringen, jeg vil ta det i betraktning når jeg kommer tilbake til emnet. Jubel

  11.   Ares sa

    Hvilket språk anbefaler du for serversiden med tanke på at php falt i unåde?
    Det samme for databaser, jeg vet ikke om det vil være noe bedre og mer moderne enn mySQL.

    1.    ChrisADR sa

      PHP har ikke falt i favør ... Hvert språk har sin livssyklus, og php er absolutt allerede et språk som kommer inn i skalaen "moden", noe som gjør det nyttig på forretningsnivå, hvor stabilitet er fremfor alt ... Som noen banker der den fremdeles er utviklet i java, som er mer "moden" enn php og absolutt har sine tilhengere og motstandere ... Og for ikke å nevne COBOL ...

      Hvis det du leter etter er ensartethet og modernitet, blir javascript en av favorittene til de såkalte "full stack-utviklerne", selv om rubinparadigmet eller "enkelheten" til python også er gode referanser…. Selv perl kan være alternativet avhengig av behov 🙂

      I dag tar ORM (objektrelasjonskartleggere) mye kraft når det gjelder relasjonsdataadministrasjon. Det går fra SQL-syntaks til klasse- og attributthåndtering ... Nesten alle språk (om ikke alle) håndterer noe ORM.

      . Mongo DB er et alternativ til relasjonsdatabaser som har blitt ganske viktig, men det er nødvendig å kjenne fordelene og ulempene og validere om det ville være den beste løsningen avhengig av det spesifikke behovet.

      Jeg håper det hjelper deg, hilsen 🙂

      1.    Ares sa

        Takk, jeg skal sjekke det.

      2.    Ares sa

        Jeg glemte.

        Hva anbefaler du meg å jobbe med JAVA i Linux?
        Hvis du bedre kan skille mellom gratis og lukket.

        1.    ChrisADR sa

          Eclipse og NetBeans er åpen kildekode. Jeg er ikke sikker på om det er noe som er rent programvare. Jeg har en vane med å bruke vim fordi noen ganger gjør mengden kode det å bruke en hel IDE sakte og utsatt for kjøringsfeil. Hilsen 🙂

        2.    paulzeta sa

          For å jobbe med java i Linux bruker jeg IntelliJ, jeg anbefaler deg.

          1.    ChrisADR sa

            PS, IntelliJ er proprietær programvare 🙂

  12.   je sa

    Gutta husker også at ... Jeg jobber i en bank, og jeg forteller deg at programmeringsspråk tar baksetet for å la SQL og Stored prosedyrer gå først.

    1.    Gonzalo martinez sa

      Du må ta dem i betraktning de lagrede prosedyrene, men ved ikke å bruke et bærbart språk mellom motorer, i det minste i min erfaring, handler det alltid om å unngå dem med mindre det ikke er noe annet alternativ.