No entiendo en absoluto la programación de computadoras. Siento que hay tantas cosas que aprender. ¿Alguna sugerencia?

He sido desarrollador profesional durante diez años (y aficionado durante casi 40 años) y, durante el mes pasado, he estado tratando de aprender un nuevo tema de programación que es difícil para mí, incluso teniendo en cuenta mi experiencia.

Por lo tanto, cojo un libro y lo hago lentamente en aproximadamente tres páginas (a veces tengo que buscar cosas en Google que no entiendo). Mientras leo cada párrafo, doy la vuelta a un editor de código y pruebo lo que el autor está explicando. Hago eso incluso si tengo ese “Lo entiendo. Lo entiendo totalmente. No necesito intentarlo” Sentimiento. He aprendido a lo largo de los años que este sentimiento puede desviarme, así que no confío en ello. Lo intento todo .

Por ejemplo, mi idioma principal es JavaScript, en el que define variables como esta:

var x

Digamos que estoy leyendo un libro en algún otro idioma, un idioma nuevo que nunca he usado antes, y el libro dice que, en este idioma, se definen variables como esta:

variable: x;

Estoy muy tentado de decir: “Bueno, eso es nuevo para mí, pero lo entiendo totalmente. Es lo mismo que JavaScript, pero tienes que deletrear la palabra” variable “y ponerle dos puntos después”. Incluso cuando el concepto es tan claro y obvio para mí como eso, todavía lo intento. No me considero que he aprendido nada, nada, hasta que lo he escrito con mis dedos, lo he compilado y lo he visto correr. Si es solo un concepto en mi cerebro, no importa cuán confiado estoy de que lo entiendo, asumo que no lo entiendo.

De todos modos, es algo difícil, así que mientras leo y lo intento, mi cerebro comienza a empañarse. Dos páginas y media, estoy empezando a perderlo. Estiré muy duro y al releer los párrafos una y otra vez, apenas puedo entenderlo. Luego, después de tres páginas, estoy totalmente perdido. Y, peor aún, tengo ese sentimiento de “Nunca lo conseguiré”. Por lo que quiero decir, es muy claro que no hay manera de que pueda entender esto, porque es simplemente demasiado difícil para mí.

También he aprendido a no confiar en ese sentimiento. Aún así, lo siento intensamente todos los días. Y todos los días, lo ignoro. En lugar de renunciar por la vida, lo que hago es renunciar por el día. Renuncié en el momento en que mi cerebro se desvaneció y no volví a intentarlo hasta el día siguiente. Lo que significa que lo máximo que logro en un día son tres páginas. ¡Tres páginas de un libro de 1.500 páginas!

A pesar de que “nunca obtendré esto, nunca, al día siguiente, puedo pasar por otras tres páginas, y lo que era imposible para mí ayer ahora es posible. Por supuesto, al final de las tres páginas de hoy , estoy completamente derrotado nuevamente. El hecho de que “nunca lo conseguiré” es tan obvio para mí como el hecho de que tengo cuatro dedos y un pulgar en cada mano, a pesar de que la versión de ayer de “Nunca lo conseguiré” se probó como equivocada, hoy.

Lo que es interesante es esto: siempre me equivoco y nunca lo entenderé. Y nunca aprendo del hecho de que siempre me equivoco. De una manera intelectual, sé que no debo confiar en ese sentimiento, así que siempre recojo el libro de nuevo, al día siguiente, a pesar de que el día anterior terminó en una derrota total, pero no importa cuántas veces demuestre que nunca lo consigo. Para ser una mentira, siempre se siente 100% como la verdad, y siempre lo será.

Aprender a menudo significa saber que no tiene sentido continuar y continuar de todos modos.

Estoy seguro de que nunca, nunca, recogeré un libro tan duro como este con la sensación de que lo obtendré, por lo que no espero que eso suceda o espero que suceda. Terminaré todos los días derrotados, y comenzaré cada nuevo día superando esa derrota. Eso se llama “prueba y error” y es la única forma real de aprender. (Y, recuerde, “trial” en realidad hace algo, no solo “entendiéndolo” en su cabeza. Pensar no es lo mismo que intentar, y en el momento en que piensa, “lo entiendo, así que no necesito intentarlo”. es, “estás hundido.)

Algunas personas odian este proceso, porque es lento. ¿Sólo tres páginas al día? ( De hecho, es incluso más lento que eso, porque a veces tengo que retroceder un poco). Bueno, el aprendizaje toma el tiempo que toma . Puedes aceptar eso o rendirte. Y si elige la última opción, tenga las agallas de decir “Estoy demasiado impaciente para pasar el tiempo que tendría que pasar para aprender esto”. No digas: “No puedo aprenderlo”.

Si continúa trabajando de esta manera, eventualmente llegará a un punto donde puede programar. Cualquiera que sea la tarea, podrás hacerlo. Pero no esperes nunca dejar de sentir que hay mucho que aprender.

