¿Qué lenguaje de programación se considera el más fácil para los principiantes?

* El artículo Guía para principiantes sobre lenguajes de programación de computadoras se publicó en el Blog de HackerEarth *

Los lenguajes de programación de computadora son a menudo confusos para los principiantes, cada uno con su propio dialecto y lengua vernácula. Y cada lenguaje de programación tiene su propio conjunto de sintaxis y código para escribir. Entonces, ¿cómo elegir un lenguaje de programación para aprender?

Con lenguajes de programación informática que van desde el lenguaje ensamblador de 67 años hasta el lenguaje Ruby joven. ¿Y sabes qué? Cada lenguaje tiene su propia presencia en el mundo de la programación informática.

Incluso un breve vistazo a la lista de lenguajes de programación disponibles da una pesadilla. Pero por ahora, conocer los mejores lenguajes de programación en 2017 ayudará. Pero, ¿cuál es el mejor lenguaje de programación para principiantes o qué lenguaje de programación aprender primero?

Decidí hacer una lista corta de los lenguajes de programación de computadora más utilizados para principiantes o principiantes.

Espero que la lista te ayude.

Verifique esta plataforma de programación de computadoras antes de leer más sobre cada una de ellas en detalle. Esto le ayudará a echar un vistazo rápido a cada lenguaje de programación.

  • Lenguaje ensamblador: fue desarrollado como una abreviatura del lenguaje de máquina para que no solo tenga que recordar los 0 y los 1 al codificar. Hoy en día, los lenguajes de ensamblaje se utilizan para acceder a procesadores especializados o abordar problemas críticos de rendimiento mediante la manipulación directa del hardware. Por lo general, se utilizan en sistemas integrados de bajo nivel y en tiempo real. Si desea programar un procesador, el lenguaje ensamblador puede no ser necesario, pero es invaluable.
  • Principales usuarios de la organización: IBM, Apple
  • Lenguaje C ++: es un lenguaje de propósito general de nivel medio. C ++ incorpora la característica de estar orientado a objetos en comparación con su predecesor C. C ++ es popular en áreas donde se requiere una representación gráfica como la de Windows y Macintosh. C ++ tiene una rica biblioteca de funciones y es un lenguaje altamente portátil.
  • Usuarios principales de la organización: Google, Mozilla, Firefox, Winamp, Adobe Software, Amazon, Lockheed Martin
  • Lenguaje C Es un lenguaje de programación de propósito general. C proporciona una construcción para asignar el lenguaje ensamblador a C y se ha utilizado más popularmente para operaciones que previamente se habían codificado en lenguajes ensambladores, incluidos los sistemas operativos. C es uno de los idiomas más utilizados y ha tenido una gran influencia en sus sucesores.
  • Usuarios principales de la organización: Microsoft, Apple, Oracle, Cisco, Raytheon
  • Objetivo C: es un lenguaje de programación orientado a objetos de propósito general que agrega mensajes de estilo Smalltalk en lenguaje C. Objective-C es uno de los lenguajes básicos utilizados por los productos de Apple y se utilizó en el desarrollo de los sistemas operativos iOS y OSX.
  • Principales usuarios de la organización: Apple
  • MATLAB: integra la computación y la programación en un entorno fácil de usar donde la mayoría de los objetivos están representados por notación matemática. Matlab es un lenguaje de alto rendimiento y se utiliza normalmente para el cálculo matemático y el desarrollo de algoritmos.
  • Usuarios principales de la organización: GE, Continental, Robert Bosch, Honeywell, Mercedes-Benz
  • PERL: es un lenguaje de scripting con una sintaxis similar a C y tiene muchas características de UNIX. Los programas escritos en Perl se llaman script de Perl. Perl es un lenguaje interpretado (no compilado) que, opcionalmente, puede compilarse justo antes de la ejecución en código C o bytecode multiplataforma.
  • Principales organizaciones de usuarios: Apple, Yahoo, BBC, IMDB
  • R – Es un dialecto del lenguaje S. El lenguaje R se usa para computación estadística y gráficos. R es comúnmente usado por estadísticos y mineros de datos para estadística y análisis. R se presenta como un paquete de software gratuito y está disponible bajo la licencia pública general de GNU.
  • Principales usuarios de organizaciones: Google, GE, Dropbox
  • Visual Basic: es un lenguaje de alto nivel implementado en http: //the.NETframework. VB se derivó de BASIC, un lenguaje fácil de usar diseñado para principiantes. Permite el desarrollo rápido de aplicaciones (RAD) de las aplicaciones de interfaz gráfica de usuario (GUI) y el acceso a bases de datos utilizando objetos.
  • Principales organizaciones de usuarios: Microsoft
  • PYTHON – Es otro lenguaje interpretado en esta lista. Desarrollado como un lenguaje de propósito general. El diseño de Python enfatiza la legibilidad del código y ayuda al usuario a expresarse en menos líneas de códigos.
  • Usuarios de las principales organizaciones: Google, Pinterest, Instagram, YouTube, DropBox, NASA, ESRI
  • PHP: es un lenguaje de secuencias de comandos utilizado por los usuarios para crear páginas dinámicas, que puede usarse más para transferir y enviar información en la web. Puede conectarse con servidores, bases de datos y sitios web externos según la dirección IP o la información disponible. PHP es uno de los lenguajes de scripting más utilizados por los desarrolladores web.
  • Principales usuarios de organizaciones: Facebook, Google, GE, WordPress
  • Javascript – Es un lenguaje de programación de alto nivel. Junto con HTML y CSS, Javascript es uno de los lenguajes principales en el desarrollo de la producción de contenido de la World Wide Web. La mayoría de los sitios web admiten javascript sin necesidad de complementos. Javascript también se usa en la aplicación no basada en web como PDF y widgets de escritorio.
  • Usuarios de organizaciones principales: WordPress, Soundcloud, Linkedin, Groupon, Yahoo
  • C # – Es otro idioma en la lista de C lenguajes. C # (pronunciado como C-Sharp) es un lenguaje de programación orientado a objetos y orientado a componentes. C # es uno de los lenguajes de programación desarrollados para infraestructura de lenguaje común. Los desarrolladores que trabajan en Windows prefieren C # para desarrollar aplicaciones y resulta que C # es un gran competidor de Java.
  • Usuarios de grandes organizaciones: cualquier empresa que trate extensamente con Windows.
  • Java – A menudo se le llama el mejor lenguaje de programación, en medio de mucho debate. Java es un lenguaje de alto nivel. Fue pensado para “escribir una vez, ejecutar en cualquier lugar (WORA)”, es decir, una vez que se escribe el código, se podría usar en cualquier plataforma que use Java. Java se utiliza para aplicaciones cliente-servidor con más de 9 millones de desarrolladores que utilizan la plataforma.
  • Principales usuarios de organizaciones: V2COM, Eclipse Information Technologies, eBay, Eurotech
  • CSS – CSS o hoja de estilo en cascada es un lenguaje de hoja de estilo que se utiliza para describir la presentación de una documentación escrita en lenguaje de marcas. Aunque a menudo se utiliza para el estilo visual y la interfaz de usuario para HTML. CSS es una tecnología utilizada por la mayoría de los sitios web para crear páginas visualmente atractivas.
  • Principales organizaciones de usuarios: Apple, CyberCoders, Apex Systems
  • Ruby – Es uno de los lenguajes de programación más jóvenes. Desarrollado para aumentar la productividad, Ruby es un lenguaje de programación no compilado interpretado por un servidor. Ruby se usa con Ruby on Rails para el desarrollo del framework.
  • Principales usuarios de organizaciones: cibernéticos, Amazon, EMC, Bloomberg
  • SQL: aunque no se considera un lenguaje de programación que figura en la prueba de Alan Turing del lenguaje de programación, por ahora, SQL es uno de los lenguajes de programación favoritos del reclutador. SQL, o lenguaje de consulta estructurado, es un lenguaje de programación específico de dominio para propósitos especiales utilizado en la programación y administración de la base de datos (DBMS). A menudo descrito como un lenguaje declarativo, SQL también incluye elementos de procedimiento. A pesar de ser un estándar en ANSI desde 1986, la mayoría del código SQL no es portátil entre diferentes sistemas de bases de datos.
  • Principales organizaciones de usuarios: Facebook, Google, Adobe, Alcatel-Lucent

También puedes leer sobre estas 13 habilidades de programación raras y subestimadas para aprender aquí.

Antes de comenzar a comparar lenguajes de programación, primero echemos un vistazo a los lenguajes que vamos a cubrir.

Lenguajes dinamicos

