Valg af dit første programmeringssprog

Bestemt dette er et af de spørgsmål, der kommer mest til min indbakke, når jeg taler om programmering. Hvis vi skal starte en serie af artikler, der giver dig mulighed for at lære at programmere og give tilbage gratis viden i form af bidrag til gratis software / open source-samfund rundt om i verden, er det nødvendigt at besvare dette grundlæggende, hvis det er lidt vanskeligt spørgsmål. Hvilket programmeringssprog skal jeg lære?

Lidt historie

For at begynde at forstå og vælge et programmeringssprog skal vi først vide lidt om deres historie, deres anvendelser og funktioner, og hvordan de løser forskellige behov over tid.

Maskinsprog (lavt niveau)

Almindeligt kendt som Assembly, er programmeringssprog, som vi kunne definere som dialekter af et mere generelt sprog ... Dette lyder lidt kompliceret, men jeg vil eksemplificere det ... Vi ved, at det universelle sprog til computing er elektricitet, betyder det, at i sidste ende hvad en computer læser er 0sy 1ja, lad os kalde det ecomputer engelsk. I dette eksempel er spansk den grundlæggende regel, men som vi ved godt, er det spansk, der tales af latinos, ikke det samme som det spansk, der tales i Spanien, og selv da er spansk fra Peru ikke det samme som spansk fra Argentina. Naturligvis har vi alle næsten de samme ord (0sy 1s), men brugen og betydningen kan variere alt efter kontekst.

Dette sker på processorniveau. Når vi taler om computerarkitekturer, (amd64, intel, arm, ...) vi henviser til dialekten af ​​det computer spansk. Dette skyldes, at forskellige virksomheder forstår rækkefølgen og betydningen på deres egen måde, så nogle varierer i detaljer såsom strømmen af ​​strømmen eller den rækkefølge, som de skal gemmes i. 0sy 1s.

Disse programmeringssprog er ekstremt hurtige, da de fungerer på det lavest mulige niveau af programmering, men de er meget afhængige af arkitekturen og er bestemt lidt mere komplicerede at lære end resten. Disse kræver ofte en bredere konceptbase for at transformere dataene og køre nyttige ting på dem. For elskere af videospil ville et eksempel være SEGA-konsoller, som brugte Assembly til at programmere deres spil. Det var klart, at mængden af ​​hukommelse på det tidspunkt var minimal sammenlignet med i dag, og det var nødvendigt at mestre et sprog, der kunne være hurtigt og producere lette programmer.

Sprog på højt niveau

Denne store gruppe overvejer de sprog, der kom efter Assembly. Behovet for at få bærbar kode førte til fremkomsten af ​​en gruppe kaldte sprog samlet. Blandt disse var den første til at drage fordel af C, som har domineret programmering på operativsystemniveau siden 70'erne.

Kompilerede sprog

Lad os se et praktisk eksempel på, hvad jeg kommenterer. Lad os se på et meget simpelt C-sprogprogram, der udskriver en linie kode.

Egen. Christopher Diaz Riveros

Efter kompilering har vi følgende:

Eget design: Christopher Díaz Riveros

Men lad os nu se, hvad vi skulle skrive for at replikere det samme resultat i samlingskode:

Egen. Christopher Diaz Riveros

Dette er oversættelsen af ​​vores 3 kodelinjer fra simple.c, filen simple.s oprettes ved hjælp af kommandoen gcc -S simple.c og det er, hvad vores processor ville forstå i en dialekt Assembly. Naturligvis for at oprette en eksekverbar, der består af 0sy 1s filen skal behandles simple.s og forbinde den med de delte biblioteker i vores system. Dette gøres ved hjælp af en montør (as) og en stik (ld).

Kompilerede sprog giver en stor fordel i forhold til sprog på lavt niveau bærbare. Bærbarhed leverer kode, der kan udføres på forskellige processorer uden behov for at generere specifik kode til hver arkitektur. En anden åbenbar fordel er den enkelhed, den bruger, når man læser og skriver kode. Blandt de største ulemper har vi en høj kompleksitet, da den frihed, som C tilbyder, kan være skadelig, hvis du ikke ved, hvordan du styrer, sammenlignet med den næste type sprog, som vi vil se, det er bestemt som at levere en pistol, det kan ske, at i mangel af oplever, at en person ender med at skyde sin egen fod i et forsøg på at rense pistolen.

Fortolkede sprog

Inden for denne gruppe har vi et stort udvalg af sprog, blandt de vigtigste har vi Python, Ruby, Javascript, PHP osv ... Grundidéen med disse sprog er at give en hurtig måde at oprette og udføre programmer på, det er fordi mange af de vanskelige processer udføres i tolken, og programmeringen af ​​logikken er det, der er implementeret i koden. Lad os se på det samme eksempel ovenfor, men denne gang skrevet i Python:

Egen. Christopher Diaz Riveros

Blandt de mest fremragende ting kan vi se, at den første linje er ansvarlig for at ringe til tolk (programmet, der udfører vores ansøgning), og den efterfølgende kode er mere "enkel" end dens version i C, da alt det tunge arbejde er udført på tolk.

