¿Cómo puedo mejorar las habilidades de programación?

  • Mientras que en realidad estás construyendo algo, aprende lo que no sabes. Búscalo en línea y RTFM.
  • Ser un experto en una tecnología a la vez. Incluso con una pequeña API con la que está trabajando … piense leyendo las instrucciones y entendiendo realmente el diseño y la funcionalidad del mismo. Lea un libro sobre el lenguaje de programación que está utilizando, de principio a fin. Encontrarás que incluso puedes enseñar a los expertos una o dos cosas sobre las cosas que has dominado.
  • Si alguno de sus “superiores” se toma el tiempo de educarlo, aproveche la oportunidad y aprenda todo lo que pueda. Si no entiendes algo, búscalo más tarde.
  • No seas tímido para preguntar cuando te quedas atascado en Stack Overflow. Encuentro que, por lo general, mientras formulo una pregunta correctamente, descubriré la respuesta por mi cuenta antes de publicarla.
  • No se afloje, pero trate de aprender sobre tecnologías para hacer su vida más fácil, ANTES de escribir su código. Averiguar si existe un código que pueda reutilizarse no es una tarea fácil.
  • Aproveche con entusiasmo las revisiones de código.

La codificación es solo una parte del proceso de resolución de problemas. Debe comprender el problema subyacente y la solución eficiente dentro de la restricción dada. Así que mejor te diré cómo ser mejor en la resolución de problemas:

Lenguaje de programación y fundamentos de la informática : –
En primer lugar, debe dominar cualquiera de los lenguajes populares (C / C ++ / Java / Python), le recomendaré que elija entre c ++ o Java, ya que ambos son ampliamente aceptados en todas las competiciones de codificación y tienen mejores recursos para entrenarse Aparte de conocer el idioma
asegúrate de que eres bastante bueno en la depuración y prueba de tu propio código escrito
Con todos los escenarios.

Recursos: –
CS106A: Metodologías de programación (Stanford Java tutorial)
Tutoriales de Eclipse y Java
CodingBat Java (problema elemental en la programación en java para poner en marcha las cosas)
Coursera (curso de C ++)
Comprar el lenguaje de programación C ++ (Bjarne Stroustrup)
Página en stanford.edu (curso CS101 realizado por stanford university para estudiantes no cs / principiante en ciencias de la computación)

Estructura de datos y algoritmo : –
Puede ser un buen programador si conoce bien un lenguaje de programación, pero para convertirse en un gran programador debe comprender la estructura de datos y el algoritmo subyacentes.

Recursos: –
Introducción al Libro de Algoritmos (CLRS), lenguaje fácil, explicación muy detallada sobre cada técnica de algoritmo (libro de la Biblia 🙂)

El arte de la programación de computadoras: Algoritmos fundamentales v. 1 libro

Estructuras de datos y algoritmos simplificados: segunda edición: libro de estructura de datos y rompecabezas algorítmicos

Canal de Youtube:-

mycodeschool

escuela de saurabh

Coursera (curso de algoritmo ofrecido por la universidad de Stanford)

Hacer: –
1. Intente implementar cada solución en papel primero antes de iniciar el código
2. Analice el problema, defina la restricción, compare su propia solución con el parámetro de complejidad de tiempo / espacio y luego comience a codificar (puede ser difícil hacerlo al principio, pero seguramente lo hará un mejor programador)

En este punto del tiempo, tendrías la suficiente confianza como para imaginarte qué técnica seguiré o qué algoritmo utilizaré para resolver un problema en particular. ¡Ahora es el momento de la práctica!
1. Comience a resolver el problema en Sphere Online Judge (SPOJ), 200 problemas
2. Una vez que termine el paso 1, pruebe los problemas de codificador superior para DP y otras técnicas algorítmicas (resuelva alrededor de 300 div2 o div1, hasta que se sienta seguro de sí mismo)
3 ( Opcional ) Si está buscando una preparación para la entrevista, comience a resolver problemas desde
Cracking the Coding Interview: 150 Preguntas y soluciones de programación
GeeksforGeeks – Un portal informático para geeks.

Conclusión: no es la única ” La ” forma de lograr una buena mentalidad de programación, pero es una mejor manera que me ayudó a equiparme con un mejor conocimiento de programación.

Constantemente encuentra pequeños problemas que le interesan que pueden resolverse programáticamente y practicar, practicar, practicar. Si tener una solución a esos problemas creará valor para usted, entonces será más probable que persevere. Si tiene un objetivo concreto, sabrá exactamente cuándo lo ha alcanzado y sabrá qué partes faltan en el camino. Aprenderá por casualidad miles de cosas útiles e interesantes que no formaban parte de su proyecto original, pero que siempre serán útiles en el futuro.

Tenga curiosidad acerca de cómo se construye el software que utiliza actualmente. ¿Alguna vez te has preguntado cómo Gmail identifica los mensajes como spam? Intenta construir un filtro de spam básico usando el teorema de Bayes (¡es más simple de lo que parece!)

Ignora el diseño y las interfaces al principio. Puede aprender una cantidad increíble simplemente trabajando con texto, y no se sentirá abrumado por tratar de hacer que las cosas se vean pulidas.

Si tiene una inclinación matemática, eche un vistazo a algo como https://projecteuler.net/ e intente resolver los desafíos. Intente resolverlos en un idioma nuevo y desconocido (Swift, Go, etc.).

¿Quieres que tu código afecte al mundo físico? Compre un microcontrolador Arduino barato ( http://www.arduino.cc/ ) y experimente con diferentes sensores. Parpadea un LED cuando un sensor IR pasivo detecta movimiento. Suena un piezo al pulsar un botón.

Compre un reloj inteligente Pebble y haga una esfera de reloj sencilla que muestre la hora. Haga que muestre el clima de su código postal utilizando una API web pública, aunque eso se haya hecho mil veces antes. Es un objetivo concreto y claramente definido que le enseñará cómo utilizar cualquier tipo de datos de API web externas.

Descargue Unity – Game Engine de forma gratuita y comience por crear aplicaciones increíblemente sencillas utilizando sus scripts C #. No tienen que calificar como juegos. Haz que las esferas se disparen al vacío al hacer clic en el botón del ratón. Añadir sonido. Añadir física. Juega con una aceleración similar a un cañón donde se lanza el proyectil y se propulsa por el aire utilizando el impulso antes de caer. Crea una pared de cajas mediante programación (¡arreglos anidados!) Para disparar a tus esferas. Haz que las cajas cambien de color dependiendo de la fuerza que experimenten.

Pronto te darás cuenta de que ser capaz de programar es como una superpotencia. Puedes codificar una parte inmortal de ti mismo en la electrónica y luego clonarla miles de veces. Esa parte de tu conciencia continuará indefinidamente y te liberará para hacer otra cosa. Esas piezas digitales de ustedes incluso se interconectarán con otras personas.

Si sientes que naciste con código, el proceso de mejorar se hará cargo de sí mismo. Simplemente elimine todas las distracciones que pueda, elija algo interesante y comience a escribir.