¿Cuál es la mejor manera de convertirse en un gran programador competitivo?

No hay una receta secreta para convertirse en un gran programador competitivo. Sin embargo, todo lo que puedo decir es que practique todo lo que pueda y aprenda sobre los temas específicos que se preguntan repetidamente en los sitios web de programación competitivos.

La mejor manera probablemente sería inscribiéndose en un curso de programación competitiva. Coding Ninjas ofrece un curso brillante para el mismo.

El curso cubrirá temas intensivos como teoría de números, programación dinámica, gráficos, enmascaramiento de bits, algoritmos codiciosos, geometría computacional, consulta de rango mínimo , etc. Estos temas se preguntan comúnmente en sitios web competitivos populares como SPOJ, codechef, Hackerearth, Hackerrank , etc.

Le dará una visión completa sobre cómo abordar los problemas de computación y también aumentará sus futuras ubicaciones y oportunidades de pasantías. Tomado por mentores expertos como Ankush Singla (graduado de Stanford e IIT) y Parikh Jain (graduado de DTU), aumentará su confianza en la codificación competitiva.

Regístrese en Coding Ninjas .

Para tener una idea de nuestros cursos en línea, lea más:

¿Cómo es el curso en línea C ++ en Coding Ninjas?
¿Cuál es su opinión de Codificación Ninjas?

¡Codifique su camino a través de la programación competitiva!

Déjame hacerte una pregunta.

Si conduce su automóvil todos los días, ¿cree que se está convirtiendo en un mejor conductor?

Ahora, déjame hacerte otra pregunta.

Si competía en carreras con su automóvil, con frecuencia, ¿cree que se convertiría en un mejor conductor?

Aquí hay algunas cosas que lo ayudarán a hacer cosas competitivas:

  • No tienes que hacerlo y realmente no deberías abrumarte en la primera vez No vayas a la librería y compres el libro más grande y pesado sobre informática solo para leer las primeras páginas y darte cuenta de que no lo entiendes y te rindes. En cambio, trate de encontrar algo que no sea tan detallado y fácil. Te recomendaré tutoriales fáciles de entender en línea.
  • No esperes por la motivación. Esto me parece muy bueno porque es una gran idea de cómo funciona realmente tu mente. Habrá días en que nos aburriremos haciéndolo. Habrá días en los que querremos ir a hacer otras cosas divertidas. Lo que diferencia a las personas exitosas de los demás es que pueden manejar el aburrimiento de hacer las cosas que quieren hacer por mucho tiempo.
  • Lo más importante es que no dejes que el éxito de otras personas te desmotive. Veo gente famosa respondiendo preguntas aquí en Quora.com y realmente no soy uno de ellos. Pero realmente, a quién le importa? Siéntete orgulloso de lo que has logrado hasta ahora y, en lugar de compararte con los demás, trata de superarte. Si solo ve el éxito de las personas exitosas, pero no cómo llegaron allí, bueno, hermano, lo está haciendo mal.

Práctica práctica práctica. Necesitas practicar mucho.

HBK siempre dice “¡No solo la práctica sino la experiencia (obtenida de la práctica) hace al hombre perfecto!”

Una cosa es que sabes cómo resolver cosas en teoría. Es algo completamente diferente que puedes codificarlo, compila y ejecuta, no da errores, te aseguraste de que todas las variables sean lo suficientemente grandes para que quepan, es lo suficientemente rápido y no usa demasiada memoria.

Debes sentarte y resolver los ejercicios por ti mismo para poder hacerlo rápido y sin errores en el escenario. Cuando estoy fuera de práctica, paso 10 minutos depurando una búsqueda binaria porque no puedo escribirla por primera vez. No es bueno pasar 10 minutos de tu competencia escribiendo una búsqueda binaria.

Por lo tanto, hacer ejercicios, no solo en teoría, sino terminarlos con un código de trabajo probado es realmente genial para usted.

Aquí hay algunos sitios que alojan concursos en línea regularmente:

Topcoder

Codeforces

Google Code Jam

Codechef