Conozco a programadores que han estado programando durante 50 años, e incluso ellos sienten que hay mucho que aprender. La tecnología se mueve realmente rápido, y las cosas nuevas se agregan más rápido de lo que puedes aprender las cosas antiguas.

La programación es un campo para las personas que desean ser aprendices de por vida. Es un campo para las personas que quieren seguir fallando y seguir empujando fallas pasadas. (Aunque la fórmula completa, al igual que con el levantamiento de pesas, es esforzarse por fracasar, dese tiempo para sanar y, a continuación, vuelva a fallar). Si es alguien que piensa en la educación como algo que termina en algún momento Punto, la programación no es el campo para ti.

Imagínese a un tonto que levanta pesas y espera con ansias el día en que termine, cuando pueda deslizarse … cuando pueda ir al gimnasio y levantar las pesas fácilmente. La única forma en que podría ser posible es que deje de mejorar. Lo cual está bien, si eso es lo que quiere hacer, pero entonces no debería engañarse y decir: “He levantado todos los pesos que hay para la vida”. Siempre habrá más pesos.

Actualización : en base a los comentarios, me gustaría desarrollar tres problemas para tener en cuenta, el miedo al fracaso (que cubrí anteriormente), la obsesión con los plazos (que también cubrí anteriormente) y la clasificación social . Los tres son, hasta cierto punto, impulsos naturales, y son muy alentados por la mayoría de las escuelas, lo cual es triste porque se supone que las escuelas son lugares de aprendizaje. Y, sin embargo, enseñan sistemáticamente a las personas cómo no aprender.

Las trampas son difíciles de contrarrestar, porque están algo incrustadas en nuestras naturalezas y profundamente arraigadas en nuestras culturas, pero el primer paso para combatirlas es la conciencia. Una vez que te das cuenta de uno de estos escollos, puedes optar por resistirte.

Miedo al fracaso

Si los niños pequeños fueran acobardados por fallar, nunca aprenderían a caminar. Lo intentarían una vez (o cien veces), fracasarían y luego se rendirían. En algún lugar entre la niñez y la edad adulta, aprendemos a temer tanto al fracaso que comenzamos a evitarlo. Nos negamos incluso a embarcarnos en actividades en las que probablemente fracasemos. Y, en su mayor parte, nuestras culturas nos permiten y nos alientan a evitar el fracaso.

Se supone que debemos luchar un poco en la escuela, pero gran parte de esa lucha está orientada a aprender cómo evitar el fracaso. Es en la escuela que aprendemos “No soy una persona de matemáticas” o “No soy uno de esos tipos artísticos”. Lo cual es una forma de decir: “Genial. Ahora he eliminado un área completa de fallas de mi vida. Mientras lo evite, no tendré que fallar para variar con frecuencia”.

El objetivo en la mayoría de las escuelas es conseguir derecho como. Eso es un revés: debería ser obtener Fs directas. Sabiendo que la prueba y el error es la mejor herramienta de aprendizaje, los maestros deberían decir: “Bobby ha obtenido tres A seguidas. Eso es preocupante. No lo estamos desafiando lo suficiente. Tenemos que empujarlo al fracaso para que pueda aprende de sus errores y sigue fortaleciendo sus habilidades. ¡No queremos entrenarlo hasta la costa! ”

Los padres se confabulan en esta conspiración. ¿ Alguno de los padres ha ido alguna vez a la escuela y dijo: “Le estás dando demasiadas cosas a mi hijo? ¡Claramente no está siendo desafiado”? Realmente no estoy culpando a los padres y maestros. Son parte de un sistema monolítico con valores podridos.

Fallamos un poco cuando iniciamos nuevos trabajos, pero el objetivo, para la mayoría de nosotros, es llegar a un punto en el que podamos desplazarnos. En la mayoría de los trabajos, incluso los “intelectuales” como el médico de medicina general, la cantidad de desafíos totalmente nuevos que se deben superar cada día es sorprendentemente pequeña. Después de una curva de aprendizaje inicial, uno puede viajar durante décadas hasta la jubilación.

Esto no se considera vergonzoso; se anima ¡Es parte de la buena vida! Todos los días vas al trabajo con total confianza, porque sabes que todo lo que encontrarás será cosas que has tratado antes o cosas similares a las que has tratado antes.

Imagina un levantador de pesas que entrena de esta manera. Después de llegar al punto en que pudo levantar 100 libras, nunca acumuló más peso. Simplemente iba al gimnasio cada día, levantó 100 libras y dijo: “¡Sí! ¡Todavía puedo hacerlo! De hecho, dame cualquier peso por debajo de 100 libras – 5 libras, 30 libras, 75 libras – y puedo vivirlo, no problema! soy versátil! ” ¿Alguna vez ganaría alguna masa muscular nueva?

