Foundations of Software Engineering

Fundamentos de Informática e Ingeniería de Software

What You'll Learn

Lo que aprenderás


This foundational knowledge of how computers and programming languages work will allow you to optimize and debug anything later on in your professional career. You will also begin working with algorithms and data structures which are essential foundations for great Software Engineers - the type that the best companies hire.

El conocimiento fundamental de cómo funcionan las computadoras y los lenguajes de programación te permitirá optimizar y depurar cualquier cosa más adelante en tu carrera profesional. También comenzarás a trabajar con algoritmos y estructuras de datos que son bases esenciales para grandes ingenieros de software, de los que contratan en las mejores empresas.

In the first sprint of foundations, you’ll work in C and Unix programming, graphical programming, data structures, assembly language, and algorithms as well as reverse engineering and security protocols.

En el primer sprint de fundamentos, trabajarás en programación C y Unix, programación gráfica, estructuras de datos, lenguaje ensamblador y algoritmos, así como protocolos de seguridad e ingeniería inversa.

From there, you are introduced to higher-level languages, increasingly advanced algorithms, space and time complexity, database management, and front-end programming. Using the latest technologies, you will begin to create a complete web application project that will span the rest of the foundation sprints.

A partir de ahí, conocerás lenguajes de nivel superior, algoritmos cada vez más avanzados, complejidad de espacio y tiempo, administración de bases de datos y programación front-end. Usando las últimas tecnologías, comenzarás a crear un proyecto de aplicación de web completo que abarcará el resto de los sprints básicos.

The final sprint of foundations emphasizes automation, scalability, and reliability, so that you are familiar with the infrastructure and best practices similar to those in tech powerhouses. Alongside a continuation in web development, you’ll also advance in algorithmic understanding, technical writing, debugging, and project management.

El sprint final de los fundamentos enfatiza la automatización, la escalabilidad y la confiabilidad para que estés familiarizado con la infraestructura y las mejores prácticas similares a las de las potencias tecnológicas. Junto con una continuación en el desarrollo web, también avanzarás en la comprensión algorítmica, la redacción técnica, la depuración y la gestión de proyectos.

Foundation Overview

Descripción general de Fundamentos

Curriculum
Foundation of Computer Science &
Software Engineering

Currículum
Fundamentos de Informática e
Ingeniería de Software

1st Sprint

1er Trimestre


  • Git and command line editors
  • Git y línea de comandos
  • Introduction to Bash
  • Introducción a Bash
  • C - first statements
  • C - primeras declaraciones
  • C - pointers
  • C - punteros
  • C - recursion
  • C - recursividad
  • C - static library
  • C - biblioteca estática
  • C - memory allocation
  • C - asignación de memoria
  • C - preprocessor
  • C - preprocesador
  • C - variadic functions
  • C - funciones variadas
  • C - bit manipulation
  • C - manipulación de bits
  • C - file I/O
  • C - E/S de archivo
  • Singly linked lists
  • Lista simplemente vinculada
  • Create your own printf
  • Crea tu propia printf
  • Create your own basic Shell
  • Crea tu propio Shell básico

2nd Sprint

2do Trimestre


  • Python - first statements
  • Python - primeras declaraciones
  • Python - import and modules
  • Python - importación y módulos
  • Python - data structures
  • Python - estructuras de datos
  • Python - exceptions
  • Python - excepciones
  • Python - classes
  • Python - clases
  • Python - inheritance
  • Python - herencia
  • Python - file I|O
  • Python - E|S de archivo
  • Python - JSON serialization/deserialization
  • Python - serialización/deserialización de JSON
  • HTML/CSS introduction
  • Introducción a HTML/CSS
  • SQL - basic queries
  • SQL - consultas básicas
  • SQL - join queries
  • SQL - unirse a consultas
  • C- dynamic libraries
  • C - paquete de programas dinámicas
  • C- makefiles
  • C - archivos MAKE
  • Doubly linked lists
  • Listas doblemente enlazadas
  • Stack and Queues
  • Pila y colas
  • Hash tables
  • Tablas hash
  • Sorting algorithms
  • Algoritmos de clasificación
  • Binary trees
  • Árboles binarios
  • Bash - scripting
  • Bash - secuencias de comandos
  • Unix processes and signals
  • Procesos y señales Unix
  • Regex
  • Regex
  • Network introduction
  • Introducción a la red

3rd Sprint

3er Trimestre


  • Python - Object-relational mapping
  • Python - objeto-relacional cartografía
  • Python - Web framework
  • Python - marco web
  • Python - RESTful API
  • Python - API RESTful
  • Python - web scraping
  • Python - raspado web
  • Javascript - first statements
  • Javascript - primeras declaraciones
  • Javascript - objects
  • Javascript - objetos
  • Javascript - scobes and closures
  • Javascript - alcances y cierres
  • Javascript - web scraping
  • Javascript - raspado web
  • Search algorithms
  • Algoritmos de búsqueda
  • SSH
  • SSH
  • SSL certificate
  • Certificado SSL
  • Web server
  • Servidor web
  • Load balancer
  • Equilibrador de carga
  • Firewall
  • Cortafuegos
  • MySQL primary-replica
  • MySQL replica
  • Server monitoring
  • Monitoreo del servidor
  • Code deployment
  • Implementación de código
  • Postmortem
  • Post mortem
  • Webstak debugging
  • Depuración de pila web
  • Portfolio project
  • Proyecto de portafolio

Specialization

Especialización

Career Opportunities

Oportunidades de Empleo

coding-experts

Holberton Coding School does not guarantee employment. Graduates in this program can reasonably expect to find job opportunities as a:

Holberton Coding School no garantiza empleo. Los graduados de este programa pueden esperar razonablemente encontrar oportunidades laborales como:

Entry Level Software Developer


Junior Software Engineer


Junior Programmer Analyst