¿Cuáles son algunos consejos o sugerencias para las personas que desean aprender a codificar profesionalmente, pero tienen dificultades para asimilar y recordar todo?

Es cierto que, naturalmente, me cuesta concentrarme, procrastino continuamente, evitando naturalmente largas y arduas tareas, pero estoy realmente interesado en involucrarme en el código para dar vida a mis ideas “.

Esto suena como yo! Adivina qué, también soy diseñador gráfico. Una cosa que puedo decirte sobre la programación es que la disciplina, la perseverancia y la terquedad son mucho más importantes que la inteligencia o la inteligencia o lo que sea. Cuando comienzas a aprender a programar, cada cosa es confusa. No entiendes los mensajes de error, la sintaxis parece aleatoria, etc. Estas cosas me desconcertaron durante mucho tiempo. Renunciaré a mi búsqueda solo para volver más tarde con un nuevo material introductorio y luego renunciaré nuevamente. Esto empeoró por el hecho de que no tenía acceso físico a ninguna persona que pudiera responder mis preguntas, ni siquiera sabía las preguntas correctas para hacer cuando me conecté en línea para recibir ayuda.

Comencé a progresar en un momento en que comencé a darme cuenta de que la perseverancia y el trabajo duro pagaban. Esto fue reforzado por los libros introductorios de Python Learn Python The Hard Way [1] y Think Python [2]. Si decides seguir esta ruta, te sugiero que los leas uno al lado del otro. En mi opinión, LPTHW te enseña ingeniería de software y TP te enseña programación. Una vez que comprenda los fundamentos, puede seguir adelante y abordar Objective-C. Esto puede parecer un desvío innecesario, pero creo que es necesario para un principiante.

Si decide sumergirse en Objective-C, será muy útil si tiene acceso a alguien que conozca Objective-C y esté dispuesto a responder sus preguntas.

Recuerde, persevere, sea terco y sepa que todos luchan con la programación, incluso aquellos que lo han estado haciendo durante años. Buena suerte.

1. Página en learnpythonthehardway.org
2. Cómo pensar como un informático

Voy a copiar una de mis otras respuestas:
10 Elige un problema que te interese
20 Resuelve el problema usando el idioma que elijas
30 goto 10

vendrá con el tiempo. Lo importante es que sigas interesado en aprender cosas nuevas y sigues avanzando.

A la luz de tu edición …
pruebe un paquete de programación llamado procesamiento (www.processing.org). los artistas lo utilizan para hacer arte de instalación y facilita la visualización. Teniendo en cuenta sus antecedentes artísticos, probablemente le interesará algo de arte programático. El procesamiento es un lenguaje bastante fácil, es realmente java … pero esa es otra respuesta. Otra buena opción es python (www.python.org) y el paquete de tortugas, ambos son fáciles para principiantes. Estoy de acuerdo con usted objetivo-c es una experiencia desgarradora y no se recomienda como primer idioma.
Los fractales son una buena opción para los primeros proyectos visuales (no es su primer proyecto, sino más intermedio). Dibuja la espiral del dragón, la curva C de Levy, el conjunto de mandelbrot, el triángulo de Sierpinski o el copo de nieve de Koch.

Como ejemplo, aquí está la curva del dragón en Python:
Nota: Debo agregar que esto solo se probó en python 2.7.5, puede funcionar en python 3 pero no lo he probado, por lo que puede que no.

import turtle """ draws the fractal called the dragon curve. This works by creating a very simple set of instructions in memory and then interpreting that program to draw the curve. """ if __name__ == "__main__": # block of "magic" constants. Ie there is no particular reason for # most of these other then I played with the values to produce a # nice picture. step_count = 14 # how many times to expand the curve instructions. # smaller values make for simpler pictures and larger # values a more complex curve. origin=(-160,110) # where to start drawing length = 2 # the length of each line segment # base case of the simplest instructions for the dragon curve # this list of instructions is manipulated into a program to draw # the picture we desire. # the instructions are just directions to turn after drawing each # line segment. True means the direction the pen is moving should # turn right and False means turn left. fold_right = [True] # tell turtle to animate the pin moving rather then just showing # us the final picture. Change True to False (notice the capitalization) # to quickly draw the image. turtle.tracer(True) # build the list of folds for the dragon curve # the for loop repeats itself step_count times... for i in range(step_count): # make a copy of the instructions backwards. ie if the instructions # were [1, 2, 3] begin would be [3, 2, 1]. begin = fold_right[ len(fold_right) :: -1] fold_right.append(True) # stick an extra True on the end of fold_right # append the directions in begin onto the end of fold_right but reversed # so if begin says fold_right we should append a left turn and vice versa. for dir in begin: fold_right.append(not dir) # The list of instructions is done lets get ready to draw. # pick up the pen so we don't draw a line when we move to the start position. turtle.up() # Tell the pin to draw toward the bottom of the screen turtle.setheading(270) # move to where we set the origin to be turtle.goto(origin) # put pen to paper to start drawing turtle.down() # draw forward length pixels. This draws a line length pixels long from # where the pen is in the direction we told it to draw. (down) turtle.forward(length) # ok follow the list of instructions to draw the curve. This will go through # the fold_right list of instructions in order, putting each instruction into dir # for us. for dir in fold_right: # make a decision do we turn left or right? if dir: # dir says turn right so turn the drawing direction 90 degrees right. turtle.right(90) # draw a line length long turtle.forward(length) else: # dir said turn left so turn the drawing direction 90 degrees left. turtle.left(90) # draw a line length long turtle.forward(length) # hold the window open so we can admire our work... turtle.mainloop() 

Por eso enumero los fractales como una buena herramienta de enseñanza. Eso es una pequeña cantidad de código para la complejidad de la curva del dragón. Muchos fractales se pueden dibujar con cantidades de código similarmente pequeñas.
Simplemente me volví loco al comentar el código, así que debería ser más fácil de seguir ahora. Creo que hay más comentarios que código en este punto. Lo curioso de este programa es que técnicamente escribe su propio pequeño programa y luego lo ejecuta …

Una vez que haya desarrollado suficientes habilidades para construir algo, es de suma importancia que dedique su tiempo a ponerlo en práctica. Practicar lo que ha aprendido eventualmente hará que las cosas sean permanentes, ya sea su capacidad para escribir un programa simple o su conocimiento de la codificación en su conjunto.

Cuando llegue a un punto en que la codificación sea fácil de recordar, no se detenga en crear programas. Estudie con otros, enseñe a otros, aprenda junto a personas de ideas afines en un ecosistema que lo ayudará a prosperar en exceso. Si eres lo suficientemente apasionado por algo, buscarás comunidades que compartan los mismos intereses y puedan ayudar a fomentar el crecimiento entre nosotros.

Encontrar un mentor también es un gran movimiento, ya que es fácil desviarse cuando haces algo por tu cuenta. Si no puede encontrar la motivación dentro de usted, puede encontrarla fácilmente a su alrededor siempre que haga el esfuerzo, haga el primer movimiento y continúe siendo proactivo en todo lo que haga. Rodearse de un entorno positivo lo ayudará a mantenerse encaminado y a cultivar dentro de usted la actitud correcta necesaria para lo que sea relevante en su vida, especialmente cuando se trata de cosas como la codificación, ya que es fácil olvidar lo que ha aprendido si se detiene práctica.