Los idiomas dinámicos son generalmente más fáciles de aprender para los principiantes totales porque son flexibles y divertidos. Puede crear rápidamente una aplicación desde cero con menos líneas de código, y no hay una regla estricta sobre cómo escribir las cosas para que se comporten de la manera que usted quiere. Como los lenguajes dinámicos son usualmente lenguajes de muy alto nivel, pasaría menos tiempo tratando de obtener los detalles correctos y más tiempo aprendiendo conceptos de programación , lo cual es otra razón por la cual los lenguajes de tipo dinámico son populares entre los principiantes que están motivados por ser capaces de construir cosas y ver los resultados rápidamente.

JavaScript

Para no confundirse con Java, JavaScript es principalmente un lenguaje de script del lado del cliente utilizado para el desarrollo de aplicaciones para usuario. JavaScript es compatible en todos los navegadores y se usa para crear aplicaciones web interactivas, a menudo a través de bibliotecas como jQuery y marcos front-end como AngularJS, Ember.js, React y más.

JavaScript también se puede utilizar como un lenguaje del lado del servidor a través de la plataforma Node.js. Hace dos años, Node.js todavía era bastante joven, pero su comunidad ha crecido mucho desde entonces, y ahora puedes encontrar muchos recursos aquí. También puede crear aplicaciones móviles híbridas con JavaScript mediante el uso de marcos como phonegap, mientras que React Native de Facebook le permite crear aplicaciones móviles nativas con JavaScript.

Sin embargo, JavaScript también se conoce como un lenguaje difícil porque no está tipificado y, por lo tanto, es difícil de depurar. Existen versiones tipificadas estáticamente, como TypeScript de Microsoft o JSX, que utiliza React.

Rubí

Ruby fue desarrollado para que los desarrolladores puedan divertirse y ser productivos al mismo tiempo. Ruby se hizo popular por el marco de Ruby on Rails, un marco web de pila completa optimizado para la programación de la felicidad. Como Ruby lee como English and Rails tiene herramientas que facilitan las tareas de desarrollo comunes “fuera de la caja”, muchos recomendarían aprender Ruby como su primer lenguaje de programación.

Ruby se utiliza principalmente para el desarrollo de back-end, y los sitios populares como Airbnb, Shopify, Bloomberg, Hulu, Slideshare y más, todos fueron construidos con Ruby on Rails.

Pitón

Python es otro lenguaje altamente recomendado para principiantes, y es el idioma introductorio más popular en las mejores universidades de los Estados Unidos.
Los desarrolladores han utilizado Python para crear aplicaciones de escritorio y aplicaciones web por igual, y tiene excelentes herramientas para la minería de datos. Además, Python es particularmente popular en comunidades académicas para computación científica, análisis de datos y bioinformática.

Google, Dropbox, Pinterest, Instagram, Reddit, BitTorrent, Civilization IV, y más, fueron construidos con Python.

PHP

PHP es un lenguaje de secuencias de comandos del lado del servidor y, por lo general, se considera apto para principiantes. Es fácil conceptualizar lo que hará el código PHP, lo que facilita su recogida. La mayoría de los sitios web se han creado con PHP porque el lenguaje está muy especializado para la web.

Facebook, Wikipedia, Yahoo !, Tumblr, WordPress y más, fueron construidos con PHP.

Lenguajes tipificados estáticamente

Se sabe que las aplicaciones creadas con lenguajes tipificados estáticamente son más escalables, estables y mantenibles. Los lenguajes estáticos suelen ser más estrictos en la captura de errores a través de la verificación de tipos, y se necesita más código para construir un prototipo. Los motores de juegos, las aplicaciones móviles y los servicios de fondo de nivel empresarial generalmente se construyen con lenguajes de tipo estático.

Java

Como lenguaje de propósito general, Java se utiliza para crear aplicaciones de Android, aplicaciones de escritorio y juegos. Java también se usa comúnmente como un lenguaje del lado del servidor para el desarrollo de back-end a nivel empresarial: el 90 por ciento de las compañías de Fortune 500 usan Java.

Además, Hadoop es un popular marco basado en Java utilizado para almacenar y procesar big data, y es implementado por empresas como Yahoo, Facebook y Amazon Web Services.

do

C se usa a menudo para programar el software del sistema y es la lengua franca de los sistemas operativos.

C ha influido en casi todos los lenguajes de programación que examinaremos en este artículo, especialmente en Objective-C y C ++. Por lo tanto, si conoce bien la C, probablemente sea más fácil para usted aprender otros idiomas populares. Dado que C requiere códigos más complejos para realizar tareas sencillas, a los principiantes les puede resultar difícil mantenerse motivados si este es su primer idioma. Sin embargo, el conocimiento de C definitivamente te ayudará como programador a largo plazo.

Objective-C / Swift (para desarrollo de iOS)

Objective-C es una capa construida sobre el lenguaje C, lo que la hace estática. Dicho esto, también se puede utilizar para la escritura dinámica. Swift de Apple es un lenguaje estático diseñado para ser compatible con Objective-C, pero su tipificación estática lo hace más resistente a los errores.

Inspirado por Python, Swift está diseñado para codificar a los novatos para que lo aprendan fácilmente y está dirigido a solucionar algunos de los problemas de Objective-C.

C ++

C ++ es un lenguaje poderoso basado en C. Está diseñado para los sistemas de programación de software, pero también se ha utilizado para crear motores de juegos / juegos, aplicaciones de escritorio, aplicaciones móviles y aplicaciones web. C ++ es potente y rápido, incluso Facebook ha desarrollado varios componentes de alto rendimiento y alta confiabilidad con él.

Se han creado muchos programas con C ++, incluidos Adobe Systems, Amazon, Paypal, Chrome y más. Al igual que C, C ++ generalmente se considera más difícil para los principiantes aprender por su cuenta. Entonces, si decide aprender C ++ como su primer lenguaje de programación, siéntase libre de buscar un mentor a través de Meetups o busque un Codementor en C ++.

do

C # (“C Sharp”) está desarrollado para usarse en el marco .NET de Microsoft, que se ejecuta principalmente en Microsoft Windows.

C # se usa para desarrollo web, desarrollo de juegos y desarrollo general de Microsoft. Aunque Microsoft no ha sido conocido por ser compatible con múltiples plataformas en el pasado, Xamarin ha estado trabajando en un proyecto de código abierto llamado Mono, que apunta a portar C # a otras plataformas y brindar mejores herramientas de desarrollo a los desarrolladores de Linux. Recientemente, también puede usar C # para crear aplicaciones móviles nativas para iOS y Android a través de Xamarin.

Otro

SQL

SQL ( “Sequel” ), o lenguaje de consulta estructurado, es un lenguaje de consulta utilizado para comunicarse con bases de datos. Aunque SQL no se puede usar para crear aplicaciones, se usa para administrar los datos en aplicaciones que usan sistemas de administración de bases de datos relacionales (RDMS).

Es posible que también desee leer: Conviértase en un desarrollador con estos más de 20 recursos

Oportunidades de trabajo

Entonces, ahora sabes un poco sobre diferentes lenguajes de programación y su dificultad percibida. Dicho esto, no todos los idiomas tienen la misma demanda o salario. Si su objetivo de aprender a programar es aumentar sus oportunidades de trabajo y no se dejará engañar por lo difícil que dice la gente que va a ser el idioma, aquí hay algunos consejos que lo ayudarán a descubrir qué idioma debe aprender.

Basándonos en las estimaciones salariales del análisis de Indeed.com de los anuncios de trabajo, podemos dividir los lenguajes de programación en 9 niveles:

Según este resultado, parece que Ruby / Ruby on Rails te ganará la mayor cantidad de dinero, mientras que Python, C ++, iOS y JavaScript también son opciones decentes. Además, si su principal preocupación es el salario, entonces C, PHP y SQL no son las opciones más ideales … ¿o no lo son?

El salario promedio puede verse afectado por muchas cosas, como la demanda (cuántos puestos de trabajo hay), la oferta (cuántos desarrolladores conocen el idioma) y la experiencia (un desarrollador junior naturalmente ganaría menos que un desarrollador senior), por lo que es una buena idea para echar un vistazo más profundo a estos elementos antes de saltar a cualquier conclusión.

Tendencias de empleo

¿Qué tan probable es que consigas un trabajo basado en el lenguaje de programación que conoces? He aquí un vistazo rápido a las tendencias de empleo de Búsqueda de empleo | En efecto:

Podemos ver que C, SQL, Java y JavaScript a menudo se mencionan en las ofertas de trabajo, mientras que C #, C ++ y Python también son lenguajes útiles para saber.

