Cómo llegar a ser mejor programador y mejorar mi pensamiento.

Tener habilidades sólidas para resolver problemas te ayudará a convertirte en un mejor desarrollador. Y como muchas otras habilidades, la resolución de problemas puede desarrollarse y fortalecerse a través de la práctica deliberada.

Es importante pensar conscientemente acerca de su enfoque para resolver problemas y esforzarse para hacerlo mejor. Esto requiere una buena cantidad de reflexión, antes, durante y después de resolver un problema. También ayuda tener un marco para pensar en la resolución de problemas.

Uno de mis recursos favoritos para resolver problemas es Polya’s How to Solve It . Está escrito sobre matemáticas, pero las lecciones se aplican igualmente bien a la programación.

De hecho, he tratado de adaptar las lecciones que ofrece Polya para desarrolladores web específicamente. Aquí hay una serie de publicaciones en el blog que he escrito sobre diferentes estrategias:

  1. Entender el problema
  2. Explora ejemplos concretos
  3. Descomponerlo
  4. Resuelve un problema más simple
  5. Usar herramientas estratégicamente

Échales un vistazo, y hazme saber si tienes comentarios!

  • Confía en ti mismo y no abandones los problemas.

No darse por vencido no significa pasar semanas en un problema que puede resolverse en una hora; significa esforzarse para pensar una hora más o escribir 50 líneas más de código. Es importante que confíes en ti mismo para resolver cualquier problema que se te presente. Piense en la satisfacción celestial de finalmente resolver un problema como su motivación. Cuando adquiera el hábito de no renunciar a los problemas, comenzará a buscar soluciones más a menudo y más rápido. Esto a su vez aumentará su confianza en sí mismo, lo que lo convertirá en un mejor programador. No renunciar a los problemas es una habilidad esencial requerida para aprender cualquiera de las ciencias.

  • Sea paciente, piense lentamente y use un pedazo de papel

La programación requiere mucha paciencia y concentración. Pensar en los demás solo lo frustrará, haciéndole sentirse incompetente y difuminando su enfoque de la meta real, que es resolver problemas en lugar de competir. Aumente el enfoque escribiendo el problema. Haga un diagrama, escriba talones, escriba lo que tenga en mente al resolver un problema. Te ayudará a comprender tu pensamiento y te hará pensar con mayor claridad.

  • Estudia otras ciencias que te hagan pensar en términos de un sistema completo.

Física, química y biología, estas asignaturas mejoran las habilidades para conocer las consecuencias de los cambios introducidos en un sistema, lo que lo ayuda a pensar en términos más amplios. Por ejemplo, los múltiples efectos de aumentar la temperatura en una reacción química son como los múltiples efectos de eliminar o escribir una línea de código. Como un sistema en estas ciencias, el código está conectado entre sí e incluso los cambios mínimos en él pueden tener enormes efectos. Por lo tanto, aprender a tener una imagen más grande en mente puede mejorarlo como programador. Consejo adicional: las matemáticas son extremadamente similares a la programación también. La programación y las matemáticas, a diferencia de otras ciencias, son formas abstractas de resolver problemas que no pueden (siempre) visualizarse físicamente. Ser bueno en matemáticas te ayudará a ser un buen programador

  • Romper los problemas en bits

Sí, la regla más antigua del libro funciona a la perfección. Vea el problema como un conjunto de obstáculos: debe superar cada obstáculo uno por uno para tener éxito. Divida los problemas en bits y resuelva cada bit individualmente.

  • Programa mas a menudo

Crear proyectos. Sigue haciéndolo. Los buenos programadores desarrollan “instintos” de programación. La solución simplemente llega naturalmente a sus manos cuando comienzan a escribir código porque están muy acostumbrados.

  • Aprende a usar el libro sagrado de los programadores: Google

Saber cómo pararse sobre los hombros de otros es extremadamente importante. No se avergüence de buscar código preescrito que satisfaga sus necesidades en stackoverflow, cada programador hace eso. Los programadores de las mejores compañías hacen eso. Comprender el código escrito previamente y modificarlo para adaptarlo a sus necesidades mejorará sus habilidades de programación.

  • Disfruta programando

