¿Quiero poder crear / desarrollar aplicaciones? ¿Qué lenguajes de programación debo aprender primero?

Felicitaciones por estar interesado en la programación. Así es como te sugiero que comiences:

  1. Elija un idioma y una plataforma: C # y Windows son excelentes, IMHO.
  2. Seleccione un buen material de instrucción (libros, recursos en línea, tutoriales en video, un curso universitario introductorio, etc.)
  3. Obtenga las herramientas que necesitará: una PC con Windows, Microsoft Visual Studio 2017 (gratis).
  4. Asegúrate de tener tiempo y paciencia.

En cuanto al material de instrucción, lo mejor es inscribirse en un curso (gratuito o no). Ya sea que se trate de un instructor o un entrenamiento de video a su propio ritmo, no hay nada como un curso formal para ayudarlo a comenzar con lo básico. Si decide enseñarse a sí mismo comprando uno o más libros, busque los que cubren el siguiente programa de estudios:

Los fundamentos (cómo funcionan las balas):

  • Representación numérica
  • álgebra de Boole
  • Construcciones de programación (ejecución secuencial, if-then-else, loops, instrucción switch / case)
  • Entrada y salida básica
  • Programación modular (funciones, paso de parámetros).
  • Estructuras de datos (matrices, listas, listas vinculadas, colas, árboles, tablas hash, conjuntos)
  • Algoritmos: algoritmos numéricos, búsqueda, ordenación, recursión, etc.
  • Excepciones y manejo de errores.

Programación orientada a objetos (cómo funcionan las armas):

  • Objetos y clases
  • Encapsulacion
  • Composición y herencia.
  • Polimorfismo

Patrones de diseño (cómo funcionan las ametralladoras):

  • Fábrica, patrón singleton, constructor, prototipo.
  • Adaptador, fachada
  • Iterador, comando, mediador
  • Editor, suscriptor
  • etc.

Programación GUI (cómo luchar una guerra):

  • Fundamentos de eventos impulsados
  • Formas y controles
  • Arrastrar y soltar
  • Portapapeles de Windows
  • Muchos otros temas demasiado numerosos para nombrar

Programación de Windows (cómo luchar una batalla):

  • Archivo I / O
  • Programación en red
  • Regex
  • Multimedia
  • Habla
  • Cifrado
  • Muchos otros temas demasiado numerosos para nombrar

Suena como mucho? Es. Pero recuerda esto: cada océano comienza con una gota de agua.

Le deseo suerte y lo aliento a embarcarse en este maravilloso viaje de ingeniería de software. Espero que te traiga tanta alegría como me ha traído. No hay nada más en la vida que quiera hacer excepto construir software útil, robusto y utilizable.

Bien hablando del desarrollo de aplicaciones, hay básicamente tres tipos de programación de desarrollo de aplicaciones que deberían preocuparse. De todos modos puedes concentrarte solo uno a la vez.

1.> Desarrollo de aplicaciones para Android: las aplicaciones en Android ahora se crean con un IDE preferido de google, Android studio. Android Studio se basa en C / C ++ (NDK) y Java (SDK), sin embargo, Java es más preferido. . Junto con Java, necesita comandos adecuados en XML para crear diseños.

2.> Desarrollo de aplicaciones de iOS: las aplicaciones de iOS se crean de manera similar para los iPhones de Apple, es decir, el sistema operativo iOS. Al igual que el desarrollo de aplicaciones de Android, iOS funciona en lenguajes como Swift y Objective C. Aquí el código X es el IDE.

3.> Desarrollo de aplicaciones de Windows: las aplicaciones de Windows se crean en Microsoft Visual Studio, sin embargo, hay muchas opciones de idiomas disponibles en formato XAML, C #, C ++, javascript, html.

aparte de estos, debe tener una comprensión adecuada de los lenguajes de fondo como Mysql, php, etc., ya que ninguna aplicación es completamente funcional sin un servidor de fondo.

Siendo un desarrollador de aplicaciones para Android, me gustaría decir que te mantengas actualizado tanto como puedas. El campo de desarrollo de la aplicación está cambiando cada día.

No ha especificado a qué plataforma móvil desea orientarse (iOS, Android, Windows Phone, Blackberry u otra). Así que voy a ofrecer opciones multiplataforma (mínimo iOS y Android). De todos modos, esto no es algo malo, ya que puede optimizar el tiempo de desarrollo si realmente quiere lanzar a múltiples plataformas.

Mi opción multiplataforma favorita es Xamarin , ya que se basa en la GUI nativa (ya sea abstraerla detrás de Forms o exponerla por usted con enlaces, a su elección), tiene un buen rendimiento, menos inflado que otras opciones y le permite dirigirse a muchos de los principales ecosistemas de “aplicaciones” de los consumidores, como iOS, Android, Windows y Mac (y Windows Phone). Los lenguajes allí son C # , un lenguaje de paradigma múltiple en la tradición de C / C ++ / Java, y F # , un lenguaje funcional meta-programación / impuro. Ambos están bastante bien diseñados y ofrecen un conjunto de características modernas, en mi opinión, pero C # será más fácil de aprender al principio, especialmente porque hay muchos tutoriales y ejemplos para ello.

