I visited 42 in Paris a while ago and chatted with some students. It's impressive. Technically, the program is really good. They start with some pretty low level stuff (they learn C and reimplement bits of the std lib) and go from there.
But the most impressive thing was the potential of the school as a "social elevator" (ascenseur social) as we say in French - meaning a way for people from lower class backgrounds to land middle / upper class jobs. One such story that stuck with me was a guy who used to work construction jobs. Then he landed a job as a sales guy at the French equivalent of Best Buy. There he heard of 42 and signed up for it on the demo computers in the store (he had no computer or internet access of its own). When I met him, he was halfway through 42's program, and he's probably working a pretty nice job now. Truly an inspiring story.
I was poor. I joined the US ARMY. I went from poor to lower-middle class. When I left the army, I took what money I had earned and went to The Flatiron School (a ruby-on-rails bootcamp) for $6000. 3 years later, I make pretty good money. All these schools have the potential to become social elevators. It's awesome that free organisations exists. I may have not joined the US ARMY if 42 US existed.
Universities, especially French ones, are far worse for teaching programmming, for several reasons:
- they are highly theoretical and biased against people who are not good at math; I studied CS, and I had to take more electrical engineering and math courses in my first two years than programming-related classes. This is very demotivating for someone who goes to university to learn programming, rather than physics or advanced mathematics
- they take too long and are full of useless classes (useless for getting a job, not in general)
- although the courses are free, it is very expensive to support yourself for the 3-4 years it takes to finish university, and you also need to buy books and other materials
- the most difficult courses are usually not programming related, but science; so you could invest 4 years of your life and end up without a diploma because you couldn't pass Advanced Physics or Calculus 3, despite being a good programmer.
> they are highly theoretical and biased against people who are not good at math
Maybe it has changed but it's certainly not the case currently.
> I studied CS, and I had to take more electrical engineering and math courses in my first two years than programming-related classes.
Nowadays, most of the classes are CS related. There are still some (basic) maths because they are relevant to so many branches of CS.
> are full of useless classes
Well, that may be true. There will always be useless classes because there are many different career paths.
But I think you shouldn't underestimate the value of more foundational classes.
To give you an example, when I was an undergraduate 20 years ago, I was taught OCaml (many people complained it was a useless academic language), as well as tons of maths. Recently, I decided to learn myself some machine learning and Spark. It was a breeze as I already knew most of the maths and the functional programming model. It would have been much more difficult otherwise.
The USA is similar. If you go for a bachelor's degree in CS you take a ton of mathematics ("hard" cs concentration) or a ton of business classes ("information sytems" concentration) to backfill your degree.
Alternately you can bypass most of that by going to a technical vocational school. They focus entirely on occupational values and send you out in half the time.
Downsides to vocational school: The "idea" behind higher education is that you continue to learn to be a well-rounded person. If you never took physics/literature/calculus/art/Latin/... (because you went to vocational classes that focused on practical business value), it's a hard, high mountain to climb between changing diapers, chauffering to soccer class, etc. ;-)
3 of the 4 cofounders of 42 have previously worked at Epita, a private French computer science school that I attended and graduated from in 2003. Specifically, Nicolas Sadirac was the key director-level person in charge of pretty much everything: designing the extensive computer labs and networks used by all students and staff for everything (NetBSD and SunOS workstations, OSF/1 servers, NNTP newsgroups, a custom internal instant messaging system "Netsoul", etc... aah memories), selecting which classes to teach, hiring professors, and as a true hacker himself I believe he was even writing/designing (at least initially) the various programming tests, including those used during the famous "piscine". As to Kwame, he was working closely directly under Nicolas. I remember him as being also very talented, jovial, and very loud :) Florian, I don't remember him personally. I am less sure what connection Xavier and Nicolas have, but they seem to have known each other for a long time. Xavier appears to have not attended our taught at Epita? I could be wrong.
Epita was very successful thanks to its insanely intense focus on fundamentals: algorithms, programming, OS/compiler/DB design, low level stuff (reimplementing the standard C library, a 3D engine, a UNIX shell, etc). I absolutely loved all of this. However its investors and other directors wanted to change the school to have more general/non-programming courses in order to be recognized by the CTI (commissions des titres d'ingénieur, basically to give Epita's diploma more credence in the eyes of mainstream employers). But Nicolas disagreed and believed keeping the focus on fundamentals was key.
So in 1999 he left and started his own school called Epitech. For a while Epita and Epitech shared buildings and even some professors.
Eventuality Epitech became as successful as Epita (even more in my opinion). It gained a great reputation and graduates are courted by many employers.
I have been following the progress of 42 over the last few years, and I am really excited for them. They have the right team to succeed, that's for sure.
The school 42 its NOT A BOOTCAMP. I think people are not reading the article because i see a lot of people comparing it to bootcamps. It lasts a lot more than bootcamps, 3 years and students never learn rails javascript or any web developement stuff.
[EDIT] You learn the base, lowllevel stuff and you code a lot. Afterwards you are able to pick any language or framework in a week. Students learn to teach themselves.
There is already some web development projects (currently html/css/php and javascript), and RoR subjects are being crafted by students. We start with low level, and after some basics (unix shell, stdlib, printf, corewar, raytracing 3d-engine and web), there's some sysadmin stuff, pentesting, kernel programming, functionnal programming, unity, machine learning, etc.
Holy shit that sounds a world more exciting than my newton's law classes and my literature as well in Computer Science. I think I just lost 6 years of my life.
+1, 42 seems to be a much better approach than bootcamps and even most University programs when it comes to learning software development. I would think most of these students would be far above and ahead of what I see from a lot of people with even a Masters in CS in terms of aptitude/approach.
On the flip side, it's hard to imagine making it through 3+ years of 6x12 days without burning out... Though I'm not sure what the vacation/holiday break schedule looks like.
I've always been suspicious about those schools. Computer science is far more than just "coding". While I'm sure many cool projects can be done with patience and motivation, there is also a lot of fundamental knowledge that is hard to acquire just by doing unsupervised coding projects.
Be careful, it's more of an accelerated natural selection than a school.
The postulate of 42 is that talented people will acquire this fundamental knowledge no matter what, and that non-talented people will simply drop out of school. The big idea is to make sure that people with a gift for programming, no matter where they come from or what they did before, become highly productive and achievement-driven. The rest better pack up and go do something else.
That's also one of the reasons why the school is free. Dropping out and failing should be as quick and painless as possible for both the school and the student.
I've always been suspicious about those schools. Computer science is far more than just "coding".
The difference between a CS degree and a coding bootcamp is very similar to the difference between being a computer scientist and a developer. In my 20 years of development so far I've never implemented a doubly linked list or designed a search algorithm.
> In my 20 years of development so far I've never implemented a doubly linked list or designed a search algorithm.
You probably target a non-constrained platform, even so, as both a web developer(!) and a CS graduate, I've had plenty of scenarios where using the right data structure and/or algorithm give better perf and/or cleaner code. Sometimes I just use the very handy hash table and call it a day, but having the tools at my disposals is useful.
But you don't need computer science to get and perform very well in a programming job. I'm a sample size of one, but I never had any formal comp-sci education and only after about a decade in the industry did I go back and teach myself algorithms, data structures, and all the other comp-sci stuff. I only did this out of interest, not necessity. My experience is not unique.
Likewise... I do find that understanding some of the fundamentals helps, but isn't key to most of the work I do by far... brute force of faster computers and loads of memory goes a long way for line of business applications, which is most of software development (what most work on, not most-used).
You are absolutely right. In France CS is often learned in "engineering schools" which are generally almost free but are also very selective (you generally have to pass one of the hard preparatory school competitive exams). The main difference 42 school has is that they are much less selective (if at all?) and of course the level at the end is much more random than an engineering school [1]. Btw I am not sure how it works in other countries, but in France they are not allowed to deliver "engineer titles" (I believe they actually do not deliver any real degree at all) which make it very clear that when you hire someone from 42, you are hiring a coder, not an engineer. That said, that might be exactly what you want, and I believe 42 was born precisely because of the lack of coders. We have also had very pleasant surprises and some of our hires from 42 are actually very good.
There are plenty of instances where CS is an engineering discipline... mainly control and medical systems that interface with real-world, often moving, components in critical environments.
I wouldn't want someone without an engineering CS background designing missile guidance systems, nuclear reactor safety controls or hospital devices. Other areas (automotive, aerospace) should mostly be on this side as well, but I feel there should be some room for independent innovators.
There are videos to follow. And you have your peers to ask questions.
The only thing missing is the opportunity to ask question directly to the instructor. But doesn't many students graduate without interacting with the instructor in traditional school?
Yes, but in general there is high interaction with TAs who are usually graduate students who are much more familiar with the material than other students and often the professors.
Would love to see comments from someone studying there or someone who has done it in France. Also, I understand the costs of running this school are low, but still how are they funding this?
I was admitted for more tests for the one in paris, but living in paris is outright impossible for me money wise.
The idea is great, but when you're poor, the price of the school is not the only problem. In france education is already free, and the problem is still the cost of living.
Obviously it is a great alternative because the selection process in other universities is tedious (you need to be good in high school etc), meanwhile with 42 you just do some fancy tests, so it's more open.
But I'm curious about how poor students can really finance staying at 42. Students here are already working more hours outside so they can study.
Obviously, making such school in the US is going to make it more interesting than 42 in france.
>Obviously it is a great alternative because the selection process in other universities is tedious
That's not true, in France going to the university is open to anybody that obtained the "Bac" (not necessarly a general or scientific one, doesn't matter, you can get in mathematics there with a mechanics degree) and if you don't have it there are some formations to get an equivalence, opening the doors for you. (of course it will be extremely difficult to catch up in compsci for someone without a scientific bac but he can try)
And the university is almost free (less than 500e a year if you don't get any social help)
It is true however that you need good grades to get to the top engineering schools.
As you said the bigger issue anyway is the cost of living.
> That's not true, in France going to the university is open to anybody that obtained the "Bac"
Not if you're older than 25, I was asked to pay something like 3000 euros to enter in L1, despite the fact that I have no income.
And even if you have the BAC, university will often teach a lot on math and theory, which in my mind if counter productive because there is a very high demand for low skilled programmers and technicians. 42 focuses more on the meat of what programming is, and most often only that.
Not saying you don't need those computer scientists, but usually students want to work in the industry with an easily accessible job that doesn't involve too much academic headache or research.
I think 42 is right: people can become good software engineers, even if they suck at university studies. CS studies were elitist, with math prerequisites: now they're more open.
"of course it will be extremely difficult to catch up in compsci for someone without a scientific bac but he can try": universities are subjectively making this hard. 42 fixes it.
(I'm a french CS engineer, and I'm part of a system I despise)
> universities are subjectively making this hard. 42 fixes it.
I don't buy that at all. Programming is programming. If you can do it at "42" (without supervision), I'm pretty sure you can do it in a university too. An important part of university teaching is also based on programming projects, and class attendance is usually not mandatory. I assume there are more classes that don't involve coding than at 42 (some maths, some more theoretical CS stuff) but not enough to fail an otherwise motivated student.
Besides, if some student is unable to take a few classes they doesn't like, I'd be worried about their ability to adapt to a professional context.
Actually, I taught CS in a French university, and usually, the only students that fail totally lack interest in the discipline. I can remember one or two students that liked programming as a hobby and quit or fail, but it's pretty rare.
CS courses are not be the culprit to the failures I have in mind...
I had to study Chemistry for 2 years (no CS DEUG at that time), failed to pass because of thermodynamics, was finally rescued in-extremis because the jury's head was also my CS teacher (CS was an option). I entered a CS engineer school and things went very smoothly after that.
I almost failed to study CS! because of thermodynamics. It could have been because of bio-chemistry, or maths. None of which were needed to study CS.
42 fixes this. Their pre-requisites are relevant to what you'll need to study.
You can loan like 15k euros without any interest, and work part-time after your first year, or even during the first but it' s not recommended. If you've already worked before you can get ~650e per month during the 3 year of the formation.
"Stagiaire de la formation continue", pole-emploi will give you 650e per month even if you don't have any remaining rights for 3 years, they consider it's a formation to get a job later. It's not the RSA if that's what you're thinking with the 25+ yo.
Was anybody else surprised to see beginners are taught C and spend time reimplementing parts of the standard library. C is pretty low level for introduction to coding no?
Pascal was often used as a teaching language specifically because C was too low-level for many beginners. Python is often used now days. I think it's important to give beginners an easy start where they pick up the mental process of solving problems with code and libraries with steadily increasing rewards & difficulty. C is the wrong start for that.
What I'm uncertain about now is if they should start with dynamic or static language. Starting with something like Python gets them results and basic skills quickly. Might even maintain interest by being a break from the hard stuff in lower-level languages. After Python, something like Oberon or Go that's statically-typed, closer to the metal, and still easy to work with. I'd have said Oberon in past due to simplicity but a Go subset might be better today due to all Python to Go articles. They can do some work in Go to see benefits of static types, do algorithm optimization, whatever. Only then do they learn C with early intro on its pitfalls, undefined behavior, and efficiency advantages. They need to see how each thing helps, hurts, and is properly used. Then maybe a standard library re-implementation starting with a simpler one.
That's how I'm seeing the process in my head. Side-benefit is you get usable, job skills if you make it through any stage. Just don't drop out before done with Python. :)
My introduction to programming was one semester of Pascal in high school (2 years before college). There was a second semester class as well where the teacher just handed us an intro C book and told us all "Go learn it. Make up your own assignments and I'll grade them. I'll be over here teaching the first class if you need help."
I think schools are way too coddling when they teach kids "Pointers are scary. That's why you'll only learn Java here." I don't think my classmates where particularly gifted and yet we all survived C with minimal assistance.
At my university, the first semester's course is taught in Java. We were permitted to use any part of the Java API for all of our work. The one 'but' was that, during exams, we were not allowed to use the internet. We did have a local copy of the Java API though. We weren't really taught data structures in depth, but we did very briefly go through it (i.e. we learned how to reverse an array, what a linked list is, etc.; we did not implement our own data structures and such).
The second semester was taught in C/C++ and we did the things they described in the article (reimplementing the standard library, making doubly linked lists, etc.)
I think my university made the right call with making Java the first language. Even then, the failure (and/or dropout) rate was 30%+ for the first semester. A further 30%+ failed the second semester's course. If we had started out in C/C++, I imagine the overall failure/dropout rate would've been far higher.
I think we'll see more of these types of opportunities, both private and public. And we'll get to the point that motivation is a big, remaining issue - starting a program like this (or any online course) and seeing it through.
I tried learning Ruby on Rails on Windows 7. It mostly worked, until it didn't. When I asked others around for help, and it became clear I'd done some newb thing to generate an un-google-able error, I was on my own. No one I knew developed on Windows. After being stuck enough times with maybe-Windows-specific errors, I decided I need a Mac.
Some gems reference Posix specific things. And your Gemfile.lock may include the platform upon which Bundler was run, be it Windows or Posix, and that can be a problem when trying to install gems on a different platform. And some nice utilities, such as Ruby version managers, don't work on Windows.
In a world where you want to be able to develop for anything from a single machine, Mac is your only option. e.g. If any of the courses offer iOS, they'll need Macs. The machine can boot, or run VMs for other OSes but you can't boot OSX (legally?) on anything else.
Opinions
I don't like the UI, looks like ubuntu, the finder is probably one of the worst designed ever file manager (no parent folder, need to enable hidden files display in the terminal) , some coreutils works differently (like sed), some basic windows management is missing (always on top, windows resizing). At each new version, tools like valgrind are broken for some times. You can't set keyboard shortcut easily, and need admin rights to do so. Still better than windows to work thanks to the unix base.
Lots of students buy MacBook to have an unified experience when working at home, because there are little differences with dirent/stat/xattr/acl, and "it just works (tm)".
I prefer spending 1 or 2 hours settings something to work how I expect it to do than an inconvenient pre-set software.
The hw has issue too, there are turned on 24/7, there are screen burn after some times (like old CRT), and the down left angle of the screen are burned (mostly visible on white, it's dark like something behind the glass burned it). We're using an old magic mouse which is a joke (can't right click without removing the left finger of the mouse, the 360 mouse wheel never works, need a mouse-pad to work, and doesn't work on white).
/Opinions
I must agree. But you gotta agree that software in mac is much more user friendly and professional than those in windows and Linux. This is not and advantage of the mac per se, but it's just what it is. I recently got me mac os x and I'm astonished by the quantity and quality of software you can find, things I didn't even imagine were invented. Finder aside, mac's UI is pretty damn straight forward and fucking beautiful. (compared to Linux and windows)
Objectively, you can do anything on OSX that you could do on Linux plus you can do the Apple stuff. But because Apple intentionally prevents using their stuff anywhere else, they can suck eggs.
I don't... Apple is really stubborn about selling their own hardware with every copy of their OS... no thanks, my hardware is fine. And as a matter of fact, my Linux is great too.
But the most impressive thing was the potential of the school as a "social elevator" (ascenseur social) as we say in French - meaning a way for people from lower class backgrounds to land middle / upper class jobs. One such story that stuck with me was a guy who used to work construction jobs. Then he landed a job as a sales guy at the French equivalent of Best Buy. There he heard of 42 and signed up for it on the demo computers in the store (he had no computer or internet access of its own). When I met him, he was halfway through 42's program, and he's probably working a pretty nice job now. Truly an inspiring story.