Egen. Christopher Diaz Riveros

Fortolkede sprog giver udvikleren et større lag af sikkerhed, da de har strengere sikkerhedskontrol (PAS PÅ, at de ikke er perfekte, da selv de bedste kan begå fejl), og vi ikke længere risikerer at skyde et våben uden at indse det siden ved første forsøg ville tolk oprette en alarm, og henrettelsen ville blive annulleret. Den største ulempe bliver tydelig, når programmet udføres, da det er langsommere end dets binære modstykke, netop på grund af den større mængde behandling for at sikre, at koden fungerer. Hvis programmet ikke kræver ekstremt korte deadlines, kan forskellen gå ubemærket hen, men hvis vi taler om tusinder eller millioner af data pr. Sekund, bliver forskellen eksponentielt synlig på kompilerede sprog.

Indtastning

Dette er et kendetegn ved programmeringssprog, det kan være stærkt svagt skrevet. Jeg vil efterlade dette emne til et andet indlæg, da det er nødvendigt og nysgerrig at forstå, hvordan hukommelse gemmes i et program, men for øjeblikket behøver vi kun at skelne mellem hinanden: Stærkt indtastede sprog er de, der kræver at kende typen af ​​data, der skal der skal arbejdes på en variabel eller konstant, mens svagt typer kan udføre konverteringer så implicit og alt afhænger af et konverteringshierarki efterfulgt af sproget. (hvis det ikke forstås nu, er der ikke noget problem, vi forlader det til senere)

Paradigmer

Som alt i GNU / Linux-verdenen er programmeringssprog baseret på paradigmer, og der genereres samfund omkring dem. For eksempel har vi Python Foundation o Rubin o PHP o Bash (i hvilket tilfælde det er GNU-samfundet). Hvad jeg vil komme til med dette er, at jeg ikke kan udtrykke det store antal fordele og ulemper, som hver enkelt har, men jeg kan fortælle dig, at hvor der er et gratis programmeringssprog, er der et samfund, hvor du kan lære og deltage. Det er værd at nævne, at mange, hvis ikke alle sprogfortolkere er skrevet i C eller nogle tætte afledte, og deres udvikling udføres normalt af en mindre gruppe af samfundet, der har ansvaret for at tage beslutninger, der påvirker alle sprogbrugere. Institutioner kan endda dannes for at sikre den korrekte sprogudvikling, som det er tilfældet med C.

Hvilket skal man vælge?

Vi har allerede talt nok om sprog, og jeg svarer stadig ikke det vigtigste 😛. Men jeg håber, at efter at have gennemgået denne lille artikel, er det ikke nødvendigt for mig at fortælle dig, hvilket sprog du skal vælge, da du med disse oplysninger er fuldt ud i stand til at lede efter et, der skaber nysgerrighed. Naturligvis hvis du vil lære at programmere på et sprog Assembly det vil tage lang tid, før du kan have noget funktionelt, tiden reduceres kraftigt, hvis du vælger et kompileret sprog, hvor du ud over at kunne overføre i * NIX-systemer vil være i stand til at lære information om driften af ​​det samme system, da du er i kontakt med C eller derivater får dig til på en eller anden måde at lære, hvordan et operativsystem fungerer generelt. Endelig, hvis du vil lære noget let, og som giver dig mulighed for at gøre meget uden behov for at forstå meget, er fortolkede sprog en sjov måde at lære og udvikle programmeringsfærdigheder på.

Lær med noget spændende

Dette er det bedste råd, jeg kan give dig, hvis du vil lære noget, skal du først finde noget spændende, ellers vil det være ret vanskeligt at overvinde den typiske indlæringskurve for ethvert programmeringssprog. Antag at du administrerer systemer, i så fald skal du muligvis lære et ideelt sprog til scripting (fortolket), inden for disse har vi Perl, Python, Bash osv. osv. Måske er dine spil, der er mange projekter på sprog som Javascript, Lua, C ++, afhængigt af hvilken type spil du vil spille. Måske vil du gerne oprette et værktøj på systemniveau, da vi har C, Python, Perl, som du vil se, gentages nogle, og det er fordi mange sprog kan bruges til mange opgaver, det er derfor definitionen af multifunktionelle sprog i de fleste af disse.

Start et projekt

Med dette mener jeg ikke, at du opretter følgende kompilator eller endda følgende programmeringssprog, et projekt kan være at rette en lille fejl i dit yndlingsprogram, måske endda hjælpe med at forbedre dokumentationen. Hvorfor dokumentationen? fordi der ikke er nogen bedre måde at lære, hvordan softwaren fungerer, end ved at læse og hjælpe med at skrive dens dokumentation, for efter kildekoden er det den største kilde til information, du finder om programmet. I et andet øjeblik vil vi se, hvordan man læser koden for et projekt og forstår de funktioner og værdier, de erhverver.

Mange tak for at komme her, og som altid hjælper dine kommentarer mig med at generere bedre indhold og vide, hvor jeg skal fokusere, hilsner.


