Escolla a súa primeira linguaxe de programación

Certamente, esta é unha das preguntas que máis chega á miña caixa de entrada cando falo de programación. Se imos comezar unha serie de artigos que che permitirán aprender a programar e devolver o coñecemento gratuíto en forma de contribucións a comunidades de software libre / código aberto de todo o mundo, é necesario responder a esta información básica se é un pouco difícil pregunta. Que linguaxe de programación debería aprender?

Un pouco de historia

Para comezar a comprender e escoller unha linguaxe de programación, primeiro debemos coñecer un pouco a súa historia, os seus usos e funcións e como resolven as distintas necesidades co paso do tempo.

Idiomas de máquina (baixo nivel)

Comúnmente coñecido como montaxeSon linguaxes de programación que poderiamos definir como dialectos dunha linguaxe máis xeral ... Isto soa un pouco complicado pero vou exemplificalo ... Sabemos que a linguaxe universal da computación é electricidade, isto significa que en definitiva o que le un ordenador é 0sy 1si, chamemos a isto einglés por computadora. Neste exemplo, o español é a regra básica, pero como ben sabemos, o español falado polos latinos non é o mesmo que o falado en España e, aínda así, o español do Perú non é o mesmo co español da Arxentina. Evidentemente todos temos case as mesmas palabras (0sy 1s), pero o uso e o significado poden variar segundo o contexto.

Isto acontece a nivel de procesador. Cando falamos de arquitecturas informáticas, (amd64, intel, arm, ...) referímonos ao dialecto dese español informático. Isto débese a que diferentes empresas entenden a orde e o significado ao seu xeito, polo que algunhas varían en detalles como o fluxo de corrente ou a orde na que se van manter. 0sy 1s.

Estas linguaxes de programación son extremadamente rápidas, xa que funcionan ao nivel de programación máis baixo posible, pero dependen moito da arquitectura e son un pouco máis complicadas de aprender que o resto. A miúdo requiren unha base máis ampla de conceptos para transformar os datos e executar cousas útiles nel. Para os amantes dos videoxogos, un exemplo serían as consolas SEGA, que empregaban Assembly para programar os seus xogos. Obviamente nese momento a cantidade de memoria era mínima en comparación coa actual e era necesario dominar unha linguaxe que fose rápido e producir programas lixeiros.

Idiomas de alto nivel

Este gran grupo contempla aquelas linguas que foron despois montaxe. A necesidade de obter código portátil levou á aparición dun grupo de idiomas chamado compilado. Entre estes, o primeiro en sacar proveito foi C, que dominou a programación a nivel de sistema operativo dende os anos setenta.

Idiomas compilados

Vexamos un exemplo práctico do que comento. Vexamos un programa de linguaxe C moi sinxelo que imprime unha liña de código.

Propio. Christopher Díaz Riveros

Despois de compilalo temos o seguinte:

Deseño propio: Christopher Díaz Riveros

Pero agora imos ver que teriamos que escribir para replicar o mesmo resultado no código Assembly:

Propio. Christopher Díaz Riveros

Esta é a tradución das nosas 3 liñas de código de simple.c, o ficheiro simple.s créase usando o comando gcc -S simple.c e é o que o noso procesador entendería nun dialecto montaxe. Obviamente, a fin de crear un executable que consiste en 0sy 1s é necesario procesar o ficheiro simple.s e conéctao coas bibliotecas compartidas do noso sistema. Isto faise usando un montador (as) e un conector (ld).

Os idiomas compilados ofrecen unha gran vantaxe sobre os de baixo nivel portátiles. A portabilidade ofrece código que se pode executar en diferentes procesadores sen necesidade de xerar código específico para cada arquitectura. Outra vantaxe obvia é a sinxeleza que usa ao ler e escribir código. Entre as súas principais desvantaxes temos unha alta complexidade, xa que, en comparación co seguinte tipo de linguaxes que veremos, a liberdade que ofrece C pode ser prexudicial se non sabe controlar, é certamente como entregar unha pistola, podería ocorrer que na falta de experiencia unha persoa acabe disparando o seu propio pé nun intento de limpar a arma.

Linguaxes interpretadas

Dentro deste grupo temos unha gran variedade de idiomas, entre os máis importantes temos Python, Ruby, Javascript, PHP, etc ... A idea básica destes idiomas é proporcionar un xeito rápido de crear e executar programas. , isto débese a que moitos dos procesos difíciles lévanse a cabo no intérprete e a programación da lóxica é a que se implementa no código. Vexamos o mesmo exemplo anterior pero esta vez escrito en Python:

Propio. Christopher Díaz Riveros