El golpe más insidioso para el miedo al fracaso es el síndrome del “nunca voy a tener”. Es cuando intentamos las cosas, fallamos en ellas una vez (o algunas veces) y decimos: ” Nunca lo conseguiré”.

Aquí hay un truco simple para entrenarte con ese tipo de pensamiento. Simplemente prohíbe decirlo. No estoy sugiriendo que tengas que seguir intentando todo lo que fallas. Le sugiero que vuelva a encuadrar continuando o renunciando como una opción , no algo que tenga que hacer porque apesta.

Incluso si has fallado 100 veces, no sabes que nunca lo conseguirás. Tal vez podrías conseguirlo después de 110 veces o 5,000 veces. La vida es corta, y algunas veces tiene sentido renunciar, pero eso es diferente de “Nunca lo conseguiré”. Eso es “estoy eligiendo dejar de fumar porque todavía no lo he recibido, y prefiero no dedicar más tiempo a intentarlo”. Comience diciendo: “Puede que lo entienda si lo hago, pero no tengo ganas de hacerlo, así que lo dejo”. Renunciarás a la comodidad de “No es mi culpa. Simplemente no puedo entenderlo”, pero obtendrás una sensación de autocontrol.

He hecho esto constantemente y lo he hecho durante años, y he perdido el sentido de “Esto es imposible para mí”. No quiero insinuar que sigo intentando todo (o la mayoría de las cosas) hasta que las domine. Muy a menudo, elijo dejar de fumar. Pero cuando lo hago, lo poseo. Digo: “Probablemente podría aprender esto con suficiente tiempo y esfuerzo, pero hay otras cosas que preferiría hacer ahora”. Esto deja la puerta abierta para que vuelva a examinar el tema en el futuro. “Nunca lo voy a cerrar”.

La programación es difícil. Se trata de un fracaso constante. ¿Te parece bien? ¿Estás dispuesto a fallar una y otra vez para construir músculo cerebral? Si no, está bien. Luego diga: “Podría hacerlo, pero preferiría no hacerlo”.

Obsesión con los plazos

“¡Si no aprendo esto para el martes, perderé mi trabajo!”

Este es un hecho triste: triste por la forma en que es triste que existan los tornados: el aprendizaje toma el tiempo que toma. Si es realmente cierto que perderá su trabajo a menos que aprenda la cosa para el martes, y que le lleve hasta el miércoles para aprenderla, perderá su trabajo. Si le toma más de un año escolar para aprender Álgebra I lo suficientemente bien como para pasar la prueba, usted pasará la prueba.

En las escuelas, decimos “Se espera que todas las personas de esta clase aprendan el tema X por la fecha Y”, y por supuesto que no, porque las personas aprenden a ritmos variables. Reforzamos constantemente esta relación entre el aprendizaje y los plazos, pero los dos simplemente no van juntos. El aprendizaje toma el tiempo que toma. Aprender un tema en particular te llevará el tiempo que toma. No tardará un segundo más; No tardará ni un segundo menos. Tomará exactamente el tiempo que toma.

No puedes saber, antes de comenzar a aprender, cuánto tiempo te llevará terminar. “¿Crees que puedes aprender esto el próximo mes?” La única respuesta honesta a esa pregunta es: “No lo sé. Tal vez sí, quizás no”. Con anticipación, no puede saber cuántas veces fallará en este tema, cuántas veces tendrá que retroceder, cuántas veces saltará hacia adelante. No puede extrapolar su velocidad de aprendizaje de un tema a otro, porque no tiene una velocidad de aprendizaje. Tienes muchos de ellos. Tienes una velocidad para álgebra y otra para banjo.

Por supuesto, si lo que estás aprendiendo ahora es realmente similar a lo que aprendiste el año pasado, si aprendiste Java en ese momento y estás aprendiendo PHP ahora, puedes dar una estimación razonable. Al controlar cuidadosamente lo que elige aprender, al decir “No soy un programador funcional”, es posible que pueda pasar por un proceso de aprendizaje simplificado y predecible.

En la vida real, los plazos de entrega son menos problemáticos de lo que sugiero, porque incorporamos en nuestros sistemas sociales todo tipo de factores de fudge. Mi jefe dice que necesito aprender JavaScript el próximo mes, pero lo que realmente haré, y lo que sé que puedo hacer, es aprender lo suficiente como para juntar un código frágil que funcionará pero que será realmente difícil de mantener. . Como mi jefe no sabe JavaScript, me saldré con la suya y poco a poco me convertiré en un mejor programador de JavaScript en el trabajo.

No estoy sugiriendo que haya algo malo con esto. En realidad, es el tipo de aprendizaje de prueba y error que he defendido. Lo que digo es que gran parte de lo que llamamos dominio (“Sí, lo sé JavaScript”) realmente no lo es, y ese es el caso. Si realmente esperáramos que la gente realmente aprendiera JavaScript, tendríamos que renunciar a los plazos, porque el aprendizaje lleva el tiempo que lleva.

