Supongo que recientemente ha completado o está a punto de completar la fase básica de Codificación en cualquiera de los lenguajes de programación como C, C ++, Java, Python, etc.
Pero lo principal que hay que entender aquí (al menos en mi humilde opinión) es que el aprendizaje es un proceso continuo , nunca debe estar satisfecho con lo que ha aprendido y siempre debe tener curiosidad por aprender y comprender más. Nunca te contentes o estés satisfecho con lo que hayas aprendido.
Ahora volviendo a la pregunta, para introspectar el conocimiento y autoevaluar las habilidades que ha aprendido en la codificación, intente mirar a su alrededor y analizar los alrededores un poco programáticamente. ¿Piensa cómo ocurrirían las transacciones en un cajero automático y las manipulaciones del dinero en las cuentas? ¿Cómo resume la máquina de facturación todos los precios de los artículos que compra? O cosas más ingenuas como organizar los billetes de acuerdo con la denominación en su billetera. Todo esto se puede implementar en la codificación utilizando manipulaciones numéricas o de cadena simples. pensar en soluciones para las preguntas anteriores y similares hará que su cerebro esté más inclinado hacia las soluciones analíticas y lógicas de los problemas. Luego, gradualmente, puede avanzar hacia preguntas más complejas como texto o clasificación o coincidencia numérica, tic-tac-toe y más tarde sobre la resolución del cubo de rubicks o similar y aún más. Pero todo esto requiere aprendizaje e implementación constantes.
Junto con lo anterior, hay muchos sitios web en línea que le permiten probar sus habilidades en diferentes lenguajes de programación que contienen ejercicios de nivel principiante a experto como:
- HackerRank
- GeeksforGeeks | Un portal informático para geeks
Además, he encontrado en la página web de la Guía técnica de Google y creo que es relevante. Su tipo de paquete general teniendo en cuenta todas las habilidades requeridas por un buen programador / desarrollador de software (AFAIK):
Tome un curso de “Introducción a CS”
Centrarse en las instrucciones básicas de codificación
Recursos en línea:
- Udacity – Introducción a la informática
- Coursera – Informática 101
Codifique (al menos) UN lenguaje de programación orientado a objetos (C ++, Java®, Python®)
Recursos en línea para principiantes:
- Coursera – Aprender a programar: los fundamentos
- Introducción del MIT a la programación en Java
- Clase Python de Google
- Coursera – Introducción a Python, Python Open Source E-Book
Recursos en línea intermedios:
- Diseño de programas informáticos de Udacity
- Coursera – Learn to Program: Crafting Quality Code, Coursera – Lenguajes de programación
- Brown University – Introducción al lenguaje de programación
Aprende otros lenguajes de programación
Añadir a su repertorio:
- JavaScript®
- CSS y HTML
- Ruby®
- PHP®
- C®
- Perl®
- Script de Shell®
- Lisp®
- Scheme®
Recursos en línea:
- Codecademy
- Udacity – Desarrollo web móvil
- Udacity – Desarrollo de juegos HTML5
Prueba tu código
Aprenda a detectar errores, crear pruebas y romper su software
Recursos en línea:
- Udacity – Métodos de prueba de software
- Udacity – Depuración de software
Desarrollar razonamiento lógico y conocimiento de matemáticas discretas.
Recursos en línea:
- MIT Matemáticas para Informática
- Coursera – Introducción a la lógica
- Coursera – Optimización lineal y discreta
- Coursera – Modelos gráficos probabilísticos
- Coursera – Teoría del juego
Desarrollar una sólida comprensión de algoritmos y estructuras de datos.
Aprenda sobre los tipos de datos fundamentales (pila, colas y bolsas), algoritmos de ordenación (clasificación rápida, combinación, clasificación), estructuras de datos (árboles de búsqueda binarios, árboles rojo-negros, tablas hash) y Big O.
Recursos en línea:
- Introducción a los algoritmos del MIT
- Coursera – Introducción a los algoritmos Parte 1 y Parte 2
- Coursera – Lista de algoritmos
- Coursera – Lista de estructuras de datos
- Coursera – Libro: Manual de diseño de algoritmos
Desarrollar un sólido conocimiento de los sistemas operativos.
Recursos en línea:
Aprende diseño UX
Recursos en línea:
Udacity – Diseño UX para desarrolladores móviles
Aprende inteligencia artificial
Recursos en línea:
- Universidad de Stanford – Introducción a la robótica
- Universidad de Stanford – Procesamiento del lenguaje natural
- Universidad de Stanford – Aprendizaje automático
Aprende a construir compiladores
Recursos en línea:
Coursera – Compiladores
Aprende criptografía
Recursos en línea:
- Coursera – Criptografía
- Udacity – Criptografía Aplicada
Aprende programación paralela
Recursos en línea:
Coursera – Programación paralela heterogénea
Trabajar en proyectos fuera del aula.
Cree y mantenga un sitio web, cree su propio servidor o cree un robot
Recursos en línea:
- Lista de proyectos de Apache
- Google Summer of Code
- Grupo de desarrolladores de Google
Trabaje en una pequeña parte de un sistema grande (base de código), lea y comprenda el código existente, rastree la documentación y depure
GitHub es una excelente manera de leer el código de otras personas o contribuir a un proyecto
Recursos en línea:
Trabaja en proyectos con otros programadores.
Esto lo ayudará a mejorar su capacidad de trabajar bien en equipo y le permitirá aprender de los demás.
Practica tus conocimientos algorítmicos y habilidades de codificación
Practique su conocimiento algorítmico a través de competencias de codificación como CodeJam o el Concurso Internacional de Programación Colegiada de ACM.
Recursos en línea:
Fuente: Estudiantes – Guía de desarrollo técnico – Google Careers.
Sigue aprendiendo y mantente motivado. Salud !!