En los últimos meses, he estado aprendiendo a escribir aplicaciones iOS con Objective-C y finalmente estoy empezando a aclarar mis ideas. Ha sido mucho más difícil de lo que imaginaba y me ha llevado demasiado tiempo.

A menudo me he encontrado con dificultades y frustraciones, y arreglar errores me ha llevado mucho más tiempo que escribir código. Pero tener en mi teléfono una aplicación que desarrollé desde cero es una sensación asombrosa.

Aprendí mucho de esta manera, no solo sobre desarrollo de aplicaciones iOS, sino también sobre programación en general. También me encontré con algunos problemas que quizás podría haber evitado si hubiera aprendido Objective-C de otra manera.

Mirando hacia atrás, si hoy tuviera que aprender programación, haría algunas cosas de manera diferente.

如果学习编程可以重来

Encuentra un compañero de programación

También encontré un método de aprendizaje: tener a una persona real con quien hablar.

Mi cofundador Josh, que trabaja principalmente con Python, en realidad aprendió Objective-C conmigo y me respondió muchas preguntas sobre teoría de programación (como "¿cómo hago que una sentencia if funcione de nuevo?") y me ayudó a depurar cuando me encontraba realmente atascado.

Tener al menos un compañero de programación muy paciente que pueda explicar los principios básicos de programación fue una gran ayuda. Antes de que yo resolviera los detalles específicos con Objective-C, Josh a menudo me ayudaba a pensar en la mayor parte del enfoque lógico para resolver un problema.

Aprovecha los recursos

Si no tienes la suerte de tener cerca a un programador paciente que responda tus preguntas, hay otros lugares donde puedes obtener ayuda de personas reales:

  Stack Overflow

Para preguntas sobre sintaxis o implementación específicas, Stack Overflow es uno de los sitios web que más he visitado últimamente. Todavía no he hecho preguntas allí (dado que la comunidad es bastante amigable con los principiantes, soy cuidadoso al hacer preguntas), porque rara vez necesito hacerlo: la mayoría de mis problemas se resuelven al revisar las respuestas a las preguntas de otras personas.

  Treehouse

Treehouse enseña programación con cursos en video y también tiene un foro comunitario donde puedes discutir errores difíciles o ejercicios específicos que encuentres durante las lecciones.

  askadev

Cuando necesites ayuda, askadev te permite contactar con desarrolladores experimentados. Aún no he probado este servicio, así que no sé qué tan útil es ni si cubre todos los lenguajes de programación, pero es gratuito, así que la próxima vez que lo necesites, pruébalo.

  Codementor

Si quieres pagar a desarrolladores experimentados para obtener ayuda, Codementor te empareja con personas que conocen el lenguaje que estás aprendiendo. Cubren Android, iOS, HTML, CSS, PHP, Python y muchas otras tecnologías.

La solución del problema del patito de goma

Si no lo has visto antes, la publicación del blog "Resolución de problemas estilo patito de goma" es muy útil. La idea es: explícale tu problema a un patito de goma u otro objeto inanimado, como una tostadora, y hazlo en voz alta. El proceso de explicar el problema en voz alta a menudo te ayuda a darte cuenta de la respuesta (o al menos de dónde está el error). He descubierto que hablar sobre mi código en voz alta es un hábito increíblemente bueno, y trato de hacerlo cada vez antes de pedir ayuda a alguien.

Aprende los estándares

Durante mi tiempo aprendiendo a programar, lo que más me afectó fue mi falta de familiaridad y malentendidos sobre las tecnologías que estaba utilizando. Por ejemplo, desarrollar una API significaba que necesitaba entender cómo funcionan las API, cómo usar solicitudes POST y GET, cómo analizar datos JSON, e incluso necesitaba dominar cómo recibir datos JSON.

Aprender Objective-C no es todo lo que necesitas saber para desarrollar aplicaciones iOS, al menos no el tipo que yo quería desarrollar. Cometí el error de pensar que con saber Objective-C era suficiente. Y lo que es peor, a menudo me encontraba con dificultades porque las personas que respondían preguntas en Stack Overflow, los tutoriales en línea y los capítulos de libros explicaban cómo desarrollar con Objective-C, pero omitían por completo los principios web esenciales que necesitaba saber, porque asumían que ya los conocía.

Si hoy empezara de nuevo, primero ampliaría y acumularía conocimientos de HTML y CSS. Cuando empezara a encontrarme con nuevas tecnologías que no conocía bien, las investigaría por encima antes de intentar implementarlas con Objective-C.

Puedes empezar con cualquier lenguaje

Si realmente no estás seguro de por dónde empezar o qué quieres desarrollar, no dejes que eso te afecte. Aunque pasé tiempo aprendiendo Ruby y Python sin haber completado ningún proyecto con ellos, no siento que ese tiempo se haya desperdiciado.

El punto de partida habitual para los principiantes es aprender HTML y CSS para desarrollar sitios web. En realidad son lenguajes de marcado, y si quieres desarrollar aplicaciones móviles o web, podría parecer que aprender HTML y CSS es una pérdida de tiempo. Pero en ese caso, obtendrás conocimientos y experiencia que te serán útiles a medida que continúes aprendiendo lenguajes de programación.

Si estás ansioso por empezar a aprender programación pero no sabes por dónde empezar, elige un libro, un tutorial o un curso en línea y, si te gusta, ¡complétalo! Una vez que tengas una mejor idea de lo que quieres desarrollar, siempre puedes optar por aprender un lenguaje diferente.

Encuentra un proyecto que realmente te importe

Para mí, la curva de aprendizaje más grande probablemente fue encontrar la motivación para seguir aprendiendo a programar. En el pasado lo intenté muchas veces: aprendí HTML y CSS cuando era niño, años después aprendí los fundamentos de Ruby, y recientemente estuve aprendiendo Python.

Decidí aprender Objective-C no porque me gustara más que Ruby o Python, ni porque conociera a alguien que estuviera aprendiendo Objective-C, sino porque tenía una lista de ideas de aplicaciones iOS que quería completar, y de verdad quería desarrollarlas.

Mi motivación para aprender Objective-C fue más fuerte que con cualquier otro lenguaje que haya aprendido antes, porque me impulsaban los proyectos personales que quería desarrollar.

Lo más importante es que, a medida que aumentaba la dificultad y me sentía frustrado o encontraba obstáculos, no me rendí, porque estaba desarrollando un proyecto que realmente me importaba. Cada vez que lograba implementar una nueva funcionalidad y funcionaba bien, la satisfacción era incluso mayor, porque era parte de un proyecto que me apasionaba.

Si estás considerando aprender a programar y no tienes ninguna restricción en cuanto a lenguaje o plataforma, te recomiendo encarecidamente que elijas un proyecto que realmente te apasione, para así construir una base con el lenguaje que el proyecto requiera.

Cada persona aprende de manera diferente, por lo que puede que tu experiencia sea distinta a la mía, pero si apenas estás empezando o estás considerando aprender programación, espero que mi experiencia y mis errores te ayuden a aprender más rápido.

  • Nota: El método de depuración del patito de goma, también conocido como método de depuración del pato de goma o Rubber Duck Debugging, es uno de los métodos de depuración de código utilizados en la ingeniería de software. Consiste en explicar pacientemente a un patito de goma la función de cada línea del programa durante el proceso de depuración, corrección o prueba, para así inspirar ideas.

Fuente del artículo:www.labazhou.net
Texto original en inglés:What I would do differently if I was learning to code today