(En la escuela, la forma más común de falsificación es abarrotar para aprobar el examen, y es una forma que la mayoría de las escuelas permiten, si no fomenta. Oficial o no oficialmente, está integrada en el sistema. No se espera que realmente aprendas el tema ; se espera que pase la prueba.)

Aquí están sus opciones: puede fudge por una fecha límite o puede aprender sin una.

Quiero reiterar que no estoy clasificando esas opciones. Cada uno es apropiado en diferentes situaciones. Mi consejo es que quede muy claro, en su cabeza, cuál es su objetivo en su situación actual. No es su objetivo a largo plazo, sino su objetivo en este momento, para cualquier tema con el que esté lidiando. ¿Necesitas manipularlo para el próximo miércoles o tienes un tiempo ilimitado para que puedas aprenderlo a tu propio ritmo?

Si tiene que hacer fudge, dedique un tiempo a investigar y pensar en la mejor manera de hacerlo, dadas las necesidades particulares del proyecto en el que va a trabajar. Si desea (o necesita) aprender, haga todo lo que pueda para sacar tiempo de la ecuación. Si su objetivo es aprender, hágalo daño diciendo “¡Han pasado tres días y apenas he progresado!”

Ese es el tipo de cosa que sucede cuando realmente estás aprendiendo. Esperar algo. Fracasas, tienes contratiempos, llegas a mesetas, tomas descansos, intentas de nuevo. Toma el tiempo que toma, y ​​usted no puede controlar cuánto tiempo lleva, excepto al dejar de fumar.

Una buena analogía es aprender una lengua extranjera. ¿Vas a “aprenderlo” o lo vas a aprender? Cualquiera podría ser apropiado, dadas sus circunstancias. ¿Vas a España el próximo mes ? Bueno, entonces tal vez fudging es tu mejor opción. Memorice frases como “¿Cuánto cuesta eso?” y “donde esta el baño?” Esa es una estrategia que satisface perfectamente sus necesidades, pero ¿está aprendiendo español? No claro que no.

“Sí, pero tengo que aprenderlo el próximo mes!”

Lo siento. Aprender toma el tiempo que lleva, y cuanto más te concentres en el próximo mes, más tiempo tomará, porque el estrés dificulta el proceso.

El aprendizaje toma el tiempo que toma.

Ranking social

La clasificación frente a los demás es perjudicial tanto si eres un aprendiz lento como un aprendiz rápido. Para el primero, es perjudicial porque “Todos los demás lo están consiguiendo más rápido que yo, ¡lo que significa que apesto!” Para este último, para el que aprende más rápido, significa que, dado que tiene una ventaja, probablemente se negará a desafiarse más a sí mismo, para evitar perder su ventaja. El hombre que está ganando una carrera no es probable que se quite las zapatillas y se ponga las botas, solo para hacer que ganar sea más difícil para él.

Todos conocemos a ese tipo que puede superar la prueba de Cálculo sin siquiera estudiar. Puede superar todas las asignaturas de su escuela sin estudiar. Qué significa eso? Significa que no está siendo desafiado. Y las personas como él que se entrenan, en la escuela, para creer que pueden atravesar cualquier tema, más adelante en la vida, evitarán cualquier cosa que rompa la ilusión de que pueden ganar sin mover un dedo. Así se dedicarán a la costa.

Nadie es bueno en todo. Hay un punto en el que, cuando se les desafía lo suficiente, todos fallarán. Por lo tanto, la única forma en que un ganador puede seguir siendo siempre un ganador es evitar ciertos desafíos.

Mientras tanto, las personas en el extremo más lento del espectro son golpeadas y humilladas tanto que renuncian. Encuentran cosas más fáciles de hacer, de modo que también pueden deslizarse. El objetivo para la mayoría de nosotros, rápido o lento, en la escuela y en la vida, es encontrar un nivel en el que podamos avanzar sin fracaso ni humillación.

Lo cual está bien. No estoy en contra de eso. Pero no está aprendiendo . El aprendizaje requiere el fracaso. Aprender toma el tiempo que toma, y ​​el tiempo que te lleva aprender el tema X probablemente será más largo o más corto que el tiempo que me toma aprender ese mismo tema. Entonces, si lo definimos como una carrera, uno de nosotros será un perdedor y se humillará. Mientras tanto, el otro será un ganador, siempre preocupado por perder su título.

Las escuelas podrían romper este patrón haciendo que todos luchen por igual. No todos estaríamos luchando en la misma página del libro de Álgebra, pero todos estaríamos sudando tan fuerte con algo .

