¿Qué tan difícil es aprender Objective-C (para una aplicación de iPhone) sin ninguna experiencia en programación?

Objective-C actúa muy similar a un híbrido de C y Java en mi opinión, que a menudo son lenguajes de primer año que se enseñan a los programadores. Entonces, en ese sentido, creo que es mucho más fácil que comenzar con, por ejemplo, C ++.

Otra cosa a tener en cuenta sobre el aprendizaje de Objective-C, o una programación más apropiada para iPhone, es que realmente estás usando / influenciado por las herramientas y bibliotecas que Apple pone a tu disposición (como Cocoa, Cocoa Touch, etc.). Una de las cosas que encontré muy “reconfortantes” sobre ese entorno es que esas bibliotecas están muy bien definidas, y la sintaxis para acceder y trabajar con funciones y objetos realmente parece seguir un enfoque más de “lenguaje simple”. Si observa las fuentes típicas de la aplicación Cocoa, puede comprender muy rápidamente para qué sirven las llamadas de función, y creo que ayuda a imponer una limpieza y legibilidad similares en su propio código.

Dicho esto, pasar de cero a programar con un nuevo entorno de desarrollo, lenguaje, bibliotecas y programación de tipos orientada a objetos (más administración de memoria) puede ser desalentador, independientemente de la tarea que esté asumiendo. Recomiendo encarecidamente obtener los videos sobre el desarrollo de iPhone en la Universidad de iTunes, ya sea de Stanford, creo, u otras fuentes. Míralos, porque comienzan a partir de conceptos, se mueven hacia el código y son REALMENTE buenos para explicar por qué “PODRÍAS hacer X, Y, Z, pero casi siempre vas a hacer W”. Hay muchas API y patrones de diseño, pero estos tipos construyeron los marcos y saben cuáles serán los casos de uso más comunes.

Una alternativa es usar algo como PhoneGap, etc., que usa HTML / Javascript / CSS, pero si está aprendiendo desde cero para un propósito específico, entonces probablemente debería considerar usar las herramientas dedicadas nativas.

Mi serie de libros favorita es, con mucho, los manuales “Principiante de iPhone”; puede reservar ahora el desarrollo inicial de iPhone 4 en Amazon ahora.

Me encanta esta pregunta, aún vale la pena agregarla un año después.

—–
Respuesta rápida: voy a ser extremadamente directo al responder. Basado en dos pruebas en su pregunta, tengo un alto grado de confianza en que será una de las cosas más difíciles que haya hecho en su vida (fue para mí), y en serio no estoy tratando de ser en absoluto despectivo o presuntuoso. Mi respuesta es creíble porque también tengo mucha (y) experiencia y simpatía al respecto.
—–

Respuesta completa: Las dos pruebas son 1) la mera presencia de su pregunta sobre Quora, y 2) el hecho de que no se proporcionan detalles más allá de “[no] ninguna experiencia de programación”. Con respecto al n. ° 1, la suya podría no ser la pregunta más fácil de responder simplemente escribiéndola en Google, pero unos minutos de búsqueda revelarían más arcanos técnicos de lo que uno podría imaginar y muchas respuestas negativas. Encontré una gran respuesta desde 2007. Su recurso a la excelente fuente de Quora predice mucho menos recursos de los que necesitará para llegar a la “primera base” en Xcode. Para continuar con la aburrida metáfora del béisbol, nuestra información del n. ° 2 también agrega que es como si no tuvieras un uniforme, una pelota, un bate, nunca te has parado en el plato y no sabes dónde está el lanzador. ; esa es una analogía no injusta de aprender todas las capas de programación “para una aplicación de iPhone” (palabras críticas en su pregunta). Las capas incluyen: programación, pensamiento algorítmico, Objetivo C, Xcode (la herramienta del desarrollador), Cocoa Touch (las miles de funciones ya creadas para usted), iOS y la tienda de Apple (una de las partes más difíciles, o al menos era 2 hace años que).

Veamos con más detalle ese elemento en esta lista de capas, el Objetivo C (sigo mirando su pregunta para asegurarme de que estoy respondiendo sus inquietudes exactas, y sí, quería OC). Aquí hay un fragmento no poco común, directamente de lo que estoy trabajando ahora:

if (! [_ persistentStoreCoordinator addPersistentStoreWithType: NSSQLiteStoreType configuration: nil URL: storeURL opciones: nil error: & error])

Elegí intencionalmente uno sobre el cual algunos desarrolladores podrían decir, “feo, pero podrías analizar algún tipo de contexto y significado a partir de él”. Y, de hecho, uno nunca escribe una línea así desde cero; lo heredas de repeticiones y tutoriales, e incluso del código generado. (Personalmente, encuentro que la sintaxis y la puntuación del Objetivo C son casi criminales. Lo contrario, una vez que uno alcanza el nirvana de decir: “oh, sí, es legible una vez que lo entiendes”, es realmente una prueba de que los humanos podemos aprender cualquier cosa … o más adecuadamente “acostumbrarse” a cualquier cosa, como en “Puedes acostumbrarte a cualquier cosa; puedes acostumbrarte a colgar si cuelgas lo suficiente”.

Permítanme agregar un bocado más de justificación. Me considero un programador reacio. No tengo la aptitud para hacerlo de manera tal que prospere, pero me encanta resolverlo. Pero dos tipos con los que trabajo son excelentes programadores, mucho más fuertes que yo; uno un desarrollador de pleno derecho, y el otro más de tipo de diseño y código. Ambos abandonaron iOS, sintiendo que era un abuso de su tiempo tratar de hackear su densa jungla de desafíos de aprendizaje. Perseveré (en casa) y tengo dos aplicaciones en la tienda, ambas para la educación, sin ninguna expectativa de dinero significativo. El primero fue un proyecto HTML / Javascript / Phonegap (mencionado anteriormente). El segundo, aunque solo unas pocas líneas de código, es puro Xcode nativo. Ahora estoy trabajando en otra aplicación Xcode pura que es más que solo para mi educación … debería ser útil para algunos. Para llegar allí, esto es lo que tomó este ‘no programador’ ( que ha aprendido 17 idiomas diferentes desde 1983):
-Lee partes de 3 libros de muñecos.
-Vi la mayoría de las 2 series de tutoriales de Lynda (Simon Allardice [espectacular], Bill Weinman)
-Trabajó a través de muchos Tutoriales de Ray Wenderlich para iPhone / iOS Tutoriales para desarrolladores y jugadores
-Lee alrededor de 100 publicaciones en http://Stackoverflow.com .
-Muchas horas

Esto gana “aprender Xcode” aproximadamente el 4to lugar en la lista de las cosas más difíciles que he hecho, en algún lugar entre resolver el cubo de Rubik y mover una escalera en mi casa.

¿Responde esto la pregunta?