Lo que es realmente bueno de estos sitios es que puede publicar su código y lo evaluarán y calificarán para todas las competiciones anteriores. Aún mejor, puedes ver lo que otros han enviado. Puedes aprender mucho de los códigos de otras personas. He oído que algunos chicos de Codeforces pasan semanas optimizando su código, por lo que corren más rápido que los demás.

Si revisa competiciones anteriores en estos sitios, generalmente los primeros problemas en cada uno de ellos son fáciles de resolver y están destinados a principiantes.

Fuente de respuesta mi propia experiencia personal + resultados de búsqueda de internet.

# HBK Dice: “¡La mejor de las suertes y comienza tu aventura de codificación …!

Parece que la mayoría de las respuestas aquí no tienen idea de qué es la programación competitiva, pero supongo que OP realmente pregunta por la programación competitiva real.

Algunos consejos de mis experiencias en programación competitiva desde la escuela secundaria:

  1. Comprenda el idioma de su elección y sus bibliotecas de tiempo de ejecución proporcionadas profundamente. Una vez no pude obtener CA muchas veces porque no entendí bien la técnica de almacenamiento en búfer de E / S que la función del lector de entrada que uso causa que use demasiada memoria.
  2. No codifique de inmediato, diseñe su solución primero.
  3. Encuentre y cubra todos los casos de esquina, haga casos de prueba para ellos.
  4. Olvídese de la modularidad o cualquier otra buena práctica de programación, solo necesita preocuparse por la velocidad y el uso de la memoria, así que no pierda el tiempo haciendo algo que no esté relacionado con ellos. Uno de mis colegas dijo una vez: “Una vez que la solución presentada obtiene AC, está lista para ser olvidada”.
  5. En caso de que esté en un equipo (es decir, una competencia de estilo ACM), divida los roles. Mi equipo solía tener solo 2 roles: codificador (programación de pares) y diseñador de ideas / soluciones. El mejor equipo que conozco se divide en 3: diseñador de soluciones, codificador de soluciones y codificador de casos de prueba. Otro gran que conozco se divide solo por clasificación de problemas, es decir: solucionador de reconocimiento de patrones, solucionador de programación dinámica, solucionador de búsqueda de gráficos, etc. Explotan cada capacidad individual en cierta clase de problema para resolver los problemas en paralelo más rápido.

1. Elija con qué idioma desea comenzar su viaje de crecimiento. Paths es un excelente punto de vista desde mi perspectiva, ya que ofrece crecimiento frontend y postventa juntos.

2. Comprender los componentes y el conjunto de habilidades requeridas. Asumiendo rutas: debe preguntarse “¿cuáles son las habilidades que necesita un desarrollador de pistas?”

3. Comprender. Concepto. Comprender y Concept nuevamente. Este diseño nunca se detiene.

Este no es el fin del mundo para ti, mi apoyo es:

Haz un crecimiento agresivo.

Revise los diversos componentes que analizó en clasificación o educación superior.

Intenta ir con expertos o doctores.

Mientras hace los 3 factores anteriores, concéntrese en las tareas parciales, vaya con ellos de fácil a difícil, realice una actividad efectiva del sistema, luego vaya más grande, comience poco sin ser tímido, solo si desea ser un desarrollador genuino.

Trate de obtener una pasantía o alguna actuación, incluso si ayudó 100% 100% 100% gratis (No es una pena, ayudé 100% 100% 100% gratis durante 3 varias algunas semanas para una organización porque consideraron que era negativo suficiente todavía mientras estaba en la escuela) (me refiero a una organización en innovación tecnológica y tu importante es seguro).

Complete aquí: ¿Cómo puede convertirse en un muy buen programador?

Debería comprender los algoritmos y las estructuras de datos palabra por palabra. Obtenga un libro como Cracking the Coding Interview y atrape los desafíos.

Los desafíos de programación competitivos requieren que comprenda el problema y pueda resolverlo de la manera más rápida que cubre un cierto número de casos de prueba con precisión. La mayoría requiere una comprensión de una determinada estructura de datos y la capacidad de desarrollar un algoritmo o mejorar uno existente para resolverlo.

