109 karma · joined July 19, 2018
This is how science works, humanity learns more and progresses. Just because something is complex to you today doesn't mean it will still be complex to you 50 years from now.
Would be pointless for me to try to imagine this, I'm not a dog and my physiology is quite different. Humans have one of the weirdest diets out there because of our formative years as a species and need a varied diet. Some species like the Koala eat 1 thing for 99% of their diet and any major type of variety would cause them severe health issues.
With better studies than our current nutrition sciences (and ethics restrictions) can produce we could find out exactly the nutrients that a human needs every single day to be at optimal health and could package it up as a dry pellet food substance. You would be perfectly healthy eating such thing, many people would avoid it though because of the monotony of it. Once again though this can't be extrapolated to dogs, my dog fought me tooth and nail yesterday in order to try and eat some random dog diarrhea we came across on our walk; our eating habits and preferences as a species are just very different.
We also fought hard at work over the course of a year or two with management to change up how we account team capacity. It's now a max of 6h expected work per day on project work. There's simply not enough time for working any more in addition to all the various random emails, slack notifications, restroom breaks, and general cubicle chatter that's part of regular office work.
Seriously though, there's millions of people here who have been left out of the exclusive and rich club. The UN repeatedly dings the USA for the standard of living of many of our citizens and our terrible legal/justice system. So much of our government meant to help those people is either deliberately underfunded or mismanaged and can use all the help it can get.
How the heck can we figure out how to help government abroad when we can't even get our own right?
Unfortunately as this happens a higher number of deliverables will be missed and more bugs will arise alerting management that they somehow have become a less productive shop. This is where you can readily identify bad engineering management. Instead of tackling the root of the problem many places double down by increasing pressure to deliver and by relaxing standards as to who they hire. Once this happens you've unfortunately started the process of being a sinking ship. This can be righted in time depending on how large the company's coffers or how tight of a hold they have on the market but growth generally will have peaked by this point.
What management should have done (or needs to do ASAP) was to start trimming poor performing engineers. Yes firing people is hard, yes it sucks getting rid of workers when you're already behind schedule. But any good engineers you manage to trick into joining this dysfunctional team will likely leave within the first few months anyways. Relaxing pressure to deliver WHILE fixing the poor performers issue can also help slow down the rate you're losing good performers at least for a short period.
I've seen this at many many places. Currently still in one of these situations because they keep throwing more money at me to stay but even with that I've started looking again because the situation is not helping my career growth as much as I wish.
edit: IpV8's checklist is also really important to look for and lack of that could cause the start of tipping the balance as mentioned above.
I'd say focus as much as you can with your resume on highlighting those current library/framework/patterns that you're passionate about. Those are often times the things that recruiters will look for as well (in addition to the basics).
I guess the big pain point then is actually having management that doesn't support tech debt cleanup at any appropriate level. Without support, budgeting you'll end up at a point where even as a skilled developer your choices are to a) say to hell with your managers guidance and blow the whole iteration refactoring just so you can even start on the right footing with a new module, or b) write code that isn't as reusable, maintainable, or performant.
Engineering is stressful enough. No need to drive people away faster than necessary. Private criticizing can be delivered directly to offending person, especially if you're a team lead or manager, or it can be delivered to your manager. If it's significant enough to result in actionable items then the situation will be handled one way or another. Meanwhile if the person is capable of resolving the issue after your private criticizing they'll often respect your decision to keep things professional. Heck, sometimes there's an entire bag of worms under the surface like serious family problems they're going through outside of work at that same time that explains their behavior, something you almost certainly wouldn't find out with public criticizing.
I've seen some significant turn arounds from previous team members after some pointed private talks. Alternatively, I've seen people dig in their heals and become a problem team member after improperly timed public shamings.
Also check out anything Haskell/Eta/OCaml for server side (and probably also a bit of a steep learning curve) or if you're currently a front end developer CHECK OUT ELM NOWWWWWW. Core beginner concepts to youtube would be currying, higher order functions, and composition. Monads will come once you've mastered map/flatMap/reduce/fold chaining.
Good baking books will actually get a lot closer to having specifics in them. They can do this however because a lot of the ingredients that are used in baking are rated based off of various levels of one or more of the chemicals that will significantly affect the result of your baked product (ash level, acidity, sugar content).