Explore el mapa de carretera-fundación de ciencia informática, una guía integral diseñada para construir una comprensión sólida de la informática. Desde fundamentos de programación hasta conceptos avanzados como estructuras de datos y sistemas operativos, esta hoja de ruta ofrece una ruta de aprendizaje estructurada con recursos de video recomendados, ejercicios prácticos y proyectos inspiradores. Perfecto para principiantes y aquellos que tienen como objetivo profundizar su conocimiento, este repositorio sirve como un recurso invaluable para los aspirantes a profesionales en ciencias de la computación y campos relacionados.
Mientras elaboraba esta hoja de ruta, mi enfoque principal era en los videos de YouTube como los principales recursos de aprendizaje para facilitar un camino de aprendizaje más fácil. Sin embargo, es esencial tener en cuenta que los alumnos no se limitan solo a estos recursos. La informática es un campo extenso, y en esta hoja de ruta, he intentado encapsular su amplitud. Entonces, ¡sumérgete y disfruta del viaje de aprendizaje?
Python para principiantes - Aprenda Python en 1 hora
Learn Python - Curso completo para principiantes [Tutorial]
SERVIE DE TUTORADORES DE PROGRAMACIÓN PYTHON PADRAMIENTO (¡6 horas!)
Práctica
Hola Mundo: Escribe un programa que imprima "¡Hola, mundo!" a la consola
Agregue dos números: cree un programa que agrega dos números ingresados por el usuario y muestre el resultado
Área de un rectángulo: cree un programa que calcule y muestre el área de un rectángulo basado en la longitud y el ancho proporcionados por el usuario.
Celsius a Fahrenheit: cree un programa que convierta una temperatura en Celsius en Fahrenheit. El programa debe recibir la temperatura en Celsius como entrada del usuario, realizar la conversión y mostrar el resultado con dos decimales.
Intercambie dos números: cree un programa que intercambie dos números sin usar una tercera variable. Se le solicita al usuario que ingrese dos números, y el programa debe intercambiar sus valores, asegurando que los valores originales se intercambien y los números se invierten efectivamente.
Región sombreada: Calcule el área de la región sombreada en un cuadrado con un círculo inscrito. Dado el radio (r) del círculo inscrito, encuentre el área del cuadrado menos el área del círculo. Presente el resultado con dos decimales para representar con precisión el área de la región sombreada 
Registre la información del usuario: desarrolle un programa que recopile y registre la información del usuario, incluido su nombre, apellido, edad, género, estado del estudiante, altura en medidores y peso en kilogramos.
Triángulo válido: cree un programa que determine si es posible formar un triángulo válido que usa tres palos con longitudes dadas A, B y C. El programa debe llevar la longitud de los palos como entrada del usuario y verificar si satisfacen la desigualdad del triángulo, donde la suma de las longitudes de dos palos debe ser mayor que la longitud del tercer palo. Muestre el resultado como "triángulo se puede formar" si se cumple la condición, o el "triángulo no se puede formar" si no es así.
Clasificación de calificación: desarrolle un programa que reciba una calificación numérica como entrada del usuario (dentro de un rango de 0-100) y clasifica la calificación en una categoría de grado de letra predefinida. El programa debe usar declaraciones IF-ELSE para determinar la calificación de letra apropiada basada en rangos de calificación típicos (por ejemplo, "A" para calificaciones entre 90-100, "B" para calificaciones entre 80-89, etc.). Después de la clasificación, muestre la calificación de letra calculada al usuario.
Mostrar asteriscos en una fila: cree un programa que tome un valor entero, w, como entrada y muestra un carácter de asterisco (*) W veces en una sola fila. El programa debe usar el valor de W para determinar cuántos asteriscos mostrar consecutivamente en una fila. Asegúrese de que W esté dentro del rango de 0 <W <80. Si el usuario entra w = 5, el programa se mostrará: ****
Mostrar asteriscos en un rectángulo: desarrolle un programa que tome dos valores enteros, W y H, como entrada y muestra una disposición de caracteres de asterisco (*) en un formato de rectángulo con columnas W y filas H. El programa debe usar los valores de W y H para determinar las dimensiones del rectángulo y llenarlo con asteriscos en consecuencia. Asegúrese de que W esté dentro del rango de 0 <W <80 y H está dentro del rango de 0 <h <24.
Si el usuario ingresa W = 4 y H = 3, el programa se mostrará:
****
****
****
Patrón de triángulo en ángulo recto: cree un programa que muestre un patrón de triángulo rectángulo con una altura dada (H).
Si el usuario ingresa h = 4, el programa se mostrará:
*
**
***
****
Patrón de triángulo de ángulo recto (invertido): desarrolle un programa para mostrar un patrón de triángulo rectángulo invertido con una altura dada (H).
Si el usuario ingresa h = 4, el programa se mostrará:
****
***
**
*
Patrón piramidal: cree un programa que muestre un patrón piramidal con una altura dada (H).
Si el usuario ingresa h = 4, el programa se mostrará:
*
***
*****
*******
Patrón de triángulo hueco: desarrolle un programa para imprimir un patrón de triángulo hueco con una altura dada (h), como esta:
Si el usuario ingresa H = 5, el programa se mostrará:
*
**
* *
* *
*****
Patrón de triángulo numérico: escriba un programa que cree un patrón de triángulo numérico con una altura dada (h), por ejemplo:
Si el usuario ingresa h = 4, el programa se mostrará:
1
12
123
1234
Triángulo de Pascal: cree un programa para generar y mostrar las primeras filas 'h' del triángulo de Pascal, un patrón matemático:
Si el usuario ingresa h = 4, el programa se mostrará:
1
1 1
1 2 1
1 3 3 1
Triángulo de Floyd: Desarrolle un programa para imprimir el triángulo de Floyd con filas 'H', donde cada fila contiene números consecutivos:
Si el usuario ingresa h = 4, el programa se mostrará:
1
2 3
4 5 6
7 8 9 10
Patrón de diamantes: cree un programa que muestre un patrón de diamante usando asteriscos (*) con una altura dada (h), así:
Si el usuario ingresa H = 3, el programa se mostrará:
*
***
*****
***
*
Patrón de reloj de arena: escriba un programa que imprima un patrón de reloj de arena con una altura dada (H), por ejemplo:
Si el usuario ingresa H = 3, el programa se mostrará:
*****
***
*
*
***
*****
FizzBuzz: escriba un programa que itera a través de una secuencia de números (generalmente de 1 a n) y realiza las siguientes acciones para cada número:
Buscar lunes a viernes: desarrolle un programa que determine el día de la semana de una fecha determinada en el formato "DD/MM/YYYY". El programa debe tomar una fecha como entrada, incluido el día, el mes y el año, y calcular el día de la semana correspondiente. Debería tener en cuenta los años bisiestos y proporcionar el nombre del día de la semana (por ejemplo, "lunes", "martes") para la fecha proporcionada.
Supongamos que el usuario ingresa a la fecha de la siguiente manera: 15/11/2023.
El programa debe calcular el 15 de noviembre de 2023 es un miércoles y proporcionar el resultado como:
The weekday for 15/11/2023 is Wednesday.
Funciones de la calculadora : construya un programa de calculadora simple que realice operaciones aritméticas básicas (adición, resta, multiplicación y división). Organice el código creando funciones separadas para cada operación (por ejemplo, agregar, restar, multiplicar, dividir). Llame a estas funciones para realizar cálculos basados en la entrada del usuario.
Funciones de la lista de tareas pendientes : cree una aplicación de lista de tareas que permita a los usuarios agregar, ver y marcar tareas tal como se completan. Implemente funciones para agregar tareas, mostrar la lista y marcar tareas como se hace. Utilice funciones para mantener el código organizado y fácilmente extensible.
Número máximo en una matriz : escriba un programa que encuentre y muestre el número máximo en una matriz de enteros. Implemente un algoritmo para iterar a través de la matriz y realizar un seguimiento del valor máximo encontrado.
Reversión de cadenas : cree un programa que tome una cadena como entrada e invierte los caracteres en la cadena. Desarrolle un algoritmo para reorganizar los caracteres en orden inverso, produciendo la cadena invertida.
Datos de clasificación : Implemente un algoritmo de clasificación para organizar una lista de enteros en orden ascendente. Desarrolle un programa que aplique la clasificación ascendente a los datos dados y muestre el resultado ordenado.
Encontrar el número mínimo en una matriz : escriba un programa que encuentre y muestre el número mínimo en una matriz de enteros.
Camplio de Palindrome String : cree un programa que verifique si una cadena dada es un palíndromo (lee el mismo reenvío y hacia atrás). Desarrolle un algoritmo que compara los caracteres de la cadena de ambos extremos para determinar si es un palíndromo.
Contando ocurrencias en una matriz : desarrolle un programa que cuente las ocurrencias de un elemento específico en una matriz. Implemente un algoritmo que itera a través de la matriz y realice un seguimiento de cuántas veces aparece el elemento.
Encontrar la media (promedio) de una matriz: escriba un programa que calcule y muestra la media (promedio) de una matriz de números. Desarrolle un algoritmo para resumir los elementos en la matriz y dividir por el número de elementos para encontrar la media.
Buscando un elemento en una matriz: cree un programa que busque un elemento específico en una matriz y devuelva su índice si se encuentra. Implemente un algoritmo que itera a través de la matriz para ubicar el elemento deseado.
Contando palabras en una cadena : escriba un programa que cuenta el número de palabras en una cadena dada. Desarrolle un algoritmo que identifique los límites de las palabras y cuente las palabras en la cadena.
Cálculo factorial: Implemente un programa que calcule el factorial de un entero dado (por ejemplo, 5! = 5 * 4 * 3 * 2 * 1). Desarrolle un algoritmo para realizar el cálculo factorial.
Raíz cuadrada: desarrolle una función que calcule la raíz cuadrada de un número positivo 'n' con un nivel especificado de precisión 'P'. La función debe usar el método de búsqueda binaria para aproximar la raíz cuadrada a lugares decimales 'P'.
Encuentra el número mínimo . Enlace: https://www.hackerrank.com/contests/w30/challenges/find-the-minimum-number/problem
Juego de adivinanzas: cree un juego de adivinanzas en el que el usuario tenga que adivinar un número generado al azar.
Prime o no implementa un programa que verifique si un número dado es primo o no.
Agregue dos matrices del mismo tamaño: cree un programa que agrega dos matrices del mismo tamaño. El usuario debe ingresar las dimensiones (filas y columnas) de las matrices y luego proporcionar los valores para cada elemento en ambas matrices. Su programa debe validar que las matrices tienen las mismas dimensiones para suma y mostrar la matriz resultante.
Multiplique dos matrices: cree un programa que multiplique dos matrices. El usuario debe ingresar las dimensiones (filas y columnas) de ambas matrices y proporcionar los valores para cada elemento en ambas matrices. Su programa debe validar que las matrices tienen dimensiones compatibles para la multiplicación y mostrar la matriz resultante.
Proyectos
Construir un juego de aprendizaje aritmético interactivo para escolares
Juego de serpientes basado en la consola
Cómo estoy estudiando estructuras de datos y algoritmos (como autodidacta)
Algoritmos explicados para principiantes: cómo me gustaría que me enseñen
Estructuras de datos y algoritmos en 15 minutos
Estructuras de datos Curso fácil de avanzar: tutorial completo de un ingeniero de Google
Prácticas :
Input:
nums = [8, 7, 2, 5, 3, 1]
target = 10
Output:
Pair found (8, 2)
or
Pair found (7, 3)
Input:
nums = [5, 2, 6, 8, 1, 9]
target = 12
Output: Pair not found

