¿Cómo empezar una app desde cero? Primeros pasos

by Javier Treviño Saldaña

En los primeros pasos como programador o como alguien que busca conocer y entender mejor la programación, es muy común encontrarse con una serie de preguntas abrumadoras, ¿Qué necesito? ¿Dónde me capacito? y la más determinante de todas, ¿Cómo empezar una app desde cero? Si bien hay una docena de opciones populares, en este blog y en Dynamic.Tech, te guiaremos para convertirte en desarrollador profesional.

Digitalizar procesos, administraciones, escuelas y prácticamente todo aquello que se pueda, es y será una prioridad en el mundo a partir del 2020. La tecnología es el principal aliado ante la necesidad de disminuir costos que aceleren la recuperación económica del mundo y tu podrías ser parte de la innovación del futuro en el presente.

David Bonilla, CEO de Manfred y organizador de conferencias de tecnología y negocios
"COVID-19 ha conseguido digitalizar más empresas que cualquier tecnología"

¿Cómo elegir un lenguaje para empezar mi proyecto?

Como punto de partida, es importante analizar los tipos de lenguaje de programación que existen, y posteriormente, la mejor opción es incorporarte con un lenguaje amigable para programar aplicaciones, estos son conocidos como de “Alto nivel de abstracción”, esto quiere decir que no tienes que preocuparte mucho por los detalles internos de la máquina, manejo de memoria, etc.

Lenguajes recomendados para programar:

  • Web (desktop y móvil): Ruby, Python, y JavaScript
  • Móvil nativo: Java, C#, Swift.
Libros de programación

¿Cuál es el lenguaje más usado?

GitHub es una de las principales plataformas para crear proyectos abiertos de herramientas y aplicaciones, donde colaboran más de 56 millones de developers resguardando software para uso público y privado.

Según su reporte más reciente de Octoverse, el lenguaje de programación más usado en todo el mundo es JavaScript. Este lenguaje es muy ligero y gracias a su ecosistema en constante crecimiento permite crear aplicaciones interactivas y poderosas que sean capaces de correr prácticamente en todos los navegadores web que existen.

Sin embargo, su popularidad no significa que sea el mejor para todo tipo de problemas y proyectos. Como tal, de todos los tipos de lenguaje de programación, no existe el lenguaje perfecto, cada uno tiene sus pros y contras– entre más conozcas y experimentes, mejor podrás elegir. Si el proyecto que buscas realizar tiene planeada una interfaz gráfica web, este lenguaje puede ser una excelente alternativa para empezar.

Conoce la comunidad y ecosistema de tu lenguaje

Cada lenguaje tiene su comunidad y sus estándares de programación que impulsan su uso y mantenimiento, elegir un lenguaje también debe de estar basado en este entorno que agilice el aprendizaje, estos son algunos de los recursos que podrás encontrar cuando exista un buen ecosistema:

  • Librerías para resolver problemas triviales y frecuentes, como conectarse a una base de datos o manipular fechas.
  • Herramientas que mejoran tu productividad, desde ambientes de desarrollo hasta frameworks especializados.
  • Convenciones estandarizando ciertos aspectos de cada programa, de manera que varios desarrolladores del mismo lenguaje compartan valores.
  • Guías hechas por desarrolladores, documentando cómo resolvieron problemas no triviales.

¿Cuáles son las prácticas o convenciones que siguen en su comunidad?

Esta es una muy buena primera pregunta a resolver, será el punto de partida para encontrar tu camino como developer y descubrir lo que mejor se ajuste a ti y tus herramientas.

Programador trabajando

Empieza tu proyecto con Test-Driven Development

Ahora que has elegido un lenguaje y conoces su ecosistema, ¿por dónde empiezo mi proyecto?

Test-Driven Development, o “Desarrollo Guiado por Pruebas” es una práctica muy efectiva que ha ganado popularidad en años recientes. Fue “redescubierta”[3] por Kent Beck en 2003, e impulsada por figuras destacadas del campo de desarrollo de software.

En lo personal mis referencias mayores han sido Robert C. Martin, Martin Fowler, Steve Freeman y Nat Pryce (estos dos últimos en especial por su excelente libro “Growing Object-Oriented Systems, Guided by Tests”).

Como su nombre lo dice, se trata de empezar programando pruebas antes de su solución. Esta práctica promueve diseños simples e inspira confianza minimizando y detectando defectos.

Entonces TDD es una forma de agregar código robusto a nuestro proyecto, pero ¿qué funcionalidad programo primero?

Nuestra recomendación es que empieces por una “rebanada” de funcionalidad pequeña que cubra tu sistema completamente, hasta llegar a manos del usuario final (o tester privado). La idea es que en el proceso descubras y enlaces los componentes más importantes de tu arquitectura, para que los consideres lo más temprano posible en tu solución y no te sorprendan a la hora de lanzar. Este concepto se le conoce como “Walking Skeleton”[4] y nos ayuda a entregar valor gradualmente desde el día uno.

Es un camino largo pero no tienes que recorrerlo solo. En Dynamic.Tech tenemos más de 15 años de experiencia en la industria que ponemos a tu disposición. Hemos colaborado con empresas que van desde pequeñas y privadas hasta grandes organizaciones públicas de renombre mundial.

Nuestro equipo puede apoyarte con asesoría, entrenamiento, e incluso construyendo la aplicación contigo y tu equipo. Da click aquí y nos pondremos en contacto contigo.

Referencias

  1. The 2020 State of the Octoverse Report (GitHub)
  2. Qué es Test-Driven Development
  3. Why does Kent Beck refer to the “rediscovery” of TDD
  4. “Walking Skeleton”
Dynamic.Tech - Software Development Training
Subscribe

Sign up to receive our monthly tech recap

Conversation