Hubiera sido bueno si hubieras mencionado algunos antecedentes sobre ti. Esencialmente, la pregunta básica es si has estudiado algoritmos o no.
Los sitios de programación competitivos como Topcoder, Codechef, etc. tendrán problemas en los que desarrollar el algoritmo es más difícil que codificarlo.
Además, para las ubicaciones, necesita ambas: habilidades de codificación y una buena comprensión de los algoritmos.
- ¿Las siguientes declaraciones de bucle en C / C ++ tienen el mismo tiempo de ejecución?
- ¿Qué algoritmos y estructuras de datos se pueden usar para encontrar anagramas?
- ¿Cuáles son las aplicaciones del algoritmo de la Torre de Hanoi?
- ¿Qué 'palabras' debo saber para resolver problemas de programación o problemas matemáticos relacionados?
- ¿Puede mostrar que la ordenación por fusión tiene complejidad de tiempo [matemática] O (n \ log n) [/ matemática]?
Para la programación, sugeriría usar algunos tutoriales en línea. Personalmente no me gusta programar libros, porque a menos que juegues con código, hay poco que aprendas. Y leer libros significa que verá programas escritos en el libro, que rara vez escribirá en la computadora y ejecutará. Una mejor idea es usar tutoriales en línea, desde los cuales puede copiar y pegar directamente partes del código, y luego escribir porciones del código usted mismo. De esa manera, te involucras mucho más rápido.
Y para un principiante, sugeriría comenzar con Python. Ese es uno de los idiomas más fáciles de aprender, y tener una idea básica de lo que se trata la codificación. Luego puede pasar a C ++ o Java.
Para algoritmos, puede elegir cualquier texto estándar en estructuras de datos y algoritmos. Luego, una vez que esté familiarizado con algunos algoritmos estándar, puede probar algunos problemas en sitios de programación competitivos para tener una idea de los problemas que son comunes en las pruebas de ubicación.