Generation es un programa intensivo de desarrollo de software que transforma vidas a través de la tecnología. Este repositorio documenta mi progreso diario en el aprendizaje de Java y desarrollo Full Stack.
graph TB
A[🚀 Generation Bootcamp] --> B[☕ Java Fundamentals]
A --> C[🌐 Web Development]
A --> D[🗄️ Database Management]
A --> E[🏗️ Software Architecture]
B --> B1[Sintaxis y Variables]
B --> B2[POO y Herencia]
B --> B3[Collections y Streams]
B --> B4[Exception Handling]
C --> C1[HTML/CSS/JS]
C --> C2[Spring Boot]
C --> C3[REST APIs]
C --> C4[Frontend Frameworks]
D --> D1[SQL y MySQL]
D --> D2[JPA/Hibernate]
D --> D3[Database Design]
E --> E1[Design Patterns]
E --> E2[Testing]
E --> E3[Deployment]
style A fill:#FF6B35,stroke:#E55A2B,stroke-width:3px,color:#fff
style B fill:#ED8B00,stroke:#D17500,stroke-width:2px,color:#fff
style C fill:#4CAF50,stroke:#45A049,stroke-width:2px,color:#fff
style D fill:#2196F3,stroke:#1976D2,stroke-width:2px,color:#fff
style E fill:#9C27B0,stroke:#7B1FA2,stroke-width:2px,color:#fff
journey
title Ruta de Aprendizaje Java - Generation
section Semana 1-2
Variables y Tipos : 5: Estudiante
Operadores : 5: Estudiante
Estructuras de Control : 5: Estudiante
section Semana 3-4
Métodos y Funciones : 4: Estudiante
Arrays y Collections : 4: Estudiante
POO Básico : 4: Estudiante
section Semana 5-6
Herencia y Polimorfismo : 3: Estudiante
Exception Handling : 3: Estudiante
I/O y Files : 2: Estudiante
section Semana 7-8
Spring Boot : 2: Estudiante
APIs REST : 2: Estudiante
Database Integration : 1: Estudiante
|
|
graph TD
A[📁 Generation] --> B[01-Fundamentos]
A --> C[02-Métodos]
A --> D[03-POO]
A --> E[04-Excepciones]
A --> F[05-Colecciones]
A --> G[06-Spring Boot]
A --> H[07-Proyectos]
A --> I[📖 Docs]
B --> B1[Variables y Tipos]
B --> B2[Operadores]
B --> B3[Condicionales]
B --> B4[Bucles]
C --> C1[Métodos Void]
C --> C2[Métodos Return]
C --> C3[Parámetros]
C --> C4[Sobrecarga]
D --> D1[Clases y Objetos]
D --> D2[Encapsulación]
D --> D3[Herencia]
D --> D4[Polimorfismo]
H --> H1[🏪 Sistema POS]
H --> H2[📚 Biblioteca API]
H --> H3[🌐 Web App]
style A fill:#FF6B35,stroke:#E55A2B,stroke-width:3px,color:#fff
style H1 fill:#e74c3c,color:#fff
style H2 fill:#3498db,color:#fff
style H3 fill:#27ae60,color:#fff
| Tema | Archivos | Estado | Dificultad |
|---|---|---|---|
Variables.java |
✅ | ⭐ | |
| 4 archivos | ✅ | ⭐⭐ | |
| 7 archivos | ✅ | ⭐⭐ | |
| 5 archivos | ✅ | ⭐⭐ | |
| 4 archivos | ✅ | ⭐⭐ |
classDiagram
class MetodosBasicos {
+void saludar()
+int sumar(int a, int b)
+String concatenar(String s1, String s2)
+boolean esPar(int numero)
}
class MetodosAvanzados {
+void imprimirArray(int[] array)
+int encontrarMaximo(int[] numeros)
+String invertirCadena(String texto)
+double calcularPromedio(double[] valores)
}
class SobrecargaMetodos {
+int calcular(int a, int b)
+double calcular(double a, double b)
+String calcular(String a, String b)
}
MetodosBasicos --|> MetodosAvanzados : hereda
MetodosAvanzados --|> SobrecargaMetodos : implementa
style MetodosBasicos fill:#3498db,color:#fff
style MetodosAvanzados fill:#2ecc71,color:#fff
style SobrecargaMetodos fill:#e74c3c,color:#fff
// 🏗️ Ejemplo de clase básica
public class Persona {
// 🔒 Atributos privados (Encapsulación)
private String nombre;
private int edad;
private String email;
// 🏗️ Constructor
public Persona(String nombre, int edad, String email) {
this.nombre = nombre;
this.edad = edad;
this.email = email;
}
// 📖 Getters y Setters
public String getNombre() { return nombre; }
public void setNombre(String nombre) { this.nombre = nombre; }
// 🎭 Métodos
public void presentarse() {
System.out.println("Hola, soy " + nombre + " y tengo " + edad + " años");
}
// 🔄 Override toString
@Override
public String toString() {
return "Persona{nombre='" + nombre + "', edad=" + edad + "}";
}
}graph TD
A[Exception Hierarchy] --> B[Checked Exceptions]
A --> C[Unchecked Exceptions]
B --> B1[IOException]
B --> B2[SQLException]
B --> B3[ClassNotFoundException]
C --> C1[RuntimeException]
C1 --> C2[NullPointerException]
C1 --> C3[IndexOutOfBoundsException]
C1 --> C4[IllegalArgumentException]
D[Try-Catch-Finally] --> E[Try with Resources]
D --> F[Throw vs Throws]
D --> G[Custom Exceptions]
style A fill:#e74c3c,color:#fff
style B fill:#f39c12,color:#fff
style C fill:#e67e22,color:#fff
style D fill:#27ae60,color:#fff
| Herramienta | Versión | Link | Estado |
|---|---|---|---|
| 17+ | Descargar | ✅ | |
| 2024+ | Descargar | ✅ | |
| Latest | Descargar | ✅ | |
| 3.8+ | Descargar | ✅ |
# 1️⃣ Clonar el repositorio
git clone https://github.com/Arkanabytes/Generation.git
# 2️⃣ Navegar al directorio
cd Generation
# 3️⃣ Verificar instalación Java
java -version
javac -version
# 4️⃣ Compilar un ejemplo
javac 01-fundamentos/operadores/Operadores.java
# 5️⃣ Ejecutar el programa
cd 01-fundamentos/operadores
java Operadores
# 6️⃣ ¡Listo para explorar! 🎉pie title Distribución de Tiempo de Estudio
"Java Fundamentals" : 40
"POO y Herencia" : 25
"Spring Boot" : 20
"Database & SQL" : 10
"Testing" : 5
| Logro | Descripción | Fecha | XP |
|---|---|---|---|
| 🏆 Java Newbie | Primer "Hello World" | Semana 1 | +100 |
| 🔥 Loop Master | 50 ejercicios de bucles | Semana 2 | +250 |
| 🎯 OOP Warrior | Primera clase creada | Semana 3 | +300 |
| 📚 Collection Expert | Dominando ArrayList | Semana 4 | +400 |
| 🛠️ Method Maestro | 100 métodos creados | Semana 5 | +500 |
| 🌟 Exception Handler | Try-catch sin errores | Semana 6 | +600 |
erDiagram
PRODUCTO {
int id PK
string nombre
double precio
int stock
string categoria
}
VENTA {
int id PK
date fecha
double total
int empleado_id FK
}
DETALLE_VENTA {
int id PK
int venta_id FK
int producto_id FK
int cantidad
double subtotal
}
EMPLEADO {
int id PK
string nombre
string email
string rol
}
PRODUCTO ||--o{ DETALLE_VENTA : incluye
VENTA ||--o{ DETALLE_VENTA : contiene
EMPLEADO ||--o{ VENTA : realiza
Características:
- ✅ Gestión de productos e inventario
- ✅ Procesamiento de ventas
- ✅ Reportes de ventas diarias
- 🔄 Interfaz gráfica con Swing
- ⏳ Conexión a base de datos
@RestController
@RequestMapping("/api/libros")
public class LibroController {
@Autowired
private LibroService libroService;
@GetMapping
public ResponseEntity<List<Libro>> obtenerTodos() {
return ResponseEntity.ok(libroService.obtenerTodos());
}
@PostMapping
public ResponseEntity<Libro> crear(@RequestBody Libro libro) {
Libro nuevoLibro = libroService.guardar(libro);
return ResponseEntity.status(HttpStatus.CREATED).body(nuevoLibro);
}
@PutMapping("/{id}")
public ResponseEntity<Libro> actualizar(
@PathVariable Long id,
@RequestBody Libro libro
) {
return ResponseEntity.ok(libroService.actualizar(id, libro));
}
}graph TD
A[Frontend - React] --> B[Backend - Spring Boot]
B --> C[Base de Datos - MySQL]
A --> A1[Components]
A --> A2[State Management]
A --> A3[HTTP Client]
B --> B1[Controllers]
B --> B2[Services]
B --> B3[Repositories]
B --> B4[Security]
C --> C1[JPA Entities]
C --> C2[Relationships]
C --> C3[Migrations]
style A fill:#61DAFB,color:#000
style B fill:#6DB33F,color:#fff
style C fill:#4479A1,color:#fff
@Test
@DisplayName("Debería calcular el área de un rectángulo correctamente")
void deberiaCalcularAreaRectangulo() {
// Given - Arrange
Rectangulo rectangulo = new Rectangulo(5.0, 3.0);
double esperado = 15.0;
// When - Act
double resultado = rectangulo.calcularArea();
// Then - Assert
assertEquals(esperado, resultado, 0.001);
assertTrue(resultado > 0);
assertNotNull(rectangulo);
}
@ParameterizedTest
@ValueSource(ints = {2, 4, 6, 8, 10})
@DisplayName("Debería identificar números pares correctamente")
void deberiaIdentificarNumerosPares(int numero) {
assertTrue(NumeroUtils.esPar(numero));
}gantt
title Generation Java Bootcamp - Cronograma
dateFormat YYYY-MM-DD
section Fundamentos Java
Variables y Tipos :done, week1, 2024-01-01,2024-01-05
Operadores y Expresiones :done, week1b, 2024-01-06,2024-01-07
Control de Flujo :done, week2, 2024-01-08,2024-01-14
section POO
Clases y Objetos :done, week3, 2024-01-15,2024-01-21
Herencia y Polimorfismo :active, week4, 2024-01-22,2024-01-28
Collections : week5, 2024-01-29,2024-02-04
section Backend
Spring Boot Basics : week6, 2024-02-05,2024-02-11
REST APIs : week7, 2024-02-12,2024-02-18
Database Integration : week8, 2024-02-19,2024-02-25
section Proyecto Final
Planificación : week9, 2024-02-26,2024-03-04
Desarrollo : week10, 2024-03-05,2024-03-18
Testing y Deploy : week11, 2024-03-19,2024-03-25
mindmap
root((Generation<br/>Mindset))
🎯 Mentalidad de Crecimiento
Aprender de los errores
Mejora continua
Adaptabilidad
🤝 Trabajo en Equipo
Colaboración
Comunicación efectiva
Code Reviews
💪 Persistencia
Práctica diaria
Superar obstáculos
Never give up
🌍 Impacto Social
Diversidad en tech
Oportunidades para todos
Transformar vidas
|
"Los desafíos son oportunidades de aprender" |
"Juntos llegamos más lejos" |
"El éxito requiere constancia" |
"Siempre dando lo mejor" |
graph LR
A[Development Stack] --> B[Frontend]
A --> C[Backend]
A --> D[Database]
A --> E[Tools]
B --> B1[HTML/CSS/JS]
B --> B2[React]
B --> B3[Bootstrap]
C --> C1[Java 17]
C --> C2[Spring Boot]
C --> C3[Spring Security]
C --> C4[Maven]
D --> D1[MySQL]
D --> D2[H2 Database]
D --> D3[JPA/Hibernate]
E --> E1[IntelliJ IDEA]
E --> E2[Git/GitHub]
E --> E3[Postman]
E --> E4[Docker]
style A fill:#2c3e50,color:#fff
style C1 fill:#ED8B00,color:#fff
style C2 fill:#6DB33F,color:#fff
| Categoría | Recurso | Tipo | Rating |
|---|---|---|---|
| 📖 | Oracle Java Docs | Documentación | ⭐⭐⭐⭐⭐ |
| 🎥 | Java Brains YouTube | Videos | ⭐⭐⭐⭐⭐ |
| 📚 | Effective Java | Libro | ⭐⭐⭐⭐⭐ |
| 💻 | LeetCode Java | Práctica | ⭐⭐⭐⭐ |
| 🏆 | HackerRank Java | Challenges | ⭐⭐⭐⭐ |
- 🥇 Oracle Certified Associate (OCA) Java SE 11
- 🥈 Oracle Certified Professional (OCP) Java SE 11
- 🥉 Spring Professional Certification
- 🏅 AWS Certified Developer Associate
graph TD
A[Generation Community] --> B[Estudiantes]
A --> C[Instructores]
A --> D[Mentores]
A --> E[Alumni]
A --> F[Empresas Partner]
B --> B1[Peer Learning]
B --> B2[Study Groups]
B --> B3[Code Reviews]
C --> C1[Clases Técnicas]
C --> C2[Workshops]
C --> C3[Feedback]
D --> D1[Career Guidance]
D --> D2[Industry Insights]
D --> D3[Mock Interviews]
E --> E1[Job Referrals]
E --> E2[Success Stories]
E --> E3[Networking]
F --> F1[Job Opportunities]
F --> F2[Real Projects]
F --> F3[Hiring Events]
style A fill:#FF6B35,color:#fff
style B fill:#3498db,color:#fff
style C fill:#2ecc71,color:#fff
style D fill:#e74c3c,color:#fff
|
|
xychart-beta
title "Horas de Código por Semana"
x-axis [Sem1, Sem2, Sem3, Sem4, Sem5, Sem6, Sem7, Sem8]
y-axis "Horas" 0 --> 50
line [25, 30, 35, 40, 38, 42, 45, 47]
"Generation ha transformado completamente mi perspectiva sobre la programación. No solo aprendí Java, sino que desarrollé una mentalidad de crecimiento que me permite enfrentar cualquier desafío técnico con confianza."
- Mi experiencia en Generation ⭐⭐⭐⭐⭐
mindmap
root((🙏 Gracias))
🎓 Generation Chile
Instructores
Staff
Programa de Becas
👥 Compañeros de Clase
Peer Learning
Code Reviews
Support System
👨💼 Mentores
Career Guidance
Industry Insights
Mock Interviews
🏢 Empresas Partner
Job Opportunities
Real Projects
Hiring Events
👨👩👧👦 Familia y Amigos
Support
Motivation
Understanding