No olvides revisar este libro

Introducción a los algoritmos por Thomas H. Colmen y otros

Esa será otra guía completa para el aprendizaje de algoritmos y estructuras de datos.

También sería mejor que practiques fuera de plataformas como hackerrank y no olvides consultar sus tutoriales y desafíos.

La mejor de las suertes

Intenta resolver las preguntas en varios sitios como hackerrank, codechef, hackerearth, etc. Si eres capaz de resolverlas a tu edad, estás en camino de convertirte en un programador increíble.
También aprenda más sobre estructuras de datos y algoritmos.
¡Todo lo mejor!

Sin embargo, es un período corto si quieres convertirte en un profesional. Porque lo que define a alguien profesional es simplemente alguien que ha codificado mucho. Mucho.
Como cualquier otra habilidad, la codificación también necesita práctica, cómo escribir un buen código, cómo escribir códigos eficientes, cómo depurar, analizar. Estas preguntas solo serán respondidas por experiencia.
Entonces, responder sin rodeos a su pregunta es básicamente decir que puede convertirse en un buen programador después de codificar mucho, comenzar a codificar mucho significa hacer proyectos o solo pequeños programas, pero hacer algo u otro desarrolla la habilidad.
Puede leer libros sobre conceptos básicos, ver videos, Internet tiene suficientes tutoriales para aprender, pero el aprendizaje no es suficiente, la aplicación es donde realmente crece, tanto en conocimiento como en habilidad.

Mire en primer lugar, depende de qué habilidad de programación desea sobresalir. HackerRank, competencia de programación, concurso de programación, programación de computadoras en línea, su laboratorio de códigos en línea es un buen sitio web para codificar y probar. Asistir a varios concursos realizados por instituciones regionales.

PRACTICA! ¡PRÁCTICA!

¡Todo lo mejor!

deja de gastar tu tiempo preguntando y pasa más tiempo haciendo.

no hay absolutamente nada que supere la experiencia, no importa qué idioma, realmente no importa qué proyecto, siempre y cuando lo sigas haciendo y sigas haciendo cosas nuevas y recuerdes … nada es imposible, solo lleva 1 tiempo y 2 dinero

Si ya eres programador, debes saber la respuesta mirando el código de programadores de renombre. ¿Se puede realizar mejor?
Si aún no es programador, primero intente convertirse en programador.
En otras palabras: un gran programador necesita al menos 3 habilidades: conocimiento, actitud y pasión.

More Interesting

¿Es posible que un desarrollador cuantitativo de front office intercambie sus propias estrategias y eventualmente se convierta en un administrador de cartera cuantitativa?

Soy ingeniero informático. Quiero un trabajo en el gobierno, ¿qué opciones hay para mí? ¿Qué tipo de exámenes hay para mí?

Soy un estudiante de segundo año que hace una licenciatura en arquitectura. Después de completar mi título, ¿puedo practicar arquitectura en cualquier lugar con ese mismo título?

¿Hay algún método para que pueda ganar algo de dinero?

¿Cuál es el alcance de la gestión del agua en la India?

Soy estudiante universitario de CSE en un IIT. Estoy interesado en trabajos del gobierno de seguridad cibernética en India. ¿Cómo puedo ingresar a tales organizaciones gubernamentales de defensa?

¿Alguna vez has disfrutado de un trabajo sin salida?

Comencé una empresa de desarrollo de iOS, pero estoy luchando por encontrar trabajo. ¿Que puedo hacer?

¿Cuál es el mejor tipo de sistema informático para un programador?

¿Cuál es una buena respuesta a la pregunta "por qué sientes que mereces el trabajo más que otros candidatos"?

No soy bueno dibujando. ¿Puedo unirme a un curso de animación?

¿Podrías trabajar para la NASA con un título en matemáticas? Si es así, ¿en qué trabajos?

¿Cuándo CTS proporciona DOJ para los pases de 2017?

¿Qué se necesita para convertirse en un gran director?

¿Cuál es el alcance de un B.Pharm de un IIT, en términos de estudios y ubicaciones?