Puedo estar al lado de un tipo mucho más fuerte en el gimnasio, y ambos podemos estar luchando por la misma cantidad. Puedo estar resoplando e hinchando, levantando 100 lbs, mientras que él está resoplando e inflando, levantando 200 lbs. Lo que nunca debería suceder, si ambos intentamos aumentar nuestra masa muscular, es que uno de nosotros esté luchando, mientras que el otro está lanzando pesas fácilmente en el aire.

En la escuela, era malo en matemáticas, pero recuerdo claramente a otros estudiantes que bostezaban en la clase y luego realizaban todas las pruebas. Me comparé con ellos y me sentí horrible, porque, claramente, todo fue fácil para ellos y difícil para mí. Mientras tanto, esos pobres “genios” no estaban aprendiendo nada. ¿Por qué el profesor no los desafió? ¿Por qué no los hizo trabajar tan duro como yo estaba trabajando? ¿Por qué no le importaba lo suficiente su educación para hacerles luchar?

Nadie tiene infinitas cantidades de genio. Einstein tuvo dificultades con algunas materias matemáticas, por lo que los maestros podrían haber encontrado fácilmente formas de desafiar a mis talentosos compañeros de clase.

Yo era un buen escritor Fui tan bueno que los maestros nunca me desafiaron. Simplemente escribieron A’s en la parte superior de mis ensayos, y probablemente estaban agradecidos de no tener que pasar tanto tiempo trabajando conmigo como lo hicieron los estudiantes más correctivos. Como resultado, mi escritura no mejoró una vez que alcancé una meseta de autoaprendizaje. Sabía que no era un escritor perfecto, ni siquiera excelente, pero no tenía idea de cómo mejorar, y nadie me ayudaría.

Nadie me ayudó en la escuela secundaria. Nadie me ayudó en la universidad. Dejé de estudiar Matemáticas, porque la escuela secundaria me había enseñado “No soy una persona de Matemáticas”, y estaba avanzando en la mayoría de las otras asignaturas, disfrutando de las fáciles A que se abofeteaban en mis papeles.

Pero quería escribir mejor, así que le pedí a mis maestros que me enviaran más comentarios y más desafíos. Ninguno estaba dispuesto (o capaz) a proporcionarlos. Finalmente, obtuve lo que quería pagando una tutoría privada con un escritor profesional. (Soy un gran fanático de los aprendizajes y las tutorías, pero no voy a decir más sobre eso aquí).

Al principio fue difícil para mí, porque obtuve lo que deseaba. Cuando, finalmente, alguien estaba dispuesto a separar mi escritura, echaba de menos los elogios que había recibido en el pasado. Pero estoy agradecido con mi tutor de escritura, porque ella realmente me ayudó a crecer. ¡No hay ganancia sin dolor!

Somos animales sociales, por lo que probablemente nunca podamos dejar de compararnos con los demás, lo cual es una pena, porque es malo para el aprendizaje. El hecho de que Mary aprendió Física rápida y fácilmente, mientras estás luchando, puede tener algún significado social, pero no dice nada acerca de si tienes o no la capacidad de aprender física.

Si Fred tarda una hora en resolver un crucigrama, y ​​William tarda tres horas en resolver el mismo rompecabezas, el resultado final es el mismo: el rompecabezas está resuelto. Si William observaba el progreso de Fred y asumía, basándose en la velocidad de Fred, “Nunca podré resolverlo”, estaría sacando las conclusiones erróneas.

Mientras que el ranking es, hasta cierto punto, un impulso natural, las escuelas lo hacen más fuerte. La mayoría de las escuelas convierten las calificaciones en una competencia en algún nivel, incluso si se trata solo de nombrar a los mejores expertos. Y muchos hacen que la competencia sea una parte mucho más continua del proceso que eso. Cada vez que tú y tus compañeros de clase tomen la misma prueba y se califiquen en los resultados, esa es una receta para el ranking. Si se graduó, piense cuántos años estuvo adoctrinado en ese proceso.

Algunas personas afirman que aprenden mejor a través de la competencia. Soy escéptico acerca de qué tan bien funciona como una herramienta pedagógica, pero estoy seguro de que está mal cuando los competidores están muy lejos en términos de habilidades de arranque y velocidad. No es un logro que un conejo supere a una tortuga, y las tortugas son perfectamente capaces de ir del punto A al punto B, incluso si los conejos tardan más en llegar allí. Y si la tortuga quiere ser un conejo, eso es demasiado malo. Él no puede ser lo que no es. Pero lo que puede hacer es mejorar lo que es. Y el hecho de que existan conejos no tiene nada que ver con la cantidad de tortugas que pueden mejorar.

En pocas palabras: estás atrapado con el cerebro que está en tu cráneo. Tal vez sea más lento de alguna manera que mi cerebro; tal vez sea más rápido. Pero las habilidades de mi cerebro son irrelevantes para cualquier progreso que seas capaz de hacer, ya sea más o menos progreso que el mío.

