¿Cómo se convirtió Apoorv Khatreja en el tipo de desarrollador que es hoy?

No estoy seguro si esto es una broma o un cumplido, pero contestaré esto de todos modos.

Pareces ser alguien que probablemente esté en la universidad o en la escuela en este momento, y te gustaría comenzar una carrera en el desarrollo de aplicaciones móviles.

Primero, le pediré que retroceda un paso y piense si realmente desea retomar el desarrollo de aplicaciones móviles a tiempo completo. Comencé a escribir aplicaciones para Android en mi primer año en la universidad, principalmente por diversión, y para resolver algunos problemas que tenía en ese momento con la plataforma Android, que no se resolvieron satisfactoriamente con ninguna de las aplicaciones existentes en el mercado.

Aquí hay algunas razones por las que elegí hacer el desarrollo de aplicaciones móviles a tiempo completo:

  • Barrera de entrada baja: para ser honesto, creo que soy un programador mediocre en el mejor de los casos. Cuando quise escribir una aplicación para eliminar mi propia comezón, simplemente abrí Desarrolladores de Android y unas horas más tarde estaba ejecutando una aplicación básica en mi propio teléfono Android. Esto debería ser bastante sencillo para cualquier persona con una comprensión básica de la programación orientada a objetos.
  • Ciclos de iteración cortos: el ciclo de desarrollo promedio de una aplicación es de 4 a 6 semanas. Esto significa que puede pasar de la fase de ideación a tener un producto completo en manos de su audiencia en un tiempo absolutamente nulo. Soy inherentemente muy impaciente, por lo que el ritmo del desarrollo móvil es muy atractivo para mí.
  • Factor de forma y restricciones completamente nuevas: el software tradicional está escrito con ciertas suposiciones en mente: su usuario probablemente está sentado, relajado, tiene unos minutos de tiempo para dedicarse a su aplicación y tiene al menos 11 a 13 pulgadas de espacio de pantalla. La plataforma móvil sopla completamente esas suposiciones fuera del agua. Los usuarios entran y salen de las aplicaciones en cuestión de segundos y tienen un lapso de atención extremadamente corto al usar sus teléfonos. Agregue las restricciones de un dispositivo de mano a esto: espacio de pantalla, CPU, RAM y potencia extremadamente limitados. En 2009, este era un nuevo territorio inexplorado.

Para alguien que está buscando ingresar al desarrollo de aplicaciones móviles, el mejor consejo que tengo es comenzar a escribir aplicaciones . AHORA. Realmente, si tiene alguna experiencia en programación, escribir aplicaciones es fácil.

Consigue un teléfono inteligente si aún no tienes uno. Obtener siempre en los datos. Utilice las aplicaciones populares existentes. Vea cómo lo ayudan a hacer las cosas que probablemente ya hizo, pero mucho más fácil. Ese es el núcleo de cada gran aplicación móvil. Muy rara vez me he encontrado con una aplicación popular que me permite hacer algo que no era posible antes.

Cuando empiezas a usar aplicaciones todos los días, empiezas a hacer preguntas.

“¿Por qué no puedo hacer esto con mi teléfono?”

“¿Qué increíble sería si esta aplicación me permitiera hacer esto?”

Las preguntas conducen a las ideas.

Si no tiene una idea para una aplicación en este momento, trabaje en la idea de otra persona. Intente obtener una pasantía en la que pueda escribir una aplicación móvil para alguien. Aplique a Google Summer of Code y trabaje en una aplicación móvil de código abierto (trabajé en K-9 Mail).

Sigue escribiendo aplicaciones, no importa lo trivial que sea. Vas a mejorar con el tiempo. Escribí una aplicación que te permite ver cómo se ven las fuentes en tu teléfono Android (se llama Fontest, todavía disponible en Google Play, aplicaciones de Android en Google Play). Toda la aplicación es solo una etiqueta de texto, pero resolvió un problema en el momento en que se lanzó.

Intenté con la programación competitiva, cosas como CodeChef y SPOJ, pero nunca pude continuar. Solía ​​resolver un problema o dos cada pocos meses por diversión, pero al final del día, nunca sentí que estaba creando ningún valor.

No creo que tengas que saber cómo resolver un desafío algorítmico complejo en espacio y tiempo limitados. Generalmente tomo un enfoque ingenuo primero, y luego lo itero para mejorarlo. Con el tiempo, puedes averiguar dónde son realmente necesarias tales optimizaciones. La mayoría de las veces, en realidad es contraproducente optimizar una solución prematuramente.

No puedo comentar si esta es o no la forma correcta para ti. Elegí trabajar en proyectos del mundo real en lugar de resolver acertijos y estudiar teoría. Creo que aprender de ensuciarte las manos es mucho más útil que aprender de resolver problemas de ficción. Ha funcionado para mí, me aferré a él y creo que me ha ido bien hasta ahora.