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