Durante los últimos meses, he estado aprendiendo a construir aplicaciones de iOS con Objective-C, y hoy por fin estoy empezando a ver la luz. Tengo que admitir que ha sido mucho más difícil de lo que imaginaba.
Luchas, confusión, frustración; incluso el tiempo real escribiendo código no fue más que el tiempo buscando y corrigiendo errores. Pero cuando por fin pude jugar con la aplicación móvil que hice con mis propias manos, de repente sentí que todo el esfuerzo valió la pena.

En el camino de crear la aplicación, aprendí mucho, no solo sobre cómo desarrollar aplicaciones de iOS, sino también sobre cómo planificar en general, e incluso mis habilidades de programación mejoraron. Pero en realidad muchos problemas pudieron haberse evitado si hubiera adoptado otro enfoque al aprender Objective-C.
Integrando estas experiencias, si hoy tuviera que aprender a programar de nuevo, haría esto:
Encuentra un "compañero de código"
Primero, encuentra un "compañero de código" con quien intercambiar experiencias.
Un amigo mío, Josh, desarrollador de Python y también de Objective-C, agradeció mucho las numerosas preguntas sustanciales que planteé ("¿cómo usar de nuevo la sentencia if?"), y cuando estaba perplejo, él también me ayudaba a depurar un poco; se podría decir que ambos aprendimos enseñando.
Siendo honesto, tener a un amigo programador tan paciente que me explicara los fundamentos de la programación fue realmente beneficioso. Si hubiera tenido un amigo así antes, creo que no habría dado tantos rodeos con Objective-C.
Aprovecha todos los recursos disponibles
Si no tienes a un compañero de código tan paciente a tu lado, entonces puedes usar las siguientes formas para obtener ayuda:
1. Stack Overflow
Para problemas específicos de sintaxis y desarrollo, basta con ir a Stack Overflow. Aunque personalmente nunca he hecho preguntas en línea, porque con solo ver las preguntas y respuestas de los demás es suficiente.
2. Suscríbete a revistas en línea
Los recursos de aprendizaje en la red son complejos y variados, a menudo pueden desorientar a los principiantes. Algunas revistas en línea te envían periódicamente el contenido más destacado reciente para que puedas aprender selectivamente. Recomendamos "El programador feliz", lanzado por Codeceo. Puedes suscribirte por correo directamente haciendo clic aquí.
3. Treehouse
Te enseñan a programar a través de cursos en video y foros comunitarios integrados.
4. askadev
Con askadev puedes conectarte con desarrolladores experimentados cuando necesites ayuda. Yo mismo no lo he probado, no sé si cubre todos los lenguajes de programación, pero hay algo bueno: es gratis. Así que la próxima vez que encuentres un problema difícil, pruébalo.
5. Codementor
Si no te importa gastar un poco de dinero para obtener ayuda de desarrolladores senior, entonces puedes probar Codementor. Te emparejará con la opción óptima, con tecnologías como Android, iOS, HTML, CSS, PHP, Python, etc., etc.
6. El método del pato de goma
El punto clave de este método es expresar tu problema en voz alta, explicándolo a un pato de goma u otro objeto inanimado, incluso una tostadora sirve.
Mientras explicas, a menudo se te ocurre la respuesta de repente (o te das cuenta de que hay algo mal).
Aprende los fundamentos
Muchas cosas se convierten en obstáculos porque nosotros mismos hemos entendido mal o no estamos familiarizados con la tecnología que estamos usando.
Por ejemplo, usar una API significa que necesitas entender cómo funciona la API, cómo usar las solicitudes POST y GET, y cómo analizar datos JSON. Incluso necesitas saber cómo recibir datos JSON.
Si quieres construir una aplicación de iOS, no es suficiente con aprender Objective-C; al menos no era suficiente para construir la aplicación que tenía en mente. Yo cometí ese error una vez.
Peor aún, a menudo me quedaba atascado. Aunque había explicaciones en foros, tutoriales en línea y capítulos de libros, todos estos omitían algunos fundamentos: asumían que yo los sabía cuando en realidad no los sabía.
Si tuviera que volver a aprender, sin duda dominaría bien los fundamentos de HTML y CSS. Si tuviera que hacer una aplicación nuevamente, nunca empezaría tan a ciegas como esta vez; primero construiría una base sólida.
El primer lenguaje
Cualquier lenguaje es una riqueza. Aunque el HTML y el CSS que aprendí no han tenido utilidad hasta el día de hoy, no siento que haya sido una pérdida de tiempo aprenderlos.
Los principiantes pueden empezar intentando crear sitios web con HTML y CSS. En realidad estos son lenguajes de marcado, por lo que quizás no te ayuden mucho a crear aplicaciones móviles o web. Pero incluso si no son útiles, en el proceso de aprendizaje aún podemos obtener muchos conocimientos y experiencia, lo que facilita aprender el siguiente lenguaje de programación.
Si estás empezando a aprender a programar y no sabes por dónde empezar, puedes elegir un libro, tutorial o curso en línea que te guste. Si te parece bien, no dudes. Una vez que tengas un objetivo claro, también puedes pasar rápidamente a aprender otros lenguajes de programación.
Encuentra un proyecto que realmente quieras hacer
Me considero una persona bastante trabajadora: primero aprendí HTML y CSS cuando era adolescente, luego hace unos años aprendí los fundamentos de Ruby, y recientemente he puesto mi objetivo en Python.
Luego decidí aprender Objective-C. Sin embargo, no lo aprendí porque me gustara más ni porque tuviera envidia al ver a otros aprenderlo, sino porque quería crear una aplicación de iOS: realmente quería hacer una con mis propias manos.
Se puede decir que mi pasión por aprender Objective-C fue más intensa que con cualquier otro lenguaje anterior.
Lo más importante es que cuando encontraba dificultades, cuando estaba frustrado, nunca pensé en rendirme, porque era un proyecto que realmente quería hacer. Incluso un pequeño progreso era mi motivación para seguir adelante.
Si estás considerando aprender a programar y no tienes ninguna otra limitación, entonces elige el lenguaje de programación que realmente ames y que necesites para construir tu proyecto.
El proceso de aprendizaje de cada persona es diferente, así que tus experiencias pueden diferir de las mías. Sin embargo, si estás dando los primeros pasos o estás considerando aprender a programar, espero sinceramente que mis lecciones te ayuden a aprender más rápido.
Enlace de la traducción: http://www.codeceo.com/article/what-to-do-if-be-programmer.html
Texto original en inglés:What I would do differently if I was learning to code today
Autor de la traducción:Codeceo– Xiaofeng