EO the Career Killer

It’s time to answer one of the most popular questions I hear from junior
programmers when they meet me at a software conference or online: What is
the point of studying Elegant Objects
(the new object-oriented paradigm I’ve been preaching for the last five years)
if almost nobody is using it on real projects?
Why swim against the current and learn something that may only harm
my career, even if it does seem like a sound technical concept? Where is the
profit in making myself an outsider? These are good questions; thanks for asking them!

Dog Day Afternoon (1975) by Sidney Lumet Let me quote one of the emails I received recently, after
the first lecture in MIPT about OOP:

Recently I have seen the first part of your lecture called “Pain of OOP”
and was very intrigued by the average age of the visitors. How do you think,
will it be hard for them to find a job when the courses are over?
Won’t that leave a “footprint” in their minds that almost everything they
will see as junior software engineers will be totally against what you
taught them? Or do they have to accept that as it is, taking into
account that, as juniors, they will have no right to even
propose changes to the architecture?

Indeed, the question makes a lot of sense. Elegant Objects
is a very alternative concept, provoking you, a junior programmer, to renounce everything
you’ve learned to date about OOP
and to start thinking differently. It sounds
interesting while you are sitting in a room listening to my lecture, but it
may will hurt
you once you attend your first job interview.

I’ve heard stories of people failing job interviews just after saying my
name and claiming that they agree with my OOP ideas. That was enough to
tell their interviewers that they wouldn’t be able to work normally in a traditional
Java team, which uses a good old semi-procedural Spring-based Java
coding style.

I’ve even heard stories of programmers being fired after their attempts to teach
the team a “better OOP,” ultimately ruining their reputations. If you want
to hear those stories, just join our Telegram group @elegantobjects
and ask there. You will hear many of them.

Will something similar happen to you? Most probably, yes.

You will suffer. You will get fired. You will have issues finding interesting
projects, because everything you will see written in traditional Java, Ruby, C++,
or Python will look like garbage to you. You will be constantly annoyed that
people around you don’t understand you. Your career will be stuck. You
won’t be able to get a promotion, because your thinking will be toxic—people
will be afraid of your technical ideas—they will sound too extreme
for them. You will be very tempted to go...