Mi consejo es hacer lo que sea necesario para separar las preocupaciones de clasificación social del aprendizaje. Tampoco es malo. Ninguno es objetivamente más importante que el otro. Somos animales sociales, por eso nos preocupamos por nuestros rankings sociales. Somos animales inquisitivos, por eso queremos aprender. Ambos son importantes, pero son distintos, y al igual que su meta, si realmente quiere aprender, no puede ser aprender el próximo miércoles, tampoco puede ser aprender mejor que Sheila.

Su aprendizaje se logrará mediante la superación del fracaso, tomará el tiempo necesario y se llevará a cabo en el contexto de su cerebro y su velocidad natural para progresar en cualquier tema que esté aprendiendo.

“Pero odio fallar”. Demasiado. Tienes que hacerlo si quieres aprender.

“Pero necesito aprender para el próximo miércoles”. Demasiado. No puedes garantizar eso. Tomará el tiempo que toma.

“Pero me siento más estúpido que todos los demás”. Quizas tu eres; tal vez no eres Eso no tiene nada que ver con tu habilidad para aprender latín.

Nosotros, en nuestras culturas, confundimos constantemente la clasificación social con inteligencia y capacidad, y porque el verdadero dominio es un proceso tan difícil e impredecible. Hemos incorporado factores de fudge social, al igual que incorporamos factores de fudge de plazo y dominio.

Las personas aprenden que tener la capacidad de hablar sobre ciertos temas, como la política, los hace parecer inteligentes. Hay una variedad de formas de parecer más inteligente o más hábil que usted, como alinear sus estanterías con clásicos que no ha leído y maniobrar para ser un pez grande en un estanque pequeño. Si usted es el único programador en su oficina, parecerá un programador realmente inteligente para todas las personas que no pueden programar en absoluto.

Todos hacemos esto en mayor o menor grado. Está bien. Es parte de ser un humano en la cultura humana. Pero no es lo mismo que aprender.

La informática es un tema absolutamente abrumador.

He estado en el mismo lugar donde parece que nunca puedes saber lo suficiente para ser bueno en eso o que no sabes lo suficiente como para comenzar a aprender.

Recuerdo específicamente no estar seguro de qué aprender. Hay tanto material, ¿cómo puedes saber qué material es el más importante?

Primero recomiendo aprender un lenguaje de computadora muy a fondo. Qué significa eso?

1. Comprende dónde escribir el código.

Muchas personas no se dan cuenta de que no entienden a los editores de texto, es un pequeño detalle que muchos omiten pero que en realidad es realmente importante. Comprenda que edita el código con un editor de texto y que puede decirle a su computadora que “Ejecute” las cosas que escribió en su editor de texto. Realmente recomiendo descargar un IDE simple como Dr.Java para comenzar a escribir código.

2. Aprende a imprimir “¡Hola mundo!” a su pantalla (también llamada consola o terminal).

Esto es lo más importante que aprenderá porque es un método instantáneo para ver qué está sucediendo con su programa. Cuando está ejecutando un programa, no hay forma de saber qué está sucediendo a menos que el programa se tome el tiempo de imprimir en la pantalla lo que está sucediendo. El programa usualmente solo imprime cosas si le dices que lo haga.

3. Aprenda a guardar un número o una letra mientras ejecuta su código.

A veces, en el código necesitará guardar algo para poder consultarlo más adelante. Piense en ello como ahorrar su dinero en el banco. Tendrás que acceder a ese dinero más tarde, ¿verdad? Si quieres comprar algo o donar a la caridad tal vez. Así que aprenda lo que significa almacenar su número en un “banco” en el código, o cómo hacer una variable (lo mismo).

4. Aprende a hacer un bucle.

Muchas veces en el código tendrá que hacer algo muchas veces, dependiendo del programa. No es eficiente escribir un comando muchas veces. Entonces, en lugar de eso, es mejor escribir ese comando una vez y hacer que el programa ejecute ese comando tantas veces como sea necesario. Un ejemplo es sumar 2 a un número. Tal vez necesite agregar 2 a un número 600 – 800 veces. No quieres escribir eso para que puedas hacer un bucle que lo haga por ti.

5. Aprende la estructura de datos más básica: la matriz.

Las estructuras de datos son parte integral de la informática y la matriz es la más básica de todas. Es solo una hilera de cajas que contienen algo. Puede contener números, cadenas, letras, imágenes o realmente cualquier cosa.

Una vez que haya superado estos pasos, es probable que tenga una mejor comprensión de lo que necesita aprender para entender realmente un idioma.

Recomiendo comprar o encontrar un libro que enseñe un idioma específicamente y apegarse a él.

Una vez que haya aprendido un idioma a fondo, recomiendo comprender mejor las estructuras de datos (¡pero no se preocupe por eso ahora!). Después de eso, realmente depende de ti.