Entre as cousas máis destacadas podemos ver que a primeira liña é a encargada de chamar ao intérprete (o programa que executará a nosa aplicación) e o código posterior é máis "sinxelo" que a súa versión en C, xa que se realiza todo o traballo pesado no intérprete.

Propio. Christopher Díaz Riveros

As linguaxes interpretadas proporcionan ao desenvolvedor unha maior capa de seguridade, xa que teñen controis de seguridade máis rigorosos (ATENCIÓN a que non son perfectos, xa que incluso os mellores poden cometer erros) e xa non sufrimos o risco de disparar unha arma sen darnos conta. xa que, no primeiro intento, o intérprete alertaría e cancelaríase a execución. A principal desvantaxe faise evidente ao executar o programa, xa que é máis lento que a súa contraparte binaria, precisamente debido á maior cantidade de procesamento para poder garantir que o código funciona. Se o programa non require prazos moi curtos, a diferenza pode pasar desapercibida, pero se falamos de miles ou millóns de datos por segundo, a diferenza faise notoria exponencialmente nos idiomas compilados.

Mecanografía

Esta é unha característica das linguaxes de programación, estas poden ser fortemente feble mecanografado. Vou deixar este tema para outra publicación, xa que é necesario e curioso comprender como se almacena a memoria nun programa, pero polo de agora só precisamos facer a distinción: as linguas moi tecleadas son as que requiren coñecer o tipo de datos que se van traballar nunha variable ou constante, mentres que o feble tipos poden realizar conversións así implícito e todo dependerá dunha xerarquía de conversións seguida do idioma. (se non se entende agora, non hai problema, deixarémolo para máis adiante)

Paradigmas

Como todo no mundo GNU / Linux, as linguaxes de programación baséanse segundo paradigmas e xéranse comunidades ao seu redor. Por exemplo temos o Fundación Python o Rubio o PHP o Bash (nese caso é a comunidade GNU). O que quero chegar a isto é que non podo expresar a gran cantidade de pros e contras que ten cada un, pero si podo dicirche que, onde hai unha linguaxe de programación gratuíta, hai unha comunidade na que aprender e participar. Cómpre mencionar que moitos se non todos os intérpretes de idiomas están escritos en C, ou algunha derivada próxima, e o seu desenvolvemento adoita realizalo un grupo máis pequeno da comunidade, que se encarga de tomar decisións que afectarán a todos os usuarios da lingua. Incluso pódense formar institucións para garantir o correcto desenvolvemento da linguaxe, como é o caso de C.

Cal escoller?

Xa falamos bastante sobre idiomas e aínda non respondo o máis importante 😛. Pero espero que despois de revisar este pequeno artigo non sexa necesario que che diga que idioma escoller, xa que con esta información é capaz de buscar un que xere curiosidade. Obviamente se queres aprender a programar nun idioma montaxe pasará moito tempo antes de que poida ter algo funcional, o tempo reducirase moito se opta por unha linguaxe compilada, onde ademais de ter portabilidade nos sistemas * NIX, poderá aprender información sobre o funcionamento do mesmo sistema, xa que estar en contacto con C ou derivados fai que dun xeito ou doutro coñezas como funciona un sistema operativo dun xeito xeral. Finalmente, se queres aprender algo lixeiro e iso che permite facer moito sen necesidade de comprender moito, as linguaxes interpretadas son un xeito entretido de aprender e desenvolver habilidades de programación.

Aprende con algo emocionante

Este é o mellor consello que podo darche, se queres aprender algo, primeiro tes que atopar algo emocionante, se non, será bastante difícil superar a curva de aprendizaxe típica de calquera linguaxe de programación. Supoña que xestiona os sistemas, nese caso pode que teña que aprender un idioma ideal para scripting (interpretado), dentro destes temos Perl, Python, Bash, etc etc ... Quizais os teus sexan xogos, hai moitos proxectos en idiomas como Javascript, Lua, C ++, dependendo do tipo de xogo que queiras xogar. Quizais desexe crear unha ferramenta a nivel de sistema, xa que temos C, Python, Perl, como verás que algúns se repiten, e isto débese a que moitos idiomas poden usarse para moitas tarefas, por iso a definición de idiomas multiusos na maioría destes.

Comezar un proxecto

Con isto non quero dicir que crease o seguinte compilador, nin sequera a seguinte linguaxe de programación, un proxecto pode ser corrixir un pequeno erro no seu programa favorito, quizais incluso axude a mellorar a documentación. Por que a documentación? porque non hai mellor forma de aprender como funciona o software que lendo e axudando a escribir a súa documentación, porque despois do código fonte, é a maior fonte de información que atoparás sobre o programa. Noutro momento veremos como ler o código dun proxecto e comprender as funcións e valores que adquiren.

Moitas grazas por chegar aquí e coma sempre, os teus comentarios axúdanme a xerar mellor contido e a saber onde concentrarme, Saúdos.


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

