Considerations Before Graduating as an Engineer
reflexio.debec.eu
reflexio.debec.eu
> And because geniuses understand complex things, they design complex systems that no one understands. Their loneliness makes them unique masters of their subjects, thereby nurturing their self-esteem. Knowledge remains in their heads and their presence becomes necessary for every decision.
This is of course true, a genius can do this. But given so can just about anybody else given enough time. We have a name for it when a non-genius does it: people built up technical debt that no one else is across. About the only difference between the genius and everybody else is the genius can create this gap faster than most.
Which should be a hint what the cure is, and it isn't getting rid of the genius. (I'm sure Elon Musk would be rolling his eyes at the thought, or possibly rubbing his hands in glee if you are a competitor or his.) The cure is to set up the code review systems and documentation so everyone is across what he is doing. In effect you demand he spend the time dragging everyone up to his level. If he is a true genius, he will have broken things down into clear, distinct, modular lumps, that everyone else can digest now he's walked the path for them.
The article is right in saying that solution isn't taught in technical classes. It's a social and cultural issue. That probably why it blamed the genius, and not the culture.
But the gift of time comes with age. Coincidently so does the gift of wisdom. Maybe wisdom is merely a word for having had the time to gain a good understanding of many aspects of the human condition.
And ... the genius is gone.
If someone's too far ahead of everyone else in terms of skill (through their own work or talents), they should be given opportunities to find or create a team with similar skills. Just because you happened to join a team with different skill levels does not mean you're now obligated to teach everyone else. It's great when people decide to teach others when there's a large skill gap, but that should be a personal choice.
Seems like most of the points are quite shallow, and I especially have trouble with his description of genius.
He seems to conflate genius and elitist.
>geniuses understand complex things, they design complex systems that no one understands. Their loneliness makes them unique masters of their subjects, thereby nurturing their self-esteem. Knowledge remains in their heads and their presence becomes necessary for every decision.
In my experience, these are more often a pretender that comes from being the "big fish in the small pond" with self-esteem closely tied to the performance, and often nothing more than a facade to hide a underlying self-esteem problem.
Almost every person I've met that have showed "genius" qualities, (and 10 years later, shows in their track record) have been incredibly humble and spend a lot of effort explaining their thoughts, solutions and products to great length. At least at one point in their life they understood that behaving like mentioned "genius" by the author, leads to nothing and is a unproductive (pseudo-intellectual) behaviour. Even in academia.
So the authors point of "Professional > Genius" is not really a university issue. If anything should be something one experience in a university, through peer interactions. Maybe the top1% might go out without this insight, but sooner or later this will hit you. Not something one needs to focus in college, though.
He probably conflates genius and "people who call themselves genius". Like, the kind of people who come introduced by someone in the management as "big experts", who insist that you rename all Java classes so that they start with "C", and all interfaces so that they end with "Intf", and after a few months when things get difficult they leave to join another project which will better appreciate their wisdom. Sorry, bad memories...
I am not going to spend effort fighting for Gitlab. I am going to spend effort on my resume so I can go join a team with Gitlab.
Can just go find other pastures. Whether they're greener or not is a bit of a crapshoot.
Epita is not a "grande école". This term is used for public engineering schools such as Polytechnique (X), Centrale, les Mines, etc. which have very very selective entrance exams. EPITA is a private school, which is commonly seen as "pay your diploma" for people who can’t compete in the traditional elite engineering circuit.
https://fr.m.wikipedia.org/wiki/Grande_%C3%A9cole#Corps_civi...
EPITA is not a "grande ecole". Doesn't mean it's not a good school.
It's obviously not as selective as Polytechnique and their curriculum is more applied and less theoretical than other "traditional" schools, but maybe it's for the best.
I've consistently heard good things about people who graduated from that school. Actually, in my company, one of the most productive engineer is an EPITA graduate, and we do have a lot of employees coming from much more elitist schools (including ENS and X).
Engineering is Applied Science, Programming is not Applied Science.
Programming is a combination of Art/Authority/Tradition/Science.
If you talk to an engineer and you talk to a "software engineer" you will notice a huge difference in visualizing the world. An engineer talks in metrics, you won't get that detail from a software engineer.
An engineer cannot program like a Programmer can.
Source-Changed to Programming because it was my passion. Programming is not Engineering.
A programmer getting started contributing to a large existing codebase may feel more like a proofreader or editor at first. But creating an application from scratch definitely seems very similar to writing a novel.
I don’t like to call me a software engineer because then people assume I studied git flags for years. Computer Scientist would be one term but people starts to assume that’s programming. If I say Theoretical Computer Science then programmers starts to understand the subjects spent learning (I was one course away from having that as my speciality). Even so I feel quite silly being irked about it because school was a long time ago and I’ve forgotten most of it and now I do remember a lot of git flags...
Any way, I’m rambling, my point is, Software Engineering as applied science does exist and thrive, you only need to look at some award winning research papers to convince yourself of that. The problem is that people assume they are training engineering when they are coding because the allure is so strong, when what they should try to do is write a research paper.