¡Buena suerte!

He pensado mucho sobre esta pregunta. En última instancia, creo que la respuesta es que no es difícil en absoluto … eventualmente, y si estás dispuesto a inclinarte a ello (si no lo estás ya naturalmente).

Olvídate de los detalles de la programación. Puede sonar extraño, pero en realidad no son tan importantes. Lo que es crítico son los procesos de pensamiento.

¿Deconstruyes instintivamente el mundo que te rodea? Si miras un automóvil, ¿piensas naturalmente en el ensamblaje de las piezas, qué es intercambiable o qué no? A menudo dice cosas como: “no tiene sentido que esto sea parte de eso. Si fueran piezas separadas, podría hacerlo más fácilmente y no tendría que reemplazar toda la maldita cosa cuando se rompa”.

Esto demuestra una serie de competencias básicas que me parecen comunes en los buenos programadores, como una tendencia natural a refactorizar, optimizar, depurar y utilizar la abstracción práctica. Miras un sistema, lo divides en partes en tu cabeza y piensas en formas en que podrían volver a armarse de una manera más útil. Ni siquiera tiene que aplicarse a objetos físicos. Puede ver cómo la gente está realizando una tarea y simplemente ver que hay una manera mejor y más rápida de hacerlo (por ejemplo: ¿ha pedido alguna vez un sándwich, ha visto cómo lo hizo el deli y tuvo que abstenerse de decir POR QUÉ está usted?) cortando el queso primero, maldita sea, tendrás que limpiar la rebanadora dos veces ARGH!).

Yo hago lo último en falta. Es una de las razones por las que siempre frustré a los empleadores de trabajos de baja categoría. Incluso cuando estaba lavando platos en la universidad, siempre se me ocurrían formas alternativas para completar la tarea en lugar de terminar el trabajo. Mis sugerencias para alterar estos procedimientos y su mecánica volvieron locos a muchos de esos jefes. DEJA DE TRATAR DE MEJORARLO SOLO DE HACERLO DE LA MANERA EN QUE TUVIERAS.

No puedo Mi cerebro lo hace involuntariamente. También podría intentar dejar de entrecerrar los ojos ante las luces brillantes. Es literalmente doloroso para mí. Afortunadamente, esto me hizo un programador de computadora natural. Puedo escribir bien, no tengo problemas para mirar un monitor durante ocho horas y, literalmente, obtener placer conduciendo un sistema hacia la elegancia.

Solo puedo imaginar que alguien no tan inclinado miraría la programación de computadoras y se sentiría completamente abrumado. Hay mucho que saber, ¿cómo lo aprendes todo?

Creo que se te puede enseñar a hacer esto; Si no pudieras, probablemente tendríamos muy pocos programadores decentes. Pero hasta que esta competencia generalizada se establezca en tu cerebro, la programación informática debe parecer el reino de la élite cerebral. Confía en mí en esto … no lo es.

Entonces tal vez sea tu enfoque lo que te confunde. No comience con “programación” Comience con “pensar”. Los libros como “El Proceso de Pensamiento Orientado a Objetos” pueden ser muy útiles a este respecto (aunque agregaría que la Programación Orientada a Objetos ya no es del todo la moda, así que tarde o temprano debería estar preparado para entenderlo como ” Pensamiento Funcional “).

Una vez que se entrene para pensar de esta manera, las definiciones de clase, las funciones, los módulos, cómo crearlos en primer lugar, y todo lo demás, serán mucho más claros. Entonces estás en tu camino. El resto es solo sintaxis y forma, que no es diferente a aprender cualquier otra habilidad, arte o arte. Poner en el tiempo y practicar. Pero a menos que el pensamiento fundamental esté en su lugar, nunca lo “entenderá”, si sabe a qué me refiero.

No te sientas mal, Marcus. También he estado programando por más de 30 años, y me siento como un bebé cuando me encuentro con un nuevo idioma (o uno que solía conocer pero que no he usado durante años).

Un lenguaje que siempre me ha frustrado es C ++. Rara vez se utiliza en el desarrollo de software empresarial, que es lo que hago en su mayor parte. No tengo ningún problema con los paradigmas de lenguaje imperativo, funcional, orientado a objetos, basado en pila, etc. Lo que me mata es la sintaxis real de C ++, y la enorme cantidad de conocimiento que necesita tener sobre las peculiaridades del idioma para estar seguro al usarlo. Hay una razón por la que los autores notables de C ++ se ganan la vida viviendo libros sobre cómo no arruinar el uso de C ++. Ha habido varias ocasiones en las que renuncio a intentar hacer algo en C ++, y vuelvo a C (donde puedes hacer POO, y efectivamente).