37 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   Anónimo dixo

    Coma sempre un 10 !!!!!! Grazas polos teus artigos. Un saúdo e moito máis por vir !!!!

    1.    ChrisADR dixo

      Moitas grazas 🙂 anímame a seguir escribindo. Graciñas

  2.   Rubén dixo

    Creo que é un erro facer a pregunta "que idioma escoller?" Eu son dos que penso que a linguaxe é a menos, o importante é aprender os conceptos básicos da programación e "pensar computacionalmente". Decide unha sintaxe, a súa escritura, se admite OOP, a súa utilidade, etc. Creo que é algo que sairá naturalmente no estudo e, ao cabo, todos os programadores saben máis de 1, 2 e 3 idiomas ... e grazas aos conceptos de programación (e non á sintaxe) que ten, é capaz para programar nun idioma no que aínda non experimentaches.
    Non obstante, para os iniciados, creo que unha boa linguaxe pode ser Python pola súa sinxeleza, pero sobre todo, ir un pouco máis alá, estudar algoritmos e saber como funcionan as cousas "dentro".

    Un saúdo ChrisADR

    1.    ChrisADR dixo

      Ola Rubén, grazas por compartir
      Hai algo que aprendín co paso do tempo no mundo da programación, e é que "o que cobre moito non espreme" e con esta coñecida frase quero dicir que moitas veces, e especialmente as máis entusiastas, deciden téntao un pouco e fai xiros moi rápidos en canto a como aprendes a codificar. Creo, e é a miña opinión persoal, que un bo desenvolvedor debería coñecer e dominar unha linguaxe compiladora e unha linguaxe intérprete, ademais de ter unha noción dalgún dialecto da Asemblea.
      A razón é a seguinte, o prototipado sempre debe ser algo sinxelo e rápido, fácil de xerar e que xeralmente amose un resultado, pero se non é suficiente, debe haber un "plan B" ao que recorrer cando o intérprete chegou o seu límite.
      Coñecer un dialecto de ensamblaxe non só lle proporciona confianza, senón que tamén lle ensina a pensar "computacionalmente", senón que obviamente esta parte é a máis complicada de todas e certamente é algo ao que non acoden todos os programadores.
      Pero volvamos ao tema, porque a idea principal que creo é "escoller un idioma e practicar moito", porque realmente o único xeito de facerse bo na programación é lendo e escribindo código, e isto é algo que aprendín de a comunidade do núcleo Cando mantés a mesma sintaxe durante moito tempo, deixas de ver o formulario e comezas a preocuparte polos ANTECEDENTES. A idea de escoller unha linguaxe ou sintaxe dende o principio é que se pode afacer a súa lectura e escritura de tal xeito que se pode comezar a ler o SIGNIFICADO do programa en lugar da sintaxe do programa.
      Esta é a razón principal desta publicación, porque cada un elixe a súa lingua para que a continuación poidamos explicar os conceptos, quizais con isto se aclaren as dúbidas 🙂
      Un saúdo e grazas por compartir.

  3.   Deibis Contreras dixo

    grazas pola publicación foi bo.

    lembranzas

    1.    ChrisADR dixo

      Ola Deibis, grazas por compartir 🙂 Un saúdo

  4.   JorgeFS dixo

    O meu consello: calquera cousa que non sexa PHP. Hai vinte anos PHP tiña certo sentido na súa existencia debido ao alto nivel de complexidade que estaba a programar a web noutra linguaxe usando CGI. Pero hoxe hai unha gran variedade de Frameworks para facer o desenvolvemento web moito máis agradable en idiomas poderosos, como Django para Python, Spring para Java ou Rails para Ruby. Aínda que PHP aparece actualmente en todas as listas de popularidade lingüística, na miña opinión PHP perderá a súa relevancia co paso do tempo.
    Recomendo encarecidamente comezar con C \ C ++ para comprender a realidade da programación, aínda que a curva de aprendizaxe é pronunciada.
    Saúdos.

    1.    ChrisADR dixo

      Ola Jorge, grazas por compartir, só recordo Laravel, que é un marco bastante sólido. Persoalmente, nunca me gustou a primavera nin Java para o desenvolvemento web. Paréceme bastante engorroso, pero supoño que forma parte do tempo que levan. o mercado, no seu momento foron pioneiros e seguramente hoxe as alternativas modernas (Js, Python e Ruby) foron capaces de mellorar o xeito de presentar código que se pode ler e modificar sen moito traballo.
      Tamén estou inclinado cara ás persoas que aprenden C / C ++ nalgún momento da súa vida, comecei con Java, pero supoño que esa é a beleza da programación, podes comezar co que queiras, sempre que sexas constante ser útil 🙂 Ánimo

    2.    Rubén dixo

      Xa non podo estar en desacordo contigo. Comecei hai moitos anos con C e VB, para máis tarde centrarme en PHP e JS (desde que me centrei no desenvolvemento web) e máis tarde estudando aprendín principalmente C / C ++ e Java.
      PHP ten unha serie de vantaxes que non puiden enumerar nesta mensaxe. PHP7 é rápido (máis rápido que Python ... sen usar hhvm, cachés diferentes, frameworks como Phalcon ou bytecode no caso de Python), ten unha gran cantidade de bibliotecas e frameworks, ten un gran número de funcións implementadas directamente para usar en calquera momento, a súa sintaxe semellante a C facilita a migración a outras linguas.
      O 30% dos sitios web de todo o mundo están feitos con WordPress (PHP) e iso parece non cambiar, a Wikipedia utilízao, Facebook (con hhvm) e un gran número de sitios, en total, o 80%.

      Lémbroche que Ruby on Rails como Django cumpren 12 anos. Que cota acadaron neste tempo? E, por suposto, estamos a falar de 2 cadros que practicamente teñen monopolio e non hai ningún tipo de fragmentación. Que outras alternativas serias teño? Dicir que PHP vai perder relevancia ten moi pouco sentido.

      Agora que Python está de moda porque ten unha curva de aprendizaxe rápida, é unha linguaxe sinxela e véndeno como "converterse nun programador en 20 horas con Python e traballar nel", co apoio de empresas como Google e que agora hai A moda de buscar novas linguas (Go, Dart ...) para diferenciarse nun CV (ou como nacemento diario de 50 frameworks para Javascript!), non significa que as cousas cambien.

      Ruby é unha linguaxe moi interesante, pero rompe tanto cos patróns establecidos que me custa crer que se volvese máis popular que PHP. Por suposto, Ruby creo que é a peor linguaxe para comezar a programar de todas.
      Entendo que me dis que Python pode ser divertido de programar, incluso Ruby coa súa infinidade de peculiaridades ... pero Spring con Java? De verdade? Java pode ser moitas cousas ... pero máis agradable que Python e PHP?

      Está moi ben comezar con Python, pero ao manterse só en Python, corre o risco de que moitas compañías crean que o seu nivel de programación non é "profundo" (aínda que sexa moi bo en Python). Isto é porque compite con outras linguaxes "multiusos" como C ++ ou Java. Podes programar en Python sen saber a diferenza de que carallo é un punteiro, operacións a bit, como funciona un colector de lixo e un longo etcétera.
      Python é quizais o menos semellante á "programación clásica" que existe e pódese ver como unha "linguaxe infantil" (obtén a metáfora), e iso á súa vez é unha vantaxe e unha desvantaxe.

      1.    JorgeFS dixo

        "Python é quizais o menos semellante á" programación clásica "que existe e pódese ver como unha" linguaxe para nenos "(entendamos a metáfora), e iso á súa vez é unha vantaxe e unha desvantaxe." LOL, esta é unha das cousas máis divertidas que vin dicir sobre Python. Algunha vez aprendiches realmente Python?
        Canto tempo leva todo o mundo fóra de PHP?
        O amigo PHP naceu morto. PHP (\ d +) ten moita carga debido a un mal deseño inicial e, para manter a comunidade de usuarios, segue arrastrando todos eses erros de deseño iniciais moi a fondo. PHP naceu sen modularidade, con moitas funcionalidades de estilo C (que por certo, non sei de onde viñeches, xa que a súa sintaxe é similar a C, pódese transportar facilmente a outras linguas). Unha linguaxe de alto nivel, como debería comportarse PHP, ten cousas tan feas como este ronsel de funcións listadas no seu sitio oficial http://php.net/manual/en/indexes.functions.phpIsto débese a que naceu sen modularidade, polo que todo está sucio mesturado e sen espazos de nomes.
        Este é un anaco de código PHP:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        nalgún momento pódese determinar desde onde se importaron todas estas funcionalidades de "fluxo"? NON, entón poderías dicir que son funcións buildin, pero entón todo o ecosistema é funcións buildin. E así, hai moito lixo no código PHP, que se non es capaz de comprender a complexidade e a inutilidade dun deseño tan malo, perdóame pero aínda ten moito mundo por ver.
        Wordpress é unha excelente solución de software, pero isto non significa que teña unha boa base tecnolóxica. Podes martelar cunha pedra e sacar as uñas cos dentes e aínda podes facer un excelente traballo de carpintería, pero por suposto, con moito máis traballo que outro carpinteiro que usa un bo martelo.

        Por outra banda: "converterse en programador en 20 horas con Python e traballar nel", nunca vin tanta estupidez. Podes crear un sitio web en PHP en 20 horas e sen ter coñecemento de como funciona a programación web ou a propia programación. De feito, é por iso que PHP é tan popular, porque os novatos que entran neste mundo ven a PHP como un punto de rápido desenvolvemento (é por iso que tanto código PHP é moi duro).
        En canto ás deficiencias de Python, o único no que tivo éxito foi traballar con punteiros, pero en calquera caso, Python é unha linguaxe de alto nivel (como é Java) e non fai uso delas a nivel de sintaxe; pero as operacións a bit, ¿serio?, quere dicir isto x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Entendín seriamente o colector de lixo moito menos: https://docs.python.org/3/library/gc.html.
        Lagoas de PHP:
        -PHP ten un deseño de programación orientado a obxectos (OOP) moi deficiente.
        -Aínda non podes sobrecargar os operadores.
        -Sorpresa, function overloading en PHP non é o que naturalmente espera deste concepto.
        ... .. e acabo de aburrir jeje.
        Saúdos.

        1.    Rubén dixo

          Poño entre parénteses "comprende a metáfora" (ao comparar Python con C ++ / Java no mesmo ambiente de traballo), está claro que non a entendiches. Podería dicirche que un programador de C ++ pode aprender Python moito máis rápido que un programador de Python aprender C ++, do mesmo xeito que non é de estrañar que o salario medio dun programador de C / C ++ sexa maior que un Python.
          Podería explicalo con outros exemplos, incluso cun debuxo! pero parece que só te centras en descontextualizar e ridiculizar o que poño.

          En ningún momento dixen que PHP é a mellor linguaxe do mundo ou que ten un deseño exemplar, non sei de onde o sacas. Creo que antes de xulgar o coñecemento dos demais debes mellorar a comprensión lectora. O certo (e dixen na miña mensaxe) é que desenvolver con el é moi áxil, ademais de todo o ecosistema de frameworks, bibliotecas e utilidades que podes atopar.
          Ademais, que tipo de comparación facemos? Python como linguaxe multiusos ou para a web? Nese caso, por que o comparamos con PHP? PHP ten un campo específico, e é nese campo onde Python (cunha participación do 0.2%, que non cambiou este ano) palide xunto a PHP.
          Agora imos ver as tendencias de PHP; do 82,4% en xaneiro de 2017 ao 83.1% en xaneiro de 2018: https://w3techs.com/technologies/history_overview/programming_language

          ¿Python vai destronar PHP? En que ano? en que cinco anos? década?
          Python poderá usarse noutras moitas tarefas e incluso se fará máis amplo que PHP, pero Python como linguaxe de desenvolvemento web está a anos luz de ser relevante, un 0.2% estancándose fronte ao 83.1% (cunha subida este ano) .

          Tamén dá por feito dicindo que non vou fóra de PHP, dando a entender que só coñezo PHP, cando precisamente hai tempo que non programo en PHP jaja. Actualmente, por motivos laborais, programa principalmente en Java.
          Tampouco dixen que programando en Python non teña coñecemento sobre bitwise, un colector de lixo ou un punteiro. Pola contra, podes programar en Python sen nin sequera saber de que se trata. Non obstante, dubido moito que sexa o caso dun programador de C ++. E obviamente fago a comparación cando Python entra nese campo de "linguaxe multiusos", non para a programación web.

          Converterse en programador en 20 horas é simplemente unha broma, unha esaxeración. Non obstante, podería poñer aquí varias ligazóns sobre plataformas e cursos de educación en liña que prometen cousas similares. Non me botedes a culpa, botádelle a culpa a un mercado de traballo que pensa que converterse nun "programador experto" é unha cuestión de facer un curso de 20 horas. E Python é unha das linguas de moda e tamén, coa curva de aprendizaxe máis rápida ... branca e en botella.

          Insisto, baseas a túa mensaxe en dicir o mal que é PHP (o que nunha parte determinada, estou de acordo). Paréceme correcto, excepto que a miña mensaxe non se trata diso, senón por que PHP seguirá empregándose e non desaparecerá mañá como pensas.

          cumprimento

  5.   ninguén dixo

    C -> Ir -> (Lisp | Haskell | Java | o que sexa)

    1.    ChrisADR dixo

      Recentemente un lector envioume ao meu correo electrónico unha recomendación dun libro de Go, sen dúbida un idioma a ter en conta no futuro e do que quizais haxa unha publicación aquí 🙂 Moitos gráficos para compartir

  6.   mvr1981 dixo

    Ben ... e que programa? Por que aprender hoxe unha linguaxe de programación con programadores tan bos e experimentados que xa existen? Que problemas podo resolver que outros non solucionaron dun xeito moito máis eficiente? ... Resumindo: ¿Que tan orixinal é ser programador hoxe en día? Como podo colaborar con outras persoas sen ser expulsado ou excluído pola miña falta de coñecemento e experiencia?

    1.    ChrisADR dixo

      Ola mvr1981, preguntas realmente interesantes 🙂 imos arrollalas do último ao primeiro.

      Como podo colaborar con outras persoas sen ser expulsado ou excluído pola miña falta de coñecemento e experiencia?

      Se non queres ser expulsado, o primeiro paso é aprender o proceso, non podes imaxinar a cantidade de xente que chega a proxectos que queren facer as cousas ao seu xeito, querendo que a comunidade se adapte aos seus desexos. Certamente é coma se eu viñese á túa casa e fixéseme un lío e faltase ao respecto á túa familia (así se sente moitas veces). Se desexa evitar que isto suceda, preste moita atención ás pautas para contribuír, aos medios para facelo e non envíe algo incompleto, se precisa axuda, sempre hai medios para comunicarse, pero un traballo mal feito probablemente cree malas primeiras impresións. Se non queres excluírte, depende de ti, podes velo como o inútil programador que non sabe o que fai ou o que está a piques de converterse nun excelente programador, e iso só ocorre coa práctica e con certeza con erros no camiño. Estiven equivocado moitas veces antes de ter o estado de desenvolvedor de Gentoo, e iso non me impediu probalo a pesar do "mal momento" 🙂.

      Que tan orixinal é ser programador hoxe en día?

      -Non se trata de orixinalidade, é unha necesidade hoxe en día, só pensa no seguinte, hai 20 ou 30 anos, escribir era unha necesidade, moitos traballos deduciron que sabías ou polo menos podías facelo. Hoxe en día coñecer Office é unha necesidade, practicamente non hai traballo que non te poña diante dos documentos de Office. Mañá, moi pronto, a programación será unha necesidade. E isto tamén se aplica desde o punto de vista persoal, saber que pasa nos programas aos que confías cousas tan importantes como o teu diñeiro, saúde, familia, é algo lóxico para min, porque só podes coñecer as súas limitacións se sabes como se fan. traballo e para sabelo, cómpre saber programar.

      Que problemas podo resolver que outros non resolven de xeito moito máis eficiente?

      -Sorprenderíache a cantidade de características que se requiren hoxe, e para dicir a verdade, non importa que haxa os mellores programadores do mundo na comunidade, o traballo sempre será maior que a capacidade de traballo dos desenvolvedores. Podo comprobalo en Gentoo, alí son persoas que desenvolven o núcleo, xente que traballa para Google, Sony, etc etc ... o único que temos en común é que ninguén ten tanto tempo como lle gustaría poder facer todo o traballo pendente.

      Por que aprender hoxe unha linguaxe de programación con programadores tan bos e experimentados que xa existen?

      -A isto responde na segunda pregunta 😉 Pero agora podo engadir que as xeracións deben poder apoiar o traballo que xa se desenvolveu, con isto quero dicir que eses desenvolvedores "experimentados" desaparecerán gradualmente e será necesario para o " máis nova »Os desenvolvedores asumen a responsabilidade e axudan a manter vivo o ciclo, unha comunidade que non ten xente nova e sen experiencia é propensa a desaparecer co paso do tempo, precisamente porque non haberá oportunidade de transmitir coñecemento.

      E que programa?

      -Esto é quizais o máis difícil de responder, pero intentarei darche un exemplo pouco. Recentemente empecei a sufrir problemas con GNOME 24 e a súa conexión con Wayland que impiden que programas como Shutter fagan capturas de pantalla. Isto é un problema para min porque cando escribo os meus artigos, teño que amosarche o que digo. Buscando un pouco cheguei á aplicación GNOME Screenshot, algo "minimalista", como mínimo. Entre as súas funcións, hai unha de facer unha rexión de pantalla, pero que pasa se non saquei ben a foto? Ben, teño que marchar e volver a ingresar ao programa, algo tedioso certamente, un botón que diga «Retomar» ou algo así me permite facer unha nova captura sen ter que saír e entrar de novo axudaríame. É un pequeno proxecto de programación, nunca programei nada no marco de GNOME, así que obviamente teño moito que aprender antes de enviar o meu "parche" co novo botón, pero polo camiño aprendín a programar e con algo de sorte é característica será de axuda para máis dun cando estea dispoñible para todos.

      Este é un exemplo, é algo sinxelo e que seguramente calquera outro programador "experto" xa o podería ter feito, pero debido á evidente falta de tempo, non foi así, agora son eu quen teño a posibilidade de facelo sen realmente ser un superprogramador.

      Agora só depende de ti atopar algo que che faga a vida "máis sinxela" nese software que usas con tanta frecuencia. A beleza é que se seguimos o consello que che vou a dar nos seguintes artigos, non importará, porque saberás o básico para comezar a comprender o código que lees e modificalo para facer o que queiras, ese é un sentimento moi especial 🙂

      Un saúdo e grazas de novo

      1.    ninguén dixo

        Creo que só unha vez que abro o programa gnome captures, o máis sinxelo é ir aos atallos de teclado e asignar tres combinacións de impresión para capturar todo alt-print para capturar a xanela activa e superimprimir para facer unha selección da captura rexión, os atallos están dispoñibles, só se trata de asignalos

        1.    ChrisADR dixo

          Por iso dámosche un exemplo an porque pequenas cousas como ese botón están a programar, poden axudar a algúns xa que poden pasar desapercibidos para outros, pero certamente cumpren o obxectivo principal, axudan a aprender a programar e dan paso a novas funcións, Despois dese botón pódense iniciar moitas cousas, como unha xestión de sesión ou unha pantalla de vista previa de todas as fotos tomadas ou, en suma, moitas cousas que se poderían facer. A idea é que atopes algo que che faga saltar a curiosidade, calquera software que funcione no teu sistema pode necesitar melloras ou novas funcións que por falta de tempo ou persoal aínda non se implementaron 🙂

      2.    mvr1981 dixo

        Grazas a ti. son moi boas respostas.

    2.    Guillermo dixo

      Ben, para alguén que non vai ser un profesional na materia, habería que ver en que contorno traballa, tanto para tarefas administrativas como directivas, pode ser interesante saber, por exemplo, Python / Basic e saber como para programar macros en paquetes de oficina como LibreOffice ou MS Office. Hai ocasións nas que isto pode aforrar moitas horas de traballo para vostede ou outros traballadores que o rodean e pedirlles que realicen calquera tarefa repetitiva, pode crear un cadro de mandos para calcular rapidamente as principais proporcións da empresa despois de conectarse coa base de datos da mesma e realizar algunha consulta SQL.
      Como todo, se coñeces as ferramentas ao teu alcance, podes pensar en como sacarlle o máximo proveito. Non todo está inventado.

  7.   Marcelo dixo

    Guillermo, totalmente de acordo contigo: "Non todo se inventa" e o que se inventa é modificable. Ten que aproveitar ao máximo as ferramentas e empregar a que mellor se adapte ás súas necesidades.

  8.   Ricardo dixo

    Para a programación, a primeira linguaxe que se aprende é o inglés, logo a que máis lles atrae e lles parece máis fermosa.

    1.    ChrisADR dixo

      Non o escribira, pero é certo 🙂 saber inglés axuda moito xa que a maioría dos idiomas están escritos nel, pero tamén porque a maior cantidade de información de primeira man tamén tamén Moitas grazas por compartir

  9.   Ruben salgado dixo

    Excelente artigo, ademais de motivador.

    1.    ChrisADR dixo

      Moi amable, moitas grazas 🙂 Un saúdo

  10.   Gonzalo Martínez dixo

    Programar é saber razoar e traducir ese razoamento en instrucións.

    Dúas aclaracións sobre o artigo:

    1) Baseado na miña experiencia como profesor de programación durante case 10 anos, non importa con que lingua aprendas, senón como aprendes e o complexo que é.

    Creo que unha linguaxe que se pode aprender dun xeito estruturado e despois pasar a outras cousas máis complexas é máis doado que comezar cunha linguaxe como Java dende o principio.

    É máis doado aprender algo como un Hello World en Do ou Pascal como base, que con algunhas liñas (PROGRAMA no caso de Pascal ou # incluír No caso de C) pode comezar a desenvolver o algoritmo e codificar o programa coa súa lóxica directamente, como en Java, que en si necesita unha clase, un método e outras cousas que para un principiante é innecesaria unha sobrecarga de información, e iso ben pode ignorarse e pasar a outras cousas, pero son conceptos que hai e, na miña opinión, pasar por alto as cousas non é un bo xeito de aprender, especialmente se a linguaxe te obriga a usalas. É como comezar a práctica de obxectivos por primeira vez cun M-16 e disparar durante meses en modo semiautomático sostendo o mango coas dúas mans como unha pistola.

    2) Se se interpreta ou compila unha linguaxe depende da súa implementación, non da propia lingua. Por exemplo, se se usa Python, para unha aplicación web que usa wsgi (ou mod_wsgi en apache ou uwsgi para Nginx), o código python compílase ao iniciar o módulo correspondente, xerando ficheiros .pyc

    Tamén hai xeradores de ficheiros binarios para java (que xeran binarios nativos no canto de bytecode), ou compiladores de scripts php en binarios puros.

    En canto ao que din sobre PHP, é simplemente unha linguaxe deseñada noutra época, con outras cousas en mente, e sen considerar aspectos que non existían nese momento. É evidente que o feito de ser o máis usado non o converte no mellor para nada do mundo, pero hai unha realidade: é a linguaxe coa que hai máis posibilidades de conseguir un traballo en toda a programación. Sabelo non fai mal, aínda que non che guste.

    Incluso eu, que levo varios anos traballando como administrador do sistema e deixei o traballo de desenvolvedor, cada certo tempo teño que poñer código PHP en algo.

    1.    ChrisADR dixo

      Ola Gonzalo, grazas por compartir,

      Certamente, falando de sobrecargas de información innecesarias, saber que a mesma linguaxe pode ser interpretada ou compilada é algo que non é necesario nesta etapa 🙂 Certamente a implementación é importante, pero se dicimos que a este nivel, non xeramos máis que confusión. Do mesmo xeito, non se abordan problemas de programación orientada a obxectos ou outros conceptos que deben ser dosificados gradualmente para non marear á xente.

      Dado que o espazo é limitado, o principal obxectivo da publicación é amosar aos lectores que queiran programar que hai dous grandes mundos de linguas, que os interpretados "tradicionalmente" son máis "sinxelos", que os "tradicionalmente" compilados son un pouco máis "complexo", pero paga a pena ese nivel de complexidade para ter unha comprensión máis sólida e que corresponde a cada persoa escoller o idioma, xa que dependendo do enfoque de programación, poderán escoller os seus proxectos favoritos e ao mesmo tempo tempo poderán comprender o que len e / ou escriben 🙂

      Moitas grazas de novo, saúdos.

      1.    Gonzalo Martínez dixo

        Isto é un erro, non hai linguaxes compiladas nin interpretadas, hai intérpretes e compiladores para cada lingua, ambos para casos diferentes.

        Non é unha sobrecarga de información mencionalo agora, é un erro facer tal afirmación. Na miña opinión, sería máis produtivo ignorar aos intérpretes se non quixese sobrecargar información.

        1.    ChrisADR dixo

          Grazas pola aclaración, terei en conta cando volva ao tema. Graciñas

  11.   Ares dixo

    Que idioma recomenda para o lado do servidor tendo en conta que o php caeu en desacordo?
    O mesmo para as bases de datos, non sei se haberá algo mellor e máis moderno que mySQL.

    1.    ChrisADR dixo

      PHP non caeu en desgraza ... Todas as linguas teñen o seu ciclo de vida, e o php seguramente xa é unha linguaxe que entra na escala de "maduro", o que o fai útil a nivel empresarial, onde a estabilidade está sobre todo ... Como algúns bancos onde aínda se desenvolve en java, que é máis "maduro" que o PHP e que seguramente ten os seus seguidores e detractores ... E sen esquecer COBOL ...

      Se o que buscas é uniformidade e modernidade, javascript estase a converter nun dos favoritos dos chamados "desenvolvedores de pila completa", aínda que o paradigma rubí ou a "sinxeleza" de python tamén son boas referencias ... Mesmo Perl podería ser a opción dependendo das necesidades 🙂

      Hoxe en día o ORM (mapeadores relacionais de obxectos) está a ter moita forza en termos de xestión de datos relacionais. Vai desde a sintaxe SQL ata o manexo de clases e atributos ... Case todas as linguas (por non dicir todas) manexan algúns ORM.

      . Mongo DB é unha alternativa ás bases de datos relacionais que se tornou bastante importante, non obstante, é necesario coñecer os seus pros e contras e validar se sería a mellor solución en función da necesidade específica.

      Espero que vos axude, saúdos 🙂

      1.    Ares dixo

        Grazas, comprobareino.

      2.    Ares dixo

        Esquecín.

        Que me recomendas para traballar con JAVA en Linux?
        Se podes diferenciar mellor entre libre e pechado.

        1.    ChrisADR dixo

          Eclipse e NetBeans son de código aberto, non estou seguro de se hai algún software puramente libre, teño o costume de usar vim porque ás veces a cantidade de código fai que o uso dun IDE enteiro sexa lento e propenso a erros de execución. Saúdos 🙂

        2.    PaulZeta dixo

          Para traballar con Java en Linux uso IntelliJ recoméndoche.

          1.    ChrisADR dixo

            PS, IntelliJ é un software propietario 🙂

  12.   je dixo

    Os rapaces tamén lembran que ... Traballo nun banco e dígovos que as linguaxes de programación quedan atrás para deixar que os procedementos SQL e Almacenados sexan os primeiros.

    1.    Gonzalo Martínez dixo

      Debes telos en conta nos procedementos almacenados, pero ao non usar unha linguaxe portátil entre motores, polo menos na miña experiencia, sempre se trata de evitalos a non ser que non haxa outra opción.