37 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Anonymous sagde han

    Som altid en 10 !!!!!! Tak for dine artikler. Hilsner og mere der kommer !!!!

    1.    ChrisADR sagde han

      Mange tak 🙂 opfordrer mig til at fortsætte med at skrive. Skål

  2.   Ruben sagde han

    Jeg synes, det er en fejltagelse at stille spørgsmålet "hvilket sprog man skal vælge?" Jeg er en af ​​dem, der synes, at sprog er mindst af det, det vigtige er at lære det grundlæggende ved programmering og "tænke beregningsmæssigt." Beslut om en syntaks, dens indtastning, hvis den understøtter OOP, dens hjælp osv. Jeg tror, ​​det er noget, der kommer naturligt i undersøgelsen, og trods alt kender enhver programmør mere end 1, 2 og 3 sprog ... og takket være de programmeringskoncepter (og ikke syntaks), han har, er han i stand til at programmere på et sprog, du endnu ikke har oplevet.
    Men for de indviede tror jeg, at et godt sprog kan være Python for sin enkelhed, men frem for alt gå lidt længere, studere algoritmer og vide, hvordan ting fungerer "indeni".

    Hilsen ChrisADR

    1.    ChrisADR sagde han

      Hej Rubén, tak for din deling
      Der er noget, jeg har lært over tid i programmeringsverdenen, og det er, at "den, der dækker meget, ikke klemmer" og med denne velkendte sætning mener jeg, at mange gange, og især de mest entusiastiske, beslutter at prøv alt lidt, og få meget hurtige vendinger med hensyn til, hvordan du lærer at kode. Jeg tror, ​​og det er min personlige mening, at en god udvikler skal kende og beherske et kompilatorsprog og et tolkesprog ud over at have en forestilling om en eller anden forsamlingsdialekt.
      Årsagen er følgende, prototypen skal altid være noget simpelt og hurtigt, let at generere, og som generelt viser et resultat, men hvis det ikke er nok, skal der være en "plan B" at ty til, når tolk er ankommet til dens grænse.
      At kende en dialekt af forsamlingen giver dig ikke kun tillid, men lærer dig også at tænke "beregningsmæssigt", men selvfølgelig er denne del den mest komplicerede af alle, og det er bestemt noget, som ikke alle programmører kommer til.
      Men tilbage til emnet, fordi hovedidéen, som jeg synes er, "vælg et sprog og øv meget", fordi den eneste måde at blive god til programmering er ved at læse og skrive kode, og det er noget, jeg har lært af kernel community Når du holder den samme syntaks i lang tid, holder du op med at se formularen og begynder at bekymre dig om BAGGRUNDEN. Ideen med at vælge et sprog eller en syntaks fra starten er, at man er i stand til at vænne sin læsning og skrivning på en sådan måde, at man kan begynde at læse BETYDNINGEN af programmet i stedet for programmets syntaks.
      Dette er hovedårsagen til dette indlæg, at hver enkelt vælger deres sprog, så vi i det følgende kan forklare begreberne, måske med dette bliver tvivlen klaret 🙂
      Hilsner og tak for deling.

  3.   deibis contraras sagde han

    tak for stillingen, det var godt.

    hilsen

    1.    ChrisADR sagde han

      Hej Deibis, tak for at dele 🙂 Hilsner

  4.   JorgeFS sagde han

    Mit råd: alt andet end PHP. For 20 år siden gav PHP en vis mening i sin eksistens på grund af det høje niveau af kompleksitet, der programmerede Internettet på et andet sprog ved hjælp af CGI. Men i dag er der et stort udvalg af rammer, der gør webudvikling meget sjovere på stærke sprog, såsom Django til Python, Spring til Java eller Rails til Ruby. Selvom PHP i øjeblikket vises på alle sproglige popularitetskort, vil PHP efter min mening miste sin relevans over tid.
    Jeg anbefaler kraftigt at starte med C \ C ++ for at forstå virkeligheden ved programmering, selvom indlæringskurven er stejl.
    Greetings.

    1.    ChrisADR sagde han

      Hej Jorge, tak for at du delte, bare husker Laravel, som er en ret solid ramme personally Jeg kunne personligt aldrig lide Forår eller Java til webudvikling, jeg finder det ret besværligt, men jeg antager, det er en del af den tid, de har været i markedet, på det tidspunkt, hvor de var pionerer, og helt sikkert i dag, har moderne alternativer (Js, Python og Ruby) været i stand til at forbedre måden at præsentere kode, der er læselig og modificerbar uden meget arbejde.
      Jeg er også tilbøjelig til, at folk lærer C / C ++ på et eller andet tidspunkt i deres liv, jeg startede med Java, men jeg antager, at det er skønheden ved programmering, du kan starte med hvad du vil, så længe du er konsistent, vil det vær hjælpsom 🙂 Skål

    2.    Ruben sagde han

      Jeg kan ikke være uenig mere med dig. Jeg startede for mange år siden med C og VB for senere at fokusere på PHP og JS (siden jeg fokuserede på webudvikling) og senere, mens jeg studerede, lærte jeg C / C ++ og Java primært.
      PHP har en række fordele, som jeg ikke kunne nævne i denne meddelelse. PHP7 er hurtig (hurtigere end Python ... uden brug af hhvm, forskellige cacher, rammer som Phalcon eller bytecode i tilfælde af Python), den har et stort antal biblioteker og rammer, den har et stort antal direkte implementerede funktioner til brug til enhver tid, Dens C-lignende syntaks gør det meget let at migrere til andre sprog.
      30% af hjemmesiderne over hele verden er lavet med WordPress (PHP), og det ser ud til ikke at ændre sig, Wikipedia bruger det, Facebook (med hhvm) og et stort antal sider i alt 80%.

      Jeg minder dig om, at Ruby on Rails som Django er 12 år! Hvilken kvote har de opnået i denne tid? Og selvfølgelig taler vi om 2 rammer, der praktisk talt har monopol, og der er ingen form for fragmentering. Hvilke andre seriøse alternativer har jeg? At sige, at PHP mister relevans, giver meget lidt mening.

      Nu hvor Python er på mode, fordi det har en hurtig indlæringskurve, er det et simpelt sprog, og de sælger det til dig som «bliver programmør om 20 timer med Python og arbejder på det» med støtte fra virksomheder som Google og at der nu er mode at lede efter nye sprog (Go, Dart ....) til at differentiere dig selv i et CV (eller som den daglige fødsel af 50 rammer til Javascript!), betyder ikke, at tingene ændrer sig.

      Ruby er et meget interessant sprog, men det bryder så meget med etablerede mønstre, at jeg har svært ved at tro, at det blev mere populært end PHP. Selvfølgelig synes jeg Ruby er det værste sprog at starte programmering af alle.
      Jeg forstår, at du fortæller mig, at Python kan være sjovt at programmere, selv Ruby med sine mange særegenheder ... men Spring med Java? Virkelig? Java kan være mange ting ... men sjovere end Python og PHP?

      Det er meget godt at starte med Python, men når du holder dig til Python alene, risikerer du, at mange virksomheder vil tro, at dit programmeringsniveau ikke er "dybt" (selvom du er meget god til Python). Dette skyldes, at du konkurrerer med andre "multifunktionelle" sprog som C ++ eller Java. Du kan programmere i Python uden at vide forskellen, hvad i helvede er en markør, bitvise operationer, hvordan en affaldssamler fungerer og en lang osv.
      Python ligner måske mindst "klassisk programmering", der findes og kan ses som et "børnesprog" (få metaforen), og det er igen en fordel og en ulempe.

      1.    JorgeFS sagde han

        "Python ligner måske mindst 'klassisk programmering', der findes og kan ses som et 'børnesprog' (få metaforen), og det er igen en fordel og en ulempe." LOL, dette er en af ​​de sjoveste ting, jeg nogensinde har set sagt om Python. Har du nogensinde virkelig lært Python?
        Hvor lang tid har det været rundt om i verden uden for PHP?
        Ven PHP blev født død. PHP (\ d +) har en stor byrde med det på grund af et meget dårligt indledende design, og for at opretholde brugerfællesskabet fortsætter det med at trække alle disse indledende designfejl meget grundigt. PHP blev født uden modularitet med mange C-stilfunktioner (som forresten jeg ikke ved, hvor du har det fra, da dens syntaks ligner C, det kan let overføres til andre sprog). Et sprog på højt niveau, som PHP skal opføre sig, har så grimme ting som dette spor af funktioner, der er anført på dets officielle side http://php.net/manual/en/indexes.functions.phpDette er fordi det blev født uden modularitet, derfor er alt beskidt blandet og uden 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 tidspunkt kan det bestemmes ud fra, hvor alle disse 'stream'-funktioner blev importeret? NEJ, man kan da sige, at de er buildin-funktioner, men så er hele økosystemet buildin-funktioner?. Og så er der meget skrald i PHP-koden, at hvis du ikke er i stand til at forstå kompleksiteten og ubrugeligheden ved et sådant dårligt design, så tilgiv mig, men det har stadig en masse verden at se.
        Wordpress er en fremragende softwareløsning, men det betyder ikke, at den har en god teknologisk base. Du kan hamre med en sten og køre negle ud med tænderne, og du kan stadig udføre fremragende tømrerarbejde, men selvfølgelig med meget mere arbejde end en anden tømrer, der bruger en god hammer.

        På den anden side: "Bliv programmør om 20 timer med Python og arbejde på det", jeg har aldrig set sådan en dumhed. Du kan oprette et websted i PHP inden for 20 timer og uden at have kendskab til, hvordan webprogrammering fungerer eller selve programmeringen. Faktisk er det derfor, at PHP er så populært, fordi nybegyndere, når de kommer ind i denne verden, ser PHP som et punkt i hurtig udvikling (det er derfor, så meget PHP-kode suger så hårdt).
        Med hensyn til Pythons mangler var den eneste, hvor det lykkedes, at arbejde med markører, men under alle omstændigheder er Python et sprog på højt niveau (ligesom Java), og det bruger dem ikke på syntaksniveau; men bitvise operationer, seriøs?, mener du dette x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Jeg forstod alvorligt affaldssamlerens ting meget mindre: https://docs.python.org/3/library/gc.html.
        PHP huller:
        -PHP har et meget dårligt objektorienteret programmeringsdesign (OOP).
        -Du kan ikke overbelaste operatører endnu.
        -Overraskelse, function overloading i PHP er det ikke, hvad du naturligvis forventer af dette koncept.
        ... .. og jeg blev lige keder hehe.
        Greetings.

        1.    Ruben sagde han

          Jeg satte i parentes "forstå metaforen" (ved at sammenligne Python med C ++ / Java i det samme arbejdsmiljø), er det klart, at du ikke forstod det. Jeg kunne fortælle dig, at en C ++ - programmør kan lære Python meget hurtigere end en Python - programmør, lære C ++, ligesom det ikke er nogen overraskelse, at den gennemsnitlige løn for en C / C ++ - programmør er højere end en Python.
          Jeg kunne forklare det for dig med andre eksempler, selv med en tegning! men det ser ud til, at du kun fokuserer på at dekontekstualisere og latterliggøre det, jeg sætter.

          På intet tidspunkt har jeg sagt, at PHP er det bedste sprog i verden, eller at det har et eksemplarisk design, jeg ved ikke, hvor du får det fra. Jeg synes, at før du bedømmer andres viden, skal du forbedre din læseforståelse. Hvad der er sandt (og jeg sagde i min besked) er, at det er meget smidigt at udvikle sig sammen med det ud over hele økosystemet med rammer, biblioteker og værktøjer, som du kan finde.
          Hvilken sammenligning foretager vi også? Python som et multifunktionelt sprog eller til internettet? I så fald, hvorfor sammenligner vi det med PHP? PHP har et specifikt felt, og det er i det felt, hvor Python (med en andel på 0.2%, som ikke har ændret sig hele året) lyser ved siden af ​​PHP.
          Nu skal vi se PHP-trends; fra 82,4% i januar 2017 til 83.1% i januar 2018: https://w3techs.com/technologies/history_overview/programming_language

          Kommer Python til at trone PHP? I hvilket år? om hvilke fem år? årti?
          Python vil kunne bruges i mange andre opgaver og endda blive mere udbredt end PHP, men Python som et webudviklingssprog er lysår væk fra at være endda relevant, 0.2% stagnerer mod 83.1% (med en stigning i år).

          Du tager også ting for givet ved at sige, at jeg ikke går rundt uden for PHP og antyder, at jeg kun kender PHP, når jeg netop ikke har programmeret i PHP i lang tid haha. I øjeblikket programmerer jeg mest af Java af arbejdsårsager.
          Jeg har heller ikke sagt, at ved at programmere i Python har du ikke viden om bitvis, en affaldssamler eller en markør. Snarere kan du programmere i Python uden at vide, hvad dette er. Jeg tvivler dog stærkt på, at det er tilfældet for en C ++ - programmør. Og selvfølgelig foretager jeg sammenligningen, når Python går ind i feltet "multifunktionelt sprog", ikke til webprogrammering.

          Bliv programmør på 20 timer er simpelthen en vittighed, en overdrivelse. Jeg kunne dog sætte dig her forskellige links om online uddannelsesplatforme og kurser, der lover lignende ting. Beklag mig ikke, bebrejd det på et jobmarked, der mener, at det at blive en "ekspert programmerer" er et spørgsmål om at tage et 20-timers kursus. Og Python er et af de moderigtige sprog og også med den hurtigste læringskurve ... hvid og i en flaske.

          Jeg insisterer på, at du baserer din besked på at sige, hvor dårlig PHP er (hvilket jeg til en vis del er enig). Det virker korrekt for mig, bortset fra at min besked ikke handler om det, men hvorfor PHP fortsat vil blive brugt, og det forsvinder ikke i morgen, som du tror.

          hilsener

  5.   ingen sagde han

    C -> Gå -> (Lisp | Haskell | Java | uanset hvad)

    1.    ChrisADR sagde han

      For nylig sendte en læser mig til min e-mail en anbefaling af en Go-bog, bestemt et sprog, der skal tages i betragtning i fremtiden, og som der måske vil være et indlæg her 🙂 Mange grafik at dele

  6.   mvr1981 sagde han

    Nå ... og hvad programmerer jeg? Hvorfor lære et programmeringssprog i dag med så gode og erfarne programmører, der allerede findes? Hvilke problemer kan jeg løse, som andre ikke allerede har løst på en meget mere effektiv måde? ... Kort sagt: Hvor original er det at være programmør i dag? Hvordan kan jeg samarbejde med andre uden at blive sparket eller udelukket af min manglende viden og erfaring?

    1.    ChrisADR sagde han

      Hej mvr1981, virkelig interessante spørgsmål 🙂 vi vil rulle dem fra den sidste til den første.

      Hvordan kan jeg samarbejde med andre uden at blive sparket eller udelukket af min manglende viden og erfaring?

      Hvis du ikke ønsker at blive sparket, er det første trin at lære processen, du kan ikke forestille dig antallet af mennesker, der kommer til projekter, der ønsker at gøre tingene udelukkende på deres måde og ønsker, at samfundet skal tilpasse sig deres ønsker. Det er bestemt som om jeg kommer til dit hus og laver et rod og respekterer din familie (sådan føles det mange gange). Hvis du ønsker at forhindre dette i at ske, skal du være opmærksom på retningslinjerne for at bidrage, midlerne til at gøre det og ikke sende noget ufuldstændigt, hvis du har brug for hjælp, er der altid midler til at kommunikere, men et dårligt job vil sandsynligvis skabe dårlige første indtryk. Hvis du ikke vil udelukke dig selv, der er op til dig, kan du se ham som den ubrugelige programmør, der ikke ved, hvad han laver, eller den, der er på vej til at blive en fremragende programmør, og det sker kun med praksis og bestemt med bugs undervejs. Jeg har taget forkert mange gange, før jeg erhvervede min udviklerstatus på Gentoo, og det forhindrede mig ikke i at prøve på trods af den "dårlige tid".

      Hvor original er det at være programmør i dag?

      -Det handler ikke om originalitet, det er en nødvendighed i dag, bare tænk på det følgende for 20 eller 30 år siden, at skrive var en nødvendighed, mange job udledte, at du vidste eller i det mindste kunne gøre det. I dag er det en nødvendighed at vide, at Office er praktisk taget intet job, der ikke sætter dig foran Office-dokumenter. I morgen, meget snart, vil programmering være en nødvendighed. Og dette gælder også fra et personligt synspunkt. At vide, hvad der sker i de programmer, som du overdrager ting, der er så vigtige som dine penge, sundhed, familie, er noget logisk for mig, fordi du kun kan kende deres begrænsninger, hvis du ved, hvordan de fungerer og for at vide det, skal du vide, hvordan du programmerer.

      Hvilke problemer kan jeg løse, som andre ikke allerede har løst på en meget mere effektiv måde?

      -Du vil blive overrasket over mængden af funktioner der kræves i dag, og for at fortælle sandheden betyder det ikke noget, at der er de bedste programmører i verden i samfundet, arbejdet vil altid være større end udviklernes arbejdskapacitet, jeg kan bekræfte dette i Gentoo, der er mennesker, der udvikler kernen, folk der arbejder for Google, Sony osv. osv. Det eneste, vi alle har til fælles, er at ingen har så meget tid, som de gerne vil være i stand til at udføre alt det verserende arbejde.

      Hvorfor lære et programmeringssprog i dag med så gode og erfarne programmører, der allerede findes?

      -Dette besvares i det andet spørgsmål 😉 Men nu kan jeg tilføje, at generationer skal være i stand til at støtte det arbejde, der allerede er udviklet, med dette mener jeg, at de "erfarne" udviklere gradvist forsvinder, og det vil være nødvendigt for " yngre »Udviklere tager ansvar og hjælper med at holde cyklen i live, et samfund, der ikke har unge og uerfarne mennesker, er tilbøjelige til at forsvinde over tid, netop fordi der ikke er nogen mulighed for at overføre viden.

      Og hvad planlægger jeg?

      -Dette er måske den sværeste ting at svare på, men jeg vil prøve at give dig et eksempel poco Jeg er for nylig begyndt at lide af problemer med GNOME 24 og dens forbindelse til Wayland, der forhindrer programmer som Shutter i at tage skærmbilleder. Dette er et problem for mig, for når jeg skriver mine artikler, skal jeg vise dig hvad jeg siger 🙂 søger lidt kom jeg til GNOME Screenshot-applikationen, mildest talt "minimalistisk". Blandt dens funktioner er der en at tage en skærmregion, men hvad sker der, hvis jeg ikke tog billedet godt? Nå, jeg er nødt til at forlade og gå ind i programmet igen, noget kedeligt bestemt, en knap der siger "Genoptag" eller noget lignende gør det muligt for mig at tage en ny optagelse uden at skulle afslutte og gå ind igen ville hjælpe mig. programmeringsprojekt, jeg har aldrig programmeret noget i GNOME-rammen, så jeg har selvfølgelig meget at lære, før jeg sender min "patch" med den nye knap, men undervejs lærer jeg at programmere og med lidt held er det funktion det vil være til hjælp for mere end en, når det er tilgængeligt for alle.

      Dette er et eksempel, det er noget simpelt, og at enhver anden "ekspert" programmør sikkert kunne have gjort det allerede, men på grund af åbenbar mangel på tid har det ikke været sådan, nu er jeg den, der har mulighed for at gøre det uden faktisk at være en superprogrammerer.

      Nu er det kun op til dig at finde noget, der ville gøre dit liv "enklere" i den software, du bruger så ofte, det skønne ved det er, at hvis vi følger de råd, jeg vil give dig i de følgende artikler, sproget betyder ikke noget, fordi du vil kende det grundlæggende for at begynde at forstå den kode, du læser, og ændre den til at gøre, hvad du vil, det er en meget speciel følelse 🙂

      Hilsner og tak igen

      1.    ingen sagde han

        Jeg tror, ​​at kun når jeg har åbnet gnome-capture-programmet, er det nemmeste at gå til tastaturgenveje og tildele tre kombinationer til at fange alt alt-print for at fange det aktive vindue og super-print for at foretage et valg fra fange region, er genveje tilgængelige, det er simpelthen et spørgsmål om at tildele dem

        1.    ChrisADR sagde han

          Derfor giver vi dig et eksempel 🙂 fordi små ting som den knap programmerer, kan de hjælpe nogle, da de kan gå ubemærket hen af ​​andre, men de opfylder bestemt hovedformålet, hjælper med at lære at programmere og giver plads til nye funktioner, Efter denne knap kan mange ting startes, såsom en session management, eller en forhåndsvisning skærmbillede af alle de taget fotos, eller kort sagt, mange ting, der kunne gøres. Ideen er, at du finder noget, der får dig til at sprænge din nysgerrighed, software, der kører på dit system, har muligvis brug for forbedringer eller nye funktioner, der på grund af mangel på tid eller personale ikke er implementeret endnu 🙂

      2.    mvr1981 sagde han

        Tak til dig. er meget gode svar.

    2.    Bill sagde han

      Nå, for en person, der ikke vil være professionel i marken, ville det være nødvendigt at se i hvilket miljø de arbejder, både for administrative opgaver og direktiver, det kan være interessant at kende for eksempel Python / Basic og vide, hvordan man programmerer makroer i kontorpakker som LibreOffice eller MS Office. Der er tidspunkter, hvor dette kan spare mange timers arbejde for dig eller andre medarbejdere, der omgiver dig og beder dem om at udføre en gentagende opgave. af det og udføre nogle SQL-forespørgsler.
      Som alt andet, hvis du kender værktøjerne lige ved hånden, kan du tænke på, hvordan du får mest muligt ud af det. Ikke alt er lavet.

  7.   Marcelo sagde han

    Guillermo, er helt enig med dig, "Ikke alt er opfundet", og hvad der er opfundet kan ændres. Du er nødt til at få mest muligt ud af værktøjerne og bruge den der bedst passer til dine behov.

  8.   Ricardo sagde han

    Til programmering er det første sprog at lære engelsk, derefter det, der appellerer mest til dem og virker smukkest for dem.

    1.    ChrisADR sagde han

      Jeg havde ikke skrevet det, men sandt 🙂 at kende engelsk hjælper meget, da de fleste sprog er skrevet i det, men også fordi den større mængde førstehåndsinformation også 🙂 Mange tak for delingen

  9.   Ruben salgado sagde han

    Fremragende artikel ud over motiverende.

    1.    ChrisADR sagde han

      Meget venlig, meget tak 🙂 Hilsner

  10.   Gonzalo Martinez sagde han

    Programmering er at vide, hvordan man resonnerer og oversætter denne begrundelse til instruktioner.

    To præciseringer om artiklen:

    1) Baseret på min erfaring som programmeringslærer i næsten 10 år, betyder det ikke noget hvilket sprog du lærer med, men hvordan du lærer og hvor kompleks det er.

    Jeg tror, ​​at et sprog, der kan læres på en struktureret måde og derefter gå videre til andre mere komplekse ting, er lettere end at starte med et sprog som Java fra starten.

    Det er lettere at lære noget som en Hello World i C eller Pascal som base end med et par linjer (PROGRAM i tilfælde af Pascal eller #include I tilfælde af C) kan du begynde at udvikle algoritmen og kode programmet med dets logik direkte, som i Java, som i sig selv har brug for en klasse, en metode og nogle andre ting, der for en nybegynder er en informationsoverbelastning unødvendigt, og det kan godt ignoreres og gå videre til andre ting, men de er begreber der er, og efter min mening er det ikke en god måde at lære at overse ting på, især hvis sproget tvinger dig til at bruge dem. Det er som at starte en måløvelse for første gang med en M-16 og skyde i flere måneder i halvautomatisk tilstand, der holder håndtaget med begge hænder som en pistol.

    2) Om et sprog fortolkes eller kompileres, afhænger af dets implementering, ikke af selve sproget. For eksempel, hvis du bruger Python til en webapp, der bruger wsgi (det være sig mod_wsgi i apache eller uwsgi til Nginx), kompileres python-koden, når du starter det tilsvarende modul og genererer .pyc-filer

    Der er også binære filgeneratorer til java (som genererer indfødte binære filer i stedet for bytekode) eller kompilatorer af php-scripts i rene binære filer.

    Med hensyn til hvad de siger om PHP, er det simpelthen et sprog designet i en anden æra med andre ting i tankerne og uden at overveje aspekter, der ikke eksisterede på det tidspunkt. Det er klart, at det faktum, at det er den mest anvendte, ikke gør det til det bedste for noget i verden, men der er en realitet: det er det sprog, som det er størst chance for at få et job med i al programmering. At vide, at det ikke gør ondt, selvom du ikke kan lide det.

    Selv jeg har arbejdet som systemadministrator i flere år og forlod jobbet som udvikler, så ofte skal jeg sætte PHP-kode i noget.

    1.    ChrisADR sagde han

      Hej Gonzalo, tak for deling,

      Bestemt at tale om unødvendige informationsoverbelastninger, at vide, at det samme sprog kan fortolkes eller kompileres, er noget, der ikke er nødvendigt på dette stadium 🙂 Bestemmelsen er bestemt vigtig, men hvis vi siger det på dette niveau genererer vi ikke mere end forvirring. På samme måde behandles ikke objektorienterede programmeringsproblemer eller andre begreber, der skal doseres gradvist for ikke at gøre folk svimmel.

      Da pladsen er begrænset, er hovedformålet med indlægget at vise læsere, der ønsker at programmere, at der er to store sprogverdener, at de "traditionelt" fortolkede er mere "enkle", at de "traditionelt" sammensatte er lidt mere "kompleks" men at det er det niveau af kompleksitet værd at have en mere solid forståelse, og at det er op til hver person at vælge sprog, da de afhængigt af programmeringsmetoden vil være i stand til at vælge deres yndlingsprojekter og samtidig vil de være i stand til at forstå, hvad de læser og / eller skriver 🙂

      Mange tak igen, hilsner.

      1.    Gonzalo Martinez sagde han

        Dette er en fejltagelse, der er ingen kompilerede eller fortolkede sprog, der er tolke og kompilatorer til hvert sprog, begge i forskellige tilfælde.

        Det er ikke en informationsoverbelastning at nævne det nu, det er en fejltagelse at afgive en sådan erklæring. Efter min mening ville det have været mere produktivt at ignorere tolkerne, hvis du ikke ville overbelaste med information.

        1.    ChrisADR sagde han

          Tak for afklaringen, jeg vil tage det i betragtning, når jeg vender tilbage til emnet. Skål

  11.   Ar sagde han

    Hvilket sprog anbefaler du til serversiden i betragtning af at php faldt ud af favør?
    Det samme for databaser, jeg ved ikke, om der vil være noget bedre og mere moderne end mySQL.

    1.    ChrisADR sagde han

      PHP er ikke faldet ud af favør ... Hvert sprog har sin livscyklus, og php er bestemt allerede et sprog, der kommer ind i skalaen "moden", hvilket gør det nyttigt på forretningsplan, hvor stabilitet er frem for alt ... Som nogle banker, hvor den stadig er udviklet i java, som er mere "moden" end php og bestemt har sine tilhængere og modstandere ... Og for ikke at nævne COBOL ...

      Hvis det du leder efter er ensartethed og modernitet, bliver javascript en af ​​favoritterne hos de såkaldte “full stack-udviklere”, selvom rubinparadigmet eller “enkelheden” i python også er gode referencer ... Selv perl kan være muligheden afhængigt af behovet 🙂

      I dag tager ORM (objektrelationskortlæggerne) meget kraft med hensyn til relationsdataadministration. Det går fra SQL-syntaks til klasse- og attributhåndtering ... Næsten alle sprog (hvis ikke alle) håndterer noget ORM.

      . Mongo DB er et alternativ til relationelle databaser, der er blevet ret vigtige; Det er dog nødvendigt at kende dens fordele og ulemper og validere, om det ville være den bedste løsning afhængigt af det specifikke behov.

      Jeg håber det hjælper dig, hilsner 🙂

      1.    Ar sagde han

        Tak, det skal jeg kontrollere.

      2.    Ar sagde han

        Jeg glemte.

        Hvad anbefaler du mig at arbejde med JAVA i Linux?
        Hvis du bedre kan skelne mellem gratis og lukket.

        1.    ChrisADR sagde han

          Eclipse og NetBeans er open source, jeg er ikke sikker på, om der er nogen, der er udelukkende fri software, jeg har en vane med at bruge vim, for nogle gange gør mængden af ​​kode brugen af ​​en hel IDE langsom og tilbøjelig til eksekveringsfejl. Hilsen 🙂

        2.    paulzeta sagde han

          For at arbejde med java i Linux bruger jeg IntelliJ, jeg anbefaler dig.

          1.    ChrisADR sagde han

            PS, IntelliJ er proprietær software 🙂

  12.   je sagde han

    Fyrene husker også, at ... Jeg arbejder i en bank, og jeg fortæller dig, at programmeringssprog tager et bagsæde for at lade SQL og Stored procedurer gå først.

    1.    Gonzalo Martinez sagde han

      Du skal tage dem i betragtning de lagrede procedurer, men ved ikke at bruge et bærbart sprog mellem motorer, i det mindste efter min erfaring, handler det altid om at undgå dem, medmindre der ikke er nogen anden mulighed.