To me, this is as silly as training Biathlon athletes to not even aim before they shoot.
So far, I've always ended up not recruiting the candidates, because they would have made a mess of the codebase in no time, bringing negative net productivity to the team (more so than most junior candidates I've seen). And this was for jobs in a startup!
I wish 42 would teach them the necessary insights to program sustainably - that's where teachers and mentors are indispensable, and that's the rare skill most companies are lacking. Anyone can pick up tutorials and read manuals on their own. Make them developers, not eternal coding beginners. I'm not asking for an academic or scientific focus, just a good philosophy of programming in general, the kind of which you see in SICP for example.
Unfortunately, 42 does not have a monopoly on producing short-sighted developers in France, by far - that's the case of most "learn to code in X days/months/years" programs.
Also, while it's nice that Xavier Niel finances a school that is free, most of the universities and Grandes Ecoles (where many developers graduate from) are also free, and financed with public money. They work great and produce really skilled developers and architects.
The reality is that Xavier Niel didn't do a Grandes Ecoles, he's mostly self-taught. When he started to succeed in the telecom industry other companies, full of alumni from Grandes Ecoles didn't see him with a good eye because he didn't have the pedigree (and didn't hire many of them either). So he has a grudge about the Grandes Ecoles system, and creating a school with private money is kind of a middle finger to them.
I don't know where you last got your information about Epita, but this has been less and less true for around 10 years now.
They sought to have a state certified engineering degree for a long time and implemented a lot of changes around 2003-2007 that made the cursus a bit less about code a more about common engineering stuff (maths, physics, english, ...) with more structure (they structured classes with a credit system, made more standard student evaluations, ...)
Source: graduated in that era, been in touch with later students.
Even if it's true that Epitech us mainly about coding, the program enforce a coding standard that is a huge part of the final grade of each coding project (small functions, 80 char per line of code...). Fom the second year, components decoupling and basic design patterns are part of the program.
Nevertheless, the school doesn't really make the most to teach basic good engineering practices or at least I don't remember (doc, tests, vendoring, observability...) and this is one of the main pain point.
Niel did not come from the traditional path of the elites (Polytechnique Paris, Centrale, etc.).
He was self taught, and god forbid, earned money through minitel porn. The aristocracy considers him, well, gross.
Their CVs should be findable on the public internet.
Yeah, no. 42 was modeled on Epitech. If EPITA was about "code, code, code", why did Sadirac leave and founded Epitech and 42 ?
I believe this is a good method for beginners. A beginner doesn't need to think much because he/she doesn't have the material/experience for that anyway, but instead just practice as much as possible. Later, he/she will reflects on what he/she think he knows and get a more structured / professional work.
Wait 6 months or 1 year, and you've given them time to gather sufficient experience for motivating a more mindful way of working.
Wait 3 years or more, and you've just taught them bad habits.
I'm tired of interviewing candidates who were supposedly trained extensively in programming, asking them "how do you approach making quality software?" and hearing the usual "oh, I indent my code and write a lot of comments" as an answer.
I've been to a "regular" university and I'm pretty sure I said some variant of "I write lots of comments" w/r/t my code maintenance approach in a very early interview. I could have written any algorithm you gave me -- but I had no idea what maintaining an application with users entailed.
My experience is you can't really "teach" writing maintainable code beyond just having people fix bugs for 6 months in a million-line codebase that's reasonably well written.
You could write 100% functional code that handles every edge case you could think of, and you could still get a B- on an exam for not using the 'Design Recipe.' While frustrating, the students do emerge as 'junior SWEs' with a grasp on how to design organized, efficient, and complex programs themselves.
People should learn this mantra: coding is to software development what moving pieces is to chess.
And on a more serious note: I really like this mantra, but I do not think it's true or relevant:
There are many examples of success stories of what you would call "coders": Gates and Allen's Altair Basic and Zukerberg's Facebook are the famous ones - but I would argue that many software related business are also a product of "coding" and not "software development". See also WordPress or Wikipedia as examples. "Coding" is very important.
Software development is a very wide subject. The driving force of schools is mostly economical - training developers to fill a huge demand on this huge market. The thousands of open jobs require different sets of skills - and again I will argue that a high percentage of these jobs will allow a (very) junior developer to build good products as long as he knows to "code" and he can be managed and mentored by a senior developer. Being able "to code" will be a hard requirement for these jobs. Simple examples would be web and mobile development. enterprise/huge software projects. "Coding" can get you a job.
And, as I wrote in my other comment above, "training software developers" is not the same as "developing software". There are many ways to train developers - and where to start from and how much time it takes are good questions. Assuming a year (or 3-4 years) in college is very expensive and not accessible to anyone who can and want to be a software developer, finding other/more/different approaches to enter the software industry is needed. "Coding" is an eligible trailhead for starting to learn software development.
AFAIK, when teaching kids chess, the best way to start is teaching them how to move the pieces.
Knowing how to move the pieces is a foundational piece of information, but without the understanding of the theory of the game it's useless information.
Perhaps a closer (nitpicky?) metaphor would be running to basket ball.
It's clearly important to be able to run well above average but trying to get to sprinter/marathoner levels has little to no benefit. Especially if it's at the expense of other skills like shooting, jumping, reflexes, etc.
If the real underlying problem/solution is a shape too big to put in your head, what do you propose? Pen and paper as superior to code for modelling things?
I wrote "think about what you're doing".
It comes through in the code, it's messy, there are entire classes and functions that are never used. The logic is all over the place. The code is messy to look at. There are edge cases that haven't been handled.
Well engineered code I should be able to look at understand what the developers thought process was as he was writing it.
I've seen a Dev write a piece of code, that wasn't that big, maybe a few hundred lines then later that day he couldn't explain how it worked in a meeting. Even going through his code line by line he couldn't follow what was happening.
If he can't follow what is happening in his code or explain it coherently, how can anyone else!
And it was because he dived into coding something without thinking.
That said the opening year they let people try student challenges and they were brilliant. Tiny and principled, out of the box thinking, mostly relying on creative and critical thinking.
Anyway, there's a need for patience driven cursus :)
I can manage large business requirements, I write functional specifications and negotiate them with users, I plan technical architecture... And then I'm happy enough with programmers who need hand-holding at every step - anyway my telco employer has long stopped having budget enough to pay contractors who understand our business.
That's just not true, the main reason being that if you're not programming any more, how can you define a modern technical architecture? If you don't know the precise technical limitations, how can you negotiate functional specifications?
Engineering is Engineering, whether it's IT systems or bridges
Knowing one's limitations is key - I certainly won't get in the way of implementers. But functional requirements do drive some architectural decisions and spotting them upstream helps, for example once the conceptual data model and typical query usage are defined, one can decide whether the contractor one sends a purchase order for needs to grok graph databases or relational ones.
I do advocate a high-low mix with fewer people and a higher proportion of the higher tier, but the purchasing department loves low unit prices and has decision over them. Well, at least we have the developers co-located with us in the same office and no longer work with offshore Indians through two layers of intermediaries... Progress !
I do not understand this. What does "culture of piscines" mean? I assume it's not literally pool culture.
This is to encourage the "get shit done" mantra of these schools.
It wouldn't directly teach them to think before writing, but they might learn the downside of failing to design the program structure well, and the pain of refactoring. It would be hilarious to give them back one of their early projects and slightly change the (marketing) requirements... (then require functionality can't be broken for testing more than X min-hours), just like real life. They'd learn they ARE the jerk writing unmaintainable code.
There are good engineers in both, both have different approach to teach which fit different people. Both do generally good in the private sector after they're done with it.
As usual the people graduating from public schools will say the private graduates don't have the theorical foundation, and the private graduates will say the public graduates don't have enough technical skills when they graduate. In reality the decent students will pick up the theory from the practical projects and vice-versa.
If that matters, I did Epitech, which is similar-ish to 42 and all the people that graduated with me have decent positions and are in high demand by the job market. Some of them in big name companies.
This kind of private schools are a good alternative for people who don't fit in the public education by letting them just do practical projects with some direction and let them pick up the theory from there. Some people are really good self taught hackers but would otherwise drop out in typical education, but they can shine in these schools. I've met many.
Edit: I checked Epitech tuition fees, it's around 40k€ for the whole 5 years curriculum. You can make a century of studies for the same price in any public university.
For example, one key part for me was that the school allowed me to practically don't go to classes as long as I could prove that my work wasn't affected. It's something that you won't find everyday. I'm 100% sure I'd have failed university otherwise because the lack of freedom would have bored me to death Conversely, friends of mine have dropped from Epitech in the first two years because they didn't get enough support, so it shows that the most interesting thing the school has to offer is its learning devices. They understood that one size doesn't fit all (which is against the French public school philosophy).
So yeah, the tuition is expensive (and frankly given how the school works you sometimes wonder whether they eat luxury cars for lunch), but there's simply no public alternative.
One other factor I've also wondered is if people paying for their scholarships weren't more invested in making it a success? I knew my fair share of people who weren't thriving as developers at Epitech as well, mind you, but most of them dropped before the end.
I've done Ensimag, which is a public school in the same sector, and you definitely could skip classes if you wanted to (though most of the ones who skipped classes did it out of sloppiness)
Those who had issues were those who needed to be told where and what exactly to look for. They often felt like they were paying for little to no teaching (which is true, in a sense, but I preferred to see it as an opportunity to grow by myself in an environment where I could have extra resources at my disposal if I needed to - the best one often being other students, sometimes from previous years).
And once again, all engineering schools considers their students adult enough to let them do their thing: there's no repercussion if you don't go to classes, it's not 42-specific
I graduated from an enginnering school, and you can absolutely skip all classes if you wanted to. Sure, the teachers don't encourage you to do it, but the freedom is definitely there.
BUT, since there will always be a percentage of students who don't succeed in a "traditional" way, a bunch of rich people will always attempt to lure them into a paid program (which is, I repeat, selective). So they learn quite a bit, and they can become high-earners in the future, since they're all hanging out with technically good people.
> I checked Epitech tuition fees, it's around 40k€ for the whole 5 years curriculum
$9100 a year is indeed expensive for French schools, but I'm sure some Americans on the other side of the ponds are chuckling right now.
Don't forget though that housing, food, "Sécurité Sociale", library, etc. weren't included.
Good public schools are about that much - or less. At Ann Arbor it would be $8000/year for tuition.
As I said "This kind of discussion will end up being the typical (French) disdain between people learning engineering in the public schools v/s the ones learning in these "practical teaching" private schools and vice versa."
At the end of the day, both ways work. One is free if you fit the public education.
You can make a century of studies for the same price in any public university
I'd say that it seems like it's easier to make it as an average/mediocre person if you're doing epitech, 101, 42, etc.
If you're very good, it seems like you'll do better with a more beefy theoretical background
You could just as well learn all the theory by heart, do not know how to use it in practical situations, forget it after the exams and pass just fine in most public schools as well. If you're bad and not willing, you're gonna be bad, no education will save you
I have no doubt some younger people, competitive alpha minds would take this in their stride, but I worry this culture of hyper competitiveness permeates into employment. When this stuff is accepted as 'work ethic' and normalized you tilt toward what some asian cultures are experiencing today - producing overworked unhappy individuals.
Personally I don't think it's great to brag about how hard you work. I don't think it's ok to be proud of bootcamps (although 42 School explicitly says it's not a boot camp which is a little Orwellian). People should be proud of being healthy, getting enough sleep, eating well, having social interactions, learning, cultivating well balanced meaningful lives.
To truly be a school of the 21st century we need to do away with this culture of stress. It's killing the best of us.
I agree with this sentiment so damn much. When I joined the school, I was very afraid that such a rhythm would lead me to a fast burnout.
Thankfully, there's no pressure to do any kind of crazy hours. The school is open 24/7, and there are no deadlines for projects or whatever. This is a two edged sword: on one hand, there's an incentive to stay at school as long as possible, and put in some crazy hours. On the other side, though, it creates a lot of flexibility for student. If you need to take a breather, you can totally put in less hours, or even totally stop going for a while. If you need to do some odd hours, like working a night schedule, that's also possible.
Of course, I have put in some 50+hr in a week sometimes,while hacking away on a project. But i have also clocked 25hr some weeks. This absolute flexibility is a real stress relief.
Your reply, in the context of the comment you replied to, strikes me as a point of view so American that it's almost cliché.
I think that it'd be quite sad if we'd adjust education so that it'd merely contain things that are of interest to companies.
Although yes, it's sad to adjust education strictly to companies' needs. It's also sad to force people to spend so much time on the intrisinc workings of a microprocessor when all they want is to make web apps or a living ¯\_(ツ)_/¯
There's no one size fits all.
Right. Like how you don't care about the persons' physics knowledge when hiring an architect. /s
Yes, you can hire him, but that will cost you lot of money. There are tons of examples of cheap architect work, e.g. collapsed bridges in the Western Europe.
Seriously, almost no developer would be able to write a compiler today. The same way I wouldn't be able to build a micro-processor worth anything.
You wouldn't expect any compiler knowledge from most web (back or front) developers, the same way you wouldn't expect much GUI or globally distributed consistent databases knowledge or experience from most embedded developers.
And it's just fine. It's their problem, their limitation, their career, them missing out and, no, in most cases, it won't impact their jobs or the quality of what they make in any way.
Why do you have to have a problem with that ?
Edit: also, bridges collapse all over the world. Tunnels too.
On the mobile part, most of the clients have pretty much no idea what a processor really is, or how networks work. Hell, I have to explain to them that if they want to build this kittens social network, they're going to need a back-end and that no, it doesn't matter to the mobile apps what language their back-end is written in (and vice-versa).
For most of what these people ask, all you need to know are the basics of Android and iOS's SDKs and how to make API calls. Half the time, their isn't even any networking involved !
I'd be thrilled to work in an environment where this kind of knowledge matters. But like most people I'm stuck working with some people who'll tell you that they don't want to be software developers; it's just a means to an end to them (which is fine. Just don't use that as a shoddy excuse for doing crap), refactoring codebases built by some kids who don't have any software architecture knowledge and don't see the problem in their network layers popping modals and alerts, wondering how on earth a view could end up being a singleton (and no, "I was somehow convinced I needed to access it and change it's properties from this class over there" is not a satisfactory answer) or spend half my day on a single rebase because of some git submodule crap.
So yeah, for most of the people I've had the 'delight' of working with, they are missing so much that no, hardware intricacies, processors inner working, compilers logic and functioning or networking knowledge aren't the critical aspects they're missing.
Heck, I'd be glad if their code was even just readable and had anything resembling an architecture. Or if they didn't turn everything and anything into a singleton whenever they felt like it.
I'm going to stop now. But going back to the architects analogy, if these developers where architects, then most of those I've met can't tell the difference between plumbing and electrical wiring, so I'd be glad if they left the concrete to the craftsmen and at least managed the basics of their jobs' specifics.
Programmer must know how to program.
Software developer must know how to make good software product.
Software engineer must know how to understand and meet specifications, follow engineering codex, and son on.
And so on.
I'm talking about software developers. You are showing me examples unrelated to professional software product development at all. Moreover, there are lot of professionals in IT, but only part of them are software developers.
So we are just talking about different things: you are talking about "someone who sits in front in compute and enters programming code", while I'm talking about professional Software Developer, short segment of IT professionals, subset of programmers.
I'm talking about people who are one of the or the only persons with any technical knowledge in their companies, who's job it is to interpret and understand whatever the requirements are and deliver on the products, wether it's apps, web or mobile, back-ends or both.
They need to know how to make good software products, they definitely should know how to understand and meet specifications, etc, etc, etc. They just don't. And yet, they have the positions they have. And what they're most lacking, contrary to the point you were making earlier, definitely isn't compiler theory or the ability to build shell scripting parsers, but the very abilities you just listed.
So no, we are talking about the exact same thing, you just seem lucky enough not to have encountered this kind of people in that kind of position, and I'm glad we have finally come to an understanding.
If they have no education/training adequate to their profession, they are just amateurs. I trained about few dozens of them during my career.
We have outsourcing industry in Ukraine, so "Software Developer" is well defined term here. Somebody cannot sit five years playing with Excel, or JS/HTML, or mobile apps and then pretend for Senior Developer salary. Inexperienced (junior) developers causes lots of problems to project and must be supervised by a senior developer. We work on tight budgets, so we have no time to play name games. If someone has "developer" in his title, he must meet expectations for his role. Otherwise, project will collapse and everyone will suffer.
i do have a solid maths background from previous studies, but i dont use much of it on an average day.
Age discrimination at its best.
Cap it at 45?
How many people over 30 (45 in the US) are trying to retool and get educated on programming?
On the current site this is changed to:
"You can apply to 42 if you’re older than 45, but please know that most students here are younger and that Intensive Basic Training is tiring."
The french site http://www.42.fr/ says "ouverte à tous et accessible aux 18-30 ans" (18-30 only)
Draw your own conclusions about age discrimination here. You are free to apply...
As you might know, in France, we are good at taxation. One for the companies is for « formation continue », which is for adults formation.
For example, you work in a company and ask them to get a formation in a particular subject. If it suits the company they can pay it for you, and it costs them less than the tuition because it’s paid in part by the state (with the tax I mentioned).
So there are a lot of private « schools » dedicated to adult formation, in general separated from the « classic » student cursus.
- 42 (France and Bay Area)
- Lambda School (online)
- Holberton (Bay Area)
- There is also Epitech (France) which is the "ancestor" of both Holberton and 42. They don't defer tuition, but have the same project-oriented, TA-intensive curriculum.
It's still early and all these schools have their strengths and weaknesses... But I think this is a positive trend. It makes tech education more accessible to a lot more people, and can produce quality engineers. It's definitely much better than the horrible coding bootcamps popping up everywhere, that charge 5 figures and leave you completely unprepared for a software development career.
- Make School (Bay Area)
- CODE (Berlin) [I'm one of the founders]
I dug up some really old notes that referenced my reasoning for the name.
"42 is the number used to define the meaning of life, learning is also arguably the meaning of life. It also sounds like school for 2 (teacher & student). This will hopefully help one to one learning."
For example, there is a cat at the Paris campus and the students are asked to ignore it and not pet it. That guidance turned into the ‘rule’ that if ‘the cat touches you, you fail’. I promise the school doesn’t have a secret failure cat.
I’m referring to the reddit link, not the HN comments.
what did the cat do to them?
is 42 anti cat?
just kidding. see how easily conspiracy theories form?
Resources online are plenty (and actually 42's main way of learning), so learning material is not the problem.
If you're already in the workforce, you can get yourself a training through the employment agency, or even better an apprenticeship.
Consulting firms hire science graduates and train them to be developers. I went that way, switched for a small company after a few months where I am better tutored. Some friends stayed in consulting and still improve. Sure the pay is low in consulting firms, but it is immediate and you build professional experience directly instead of wasting 3+ years.
Doing 42 when you already have a degree sounds like a waste of time to me. I guess it's fine if you're 18 and need guidance though. But I'd still prefer prepa and engineering schools over 42...
That's their main source of students, no?
That being said I met some super smart people from 42 that had built extremely interesting and technically challenging projects!
For example a first year student I met had built a 3d rendering engine in C without using any external library.
It's much bigger than you'd think and the supervisors are happy to let visitors explore
A school named 42 that would not accept Douglas Adams as a student, were he still around. Ha!
We're in our 2nd year now, with 230 students from more than 40 nations. We've partnered with 42 US for student exchange last summer, and it was an awesome experience for our students who went there.
"The school does not have any professors, does not issue any diploma or degree, and is open 24/7. The training is inspired by new modern ways to teach which include peer-to-peer pedagogy and project-based learning."
Candidate to 42, I...:
Confirm that I will be between 18 and 45 years old in november or less then 18 years old and in 12th grade (or equivalent).
> I AM NOT BETWEEN THE AGES OF 18 AND 45. CAN I COME TO 42?
> Yes! We are looking for learners who are motivated. In establishing the school in the US, we focused first on the age range we’re familiar with, then expanded to include high school, and will continue to expand. It’s important to develop a program that supports the success of students while still challenging them. You can apply to 42 if you’re older than 45, but please know that most students here are younger and that Intensive Basic Training is tiring.