Sin embargo, si su objetivo es trabajar en un inicio, quizás las tendencias de empleo de Búsqueda de empleo | De hecho no es el mejor indicador. AngelList es prácticamente el lugar al que acudir para las nuevas ofertas de trabajo, por lo que analizaremos la demanda de habilidades de programación basadas en los anuncios de desarrolladores de software en AngelList.

Una vez más, JavaScript resulta ser la habilidad más demandada, pero las startups parecen favorecer a Python y Java (¡era Ruby (en Rails) hace 2 años!) Más que Ruby, PHP, C o C #.

El mercado de suministros para desarrolladores

Echemos un vistazo a lo que los mentores en Codementor son expertos en:

Por supuesto, esto no es de ninguna manera una descripción precisa del mercado real, pero debería darle una buena idea de los suministros para desarrolladores. Como puede ver, a pesar de que el negocio de aplicaciones móviles ha estado en auge durante algún tiempo, los expertos de Objective-C todavía son muy escasos. Con una escasa oferta de buenos desarrolladores de Objective-C, sus compensaciones serían naturalmente mayores.

PHP, por otro lado, parece tener una buena cantidad de oferta en la fuerza laboral, lo que significa que los empleadores tendrían más opciones y, por lo tanto, más poder de negociación en términos de salario. Dicho esto, los desarrolladores de PHP no son tan demandados como los desarrolladores de Java, SQL o JavaScript. Por lo tanto, los desarrolladores de PHP generalmente ganan menos.

JavaScript es un caso muy especial. A pesar de tener el suministro más alto, los desarrolladores de JavaScript no se encuentran en la parte inferior del nivel salarial; veremos JavaScript más adelante en este artículo.

Rango salarial

Ahora que tiene una idea de lo que es la demanda y la oferta de cada idioma, echemos un vistazo al salario potencial que podría ganar en función de la información salarial de los anuncios de empleo. Los datos provienen de gooroo.io, donde el salario generalmente se deriva del valor promedio del rango de salario ofrecido por el anuncio de trabajo individual.

Aquí, puedes ver que los desarrolladores que conocen Ruby, C ++ o Java parecen tener salarios iniciales más altos. Los desarrolladores de Python y Ruby parecen tener los salarios más altos posibles, lo que significa que los buenos desarrolladores de Ruby / Python son escasos y muy demandados. Parece que JavaScript ha experimentado una gran caída en el salario potencial, alcanzando su máximo de 188,168 USD en abril de 2015; ahora está a aproximadamente $ 107k. No obstante, JavaScript sigue siendo un caso especial, y veamos por qué.

¿Cuánto hacen realmente los ingenieros de software en cada ciudad?

Caso especial: Frameworks JavaScript

El simple hecho de comparar el lenguaje JavaScript con otros lenguajes de programación es una perspectiva inexacta de cuánto puede ganar si conoce JavaScript.

Como se menciona en la descripción general de los lenguajes de programación, JavaScript es una categoría enorme. Se han desarrollado muchos marcos para facilitar el desarrollo de sitios web front-end, por lo que si solo conoce JavaScript y jQuery, probablemente ganará menos que otros desarrolladores de JavaScript que conozcan algún tipo de marco JavaScript.

Echemos un vistazo al salario promedio de los diferentes desarrolladores de marcos de JavaScript en los EE. UU. ( Nota: posiblemente, React y Backbone son bibliotecas, no marcos, y Node.js es más un entorno):

Ahora los salarios promedio no se ven tan mal. Node.js, en particular, tiene una perspectiva de futuro muy agradable. Como tendrías que saber JavaScript para aprender estas tecnologías, JavaScript es una habilidad bastante rentable.

También echemos un vistazo a la demanda de los desarrolladores de estos marcos:

Node.js se usa generalmente para el desarrollo de back-end, por lo que si solo estamos mirando los marcos de front-end, puede ver que AngularJS parece ser un claro ganador con una demanda creciente. Por lo tanto, si desea entrar en el desarrollo de JavaScript de front-end, es posible que desee aprender AngularJS.

React, por otro lado, es una tecnología bastante nueva, y ha estado ganando impulso a una velocidad que compite con las etapas iniciales de AngularJS. Es posible que aún esté en la etapa de ganar impulso y que potencialmente sea más demandado, ya que, en general, es más eficaz que AngularJS y, por lo tanto, proporcionará una mejor experiencia de usuario.

Aquí hay una guía útil sobre cómo se comparan React.js y Angular JS.

Recursos de programación

Si conoce un poco sobre el mundo de los desarrolladores, probablemente sepa lo importante y útil que es contar con el apoyo de otros desarrolladores, especialmente si planea aprender por su cuenta.

Ser parte de una comunidad de apoyo definitivamente hará que tu vida de desarrollo sea más fácil.

Desbordamiento de pila

StackOverflow es, con diferencia, la comunidad más grande utilizada por desarrolladores de todo el mundo para ayudar y obtener ayuda de otros programadores, por lo que examinaremos qué tan grande / popular es una comunidad de lenguajes de programación, así como qué tan útiles son las comunidades para diferentes idiomas. son.

Idioma de popularidad

Basándonos en los seguidores de la etiqueta en StackOverflow, podemos ver la popularidad general de un idioma:

Ya hemos examinado las tendencias de trabajo que los desarrolladores de Java y JavaScript tienen la mayor demanda, por lo que no es de extrañar que también tengan la mayoría de los seguidores de etiquetas. JavaScript es ahora la etiqueta más utilizada en StackOverflow, que reemplaza a Java. (¡Es interesante ver cómo la Universidad de Stanford decidió recientemente reemplazar Java con JavaScript en su curso introductorio de programación!)

SQL, Ruby y Swift tienen menos seguidores, aunque esto es probable porque Ruby se usa casi estrictamente para el desarrollo web, mientras que Swift es un lenguaje relativamente nuevo.

Tasa de respuesta de StackOverflow

StackOverflow tiene una regla tácita en la que tiene que formular su pregunta “correctamente”, o la gente no se molestará en responderle. Con esto en mente, echemos un vistazo a la probabilidad de que sus preguntas sean respondidas para cada idioma:

Según nuestra información, aunque menos usuarios de StackOverflow siguen C, SQL y C ++, se responde a más del 60% de las preguntas relacionadas. Aquellos que saben probablemente dirían que C y C ++ son lenguajes avanzados, lo que significa que los usuarios que hacen estas preguntas son probablemente programadores más experimentados que saben cómo expresar mejor sus preguntas. SQL, por otro lado, no se utiliza para construir cosas.

Lo que es digno de mención es cómo los desarrolladores Python y Ruby de apoyo están en StackOverflow. Como Python y Ruby son los idiomas más recomendados para principiantes, hay muchas más preguntas sobre estos dos idiomas. Como sugerimos anteriormente, los principiantes generalmente tienen problemas para hacer sus preguntas correctamente. Se podría suponer que las preguntas de los principiantes quedarán sin respuesta en gran medida; sorprendentemente, casi el 60% de las preguntas sobre Python y Ruby se responden dentro de los 30 días.

Por otro lado, PHP, aunque es un lenguaje bastante seguido, tiene uno de los índices de respuesta más bajos. Esto significa que muchas personas están preguntando sobre PHP, pero no muchas están recibiendo respuestas a sus preguntas.

GitHub

Una vez que llegue a la etapa de desarrollo, eventualmente aprenderá que es mejor usar una solución existente para sus propios proyectos cuando sea posible. Normalmente obtendrás esto de proyectos de código abierto, y GitHub es el camino a seguir para estas cosas. Los usuarios pueden protagonizar proyectos que les gustan, y cuantas más estrellas tenga un proyecto, más útil será.

Por lo tanto, al examinar los datos de GitHub, también podemos determinar la relativa facilidad en el desarrollo de proyectos utilizando diferentes tipos de idiomas. También podemos tener una idea de qué tan rápido un lenguaje está innovando nuevas tecnologías. Sin más preámbulos, aquí hay un gráfico simple para visualizar la distribución de los proyectos populares de GitHub:

Claramente, JavaScript tiene las herramientas nuevas más brillantes, incluso cuando excluimos todas las guías de estilo, recursos de aprendizaje y tutoriales. JavaScript es conocido por ser un lenguaje extremadamente rápido con un alto índice de abandono de marcos y nuevas tecnologías; a los desarrolladores a veces les puede resultar difícil mantenerse al día con las innovaciones constantes. Además, aparte de la plataforma Node.js, JavaScript se usa principalmente para el desarrollo de aplicaciones para usuario, por lo que no está “compitiendo” directamente con otros lenguajes de servicio para aplicaciones como Ruby, Python, Java y PHP. Teniendo esto en cuenta, no es sorprendente que exista una brecha tan grande entre JavaScript y otros lenguajes de programación.