Creo que entiendes la programación si te abstraes de la implementación (el lenguaje) y te haces la pregunta, ¿entiendes el problema y la solución? En mis décadas de desarrollo de software he aprendido que mi verdadero valor agregado es entender lo que los analistas de negocios dicen y producen. Recuerda esto, una verdadera habilidad de programación es poder eliminar un pseudocódigo que todos los licenciados y programadores pueden entender.

Definitivamente hay tantas cosas que aprender, pero todas tienen un factor común, es decir, el sentido común. La programación de computadoras es básicamente de sentido común, cada cosa funciona en un tema común. Todo se hace de la manera más eficiente y lógica dadas las restricciones. Con el cambio en las restricciones, la forma más eficiente y lógica también cambia. Intente ver este tema en todo y comenzará a aprender la mayoría de las cosas incluso antes de leerlas de manera integral, comenzará a adivinar correctamente muchas cosas incluso antes de leerlas.

Me sentí igual la primera vez que comencé, pero con más tutoría o tutoriales decentes, logré prosperar y avanzar paso a paso. No esperes ser el señor alguien en un día o un mes. Cada persona tiene su propio estilo, limitaciones y formas. Entonces, relájate y nunca dejes de intentarlo. Le recomendaré que comience con una buena fuente de información / conocimiento. Dependiendo de los tutoriales de Youtube es algo que nunca aconsejo para principiantes, por lo tanto, vaya a Learn to code o http://coursera.com . Te recomiendo que tomes un curso de coursera llamado programación para todos, puedes buscarlo en Google. Es un buen viaje para que muchos aprendan el lenguaje Python con un fuerte énfasis en lo básico. Buena suerte,,

He respondido esto antes, pero en esencia …

Para los recién llegados, la variedad de clases, métodos y variables puede ser abrumadora. Una vez que ha estado programando seriamente durante unas pocas semanas, aprende a reconocer que esas cosas, que comprenden el 99% del código, no son “el lenguaje en sí”, sino que son de bibliotecas.

Es bastante similar al negocio de la construcción: construir casas. Los lenguajes de programación realmente solo tienen una cantidad razonablemente pequeña de elementos sintácticos específicos del lenguaje y los aprende rápidamente, y estas son las herramientas: las sierras, los martillos y los destornilladores de programación.

Las bibliotecas, la mayor parte de lo que ves cuando miras el código, son como montones de madera, hojas de madera contrachapada, cajas de clavos, tienes que mirar alrededor para encontrar lo que necesitas o, a veces, profundizar en componentes específicos. Después de unas pocas semanas, te darás cuenta de que la codificación no es realmente muy confusa; la confusión implica “encontrar las piezas que necesita”, generalmente en las bibliotecas.

Siga estas simples reglas:

  1. Cree en ti mismo.
  2. Comience con el lenguaje C.
  3. Problemas de práctica diaria y monitorea tu gráfica.
  4. Practique en foros en línea después de aprender un poco de búsqueda, clasificación y algunos algoritmos más básicos.
  5. Establezca su objetivo y aprenda nuevos idiomas y herramientas en consecuencia.

Si se embarca fácilmente, trate de conocer a una persona encargada de codificar y codificar con él / ella.

Codificación feliz …………… .. 🙂

Si tratas de aprender todo de una vez, estarás abrumado. Cada vez.

Una forma mucho mejor de hacerlo es decidir sobre un proyecto y aprender lo que necesita para ese proyecto. Esto hace que su aprendizaje sea mucho más centrado, y si lo hace en varios campos diferentes, gradualmente se volverá más competente en todos los ámbitos.

Ejemplos de proyectos bastante amigables para principiantes:

  • Escribe un servidor web en Golang con la biblioteca estándar
  • Escribe un juego de laberinto en Python con Pygame
  • Escriba una aplicación GUI simple en Python con Tkinter o, si se siente valiente, en C ++ con GTK + o Qt.

Comience poco a poco, no intente construir Roma en un día.

Primero, aprenda un idioma simple, este será el idioma con el que medirá otros idiomas con los que aprenda. Pruebe, por ejemplo, Python y obtenga un libro al respecto, hay muchos tutoriales en la web.

Una vez que haya aprendido los conceptos básicos del lenguaje, los bucles, las condiciones, etc., intente hacer un proyecto simple, por ejemplo, podría basarse en una fórmula matemática simple como calcular el área de un triángulo o más elaborada, como calcular números primos utilizando el Tamiz de Eratóstenes

¡buena suerte!

O bien necesitarás un buen maestro y algo de tiempo para practicar la escritura de programas reales en una computadora real, o puedes intentar enseñarte a ti mismo pero necesitarás mucho más tiempo para practicar. Le ofreceré este consejo y tranquilidad; no pierda ni un minuto pensando en lo que * no * sabe y siga aprendiendo más. Es un tema vasto y no puedes aprenderlo todo, así que no te preocupes por eso. Solo necesitas poner las horas en.