Proyectos :
HashTable que admite las siguientes operaciones básicas:insert ): implementa un método para insertar un par de valores clave en la tabla hash. Si la clave ya existe, actualice el valor correspondiente.get ): Implemente un método para recuperar el valor asociado con una clave determinada. Si no se encuentra la clave, devuelva un valor designado que indique ausencia (por ejemplo, None o null ).delete ): implementa un método para eliminar un par de valores clave de la tabla hash basada en la tecla proporcionada.¿Qué es Linux?
¿Qué es Linux? - Linux explicó
Directorios de Linux explicados en 100 segundos
Prácticas :
Top 20 comandos que todo usuario de Linux debe saber
10 comandos de terminal de Linux para principiantes
Comandos de terminal básicos en Linux Ubuntu (Tutorial de Ubuntu para principiantes)
Prácticas :
mkdir para crear un directorio llamado 'foo' en el escritorio. cd y cree un subdirectorio llamado 'Bar' con mkdir . mv para cambiar el nombre del archivo 'path.txt' a 'pwd.txt' dentro del directorio 'bar'. mkdir . touch para crear tres archivos llamados 'file1.c', 'file2.cpp' y 'file3.py'. cp para copiar todos los archivos del directorio 'TMP' al directorio 'Bar'. rm para eliminar el directorio 'TMP' con todo su contenido. ls con las opciones apropiadas para enumerar todos los archivos (incluidos los ocultos) en el directorio 'Bar'. Redirige la salida a un nuevo archivo llamado 'Report.txt' utilizando el operador > . grep con la opción r para buscar todas las líneas que contienen 'foo' o 'bar' recursivamente desde el directorio de inicio. wget para descargar el archivo de la URL especificada (https://raw.githubusercontent.com/dwyl/english-words/master/words.txt). grep para buscar la palabra 'John' desde el archivo descargado recientemente (words.txt). Muestre las líneas que contienen 'John' junto con números de línea consecutivos. Bash en 100 segundos
Curso de choque de scripts de shell - nivel para principiantes
Proyectos :
Genere el script a partir de la historia del comando con progreso echo:
history.txt (el resultado de las tareas de práctica anteriores) en un script de shell ( script.sh ) con declaraciones echo agregadas para mostrar el progreso.history.txt (el resultado de las tareas de práctica anteriores) y revise cuidadosamente los comandos.script.sh .history.txt en script.sh .echo antes de cada comando para proporcionar indicaciones de progreso visual.script.sh con declaraciones echo agregadas: #! /bin/bash
# Displaying current progress
echo " Creating 'foo' directory on Desktop... "
mkdir ~ /Desktop/foo
# Displaying current progress
echo " Creating 'bar' directory inside 'foo'... "
cd ~ /Desktop/foo
mkdir bar
# Displaying current progress
echo " Creating 'path.txt' and inserting absolute path... "
echo " $( cd ~ /Desktop/foo/bar && pwd ) " > path.txt
# (Repeat for each command)
# Displaying final progress
echo " Script execution completed! "script.sh en una carpeta de escritorio.script.sh .chmod +x script.sh ../script.sh .echo ayudan a visualizar el progreso de ejecución de cada comando. Captura capturas de pantalla de tu pantalla
# User input for time interval
Enter the time interval for taking screenshots (in seconds): 60
# Script output during execution
Creating folder: screenshot data
Creating folder: 2022-03-28
Capturing screenshot: Screen Shot 2022-03-28 at 17.48.06.jpg
Capturing screenshot: Screen Shot 2022-03-28 at 17.49.06.jpg
...screenshot.sh .chmod +x screenshot.sh ../screenshot.sh . Curso de accidente de Git y Github para principiantes
Tutorial Git y Github para principiantes
Tutorial Git para principiantes: fundamentos de línea de comandos
Git y github para principiantes - curso de choque
Proyectos:
Instale Git: instale Git en su computadora.
Configurar git: configure su nombre de usuario y correo electrónico Git.
Crear un repositorio local:
git initAgregar y confirmar cambios: Agregue archivos al área de puesta en escena y confirme cambios en el repositorio.
git add .
git commit -m " Initial commit "Ver estado del repositorio: verifique el estado de su repositorio.
git status Crear readMe.md: cree un archivo README.md para su proyecto.
Escribe sobre ti en ReadMe.MD: Escribe sobre ti mismo
Decorar ReadMe.md: Mejore la estética del archivo README.md agregando formateo, encabezados, puntos de bala o cualquier otro elemento que mejore la legibilidad.
Cambios de confirmación: use GIT para organizar y confirmar los cambios realizados en el archivo README.md .
Escriba un mensaje de confirmación significativo: proporcione un mensaje de confirmación descriptivo y significativo que resume el propósito de la confirmación.
Ver Historial de confirmación: ver el historial de confirmación de su repositorio.
git logCrea una cuenta de GitHub:
Crea un repositorio remoto en GitHub:
Conecte el repositorio local a GitHub:
git remote add origin < repository_url >
git branch -M main
git push -u origin mainClon un repositorio:
git clone < repository_url >Crear una rama:
git branch < branch_name >
git checkout < branch_name >Cambio entre ramas:
git checkout < branch_name >Fusionar ramas:
git checkout < target_branch >
git merge < source_branch >Resolver conflictos de fusión:
Tire de los cambios del control remoto:
git pull origin mainEmpuje los cambios a remoto:
git push origin < branch_name >Crear y aplicar solicitudes de extracción:
Bifurca un repositorio:
Clon y contribuir al repositorio bifurcado:
git clone < forked_repository_url >
# Make changes
git add .
git commit -m " Description of changes "
git push origin < branch_name >Revisar y fusionar solicitudes de extracción:
Information Science Foundation Roadmap © 2023 por Sayamir Botirov tiene licencia bajo CC BY-SA 4.0