Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Getting fed up with all the stupid technology grind is not necessarily burnout though. One could call it wisdom or experience too.


Yeah always switching tools basically resets your experience to zero, so you have to do the same mistakes over and over, no wonder it's hard to stay motivated. And the "senior" jobs have zero power, so you can't stop people from making mistakes, and trying to "influence" just makes the experience even more exhausting and frustrating when people have no reason to listen to you.

I wish there was real senior roles you could grow into where your experience is actually valued, and you would gain certain power to make decisions, but then the argument is that you can't hire juniors anymore because they think it's too uncool to have a boss.

It's really rigged for shorter careers.


> I wish there was real senior roles you could grow into where your experience is actually valued, and you would gain certain power to make decisions

In my experience, the only way of getting some decision power is moving into management. Even team lead roles don't count and don't give you any ownership over the product direction.

In big tech engineers are generally trusted more, but still product ownership is dedicated to management.


the whole tech thing is changing fast, ageism is a true thing, in a scenario where most of the previous knowledge can be ignored, being a senior with 5 years of experience, 10 or 20 doesn't change much. Given that young people usually simp for the companies much more due to being naive, they have a huge preference in the hiring process.

Tech is removing the root of the knowledge, migrating from understanding the solution, to quick copy&paste from some places.


Half life of knowledge in our profession is more or less a year and a half.

This means 5 years of experience is the maximum you can accumulate.

Maybe years are not a good metric for experience.


There's a huge difference between understanding tools/libraries/frameworks/programming languages/APIs etc vs understanding how to build a system on top of any of these things that scales well, is maintainable, is easy to collaborate with others on, that can be extended quickly, that doesn't cost that much time/money to build in the first place, etc.

Yes the former changes every 1-5 years. Doing the latter well is much harder, no single tool can solve these problems, and I think years of experience really does help.


> Half life of knowledge in our profession is more or less a year and a half.

Only if you define your profession as knowing the latest front-end frameworks. In terms of concrete technical knowledge that half-life lengthens as you go down the stack. But beyond knowledge of existing tools and frameworks, there is also the understanding of systems and how they interact with the real world. This is what you need to understand to really give yourself a life-long career. It can still be hard tech (distributed systems, scalability, etc), or it can be a little softer (UX, maintainability, collaboration, etc), but these skills will give you the ability to dwarf the actual business impact of the 25 year-old who has maximized knowledge of the latest tools.


... and?

I agree that years aren't necessarily a good metric for experience, although I have decades in IT - started when I was 19 and retirement is a real thing I have to consider.

Years do give you some experience that isn't translatable to the resume: after a while, you've seen through most of the tricks that management likes to try but which the younger colleagues haven't learned. Having older folks around can spoil the surprise.

My personal theory of the roots of ageism has this as a pillar.


What kind of management tricks might someone be missing who hasn't been around too long?


They try to make you commit to additional unofficial work/projects for which you get no extra time or resources. If you fail and burn out, that's just you being a bit "overambitious", and if you succeed, they will just make if official. In that way, they can avoid owning up to any failures and only take responsibility for the successful ones. So you have to be a bit careful in casual conversations with the boss about ideas and possible improvements.


Do you mean as in you forget or that new ways to do stuff are reinvented?


The latter.

As an example I can think of:

- jQuery, Backbone/Knockout, React progression

- C++03, C++11

- Qt Widgets, Qt Quick

- SQL to NoSQL and back again

- Windows NT, 2000, Server

On the other hand, AWS Lambda seems like CGI/FastCGI all over again, but with proper automation, so I have at least one data point on 20 year cycles (to confirm we need someone who is in profession for at least 40 years).


Developer here who has been programming over 40 years (since I was a teenager in the late 1970s).

I know I am stretching things a bit here, but IBM mainframes, multi-user Forth systems, and distributed QNX systems ranging from the 1970s to the 1980s -- not to mention UNIX systems -- could all support remote procedure calls or interprocess/interapplication scripting across standard APIs to some extent (for a loose sense of process or application, especially with Forth). Even Smalltalk back then could do that to an extent but mostly from a single-user perspective in the sense that Smalltalk is mostly about message-passing objects. Essentially, you could have a system that could talk to itself or other similar systems in standard ways.

Yeah, there have been so many cycles of forgetting and reinventing with new generations of programmers. Although it is true some things improve even as sometimes other things decay for a constantly changing kaleidoscope of opportunities and risks (a bit like host/parasite arms races in evolutionary cycles).

https://en.wikipedia.org/wiki/History_of_CP/CMS

https://www.forth.com/resources/forth-programming-language/

https://en.wikipedia.org/wiki/QNX https://www.qnx.com/developers/docs/qnx_4.25_docs/tcpip50/pr...

