¿Trabajar duro puede permitirme ser un programador aunque carezca de lógica e inteligencia avanzadas?

La programación no toma genio, solo toma un tiempo.

Comencé a programar en el verano entre sexto y séptimo grado en Python, y no tenía “lógica e inteligencia avanzadas”, solo acceso a la búsqueda de google, mucho tiempo libre y ganas de resolverlo.

Me llevó menos de una semana pensar que era programador, pero mucho más tiempo para tener una idea de lo que estaba haciendo. Poco a poco me di cuenta de las cosas y, un año después, aprendí un segundo idioma, C ++, y con él pude obtener un código básico de espagueti para un juego de 3D en primera persona (piense en el juego de disparos en primera persona, pero sin disparos, sin objetivos y demasiado retraso) con la biblioteca 3D, en realidad un poco tosca, OpenGL. Una buena hazaña para la escuela secundaria, pero sigue siendo bastante bonita.

Ahora, seis años más tarde, al graduarme de la escuela secundaria, he trabajado más de mis 10,000 horas (ver http://norvig.com/21-days.html) de lo que me gustaría admitir, y creo que me he acostumbrado. pero siempre hay más para aprender.

El truco para programar es simplemente hacerlo. La gran mayoría de los problemas en realidad son bastante fáciles de resolver, la mayoría del resto están bien documentados, y lo que queda a menudo es agradable, generalmente se abordará con suficiente investigación, y casi siempre se puede evitar si se llega a empujar.

En lo que respecta a la habilidad matemática, me gustan mucho las matemáticas, y no tengo miedo de usarlas, pero aun así, el 90% del tiempo el nivel de álgebra I es suficiente, a veces la ayuda básica de trigonometría ayuda, pero la trigonometría es bastante fácil. , los logaritmos nunca duelen, y el Álgebra Lineal es útil para el diseño y análisis de algoritmos, renderizado 3D, y mucho más, pero puedes escapar sin él. Hasta ahora solo he usado cálculo dos veces dentro de la informática, una vez para mantener a un esquiador perpendicular a una pista de esquí que seguía una ecuación conveniente, y una vez para demostrar rigurosamente la eficiencia de una fórmula para números de Fibonacci, ninguno de los cuales son requisitos para ser un programador, y honestamente, ninguno requería lo que yo llamaría “lógica avanzada o inteligencia”.

Alguna intuición ayuda, pero la desarrollas con el tiempo. Puedo pensar en diseñar algoritmos mucho mejor de lo que podría en la escuela secundaria, y espero que en la universidad me recuerde en la escuela secundaria y diga lo mismo. El truco está en la práctica y el aprendizaje activo, y la práctica de la investigación de estructuras, algoritmos y la teoría detrás de ambos. Aprenda un lenguaje fácil de entender primero como Python, y luego pase a algo más relacionado con su interés, y trate de descubrir cómo están trabajando detrás de escena. He soñado con algoritmos (y lo he disfrutado por completo), y he estado atrapado en problemas durante semanas antes de encontrar soluciones que cambiaron mi perspectiva sobre la programación por completo, no porque desde entonces haya adquirido esta tan codiciada “lógica e inteligencia avanzada”, sino porque Miré un trozo de papel durante horas hasta que hizo clic para mí, y eso es lo suficientemente bueno.

Conozco personas que son mucho más inteligentes que yo, y no necesariamente son mejores programadores, sin embargo, podrían aprender más rápido si lo intentaran. Las personas sobreestiman las brechas en las habilidades, las atribuyen mal y luego sienten que nunca podrían ponerse al día como resultado. Cualquier inteligencia que traigas te ahorrará mucho tiempo y problemas. Las personas más inteligentes encontrarán atajos más rápido. Cualquier conocimiento externo que traigas te ahorrará mucho tiempo y problemas. Los genios de las matemáticas a menudo encontrarán atajos más rápido. Pero programar solo, no es tan difícil. Si puede explicar cómo hacer un sándwich, con un detalle tan sangriento, que un par de brazos robóticos podrían hacerlo, entonces eso es casi todo.

Consejos si lo toma en serio (y por qué no lo es):

  • Prepárate para pasar mucho tiempo codificando.
  • Prepárate para decidir que no es para ti si no lo disfrutas, no te fuerces solo porque la programación es rentable o algo así, sin embargo, dale tiempo justo y persiste en las etapas frustrantes primero, espera hasta que son competentes en lo básico antes de decidir.
  • Comience con un lenguaje de programación simple y cercano al inglés como Python. La programación es dos cosas, la sintaxis y el pensamiento: desea lidiar con la menor cantidad de sintaxis posible y entrar directamente en el pensamiento como un programa al comenzar. Python también es un lenguaje útil para saber.
  • Trabajar hacia objetivos específicos del proyecto. Te mantienen motivado.
  • Dedique algo de tiempo a encontrar un excelente tutorial para comenzar. Comience con un mal recurso, y pensará que la programación es mucho más difícil o más frustrante de lo que tiene que ser.
  • Comprenda que algunos (no la mayoría) de los programadores son personas condescendientes, que consideran que alguien que está aprendiendo a programar amenaza de alguna manera su superioridad sobre ese individuo. Estas personas pueden señalar de inmediato que los proyectos para principiantes son más simples que los suyos o que normalmente se compran y venden, y tratarán de hacer declaraciones sobre cuánto más difícil es la “programación real” y en qué nivel debe estar para llegar allí. Solo di “Meh”.

El programa básico realmente se reduce a la comprensión de algunos puntos de gramática (qué significa si realmente significa, qué significa y realmente significa, qué significa o realmente significa, etc.). En cuanto al programa más complejo, bueno, pronto llegarás allí.

El código es una representación de un concepto.

A los programadores no se les paga por producir código.

Se nos paga para convertir conceptos en patrones que son interpretados por una máquina de una manera que produce un trabajo útil.

La ética laboral en la programación se aplica a la autoeducación y al proceso de depuración de prueba y error. En ausencia de conocimiento y una mente ágil, el trabajo duro no te compra mucho.

Dicho esto , el trabajo duro puede, apropiadamente dirigido, ser usado para adquirir conocimiento, y el proceso de hacerlo durante algunos años tiende a resultar en una mente ágil.

Si. A menos que tenga una condición que impida la lógica.
Yo, por ejemplo, tengo una terrible memoria a corto plazo.
O si resulta que no lo comparo con el promedio, es terrible hacer todas las cosas que quiero que haga.
Solía ​​ser excelente en matemática mental, hace años, pero el espacio para guardar todos los números temporales, para los pasos intermedios, siempre está lleno de otras cosas.
Sin embargo, puedo escribir totalmente el programa que puede calcular todos esos pasos, más rápido de lo que alguien puede abrir su aplicación de calculadora y escribirla.

Aprender los conceptos básicos de la programación y desarrollar lentamente tus habilidades, a niveles cada vez más altos, incluso te ayudará a construir y mejorar tu lógica, siempre y cuando tengas la paciencia y la persistencia para seguirla.

La lógica es realmente como un músculo (porque tu cerebro es realmente como un músculo).
Cuanto más lo resuelva, mejor será para resolverlo.

Tiene un pensamiento rápido, que es malo para la toma de decisiones, pero puede ser bueno para memorizar / recordar hechos o procedimientos, o para improvisar, si está capacitado …
… puedes pensar en esto como el músculo magro que obtienes haciendo repeticiones con resistencia ligera, o estar en forma de velocista (Eminem, MF Doom y actores de improvisación de comedia serían como los Usain Bolts de inglés).

Tiene procesos analíticos más lentos y profundos que son mucho mejores para reunir información y encontrar una o más respuestas / soluciones a un problema, pero que requiere un esfuerzo activo y puede ser agotador por derecho propio.
Este es el peso muerto mental, como Einstein y Hawking.

En programación, usas ambos. Pero no usas ninguno de ellos a niveles extremos.

Y si continúa, al igual que el ejercicio, y sabe cuándo darse un descanso (al igual que el ejercicio), se vuelve más fácil, y esos beneficios (lógica general y pensamiento abstracto) se pueden aplicar en cualquier otro lugar de su vida.

Si la programación es lo que lo motivará a aprender lógica, por supuesto, comience a programar.

Recomiendo comenzar con JavaScript.
No lo llevará a donde quiere ir (a menos que solo quiera crear sitios web / etc.), pero es fácil comenzar con JS, hay muchos lugares para comenzar a aprender y puede aprender importantes partes de la programación (lógica, control y estructura) sin tener que aprender demasiadas cosas locas específicas del lenguaje antes de que incluso pueda obtener una línea de código para trabajar.

En el futuro, puede ir más allá en la ruta JS, o recoger Java / C # o Python, sin demasiado dolor.