3 ms·
This is a scarily similar story of how I ended up in F#. I'd reached the peak of C#. Every possible best pattern and practice (including the ones that were stil
by nbevans 8y ago
This is a scarily similar story of how I ended up in F#. I'd reached the peak of C#. Every possible best pattern and practice (including the ones that were still a few years away) I'd already done them and perfected them. I was so high up on the peak of the C# mountain that recruiters could no longer understand me, employers could no longer understand me, co-workers could no longer understand me. I could no longer function on projects and teams this way. I ended up doing almost nothing except "R&D" for the teams I worked. None of my R&D ended up in the product. I wrote specs, whitepapers, all sorts, something to try to contribute. Nothing seemed worth the hassle. Toward the end probably a couple months had passed where I'd made no commits, and had barely typed a single letter into Visual Studio. I became an imposter and a pretender - my self confidence took a huge knock. I quit and went back to what I knew best. Building my own businesses with a trusted old business partner. Some of the R&D I did in that last team was in F# and I chose to use F# in my new venture. I directly attribute F# as having had literally pulled me out and saved me from that year of burnout. And made me completely unlearn everything that was wrong about software development and relearn it the right way. The transformation took about 4 months and I'm now 5 years since that time and I never look back. The thought of going back to C# and all that crap ... I think I would rather earn money smuggling drugs or something.
I think the lesson is: If you get burnt out, try changing your tooling for something more modern. If it ever happens to me again - I will try to have the clarity of mind to do it again.
- mr_overalls 8y ago> I'd already done them and perfected them. I was so high up on the peak of the C# mountain that recruiters could no longer understand me, employers could no longer understand me, co-workers could no longer understand me. I could no longer function on projects and teams this way. Object-oriented programming has its drawbacks, of course. But your monologue here is a bit grandiose. It reminds me of the narrator in Zen and the Art of Motorcycle Maintenance as he reached the pinnacle of his insight into metaphysical Quality. He was actually just going mad, of course. Maybe you had communication difficulties with other people because you were having a severe case of burnout that verged on a nervous breakdown? In any case, I'm glad you're feeling better.
- nbevans 8y ago"Object-oriented programming has its drawbacks, of course." They say it takes 10 years to become an expert in anything. In my case, with OOP, I did it in 6. I would highly advise to anyone that once you become expert level in anything - don't hang around for long: make sure you've got the next meal ready for your brain as it will hate you if you haven't. Was not intentionally grandiose. The intention was to avoid superfluous detail given the context. Thanks
- yathern 8y ago> They say it takes 10 years to become an expert in anything. In my case, with OOP, I did it in 6. I'll take it on good faith that you are indeed an expert, and are a gifted learner. Great! I'm jealous :) But you might want to consider the way you talk about yourself to other people. Even from a selfish perspective, becoming an expert in communication reaps many rewards - and the right level of humility is very important in communication. Both your comments come off as very egotistical, although I'm sure that wasn't your intention.
- nbevans 8y agoHi yatherm. Thanks for the comments. It is possible, after reading the OP article and being caught up in the shock moment of "this guy's story is identical to mine!" that I commented in a bit too much of a "Alcoholic's Anonymous" style that is inappropriate for HN. Ah well.
- deleted 8y ago[deleted]
- BucketSort 8y agoI mastered it in just one day after realizing object oriented programs are just objects in the category of medial magmas.
- yesenadam 8y agoSlightly off-topic: Did you read Pirsig's sequel, Lila? He goes into the structure, levels, types of Quality in great detail, and it makes a lot of sense. There's a lot about anthropology, and about society vs individual, static vs dynamic etc. It's pretty great too, I've read it a few times, doesn't have that over-heated feel of ZAMM.
- dagoat 8y ago> Every possible best pattern and practice (including the ones that were still a few years away) I'd already done them and perfected them. Care to provide examples of the patterns? Genuinely curious > I was so high up on the peak of the C# mountain that recruiters could no longer understand me, employers could no longer understand me, co-workers could no longer understand me What sort of things were you saying that led to people not understanding you? I can't imagine knowing a language so well that others can no longer understand me
- Jach 8y agoNot the OP but I can maybe guess at some of the examples. In Java (and I assume C#) because you don't have a powerful enough object system, you end up having to write contorted code often making extensive use of various "design patterns" in order to support testability, the SOLID principles, not having to rewrite a bunch of existing code, and so on. So much of that melts away when you instead write in a FP style, or use a more powerful OO system (like CLOS) or use a dynamic language. I've worked with people who couldn't describe the most commonly used patterns in Java (Visitor for instance) or techniques (e.g. "Dependency Injection") but also people who seem to think everything should be expressed with them, including those that are obsoleted by modern Java features.