And also from the 1960s-1970s: https://en.wikipedia.org/wiki/PLATO_%28computer_system%29 "Although PLATO was designed for computer-based education, perhaps its most enduring legacy is its place in the origins of online community. This was made possible by PLATO's groundbreaking communication and interface capabilities, features whose significance is only lately being recognized by computer historians. PLATO Notes, created by David R. Woolley in 1973, was among the world's first online message boards, and years later became the direct progenitor of Lotus Notes."

And from a different perspective, what is email but a standard way to do a remote procedure call to hopefully invoke some behavior -- even if a human may often be in the loop? https://en.wikipedia.org/wiki/History_of_email

And from the 1930s an earlier Paul Otlet invented the idea of using a standard 3x5 index card to store and transmit information (mainly metadata): https://en.wikipedia.org/wiki/Paul_Otlet "Otlet was responsible for the development of an early information retrieval tool, the "Repertoire Bibliographique Universel" (RBU) which utilized 3x5 inch index cards, used commonly in library catalogs around the world (now largely displaced by the advent of the online public access catalog (OPAC)). Otlet wrote numerous essays on how to collect and organize the world's knowledge, culminating in two books, the Traité de Documentation (1934) and Monde: Essai d'universalisme (1935)."

For another example of cycles, my current favorite UI technology is Mithril+HyperScript+Tachyons for JavaScript (although Elm is great too conceptually, and likely inspired Mithril and React in part) which is so easy to use from a developer ergonomic point of view in part by (simplifying with a very broad brush) re-inventing the OpenGL video game paradigm of redrawing everything (with behind-the-scenes VDOM optimizations) from essentially a global state tree whenever the UI is considered "dirty" because someone touched it. Mithril is so much easier to use than UI systems that are all about creating dependencies (like most Smalltalk systems) or which require storing and updating state in carefully managed components (like React) or similar constrained models. But sadly React+JSX+SCSS has so far won the mindshare war despite overall worse developer ergonomics. I hope that cycle continues to turn someday and the Mithril approach will win out (if maybe in some other implementation by then). https://github.com/pdfernhout/choose-mithril

Frankly it has been frustrating over the decades to see great ideas lose out for a time to lesser ones with better marketing or other institutional advantages or other non-technical issues (Forth vs. DOS, CPM vs. DOS, Smalltalk vs. Java, Mithril vs. React) or which better fit with the familiarity of developers with earlier systems (HyperScript vs. JSX, Lisp vs. C++). Yet, I can also still be hopeful things may improve as social dynamics and technical dynamics change over time in various ways. Like was said about JavaScript which I mainly program in now: "It is better than we deserve..."


Ad multi-user Forth, I have a question, and you may know the answer. In the Forth history on forth.com, they write:

"By the late 1980s, polyFORTH users such as NCR were supporting as many as 150 users on a single 80386-based PC."

Do you have any idea how that was done? I do not know any hardware way from that era that was able to connect 150 terminals to a single PC.

For anyone interested, there is a nice book about Paul Otlet: "Cataloging the World: Paul Otlet and the Birth of the Information Age."


That's a great question. I don't know the exact answer, but as one possibility here is a PCI (I know, probably not right bus) PC card that supports 16 serial ports: https://www.startech.com/en-us/cards-adapters/pex16s550lp

So if you had 6 of those, you could support 96 users. You could get expansion units too for the main bus: https://www.reddit.com/r/retrobattlestations/comments/dpt47y... "It takes up one ISA slot in the main PC, and then hauls the signal to the external box, where you can plug in up to 7 more cards, plus some RAM"

Which mentions: https://en.wikipedia.org/wiki/IBM_Personal_Computer_XT#Expan...

So, using 6 slots in the first box, and 6 slots in the next, and 16 port serial cards, that's in theory 192 users on RS-232 lines. Anyway, this is just a guess. I vaguely remember hearing of some actual (lesser) systems with lots of RS-232 ports, but don't recall exactly how they worked.

One thing about Forth is that it could cooperatively multitask essentially (almost) by just switching a dictionary pointer to one for each current user (along with a small terminal buffer of say 80 characters). https://groups.google.com/g/comp.lang.forth/c/Rh3stETjMls https://forth-standard.org/proposals/multi-tasking-proposal

So, that's 12K to support 150 input buffers, plus probably at least 1K for each user dictionary on top of the shared dictionary (12K + 150K = 172K total). That is probably low -- if users might want 4K each that's 600K. Throw in 28K for an extensive base system to round things off and that is 640K for a great low-latency system supporting 150 users all simultaneously having a command line, assembler, compiler, linker, and editor. And I'd guess probably a database too on a shared 10MB hard disk. And it might even feel more responsive than many modern single-user systems (granted, expectations were lower back then for what you could actually do with a computer). So, yes, "640K of memory should be enough for 150 anyones." :-)