Ruby y Objective-C, por otro lado, también tienen muchas herramientas y recursos para el desarrollo. Ahora, hemos visto en la comparación de StackOverflow que ambos lenguajes no son tan populares como lenguajes como Java. Al contrario de StackOverflow, los desarrolladores generalmente han encontrado que los proyectos de código abierto en GitHub son muy útiles. Esto es especialmente cierto para Objective-C si examina el total de proyectos escritos en cada idioma:

Además, la mayoría de los proyectos de código abierto escritos en C / C ++ no son para el desarrollo de C / C ++ en sí, solo son herramientas escritas para ayudar al desarrollo en general (por ejemplo, el intérprete de Python más comúnmente usado es CPython, que está escrito en DO). Como se mencionó anteriormente en la introducción a los lenguajes de programación, C / C ++ se usa principalmente para desarrollar aplicaciones de sistemas, por lo que tiene sentido que los proyectos de código abierto en GitHub sean herramientas del sistema. No obstante, puede aprender mucho de estos proyectos de código abierto.

Finalmente, SQL y Swift se están quedando atrás en términos de recursos disponibles.

El futuro de cada lenguaje de programación

¿Cuán relevante será un lenguaje de programación específico en el futuro? En primer lugar, el futuro de un idioma dependerá en gran medida del crecimiento de su comunidad , ya que la tasa de sangre fresca / adopción es lo que mantiene al lenguaje popular y garantiza que continuará teniendo recursos. Por lo tanto, echemos un vistazo a qué idiomas les interesa más a las personas aprender:

Parece que Python, JavaScript, Java (C # ocupó el tercer lugar en 2014) y C ++ han recibido el mayor crecimiento en interés. Sobre la base de las tendencias actuales conocidas, podemos sacar las siguientes conclusiones:

JavaScript

JavaScript es, sin lugar a dudas, cada vez más popular, especialmente porque ahora se puede usar para el desarrollo de back-end e incluso puede crear aplicaciones móviles nativas (a través de React Native). JavaScript continúa obteniendo más herramientas y actualizaciones a un ritmo bastante rápido, por lo que puede esperar que siga siendo extremadamente importante en el futuro.

¿Quieres aprender JavaScript? Aprende JavaScript de pila completa a tu propio ritmo

Rubí

Las startups aman a Ruby on Rails. Muchos sitios web famosos, como Airbnb, Twitch, Hulu, etc., están construidos con Rails, lo que significa que siempre están buscando desarrolladores de Ruby. Además, como los desarrolladores generalmente se divierten mucho con Rails y es bastante fácil de aprender, lo más probable es que Rails siga siendo popular entre los novatos de codificación.

Dicho esto, el aumento de Node.js definitivamente tendrá un impacto en la popularidad de Ruby on Rails: Node.js ya ha superado a Rails en Github. Si bien esto no es una señal absoluta de que Node.js superará a Rails, debemos tener en cuenta que hace unos años, Rails superó al marco web más grande de Python, Django, para el desarrollo de back-end, y Rails tenía más estrellas que Django.

Sin embargo, dado que Rails continúa recibiendo actualizaciones frecuentes, seguirá siendo relevante por un tiempo. Sin mencionar que tiene una comunidad tremendamente leal con toneladas de herramientas útiles para ayudar a facilitar el desarrollo. Por lo tanto, a pesar de una disminución en la popularidad, Ruby todavía se quedará.

¿Quieres aprender Ruby on Rails? ¡Aquí están algunos grandes recursos !

Pitón

Python es popular entre los investigadores académicos y científicos de datos, y como se mencionó anteriormente, muchas escuelas eligen introducir a los principiantes en la codificación a través de Python. Esto significa que Python seguirá creciendo constantemente y seguirá siendo relevante. Si bien Python no evolucionará tan rápido ni verá el mismo crecimiento explosivo en popularidad y demanda que JavaScript, continuará siendo sólido, especialmente cuando existe una demanda tan alta de científicos de datos.

¿Quieres aprender Python? Obtener entrenamiento en Python

PHP

Las tendencias para el desarrollo de back-end se han ido alejando de PHP desde hace algunos años, pero el 80% de los sitios web en la web todavía están construidos con PHP; después de todo, era un lenguaje diseñado para la web.

No obstante, si busca en Google el lenguaje de programación que los principiantes deben aprender, encontrará que los desarrolladores generalmente no recomiendan aprender PHP. De hecho, muchos desarrolladores aparentemente lo odian.

La comunidad de PHP está tratando de deshacerse de su mala reputación con nuevas pautas sobre cómo codificar PHP de la manera correcta y nuevas herramientas, pero en general, el futuro de PHP parece bastante estancado a partir de 2015 (al menos en los EE. UU.). Aunque algunos esperaban que PHP7 revitalizaría la comunidad, todavía se sabe que está bastante fragmentada.

Java

Android ha sido un gran impulso para mantener a Java como el lenguaje de programación más popular, y la mayoría de las empresas también adoran a Java por su relativa estabilidad y escalabilidad.

Con el auge de Spark (que usa el lenguaje Scala) y Cassandra (que soporta otros idiomas), es difícil decir cuánto tiempo Hadoop continuará reinando como el marco de big data más popular. Dicho esto, dado el comportamiento de las grandes empresas cuando se trata de un cambio, Hadoop no se irá. Lo mismo se puede decir sobre el lenguaje de programación Java en general, ya que Java tiene excelentes herramientas para el desarrollo de back-end y está mucho más establecido para el desarrollo empresarial.

Por lo tanto, Java continuará siendo uno de los lenguajes de programación más relevantes en los próximos años.

Objective-C / Swift

Dado que Apple lanzó Swift, y Objective-C solo funciona para los productos de Apple, uno no puede esperar que Objective-C se quede por mucho más tiempo en el futuro. Por otro lado, Swift será, por supuesto, relevante para los próximos años, siempre y cuando la gente continúe usando los productos de Apple.

Dicho esto, esto no significa que no debas aprender Objective-C en 2017, ya que la mayoría de los proyectos de código abierto para el desarrollo de iOS aún están escritos en Objective-C. En general, usar algo que no entiendes no es una buena idea. Sin mencionar que no es tan difícil para ti aprender Objective-C si conoces Swift o viceversa.

¿Quieres construir aplicaciones iOS? ¡Aprende Swift con nuestros mentores favoritos !

do

C es bastante bajo en comparación con otros lenguajes de programación, pero como se trata de la lingua franca del sistema operativo y muchas herramientas de desarrollo están escritas en C, incluido Linux, se mantendrá.

SQL

SQL es casi universalmente entendido por los administradores de bases de datos. Por un tiempo, SQL parecía haber perdido su relevancia con el aumento de los servicios NoSQL, como MongoDB y Redis, y las plataformas informáticas de Big Data que no usan SQL, como Hadoop, Spark y Cassandra. Muchas personas gritaban acerca de cómo se estaba muriendo SQL.

Al parecer ya no más. Como resultado, incluso NoSQL tuvo que reposicionarse como “No solo SQL”.

Con el auge del big data y la dificultad de gestionarlo, SQL está más caliente que nunca (como ya sabe por las tendencias de trabajo). Google también ha actualizado recientemente su servicio BigQuery, por lo que ahora puede ingerir hasta 100,000 filas por segundo por tabla, y BigQuery usa SQL. Spark’s también tenía el Spark SQL Module desde la versión 1.3. Para productos como ClustrixDB, DeepSQL, MemSQL y VoltDB, todo lo que necesita hacer es agregar nodos de productos básicos en lugar de aumentar el volumen de un servidor de base de datos.

Con todo, el SQL vuelve a ser relevante porque es necesario para administrar y analizar (no almacenar) big data. La comunidad de desarrolladores incluso predice algún tipo de unificación de SQL y NoSQL. De cualquier manera, no solo hay SQL en todas partes, sino que también es seguro decir que SQL seguirá siendo relevante.

C ++

C ++ aún se considera el lenguaje más poderoso en términos de rendimiento y capacidades (incluso contra Rust), lo más probable es que C ++ siga siendo relevante en ciertas áreas, como las cosas que necesitan un alto rendimiento (por ejemplo, motores de juegos). Dado que ISOCPP (Organización Internacional para la Estandarización) ha completado su trabajo en C ++ 17, que se encuentra en su proceso final de votación de ISO, lo más probable es que comience a trabajar en C ++ 20 en julio de 2017. Todo esto para decir, aún es Un lenguaje en evolución.

En el futuro, Rust puede potencialmente reemplazar a C ++ en algunas áreas de la programación de sistemas, ya que Rust pretende poder producir software menos vulnerable que C ++. Lea más sobre cómo Rust se compara con otros idiomas aquí. Independientemente de si Rust realmente tomará el control de C ++, ahora es un buen momento para aprender Rust si eres un desarrollador avanzado.

DO#

Estar limitado a las plataformas de Microsoft y ser de código cerrado no funcionó a favor de C # en el pasado, pero afortunadamente Mono vino al rescate (aunque Mono tuvo algunos problemas de rendimiento en el pasado, sus actualizaciones recientes los han mejorado).

Los desarrolladores que han trabajado con C # parecen amar el lenguaje de programación de C #, y la pasión continúa alimentando a la comunidad fuerte. Por no mencionar, C # es el idioma principal de Unity 3D, un motor de juego bastante popular que también podría funcionar en iOS, Linux, etc. El auge de Unity3D como el motor de juegos indie de facto y las aplicaciones de realidad virtual ha consolidado el futuro de C #. Dado que la realidad virtual es una gran cosa, y seguirá siendo una gran cosa, C # es seguro que tendrá un futuro muy brillante.

Además, C # también es bastante popular para el desarrollo empresarial en países distintos a los EE. UU., Como el Reino Unido. Obviamente, Microsoft mantendrá vivo a C # por un tiempo y lo mantendrá relevante para la plataforma .NET. De hecho, ha abierto sus productos de forma agresiva y lo ha hecho más accesible para que los desarrolladores puedan adoptarlo.

Conclusión

¿Qué idioma debe aprender un principiante de codificación? Claramente, si deseas entrar en el desarrollo web, deberías aprender JavaScript, te guste o no. Si desea realizar un desarrollo web de back-end, debe aprender algún tipo de SQL.

Además, si desea minar sitios web para obtener datos o si está interesado en ser un científico de datos, Python es un buen lenguaje para aprender. Si desea trabajar para una empresa, entonces Java es el camino a seguir. Si realmente no estás interesado en construir cosas y estás más interesado en las oportunidades de trabajo, entonces quizás SQL sea un buen lugar para comenzar (especialmente si te gustan las matemáticas).

En total, el lenguaje de programación que debe aprender en 2017 dependerá en última instancia de lo que quiera hacer.

Fácil lenguaje de programación para principiantes:

  1. Python: en estos días, Python es considerado como uno de los mejores y más fáciles lenguajes de programación para principiantes, y se menciona muy pronto en cualquier discusión de codificación. Guido van Rossum desarrolló Python en los años 80. Es un lenguaje de código abierto y gratuito conocido por sus estilos de programación dinámico, flexible, orientado a objetos, de procedimiento y funcional.

Aprender Python

  1. Ruby: Ruby es un lenguaje de scripting dinámico y expresivo. Es compatible y se ejecuta en una variedad de plataformas como Windows, Mac, Linux y varias versiones de Unix. Este curso te ayudará a familiarizarte con el lenguaje Ruby y los conceptos básicos de programación vinculan variables, matrices, funciones, métodos, bucles en Ruby.

Aprender ruby

  1. Java: Java fue desarrollado por James Gosling en Sun Microsystems en la década de 1990. Hoy en día, es mantenido por Oracle. Es un lenguaje de programación de propósito general que se usa para construir diferentes tipos de aplicaciones y software. Con el tiempo, se ha consolidado como Uno de los lenguajes de programación más influyentes y sólidos. Es un lenguaje de programación orientado a objetos y basado en clases, creado para la portabilidad y la aplicación multiplataforma.

Aprender java

  1. Los lenguajes de programación C y C ++: C y C ++, probablemente los primeros que aprendiste, han existido durante mucho tiempo. C sigue siendo un lenguaje de programación de uso general muy popular que ha influido en muchos otros lenguajes de programación modernos, incluido C ++. Algunas personas pueden argumentar que C usa un código más complejo en comparación con otros, entonces, ¿cuál es el uso de C en esta lista? Es uno de los lenguajes más fundamentales en ciencias de la computación, y aprenderlo aclarará sus conceptos básicos.

Aprender c | Aprender c ++

Basado en C, C ++ es un potente lenguaje de programación que está diseñado para llevar las cosas un paso más allá, y ofrece programación orientada a objetos. Se ha establecido como uno de los lenguajes de programación más importantes del mundo. Al igual que C, C ++ te ayuda a comprender cómo funcionan las cosas en la informática.

  1. JavaScript: JavaScript es a menudo, y con razón, llamado el idioma de la web. Los principiantes no deben confundirlo con Java. Es principalmente un lenguaje de script del lado del cliente que se utiliza para el desarrollo de aplicaciones para usuario. Es fácil de aprender, pero no tan fácil como Python y Ruby on Rails. La sintaxis de JavaScript es similar a C. Debido a su naturaleza multiplataforma, es un lenguaje de programación muy popular que es fácil de aprender. Es compatible con todos los navegadores web. Usando Node.js, también se puede usar como un lenguaje del lado del servidor.

Aprende JavaScript

Comience con un buen lenguaje de enseñanza . Un buen lenguaje de enseñanza es muy simple y fácil de aprender. Es gratis desde el navegador que encuentras en lenguajes como Java, Python, JavaScript y C. (Sí, incluso Python es bastante crufty).

Un buen lenguaje de enseñanza te permite enfocarte completamente en los conceptos básicos de programación. (como OOP) sin ser distraído por rarezas y peculiaridades del lenguaje innecesarias.

No hay muchos buenos idiomas de enseñanza. Solo puedo pensar en Logo, Pascal, Scheme y Smalltalk. Recomiendo Smalltalk porque:

  1. Es uno de los idiomas más limpios, pequeños y simples del mundo; Su sintaxis puede caber en una tarjeta postal!
  2. Es puramente orientado a objetos, y OOP es el paradigma de programación más importante en la industria de TI. Simplemente no hay mejor manera de aprender programación orientada a objetos.
  3. ¡Cuenta con un fantástico entorno de codificación y depuración en vivo que puede amplificar su productividad hasta cinco veces!
  4. Smalltalk es más divertido que un barril de monos. Las otras lenguas de enseñanza están prestadas.

Para obtener más información, lea Por qué Pharo podría ser el futuro del desarrollo de software.

Para aprender Smalltalk, lea la respuesta de Kenneth Eng a ¿Cuál es el mejor lenguaje de programación para que un principiante aprenda desde cero?

Eso es genial, te gustaría comenzar a programar! Soy un estudiante de primer año de Ciencias de la Computación, y como esta es mi opinión, no todas las personas que leen esta respuesta pueden estar de acuerdo con sus ideas.

Supongamos que ya ha tomado algún tipo de curso de algoritmos, sabe que programa en un editor de texto y cómo se leerá su programa en él.

Pregúntese: ¿Le gustaría aprender a programar solo por el simple hecho de hacerlo? ¿O le gustaría programar para ser un científico informático, científico de datos, ingeniero de software, etc. en el futuro?

Si respondió “sí” a la segunda pregunta, eso es increíble. Estamos en el mismo barco. Recomiendo encarecidamente aprender C. Es un lenguaje de muy bajo nivel, ya que “indirectamente” trata con la memoria, pila, montón, etc. de la computadora, y aprende los fundamentos de programación, como los punteros y la asignación de memoria que se abstraen de usted en otros Lenguajes de alto nivel como Java, por ejemplo.

Aunque Java fue mi primer lenguaje de programación, C realmente me dio una idea de cómo trabajar realmente con ciertos componentes de la computadora, cómo entender la asignación de memoria dentro de los programas que escribe y muchos otros. Realmente amplía tu propia perspectiva de la programación.

Si contestó “sí” a la primera pregunta, entonces céntrese en un idioma. Conseguir uno. Las buenas recomendaciones son: Java, Python y C ++.

Espero que esto ayude. Si tiene más preguntas, no dude en preguntar.

Estaré de acuerdo con Richard Eng en que probablemente debería comenzar con un lenguaje diseñado para enseñar a principiantes en lugar de un lenguaje diseñado por y para personas que ya eran expertos. Y desea un lenguaje con una sintaxis bastante simple y consistente, para minimizar el tiempo que pasa memorizando las reglas de sintaxis. Y desea un lenguaje con un modelo semántico simple y fácil de entender, para que pueda “ejecutar el programa en su cabeza” y tener una confianza razonable en lo que hará.

C fue diseñado por y para las personas de Bell Labs que escribieron el código todo el día, todos los días. Todos estaban íntimamente familiarizados con el lenguaje ensamblador, y querían algo que les proporcionara el mismo control preciso de la máquina que el lenguaje ensamblador, pero con una notación de fórmula matemática estándar y construcciones de flujo de control estructurado. Muchas de las decisiones de diseño en C tienen sentido solo desde esta perspectiva.

C ++ se diseñó como una C modernizada, agregando OOP y algunas otras características “nuevas”. Por razones de marketing, estaba sujeto a restricciones de compatibilidad: cualquier programa de C que funcionara, sin importar los trucos extraños en los que se basara, tenía que seguir funcionando como un programa de C ++. Además, nuevamente por razones de mercadeo, no podría haber una penalización en el tiempo de ejecución por la existencia de cualquiera de las nuevas características a menos que realmente las haya utilizado. Como resultado, C ++ se convirtió en un lenguaje enorme e inconsistente con una docena de formas diferentes de hacer cualquier cosa, justo lo opuesto a lo que quieres para los principiantes.

Java fue diseñado como un C ++ limpio, sin restricciones de compatibilidad con C, independiente de la máquina, por lo que podría compilarse en forma cruzada para su uso en dispositivos de aplicaciones integradas (transmisiones de automóviles, tostadoras, máquinas expendedoras … todo sin un entorno de desarrollo nativo) . Es un buen segundo o tercer idioma, pero con frecuencia tiene que pagar el precio sintáctico y semántico por una decisión de diseño mucho antes de ver el beneficio de esa decisión (por ejemplo, “main public public void main (String args [])”, que trae alrededor de cinco conceptos de programación que no tienen sentido durante semanas o meses después de haber comenzado la programación). Además, Java hace que la OOP basada en clase sea casi obligatoria; La POO es una excelente manera de escribir programas de 10,000 líneas, pero una manera terriblemente ineficiente de escribir programas de 10 o 100 líneas, que es más probable que haga un programador principiante.

Pascal solía ser enseñado casi universalmente como primera lengua. Y, de hecho, * fue * diseñado para enseñar, pero no para enseñar a los programadores principiantes; fue diseñado para ser analizable por un analizador de descendencia recursiva, como un lenguaje de ejemplo para una clase de compilador de escritura. Para los programadores principiantes, no fue genial: se requería mucha sintaxis para decir un poco, y no alentaba la abstracción (se podía escribir una función que contara con arreglos de 10 elementos y otra función que contara con 11). -elementos de elementos, pero no una función que incluyó solo “arreglos”).

Históricamente, el primer lenguaje diseñado para la programación inicial (AFAIK) fue BÁSICO (1964). Pasó por alto muchos detalles de la máquina que importaban más para el rendimiento que para la corrección. Fue interactivo: podría escribir una línea a la vez y ver los resultados inmediatamente, en lugar de escribir un programa completo, luego compilarlo y luego ejecutarlo. (Esto se denomina un “ciclo de lectura-evaluación-impresión”, o REPL, y lo consideraría casi esencial para cualquier lenguaje de principiante, como una forma de fomentar la experimentación).

El siguiente fue probablemente Smalltalk. Como Richard señala, tiene una sintaxis simple y fue diseñado para niños en edad de escuela primaria. Introduce los principios de OO desde el principio, pero de una manera menos onerosa que la de Java.

Al mismo tiempo, debemos mencionar LOGO, también diseñado para niños en edad escolar primaria. Nadie lo usa hoy, pero su modelo semántico de gráficos de tortuga sobrevive en los modernos lenguajes para principiantes orientados a bloques, como Blockly y Scratch, que se usan desde la escuela primaria hasta las clases no principales en la universidad. Estos lenguajes son altamente motivadores y “detectables”, pero como están más o menos ligados a un mundo de gráficos de tortugas en 2-D, existen límites sobre lo que puede hacer con ellos.

Alice fue diseñada para programadores principiantes, utilizando el modelo motivador de gráficos 3-D: tiene “personajes” primitivos que pueden interactuar entre sí en una perspectiva animada, y el trabajo del programador es definir el paisaje y las interacciones. Nuevamente, debido a que el idioma hace un muy buen trabajo en un dominio muy especial, está limitado en lo que puede hacer fuera de ese dominio.

Python se usa ampliamente para enseñar programación a partir de hoy en día, y es una mejor opción para ese propósito que la familia C / Java: le permite escribir programas simples sin aprender la sintaxis de las funciones avanzadas que no está utilizando, y tiene una REPL, pero aún no estaba * diseñado * para enseñar a programar en el principio.

Otro enfoque para crear un lenguaje para principiantes es comenzar con un lenguaje de fuerza industrial y eliminar los “errores”. Por ejemplo, Processing es un Java simplificado con una rampa y REPL mejorados que le permite escribir gráficos y animaciones 2-D interesantes en un puñado de líneas, en lugar de los cientos o miles que tomaría en Java estándar. Sin embargo, la mayoría de las formas en que puede colgarse en Java todavía están completamente disponibles en Procesamiento.

Racket es un lenguaje de potencia industrial, con todas las bibliotecas habituales para redes, bases de datos, XML, gráficos, GUI, etc. y un REPL heredado de su ancestro lejano, Lisp, el primer idioma que tiene un REPL (c. 1958). Pero se envía con varios subconjuntos pedagógicos (“Lenguaje estudiantil para principiantes”, “Lenguaje estudiantil intermedio”, etc.) que tratan ciertas funciones avanzadas como errores de sintaxis para que no las use accidentalmente y tenga un comportamiento difícil de entender. Y en los idiomas de los estudiantes, los mensajes de error que recibe están escritos para que tengan sentido a nivel de los estudiantes, en lugar de hacerlo de una manera que tenga sentido solo para un compilador-escritor (como la mayoría de los mensajes de error de C ++). La sintaxis de estilo Lisp no es familiar para las personas acostumbradas a la notación algebraica y los lenguajes imperativos, pero en mis clases de Programación para No Mayores eso fue una ventaja: la sintaxis simple y coherente coloca a los expertos en matemáticas en pie de igualdad con los matemáticos y no * hace que lo último piense en cada clase de matemáticas que alguna vez hayan odiado. De hecho, cuando solía enseñar esa clase, no introduje la aritmética hasta varias semanas después del semestre, momento en el cual los estudiantes ya estaban escribiendo programas GUI controlados por eventos con separación de vista de modelo, siguiendo una metodología de desarrollo basada en pruebas. gracias a la biblioteca de gráficos y GUI para principiantes y al marco de prueba de unidades para principiantes.

Como probablemente habrás adivinado, soy un fanático de la raqueta. Mi libro de texto para la clase de No Especializados está disponible de forma gratuita en http://picturingprograms.org , y un currículo completamente desarrollado que lo usa en los niveles de secundaria y preparatoria está en http://bootstrapworld.org .

Un principiante utilizará su lenguaje de programación para aprender a programar. Debe tener una sintaxis clara y cubrir múltiples paradigmas; eso es si son serios acerca de aprender sobre programación en absoluto. Necesitan tener la paciencia para cubrir lo básico y los ejercicios que parecen realmente estúpidos antes de meterse en las cosas geniales. Es decir, ya sabes, y lo he dicho antes, si son serios acerca de la programación.

Si lo son, entonces con gusto pasarán las tardes necesarias para darle la mano a los idiomas que están orientados hacia donde está su corazón.

De lo contrario, simplemente se rendirán temprano.

Un gran lenguaje de inicio tendrá literatura dirigida al curioso noviciado. Solo un puñado de idiomas vienen a la mente con documentación de calidad (y gratuita) de este propósito.

  1. Esquema. Es un Lisp, lo que significa que cubre libremente la mayoría de los paradigmas, y aquellos que el estándar básico no cubre se pueden implementar libremente. El Esquema más rápido en el que puedo pensar para comenzar es Racket, que técnicamente no es un Esquema en absoluto, sino un lenguaje muy influenciado por él, y es como el Esquema que se encuentra en la producción más común utilizar. Al menos como yo lo sé. El material de inicio para el Esquema / Raqueta sería Cómo diseñar programas y la Estructura e interpretación de los programas de computadora. El SICP es un libro de programación clásico, y es un placer trabajar con él. He realizado los ejercicios varias veces y en muchos idiomas diferentes (y no siempre relacionados con Lisp).
  2. Ruby, sobre todo porque la Guía conmovedora es un placer leer incluso sin la aspiración de aprender el idioma en absoluto. Es la primera guía conmovedora para cualquier cosa, y un clásico más nuevo para programar literatura. Influyó en Learn You A Haskell, entre otras publicaciones de tecnología de programación amigables con los principiantes y extravagantemente caprichosas.
  3. Python, sobre todo porque es lo que me recomiendan otros técnicos cuando les digo que estoy enseñando a un completo neófito Lisp. Aparte de mi rechazo inicial a su rechazo, su preocupación es hacer que la persona sea capaz de contratar lo antes posible, y Python es un lenguaje muy comercial. Es un lenguaje ubicuo que ya está instalado en su computadora o que se puede agregar muy fácilmente. El sitio del lenguaje Python en sí ofrece todo tipo de tutoriales para principiantes.

Debes entrar en esto con el entendimiento de que el próximo idioma que aprenderás será mucho más fácil de asimilar que el primero. Los lenguajes informáticos tienen conceptos comunes sobre los que aprenderá, y conocerlos le ayudará a aprender nuevos lenguajes y tecnologías mucho más rápidamente. Tu primer idioma está ahí para ayudarte a aprender a programar, los idiomas posteriores serán los que te pagarán.

Por ejemplo, aprendí a programar usando MS QBASIC, una cosa estándar que se encuentra en la mayoría de las computadoras compatibles con IBM desde finales de los 80 hasta principios y mediados de los 90; los que ejecutan DOS, ya sabes. En la escuela secundaria, aprendí C y C ++ por mi cuenta. En la universidad, fui expuesto a Java y Scheme. Por mi cuenta aprendí Emacs Lisp, Common Lisp, Scala, Clojure, Kotlin y Racket.

Al final, Scala y SQL son lo que pagan mis cuentas. Sin embargo, sigo amando la raqueta y la uso siempre que puedo salirme con la suya.

No te metas en esto por la promesa de un gran día de pago. Hazlo por amor a eso, porque eso te impulsará a dominar el arte de la programación de computadoras lo suficientemente bien como para que cualquiera te contrate para ello, de todos modos.

Python, en su mayor parte, pero …

Es interesante para mí que algunas personas respondan a C … Estoy de acuerdo solo en el sentido de que C es un lenguaje que, dado un poco de esfuerzo, se puede dominar de una manera muy significativa; es decir, C es muy, muy claro acerca de lo que está haciendo “debajo de las sábanas”, por así decirlo, una vez que lo entiendes. Pero entender C requiere tener una buena y sólida comprensión de los punteros, y muchas personas encuentran eso difícil, a menos que provengan de un lenguaje de máquina. (También puede leer mi libro en C ++, que cubre una gran cantidad de punteros).

Para la gran mayoría de los novatos, creo que Python será más fácil de aprender. Brevemente, las razones son:

  • Sin declaraciones de datos hace que sea más fácil comenzar a usar Python, para un novato completo. Los programas más simples son muy, muy cortos.
  • Disponibilidad del entorno de aprendizaje de desarrollo interactivo (IDLE), que es una fantástica herramienta de aprendizaje interactivo.
  • Ningún símbolo de “bloque inicial” o “bloque final” hace que la sintaxis del lenguaje sea más simple.
  • El uso de la sangría, lejos de ser una molestia, es una forma más limpia y sencilla para que un principiante entienda los bloques de instrucciones.
  • El manejo de la cadena es fácil y directo y (a diferencia de C) no requiere comprensión de las partes internas de la cadena, asignando el máximo. longitud de cadena, o terminadores nulos.

En contra de eso, algunas cosas en Python pueden arrojar a las personas a menos que encuentren una explicación de primera clase: comprensión de lista, decoradores, variables globales en Python. Pero no tienes que empezar con ninguna de esas cosas.

Y, podría recomendar humildemente mi libro, que recientemente llegó a las librerías, como una manera particularmente fácil de aprender:

Python: divertido y fácil de aprender
Mucha gente recomienda Python como el mejor lenguaje para principiantes debido a su simplicidad y sus excelentes capacidades. El código es fácil de leer y aplica un buen estilo de programación (como la sangría), sin ser demasiado estricto con la sintaxis (cosas como recordar agregar un punto y coma al final de cada línea).

Como novato en Codificación comienza a aprender Python. Se considera un lenguaje bastante fácil para los principiantes debido a su legibilidad y sintaxis compacta, lo que significa que los desarrolladores pueden usar menos líneas de código para expresar un concepto de lo que lo harían en otros idiomas.

Así como un nuevo programador comienza con python.

  • Es fácil de entender y tiene un gráfico de aprendizaje superficial: pasar de la nada al “Hola mundo” es mucho más rápido que en la mayoría de los otros idiomas.
  • Muchas bibliotecas que hacen muchas cosas.
  • Python está completamente orientado a objetos, y no está “tipificado estáticamente”. No es necesario declarar las variables antes de usarlas, o declarar su tipo.
  • Donde aprenderlo:
  • Udemy
  • Codecademia
  • Lynda.com
  • LearnPython.org
  • Python.org
  • Una introducción suave a la programación usando Python
  • Sumérgete en Python
  • Python Wikibook
  • Inventa tus propios juegos de computadora con Python
  • Cómo pensar como un informático
  • Libros de impresión recomendados y libros electrónicos:

    • Programación en Python para el principiante absoluto
    • Programación Python: Una Introducción a la Informática 2ª Edición
    • Python.pdf de inicio
    • Aprender Python
    • El tutorial de Python

    Aquí hay un procedimiento paso a paso para aprender a programar para un principiante.
    1. Sugeriría que C .no profundice en los conceptos … Lea el archivo I / O.
    2. ahora que conoce los tipos de datos, bucles, punteros, matrices, cadenas, practique preguntas de programación. A continuación, aprenda algo mejor que C como C ++ Python o JAVA.
    3. C ++ y JAVA son una buena opción. Puede que encuentres pyton, C ++ más fácil en comparación con JAVA, pero JAVA tampoco es tan difícil.
    PS Learn python después de que C .python no le diga muchos conceptos de programación importantes que se requieren para otros lenguajes.
    4. Lo principal es por qué quieres aprender programación. Esta infografía le ayudará a decidir qué lenguaje de programación aprender.

    La respuesta a esta pregunta dependerá de los antecedentes del novato, de su acceso a los libros y de los puntos de interés:

    Puedes ver también ejemplo de Hola mundo! Programa y elige tu mejor idioma a juego: The Hello World Collection.

    • pitón (favorito personal) Se recomienda como bueno para estudiantes frescos y muchas universidades lo utilizan. Tiene una sintaxis concisa y está orientada a objetos. Un amigo mío (sin conocimientos matemáticos o de programación) comenzó a aprender Python y ahora continúa con C #. Estaba extremadamente satisfecho con python pero debido a su nuevo trabajo cambió a C #:
    • https://ocw.mit.edu/courses/elec
    • Introducción a la informática y la programación en Python
    • Python es fácil de aprender
    • utilizado en muchas áreas de tendencias como el aprendizaje automático y el big data
    • Tienes muchos ejemplos, libros y comunidades.
  • C es otro candidato. Bien conocido como uno de los lenguajes más fundamentales en la informática. Influenciado muchos otros idiomas.
    • Es la madre de otros lenguajes como Java, Python, etc.
    • Es “antiguo” (1972) pero sigue siendo muy popular.
    • Tiene una sintaxis simple y clara.
    • La curva de aprendizaje es moderadamente empinada
    • Después de aprenderlo, puede continuar con muchos otros con facilidad: Java, C #, C ++
    • Gran cantidad de problemas clásicos, algoritmos y libros están cubiertos en C
  • Java
    • Uno de los lenguajes de programación más influyentes y sólidos.
    • buen fondo y probado
    • Gran comunidad que facilitará el proceso de aprendizaje.
    • sintaxis similar a C / C +
    • El lenguaje más utilizado para 2017: lenguajes de programación populares 2017 y tendencias
  • Scratch : esto se recomienda para los niños (y no solo): Scratch – Imagine, Program, Share
    • fácil de empezar
    • incluso para un programador experimentado podría ser divertido resolver algunos de estos juegos
    • A todos les gusta jugar juegos y como bonus para aprender algo nuevo.
    • Es intuitivo empezar con problemas simples.
    • Está cambiando tu forma de pensar y preparándote para los otros idiomas.
    • Google doodle: Celebrando 50 años de Codificación para Niños

    Te recomiendo ruby Porque Ruby on Rails está basado en RUBY. Aunque muchos lenguajes de programación y marcos están disponibles en esta industria, Ruby on Rails es muy popular entre los desarrolladores y también es muy fácil de aprender para un principiante.

    Ya que está basado en Ruby, es fácil de aprender y usar. El código en Ruby también es fácil de leer y entender. También está debidamente documentado. También faltan cosas simples como perder un punto y coma, tener espacios en blanco no le cuesta tiempo, ya que Ruby no tiene en cuenta todas estas cosas. Todos sabemos lo que puede suceder si se pierde un punto y coma simple en Java.

    Aquí están las 10 razones por las que debes aprender Ruby on Rails:

    • Desarrollo más rápido:
    • Desarrollo Full-Stack :
    • Fácil de aprender / usar :
    • Apoyo de la comunidad :
    • Apt para principiantes :
    • Registro activo ROR :
    • Confianza :
    • Convención sobre la configuración en ROR :
    • Pruebas :
    • No es necesario empezar de cero

    Lea el artículo completo aquí: 10 razones por las que debe aprender Ruby on Rails

    1.
    Desde mi punto de vista y mi experiencia, me gustaría sugerirle, primero necesita aprender un lenguaje de programación básico C. obtener un dominio adecuado de este lenguaje y comprender las lógicas básicas adecuadas que se utilizan en la vida cotidiana y luego, después de poder comenzar con otro ” El lenguaje de programación orientado a objetos (OOP) “como” core JAVA “para comprender la funda básica de clase, objetos, etc. FOR JAVA (Java Tutorial – javatpoint).
    luego, después de que desee crear un operador en el desarrollo de aplicaciones móviles, debe aprender Advance JAVA (javalearner.com | java tutoriales avanzados), Objective-C (Objective-C Tutorial), swift (Swift Tutorial), Android (Android Tutorial ), .NET (ASP.NET Tutorial), PHP (PHP 5 Tutorial).

    2.
    En esta era, al programador no le gusta la codificación, por lo que nuestro dios de las TI está creando herramientas inteligentes para crear aplicaciones web, aplicaciones móviles, API, etc.
    Aquí hay otra opción para usted: si desea seguir adelante con su conocimiento básico del lenguaje de programación, debe buscar en Google para encontrar algunas herramientas inteligentes que solo funcionan. Configure los objetos solo aquí. No necesita hacer ningún tipo de codificación.

    Mi respuesta no va a ser útil, pero aquí está mi entrada:

    • Java. Java es bastante fácil y bastante barato de aprender. Puede obtener todo lo que necesita de forma gratuita, incluidos los materiales en línea para ayudarlo a aprenderlo. Lo más difícil será aprender y comprender las metodologías OO (orientadas a objetos), pero tendrás que aprenderlas con la mayoría de los lenguajes modernos.
    • DO#. C # es un gran lenguaje, que es tan fácil como Java. También es barato (Visual Studio es una descarga gratuita, que incluye el compilador). Como cualquier otro idioma, abundan los recursos en línea para ello. También tiene algunas sutilezas de las que carecen otros idiomas, como las propiedades. Sin embargo, C # tiene algunas increíbles instalaciones increíbles que no encontrarás en ningún otro idioma (LINQ, métodos de extensión) a los que los recién llegados no pueden acostumbrarse. Si te mantienes alejado de ellos, al menos inicialmente, deberías estar bien.
    • JavaScript Aunque probablemente sea uno de los idiomas más útiles hoy en día, debido a las aplicaciones web ubicuas, JavaScript puede ser uno de los más difíciles de aprender, debido a la forma en que lo depura. Debes depurar tu código en el navegador, lo que puede tardar en acostumbrarse. Además, debes aprender cosas como jQuery antes de que puedas volverte productivo. Pero, es muy barato aprender. No tienes que comprar o descargar un IDE. Sin embargo, cualquier editor de texto antiguo funcionará (los IDE como Visual Studio pueden ayudar con IntelliSense, sin embargo, VS es gratuito). Si no tiene deseos de desarrollar aplicaciones web, JavaScript no le sirve de nada.
    • C ++. La madre de todos los idiomas OO. C ++ es poderoso. C ++ es rápido. C ++ puede ser muy difícil como tu primer idioma. Aunque te enseñará algunos buenos fundamentos (manejo de la memoria, por ejemplo), el progreso para la mayoría de las personas será glacial, ya que muchas cosas pueden salir mal y algunos problemas son solo atolladeros de … bueno, puede ser difícil. Pero las herramientas de hoy (Visual Studio) son gratuitas y C ++ tiene TONELADAS de bibliotecas que ayudan con cosas como el desarrollo de juegos.
    • C. Si tu objetivo final es C ++, C está bien. No es OO; es completamente procedimental, aunque puede forzarlo a hacer OO, ¿por qué molestarse? Si quieres OO, simplemente muévete a C ++. Buen lenguaje con el que aprender, lo hice, a principios de la década de 1990, pero no le enseñará nada acerca de la OO y no se usa ampliamente fuera de la programación incrustada y los sistemas heredados, donde todavía se usa mucho.
    • Pitón. No tengo idea, nunca la usé.

    Espero que esto ayude. Buena suerte.

    Sigo pensando que el lenguaje es irrelevante. Solo elige uno y aprende a resolver problemas con él. La resolución de problemas es la parte difícil. La sintaxis se puede consultar en cualquier manual de referencia. Resolver problemas más pequeños para construir un conjunto de herramientas y mucha práctica. Es como las matemáticas. Te enseñan suma y resta primero, luego multiplicación y división. Una vez que los conozca, puede pasar al álgebra y así sucesivamente. Pero si pregunta qué lenguaje de programación utilizar para aprender a resolver problemas, elija Python o C. Ambos son muy fáciles. Python hace todo bastante bien, y hay un montón de documentación al respecto. Yo recomendaría python si está empezando a cabo con seguridad. Otro buen lenguaje para comenzar puede ser C #, debido a su similitud con Java y C ++. C ++ es un poco difícil para los principiantes y no siempre se enseña de forma orientada a objetos. Si no quieres C # entonces aprende Java. Es muy utilizado y hay muchos trabajos. C # no es solo para el desarrollo de Microsoft. Hago desarrollo de juegos con él usando el motor Unity3d. Otros motores de juegos también lo soportan, como el motor irreal. Puede aprender en muchos tutoriales en línea, pero recuerde, si necesita mejores resultados, vaya a una universidad de programación. Holberton es una buena opción.

    La mayor cantidad de tutoriales en todos los niveles de habilidad que puedes encontrar para Python. Incluso hay sitios web completos con asignaciones de programación interactivas en Python directamente en su navegador, etc. En la mayoría de las distribuciones de Linux, Python se incluye de inmediato. Un montón de software libre y de código abierto está escrito en Python.

    Más fácil- Python .
    Resistente pero más útil, apropiado, versátil y cubre todas las cosas básicas: C / C ++ .
    Prefiero ir con C ++. Python es fácil. Pero una vez que aprenda C ++, dado que C ++ es un lenguaje de alto nivel tiene muchas características de bajo nivel, cuando todo el diseño de bajo nivel y el flujo de trabajo OOP de alto nivel son claros para usted, nunca tendrá ningún problema para aprender un nuevo idioma. Además, la sintaxis de C ++ es similar a la mayoría de los otros lenguajes de alto nivel como Java, etc. Sí, también es mi 1er idioma.

    En mi humilde opinión :

    • C (Procesal)
    • Java (Orientado a Objetos)
    • Javascript (orientado a objetos / funcional)
    • PHP (Procesal / Orientado a Objetos)
    • Golang (Procesal)
    • Python (orientado a objetos)

    La mayoría de estos idiomas son amigables para los principiantes al principio, hasta que aprendes el nivel intermedio para avanzar. Buena suerte

    Rasguño !

    Scratch es el lenguaje de programación de arrastrar y soltar más fácil desarrollado por MIT Media Lab. Scratch es un lenguaje de programación visual gratuito. Scratch fue creado para ayudar a los jóvenes a aprender a pensar creativamente.

    Cualquiera que no sepa qué lenguaje de programación pasa por cero! Que es un edificio muy básico de programación en C.

    Después de aprender scratch, puede iniciar C y la programación orientada a objetos como C ++ y java.

    Después de eso, puede comenzar a programar el hardware de la electrónica para imprimir algo genial en la pantalla LCD gráfica utilizando los conceptos c y c ++ simples como este.

    ¡Así es como deberías empezar a programar! Aquí está la guía paso a paso para hacer algo fresco!

    Yo recomendaría Python . Es mucho menos intimidante y relativamente fácil de aprender en comparación con lenguajes como C / C ++ y Java. Dicho esto, también es un lenguaje de programación orientado a objetos de pleno derecho que se puede usar en muchos usos avanzados. Por lo tanto, puede aprender mucho más después de obtener lo básico. Python es ampliamente utilizado como lenguaje de programación y de scripting. De hecho, es utilizado por Quora.

    Existen inconvenientes, como su baja velocidad y la falta de verificación de tipos, pero eso apenas debería ser un problema para un principiante.

    Aquí hay algunos buenos recursos para aprender Python:

    1. Documentación de Python 3.5.1

    2. http://faculty.stedwards.edu/mik

    3. Aprende Python – Tutorial interactivo de Python gratis