Si aprendes C #, entonces como un bono también aprendes un lenguaje de programación para Unity , que es la herramienta de desarrollo multiplataforma más popular para juegos (y mi otro favorito, además de Xamarin). Una desventaja de ir directamente hacia Unity (si no está haciendo el desarrollo de gráficos con un uso intensivo de gráficos) es que usa más batería (CPU) y tiene más volumen (tamaño de archivo) de lo que necesita para las aplicaciones. Otro inconveniente (si está haciendo aplicaciones enfocadas en GUI) es que no expone los elementos nativos de GUI. Sin embargo, si ninguna de esas cosas se aplica, y si estás haciendo juegos en los que deseas volver a dibujar la pantalla regularmente, Unity es una excelente opción. Cuenta con una enorme biblioteca de complementos y kits ofrecidos en la tienda de Unity, y está muy desarrollada como plataforma, ofreciendo una gran cantidad de funcionalidades que ayudarán a construir juegos.

Si rechaza mi sugerencia de ir con C #, entonces también podría ir con C ++ . Como desarrollador de C ++, el equivalente casi de Xamarin es Qt , que viene con el bono de que es compatible con Linux además de las plataformas compatibles con Xamarin. No llena el mismo nicho que Xamarin, que hace más por exponer la interfaz de usuario nativa a su aplicación, pero definitivamente es una plataforma muy bien diseñada. El sustituto de Unity es Marmalade , que es una muy buena biblioteca para el desarrollo de juegos multiplataforma, pero no tiene el soporte de herramientas o complementos listos para usar que Unity viene con la caja. Sin embargo, Marmalade tiene la ventaja del tamaño del archivo de la aplicación, si eso es una preocupación para usted.

Si aprendes C # o C ++ , también puedes usar Cocos2d .

Existen algunas opciones de Java para el desarrollo móvil multiplataforma, pero tienen costos y / o parecen ser inmaduros y / o simplemente no parecen ofrecer nada que no podría hacer mucho mejor y más fácil con el nombre cruzado mencionado anteriormente. opciones de plataforma, en mi opinión (es decir, aparte de permitirle usar sus antiguas habilidades o código de Java).

Hay opciones de HTML5 y parecen ser muy buenos para capturar la mentalidad pública. Su principal beneficio es que le permite implementarse en la web con HTML5, además de los dispositivos móviles. Sin embargo, debe tener en cuenta que los dispositivos móviles pueden ser entornos muy limitados y que el rendimiento es importante (vale la pena recordárselo a aquellos con antecedentes en desarrollo de PC). A menos que su aplicación tenga bajos requisitos de CPU y también se pueda implementar en la web, realmente no los recomiendo. Sin embargo, ese puede ser un caso de uso común; Si te describe, aprende JavaScript y selecciona Phonegap o uno de los otros.

Si sabe que desea un desarrollo de plataforma única, las opciones obvias son Swift (o Objective-C) para iOS, Java para Android, C # para Windows Phone y Java ME para Blackberry. Si su interés principal está en iOS y le gustaría poder hacer que las aplicaciones estén disponibles también en Android, en Swift, Silver Es una aplicación para eso.

Depende de la aplicación que quieras crear.

  • Androide
  • IOS
  • Windows
  • Mora
  • Amazon también tiene su propia

Puedes aprenderlo de estos sitios web que se mencionan a continuación:

  • Tutoriales de texto y video de calidad premium a un costo cero
  • Tutoriales en línea de W3Schools en línea
  • Codecademy – aprende a codificar, interactivamente, gratis
  • Cursos en línea gratuitos y programas de Nanodegree | Udacity
  • Cursos en línea – Aprenda cualquier cosa, en su horario | Udemy
  • Coursera | Cursos en línea y credenciales de los mejores educadores. Únete gratis
  • edX
  • Lynda: Cursos en línea, Clases, Capacitación, Tutoriales
  • Alison | Cursos en línea gratuitos y aprendizaje en línea

Desde mi experiencia, ensucia tus manos con Java primero. Es uno de los lenguajes más fáciles para principiantes.

Una vez que comprenda la programación orientada a objetos en Java, podrá crear aplicaciones de Android, ya que Java es el lenguaje principal utilizado en el desarrollo de Android.

Me alegra que estés interesado en el desarrollo de aplicaciones móviles. Depende de tu interés. Intente hacer una réplica de aplicaciones en tiempo real como Yelp o Zillow. No te preocupes por implementar todas las funcionalidades. Solo trata de cubrir las funcionalidades básicas. Si estás familiarizado con Java, ve con Android o con c o c ++ con iOS.

Depende de la plataforma que elijas.

Swift 2 para la aplicación móvil de la plataforma iOS y Java para la aplicación móvil de la plataforma Android.

Java y kotlin para Android

Y rápido u obj-c para iOS!

Depende de la plataforma que quieras para codificar aplicaciones!

¡¡¡Todo lo mejor!!!