Related: "Why Modern Computers Struggle to Match the Input Latency of an Apple IIe" https://www.extremetech.com/computing/261148-modern-computer... "Comparing the input latency of a modern PC with a system that’s 30-40 years old seems ridiculous on the face of it. Even if the computer on your desk or lap isn’t particularly new or very fast, it’s still clocked a thousand or more times faster than the cutting-edge technology of the 1980s, with multiple CPU cores, specialized decoder blocks, and support for video resolutions and detail levels on par with what science fiction of the era had dreamed up. In short, you’d think the comparison would be a one-sided blowout. In many cases, it is, but not with the winners you’d expect. ... The system with the lowest input latency — the amount of time between when you hit a key and that keystroke appears on the computer — is the Apple IIe, at 30ms ... This boils down to a single word: Complexity. For the purposes of this comparison, it doesn’t matter if you use macOS, Linux, or Windows. ..."

Thanks for the Otlet book reference! Got a copy just now: https://www.amazon.com/Cataloging-World-Otlet-Birth-Informat...


>- C++03, C++11

Seriously? Amending a trash fire with a mound of glowing embers (that can't all be extinguished because precious backwards compatibility -- e.g., `auto_ptr`) is "just reinvention"?

You can only hold that view if you don't understand C++11. :p You're more accurately complaining about "invention" (well, in the C++ world; in the Rust world, it's "C++ implemented our stuff").


> I wish there was real senior roles you could grow into where your experience is actually valued, and you would gain certain power to make decisions, but then the argument is that you can't hire juniors anymore because they think it's too uncool to have a boss.

Uhh... who are these junior people who don't like having a boss? I read the first part of this sentence and wondered why wouldn't a lower level colleague not want a senior helping them avoid potholes in the road...


> why wouldn't a lower level colleague not want a senior helping them avoid potholes in the road

Because they become much more influential in a shorter time, if they make a coup d'Etat by paving a completely new road, now they are the new road master. The old potholes are gone so they don't have to worry about those, and the new potholes are still unknown and yet to be discovered.


Is that not what architects do? Seniors with decision making authority?


Notice the fast decline in the last 20 years? Even active X was less crappy than the most well-polished actual react project, and active X was crap. Even java applets did more and in an easier way than modern frameworks and JS shit.

One simple page, with login, logout, some search, and navigation nowadays require a few plugins, router, state management, lib for requests, lib to handle cookies, lib for JWT, etc...


Rails does 95% of this out of the box. Companies need to understand how much their poor technology decisions cost them...


It's the developers not companies that make this decision. Out of boredom or trying to get promotion. I'm just so tired of seeing something that could have been one static html page but was built with NextJS+lambdas+terraform and a hundred more buzzwords.


Seeing the same trend in web/ecommerce development. The brand needs a simple site with a little bit of dynamic sprinkled through it. The agency chooses to build a full SPA with all the bells and whistles. In doing so they neglect/break basically everything else - SEO, connected martech, analytics, etc etc. Sure, some bits are a little 'faster', but then there's all sort of UX issues with parts that update too slowly and goodness knows what else. And all at a cost dramatically greater than necessary.

I'm sure some agencies do a fantastic job (those that think about the bigger 'more than just dev' picture). But on 95% of the sites I'm seeing right now the downsides far outweigh the benefits and it feels like dev for the sake of dev.


> In doing so they neglect/break basically everything else - SEO, connected martech, analytics, etc etc.

This is exactly how it looked like when Flash was a popular choice for making web interfaces. We've fought a long, hard battle to finally get back to indexable, interoperable, standards-based HTML, CSS, and JS. It was fine for a while, then Angular happened. Fast-forward a decade and we're right back when we started. Amazing.


> It's the developers not companies that make this decision.

I don't see developers making these decisions anymore, not in large web-based tech companies.

My experience has been that management controls a lot of these decisions and/or steers them in the direction that they want them to go. And the more power a manager holds over a team or department, the more influence they can exert to get their way.

As an example, I'm hearing from a colleague in another department that they're being told by an engineering SVP that all new backend services are to be written in NodeJS. These are .NET developers. How does this guy who is 3 layers above these engineers intend to enforce this "rule?" The implication is you can do this or get fired, I guess, so it's happening regardless of how stupid it is. This was all explained to me when I noticed that I had gotten 3 "so long and thanks for all the fish" emails from long-timers in that department.


As someone who recently returned to Rails after 7 years of searching for a better option, I totally agree. For the types of problems I solve (not FAANG problems), Rails is the by far the most productive option. Not perfect, mind you, but better than anything else I've run across.


Or Django. Or Laravel.


> Rails does 95% of this out of the box

This is always my thoughts when I start a project with something else .


I feel like I am one of the few that switched from angular to react in 2014 and while enjoying how "simple" it was started noticing how much people liked building complexity in it.

Now I have used react at a few different sized companies, taught it to some students and completely stopped using it for personal projects. It just seems like too much added complexity for almost every situation and people just see everything as a SPA now.


I'm a full stack engineer that does lots of react in my day job. I now use jquery in all my side projects because I want to get them done instead of spending lots of time getting the project setup.

Nothing beats adding a script tag in the footer and being done with project setup.


That's why I like Vue. It's mix of the two with a synchronized ecosystem for the core libs and a simple API.

Vue 3 kinda tanked all that though.


Can you describe the vue 3 part more? As an outsider it just looks for me they just added another api with a different style, so people can choose what they like.


The official router and store were not ready when they released Vue 3, even kind of still not, and the store is moving to a new lib.

Also there's now two competing APIs. The new one that they want you to use, and the old one that people like better.

Also a lot of time your objects are actually proxies, which I'm sure there's good reason for but that's kind of annoying (personal opinion).


I dislike dealing with proxy objects because you have to serialize and unserialize to turn it into what it always was.


What do you think of Svelte? I haven’t used Vue since I discovered Svelte but I’m always curious about peoples perspectives and try to keep my finger on the pulse. The new Nuxt looks pretty awesome! Love the api design. I’m hoping Sveltekit steals a few ideas from it before 1.0.


I looked at it the other day after the discussion thread about JS frameworks, but bounced when I saw ".svelte" files.

I accept (demand, really) TypeScript but I've become allergic to any attempt to add much more on top of JS than that. I can just see the next poor bastard coming along in a short year or two and going "oh god, WTF is a '.svelte' file? What did my piece of shit predecessor fall for?"

I'm looking into Vue today. Possibly I'll settle on something even simpler.

React's certainly out, and thank god the mood is finally shifting enough that I can abandon it without harming my career (much). Slow, janky, and god they've made some weird choices with it in the last few years. It was always a bit heavy, but it felt like it had some degree of elegance to it before that—if only in parts of the API itself, not the implementation.

[EDIT] Oh good lord, '.vue'. Don't any of these just use normal-ass code? Sigh.


Things like .vue and .svelte are really more like hints to your Editor for which linter to use, which code highlighting etc. Also your build chain I guess.

I'll admit it's annoying but it's still just "normal-ass code". Vue, for instance, is just html, JavaScript and css. A .vue file is just all three in one file with special syntax to indicate each section.

At least, last I looked at vue it was.


That's true of Vue. Svelte has a compiler which changes and augments your code with additional code for it's state management system. So it's definitely not normal code.


I generally agree with your don't "add much more on top of JS" sentiment, but I like .vue files. It's "just" HTML, CSS, and JS in one file, which I find convenient for components. But it's optional--you're free to use three separate files.


Seems interesting but quite young. When I looked it up it there was discussion about Sapper vs Sveltekit etc and quite frankly I can't stand that kind of thing anymore, it just leads to confusion, a lot of Googling and SO, partial or wrong docs etc and in the end a LOT of lost time and energy.

And I say that as someone who is currently refactoring a Vue 3 app from JS/VueX to TypeScript/Pinia ... oh the irony.


that's why i started using Svelte[1] on my personal projects... simplicity ( and the godsend cross-compatibility between browsers/desktop/mobile )

[1] https://svelte.dev/


I'd like to see it that way for my own situation. But I have no alternatives for making decent money. It's not wise to be a slacker without a contingency plan. I'm just dumb.


Another level of wisdom is to realize this is a form of job security. Put in the 8 hours, whatever the grind.

If that's good enough for you. Else there seems to be suggestions in https://news.ycombinator.com/item?id=31285969 lol


We switched to using Elm for our front end. One of the complaints about Elm is doesn't get upgrades very often (like years in between).

This has been a feature for us – we don't need to be upgrading or fixing for upgrades or learning new "things". We focus on building with what we have and know and it works.


The things I was doing in my 20s made me feel as though I was changing the world, and I had an impressive project list.

In my 40s, I can hardly stand certain aspects of the tech space... and keeping motivation is all about things I can make, but not make for others.

Find something that sparks your imagination. Skill atrophy is my main thing. Mitigating skill atrophy on legacy skillsets, sub-sets of skills you have used for 20 years, but have no passion for any longer is tough as HELL -- and it makes me feel I can't learn... but the fact is I fail to learn anything I dont have a spark of passion about.

And I am not talking that romantic passion that some billionaire founder is taking about -- I am talking about *enough* passion that your ADHD can be quelled, and that small distractional things dont have undue heavy draw against your attention (passion)


I do think this is true - if you don't see the advantages of learning a new tool then you won't feel motivation or energy to do so - but I can also understand that it has to be done because of career reasons.

I mean if you were all in on e.g. Backbone.js or Dojo ten+ years ago, you're kinda running behind now and it'll get harder and harder to find a gratifying job.

I can see it happening for Vue vs React as well.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: