42 PROGRAMMING CURRICULUM
Learn programming from the ground up. The 42 Warsaw curriculum is a chain of learning-projects, and each step is a practical challenge focusing on a specific aspect of programming. As you move forward, you discover and freely choose the specialized branches you are most interested in pursuing.
CORE CURRICULUM
The core curriculum: up tu 2 years to acquire the basics of programming
The first part of 42’s curriculum is the common core – after Piscine (recruitment process) you’ll get to experience learning the fundamentals of software engineering: programming in C, algorithms and software development, file systems, UNIX, sysadmin and network architecture. This stage is complemented by a first internship, where students get to put their newly acquired skills in practice. While everybody can progress on their own time (flexible hours – campus is open 24/7), this will take no longer than 2 years.
After successful completion of the common core, you may choose to finish the program and receive your 42 certificate, attesting to the level you’ve reached, or you may continue further developing your skills in the specialisation.
SPECIALIZATIONS
The second part: pick your specialization, choose your pace
The second part is the specialisation, where participants get to decide which direction they want to move forward in: fields such as AI, mobile or web development, cybersecurity, or a combination of these fields are at your disposal – and more. Neutrality towards brands, technology and programming languages is emphasised in order to stay adaptive for the future. This program includes over 100 projects to complete in groups, and also includes second internships and entrepreneurial programs. Each participant can decide on their own when they’re ready to enter the next step of their career and become an alumnus.
SKILLS DEVELOPED DURING YOUR STUDIES
Imperative programming
- C
Functional programming
- OCaml
- Lisp
Object-oriented programming
- C++
- C#
- Java
- Swift
- Mobile development
Algorithms & AI
- Machine learning
- Deep learning
- Neural networks
- Genetic algorithms
- Maths
Graphics
- Image computing
- Games
- OpenGL
- Vulkan
- Metal
Adaptation & creativity
- Innovation
- Thinking out of the box
- Web
- Back-end dev
- Full-stack dev
- Frameworks
- Rails
- Django
- Node
- React
- Symfony
Technology integration
- Complex environment
- Heterogenous environments
- Projects from companies
System programming
- UNIX
- Posix
- Kernel
- Low level
- Embedded systems
Network & system administration
- Network architecture
- Network services
- IP addressing
- Cloud
- DevOps
- Virtualization
- Continuous integration
Security
- Virus
- Rootkits
- Trojans
- Exploits
- Firewalls
- Countermeasures
- Backups
- Man-In-The-Middle
- Sniffing & spoofing
DB & Data
- SQL
- PostgreSQL
- MySQL
- Oracle
- Data structure
- NoSQL
- Data lake
- Data visualization
- Data mining
Parallel computing
- Threads
- Mutexes
- Semaphores
- Concurrent programming
- GPU programming
- Cuda
- OpenCL
Rigor
- Coding style
- Regression tests
Organization
- Personal organization
- Project management
Company experience
- Internships
- Work and study (optional)
Management and communication of teams and projects
- Group management
- Communication