I Regret Being a Hipster in Tech
hikhalil.comThe best applications I delivered over the last couple of years were in Symfony 2 to 5. MVC with some jQuery sprinkled on top and it did the job. Want API because the company suddenly wants an app?
No worries, add the RESTbundle and now your controllers are returning JSON or XML rather than Twig rendered html.
Around 2014-2015 I was worried that I missed the Angular or Meteor or Knockout or Ember or something..JS boat but then quickly realised my customers didn't care about JS frameworks and wanted business flows automated and solved.
Now I see NextJS or something solving problems Symfony solved 10 years ago and I just chuckle.
I read something once from an advertising executive and he said the biggest problem in that industry is that nobody knows the history of it. It's all about the latest, shiny, cool thing and nobody realizes they're repeating the mistakes of the past.
I feel like we're getting to the same point in software development. I'm seeing things presented as new that were done decades ago.
"JAMStack!" You mean, how we pretty much had to do things 20 years ago?
The author finds that spending energy on stable software ecosystem provides the psychological security to beat back the urge to study during free time.
I have a similar story of study and my escape has been to learn more about software design instead of frameworks or libraries. For example; DDD teaches how to describe problem spaces and how to talk about solutions in a way that is independent of any particular language or framework.
My learning efforts now seem better spent on building a core set of knowledge that has broader applicability.
I've found the same thing. Learning design and architecture really helps. Also, reading books from authors that have been around for a long time helps impart knowledge that isn't so ephemeral.
Learning functional programming has helped as well. Not that the language I'm learning is so much better than anything else but that it introduces me to new ways of solving problems.
I also want to invest in my writing. Good documentation is becoming more valuable to me as I age.
This is a very good tip and something developers realise with time.
> what is more boring than Rails?
modern PHP? I would contend the OP is still a hipster, but at least he's pointing out that fashionable programming is really toxic for the industry as a whole. Boring technology is good because the ordinary, standard thing is meant to be exactly that, ordinary and standard. Leave the breaking changes, feature churn, evangelising, endlessly-revised howto articles, missing/outdated documentation, etc. where it belongs -- in the "innovative" software.
Bold of you to assume missing/outdated documentation is reserved for novel stuff.
As I get more experienced
- I care less about specific tools and I'm way less dogmatic
- I'm more comfortable learning new tools quickly when it's necessary
- I realise that many new tools can be completely left out which greatly reduces the complexity of the project (you aren't always in a position to do this when you work with other people)
Noticed the same pretty early here too. My response was to categorize all tech into ephemeral implementations and more persistent concepts. The latter moves a lot slower. New fundamental ideas just don't come around as quickly as people writing their own take on them or combination of them. Some paths through SE make this easier or harder, i.e. being a front-end dev can easily have you drowning in library churn and simply without the time for any deep thoughts.
It's definitely an important factor to both notice at all and your decision in regards to it has lasting repercussions. In my experience, the majority of devs don't take the conceptual path, so I've tended to let them get excited about NewFancyLibrary and while I focus on more abstract things like architecture, modeling systems, and languages. Seems to work pretty good, since we're both happy with the arrangement.
I must have starred 1000 projects on github without ever looking at them again.
GitHub stars are basically "I may want to come back to this 2 years from now" bookmarks, right?
I can relate
As long as you know the fundamentals (data structures, algorithms, networking, and operating systems), a programming language (I recommend Python, as its incredibly versatile), and have tried to write at least _something_ mildly complicated in C or C++, you'll pick up almost anything.
I would categorize Javascript as being more versatile than Python because of browser programming.
It's definitely more versatile, but I think that's actually one of its disadvantages. It's a prototypal language, so you miss out on learning proper object-oriented programming practices. You can do functional programming, but unless you use TypeScript, the notion of strong typing and type safety isn't there. You _can_ use Node to write client-side JavaScript programs, but you're basically tying your boat onto Chromium/Chrome (because it uses V8).
This isn't to say that JavaScript isn't capable. It's plenty capable, and when combined with TypeScript, it's pretty powerful. I just think that it's not a great idea as a primary first-principles language.
Javascript has an excess of versatility, if anything. Python is the perfect prototyping language, I've found over time. And I took a really long while to board that train, coming from Perl.