Como principiante, debe explorar la amplitud de lo que la informática, como materia / dominio, tiene para ofrecer. Existe la escuela de pensamiento de que uno puede ser un programador competente sin tener que preocuparse por las complejidades de la informática. Esa es una gran posibilidad. Pero en mi opinión, tener una perspectiva más amplia de las cosas que se ofrecen solo lo ayudará a largo plazo.
Sin embargo, trate de no sentirse abrumado por la cantidad de contenido que se ofrece. Concéntrese en algunas cosas a la vez. Como principiante, es mejor concentrarse solo en uno o dos jueces si va a sumergirse directamente en los ámbitos de la programación competitiva. Spoj o Codechef generalmente resultan ser buenos lugares para comenzar antes de ir a Topcoder o Codeforces, donde el nivel de dificultad es un poco más alto. Sin embargo, diferentes enfoques funcionan para diferentes personas y usted necesita encontrar el suyo propio.
Si los MOOC funcionan para usted, como principiante, trate de concentrar su energía en uno (o dos cursos) y obtenga todo lo que pueda del contenido y la comunidad involucrada.
En general, sigue buscando en Google (o ducking- Page en duckduckgo.com) y sigue aprendiendo. Intente marcar un buen contenido que encuentre (use un buen sistema de marcadores / almacenamiento si eso funciona para usted).
La lista en curso * que figura a continuación se ha recopilado de mis luchas como programador autodidacta durante los últimos dos años.
- ¿Cuáles son los mejores sitios para invertir en bienes raíces?
- ¿Cuáles son las principales aplicaciones / sitios web para ganar dinero?
- ¿Cuántas presentaciones de directorio son suficientes para un sitio web?
- ¿Cuánto tiempo llevas desarrollando sitios web?
- ¿Por qué las secciones de comentarios de los principales sitios web de noticias están tan frecuentemente llenas de comentarios racistas e ignorantes?
Jueces de programación competitiva
- Juez Esfera Online (SPOJ) (Buen lugar para comenzar para principiantes)
- Clasificador de problemas para SPOJ.pl – bastante útil
- Juez en línea de UVa – Inicio
- http://www.codechef.com/
- Fuerzas de código
- codificador superior
- HackerEarth: desafíos de programación y trabajos de desarrollador
- HackerRank
- Puerta de enlace del programa de capacitación de USACO (puerta de enlace de capacitación para la Olimpiada de Computación de los EE. UU., Presenta un programa de codificación estructurada de acceso público)
- Acerca de – Proyecto Euler (Programación con enfoque en el aspecto matemático)
Tutoriales de programación competitiva
- Comenzando con el Deporte de la Programación (Compilado por el club de programación de IIT-K, esto actúa como una práctica guía para principiantes de programación competitiva)
- Tutoriales de algoritmos (tutoriales de algoritmos de Topcoder)
- Estructuras de datos y algoritmos (compilación de estructuras de datos y algoritmos más utilizados en la programación deportiva / competitiva)
- Stanford CS Ed Library
- Comunidades
- Desbordamiento de pila (EL lugar al que ir para programar y consultas relacionadas, ¿qué habríamos hecho sin él?)
- Hacker News (Más programación y noticias relacionadas con la tecnología de las que posiblemente puedas manejar. Las discusiones pueden ser desalentadoras al principio, ¡pero mantente el tiempo suficiente y lo experimentarás por el paraíso geek que es!)
- Desarrolle un software mejor, juntos: Github (¡Busque y encontrará!)
Aprendizaje en línea y MOOC (cursos masivos abiertos en línea)
- Introducción a la informática (HARVARD CS50x: aunque es largo, este es sin duda el mejor curso introductorio completo de CS disponible en línea. Lo que es realmente genial es su énfasis en la programación y las tareas involucradas. ¡Muy recomendable si tienes tiempo!)
- Aprenda a codificar – Codeacademy (presenta varios tutoriales para principiantes, que van desde lenguajes de programación a otras tecnologías; adecuados para principiantes)
- Aprender haciendo – Code School
- Prueba Git – Code School- Buen tutorial introductorio sobre git
- edX – MOOCs
- Coursera – Cursos gratuitos en línea de las mejores universidades – MOOC
- Avanza tu carrera a través de clases en línea basadas en proyectos – Udacity – MOOCs
Fuente abierta
- Aprovechar el código abierto: todo lo que quería saber sobre el código abierto que nadie le dijo (incluido el pago por hacerlo)
- ¿Cuáles son las mejores fuentes para aprender codificación web en poco tiempo? Mencione si la fuente es gratuita.
- Google Summer of Code
Linux
El conocimiento de Linux puede resultar extremadamente beneficioso para cualquier programador a largo plazo. Para comenzar, aprenda a compilar un programa simple en su lenguaje de programación preferido en una máquina Linux. - MOOC- LFS101x Información del curso | edX (podría servir como algo útil como referencia en lugar de un curso, no lo he probado pero las reseñas no son tan buenas).
Varios (enlaces aleatorios pero interesantes que he marcado con el tiempo)
- GeeksforGeeks | Un portal informático para geeks
- MAXimal :: algo (Compilación de algoritmos y su explicación junto con sus implementaciones de C ++)
- visualizar estructuras de datos y algoritmos a través de animaciones
- Algunos consejos para comenzar el Proyecto Euler
- Página en learncodethehardway.org – Curso intensivo de línea de comando
- 10 documentos que todo programador debería leer (al menos dos veces)
* Esta es una lista continua y la actualizaré cada vez que tenga tiempo, o encuentre algún contenido relevante.