Esta es la parte más importante. Si no disfrutas del proceso de programación o te estremeces al pensar en escribir un código, te será difícil mejorar la programación.

¡Feliz codificación!

Nota: No soy un programador profesional, ni son estos consejos para la programación profesional. Tengo mucha experiencia en aprender a programar en línea, y estos consejos me ayudaron mucho.

Cuando comencé a programar a los 16 años se debió a una curiosa curiosidad, esa curiosidad fue lo que me impulsó a ayudar a trabajar en la primera puesta en marcha en la que participé. Aunque, ahora, las cosas han cambiado bastante. Me di cuenta de que carecía de los antecedentes técnicos / teóricos que creo que crean excelentes ingenieros y equipos de software. (Tal vez en mi incapacidad para traducir documentación compleja en código fue el punto de inflexión?)

De todos modos, me ramifiqué por mi cuenta y comencé a tomar cursos a través de Coursera en java avanzada, teoría de la CS, aprendizaje automático y otros cursos estructurados universitarios más específicos. Estos cursos me han ayudado a guiarme en mi elección para seguir con CS en la universidad. Obtuve un gran nivel de comprensión de la teoría fundamental detrás de la informática a través de los cursos y, como resultado, comencé a construir proyectos más ambiciosos. No creo que mi autoaprendizaje acabe nunca, pero, como anécdota, creo que aspiraré a especializarme en CS debido a mi experiencia de autoaprendizaje y mi comprensión de que me gustaría una estructura central para reforzar lo que Ya he aprendido, y para enriquecer mi comprensión.

Actualmente estoy en mi año sabático y estoy escribiendo esto desde Nueva Delhi después de trabajar en un proyecto de software durante unas horas. Sentí que era apropiado responder, incluso teniendo en cuenta mi decisión de pasar a una educación universitaria formal antes de ser “autodidacta”.

¡Aquí es a donde me ha llevado ese camino!

PD: Déjame saber si esto fue un poco difícil de entender. ¡Me parece que no soy tan bueno creando respuestas concisas en Quora! Aunque, tal vez estoy siendo un poco duro conmigo mismo!

Estudia algo distinto a la programación.

Al igual que la escritura, la programación tiene que ser sobre algo.

Solo estudiar programación es como estudiar vocabulario y sintaxis: puede mejorar tu habilidad para resolver crucigramas y revisar trabajos de otros, pero no te prepara para escribir sobre nada.

Estudie finanzas, o robótica, o una de las ciencias, o lo que sea, entonces puede ser capaz de resolver problemas sobre ese tema y convertir esas soluciones en código.

Creo que construir cosas por ti mismo y resolver problemas es un camino a seguir.
Usted entiende algo mejor al recrearlo por su cuenta.

Imagina que tuvieras que fabricar un coche de punta a punta y te dieran todas las herramientas y materias primas que puedas imaginar. Así es como es el ecosistema de programación. Al hacerlo, aprendería mucho sobre automóviles y tendría que estudiar teoría para llenar los vacíos sobre las partes que no tiene idea de cómo construir.

A veces puede parecer una pérdida de tiempo, pero piénselo como ejercicio, el propósito es el proceso, no el resultado final de que el peso suba y baje sin pensar.

Debe comenzar poco a poco y construirlo lentamente, hasta que tenga la confianza necesaria para construir cualquier cosa que se le pueda describir, para este momento ya habrá alcanzado un nivel avanzado.

También recomendaría entrenar tu mente para manejar la abstracción estudiando ciencias, filosofía, etc. a un nivel general.

asegúrese de que sabe cómo manejar cada situación a la que llega, cómo resolver los errores en su programa. A veces son muy difíciles de detectar. Hay programas, como checkmarx, que ayudan con esto, pero recomiendo practicar mucho para alcanzar el nivel que deseas.

Buena suerte