It can also lead to franken-apps which have angular -> react -> vue all in one. (Pause to take a breath) I love developing, but there is a lot to learn. I only stay on top of the industry for about 6 months out of every year. It works for me.
Most devs I know have been through a whole bunch more than 2. I've had to use at least 8 over the last 10 years of dev. I didn't have to learn all of them well, but I did have to learn them.
An experienced developer typically has no problem picking up new languages/frameworks/tools/etc. There isn't much value in familiarising oneself with arbitrary and invented things, of which there are many in our industry, and they are ephemeral.
No, the real value is in knowing and understanding the discovered things. And since they are discovered and not invented, they do not change.
There's still plenty to learn, but you have more than a lifetime's worth of learning ahead of you even if you steer clear of the shiny baubles that are React/Angular(v[1..n])/Vue/Whatever.
For example, learning React itself is great because you can pretty quickly see how it cleans up your UI layer. It doesn't take that long and adds real value to your projects.
Oh, but now you need to learn all the corner-cases of NPM, and now you need a new test framework, and now you need to figure out the incantations to get webpack x.y.z outputting just the right way. Oops now hot-reloading is broken. And the chrome inspector is lagging for some reason.
None of these are interesting or fun problems to solve, but they are a pretty substantial part of getting any new technology into production.
How many people post negatively about Java in terms of productivity and cite boilerplate as a productivity-killer, despite the massive advantages a JVM stack brings?
However, I do get pissy when I have to keep learning things, and never get to exploit them, always having to learn a new thing for every single project. Having started in the web arena since before "backend" and "frontend" were even necessarily separated, I've long since abandoned the frontend. More recently, I've personally been frustrated by the local conditions that have made it so that every system I deploy has required me to learn a new configuration management system. It's not so much an "oh, I'm too tired and old to learn this" but more of a professional eyeroll, "oh, geez, gotta learn some other ephemeral technology to do this job, then gotta learn some other technology that is almost all the same but for the spelling for the next project, etc."
But web frontend development really takes the cake, at least in the domains I'm familiar with.
I don't mind learning, I even enjoy it. But if you spend all your time learning and never get to exploit, you're operating at a greatly reduced efficiency. At some point you need to stop learning and actually advance some projects.
Yes I am a veteran who has experienced this.
Design patterns are what I've taken from my experience and applied across languages. But some good patterns in one language can be an Anit-Pattern in another. Not to mention the jump from something like OO to Functional Programming which is not as easy as C -> C++ -> Java -> C#.
> An experienced developer typically has no problem picking up new languages/frameworks/tools/etc. There isn't much value in familiarising oneself with arbitrary and invented things, of which there are many in our industry, and they are ephemeral.
That lesson takes a long time to learn, if you are lucky enough to learn it at all.
I think typically that's true, but it doesn't have to be that way.
It reminds me of the idea that there is a difference between having 10 years experience, and experiencing your first year 10 times.
Also 1-2 languages... that's really on the shallow end most devs, myself included, will learn a lot more than that and each new language is much easier to pick up then the previous ones.
However as you get more experience, at least for me, you tend to stick to a handful of languages that each cover a domain.
OO, Functional, Dynamic/static variants and a language/stack that allows fast prototyping of ideas.
> If you don't love to learn and to apply the things you have learned the tech industry really isn't for you. Not everyone is in this to learn. I've been on govt contracts where a dev has been there 10-20 years and has only learned 3 languages, (and is writing the same way this year as they did 5 years ago). It is not my cup of tea (hence the past tense).
My point is, not everyone loves to learn. If you want to excel you need to constantly learn but if you get into tech and you hate to learn you'll flounder until you find a gig that will let you coast for years.
Should that be the case though?
I'm actually skeptical that a lot of the new things are actually as valuable as we think they are. We tend to allow our feelings on technology to bias our estimates on productivity. I've heard tons of developers opine at length about how some new library, language, or platform increases productivity. It usually boils down to the "niceness" of the thing and how they feel using it, or some sample project that only measures time to first deployment, and not the overall maintenance burden. None of it is ever actually measured.
Having best practice and common sense ignored by management in the name of expediency and then being blamed for the results (going over budget, building something the client doesn't want, being late on delivery)
Sexism: this is a tough topic. I worry that the people who care are not part of the problem, yet they tend to beat themselves up about it more than those who arguably should. I want more of everyone in tech, but to a large extent my ability to affect change in this area is crippled insofar as i have a job at a startup which requires lots of hours.
Hours/Appreciation: I've been a part of a few startups where employees, especially engineers, care more than they arguably should. High senses of responsibility are amazing assets for a company, but they rarely get appreciated as much as they deserve. When leaders see lagging growth or declining numbers, they try to incite urgency in the ranks. Those working the hardest often take that urgency to heart the most, which can leave them feeling really disheartened that their above-and-beyond efforts to this point have gone unrecognized.
I'll close on a positive by saying that i love the tech and startup industries. They provide so many people opportunities they wouldn't have had otherwise. Like every industry, there are problems. Picking the size and culture of the company you work at changes the landscape of those problems, so be conscious which you are sensitive to and choose accordingly. If you are happy to trade reduction in control for stability, bigger companies probably your jam, for instance.
If you open a restaurant, is the menu written by a chef or by the guy who built the oven? Are movie scripts written by the camera operators? What industry asks it's technicians to decide what to create?
I actually just quit a job because developers were running the show way too much. Nothing was ever delivered to expectations or satisfied user needs. It was extremely frustrating for me to just be throwing code over the wall.
Personally it almost seems like the whole interview process was made to continue the whole tradition of getting high SAT or GRE scores for college, this time swapping college with the FAANG companies. We basically took all the problems with a standardized test-based education system and moved it to jobs.
It was very surreal (and sad) watching the demographics become much more homogenous in the little corner store in the Castro I worked in. Our customer base was once incredibly diverse, lots of LGBTQ folks, and also lots of families. Slowly it became predominantly white and East/South Asian, young, single, and affluent. We went from seeing EBT card usage drop from about 4-5 customers a day ($200 daily average) to one (literally) every 3 and half weeks by the end of 2016.
In a similar vein: every tech company I've known whose product involves manual labor (think: delivery, cleaning, retrieving scooters, packing/receiving, food preparation, etc) treats and thinks about the workers doing the manual labor very differently than the creatives, engineers, product folks, sales leads, etc. The employees doing the manual labor are held to very different standards of productivity and timeliness, often don't get benefits, definitely don't get equity, and generally enjoy little room for advancement, and often they will be employees in all but name and rights (1099).
Some of this is understandable to a point as their work is mission critical -- if your cooks show up late constantly and your product is "Uber but for tapas", then your customer experience is going to suffer. But a tendency I've observed personally and heard from friends in those jobs is that it seems acceptable for manual workers to be shouted at, threatened, and generally be treated abusively, while the same certainly wouldn't be ok if directed at someone making salary. Meanwhile as an engineer if I have a zero day, no one says a word to me, or if they do they're very polite about it.
Maybe its not every aspect in the tech industry or maybe its changing with the next generation or maybe I just got into tech at a very impressionable age, but I'm sure I'm not the only one that was exposed to that stuff early on.
I think that's a dark side. There's some generally fucked up shit out there and someone has to be aware of it to keep it far, far away.
We will tell ourselves fun stories about how people being jerks just means they are no bullshit people who care about getting things done.
I don't think the majority of people idolize stuff that makes everyone gag or grimace in disgust. A small subset of internet trolls idolize and encourage this behavior. Tech is only associated because it also shares the loner basement dweller stereotype.
There are entire organizations designed to counteract underage pornography and sex trafficking, everyone agrees this is a terrible thing. However, it still persists despite opposition and tech is heavily involved in the process. This gets back to my point that to be in tech requires an unavoidable knowledge of the cruelty of man.
Someone's email habits pales in comparison.
- the prevalent engineering management culture is a form of psychological manipulation to turn engineers into cogs and make you feel like you are always behind and stressed. It emphasizes weekly bandaid fixes to long running problems.
- you have to work hard to be promoted, progress your career and make more money; but higher positions generally have much greater stress, workload and painful non-technical work (sales, politics)
- the bay area becomes a nightmare in middle age. the local governments love capitalizing tech income in the form of taxes or housing prices, but won't change a thing to improve the your life. leading a normal middle class life with kids in a safe area with good schools (e.g. peninsula, or Marin) will completely exhaust a 2x200k dual income. Commutes are awful. Unless you win the startup lottery, you'll be working your brains out and hardly find time to enjoy life.
Also I don't like that most companies have this kind of double-speak when they say that they are working to improve everyone lives while they simply want to automate work away, avoid rules (simply because Internet is not regulated as the rest of the economy) to make more money than in other ways.
If this were all in the service of healing the world in some way, it might be worth it. But work is feeling increasingly disconnected from genuine human problems.
This leads to developers being biased towards building and working with new things, and is a lot of the reason that we see flavor-of-the-week style platforms and libraries that add very little value.
In short, work is just like college group work. One person does 90% of the work while the others do about 10%.
Yes, the tech industry can be dehumanizing. (So can technology.) Yes, industry can be dehumanizing, as they try to wring every last cent out of you without concern for what it does to you as a human. But I think the problem runs deeper than that. It's basically a question of who we think we are.
As a society, we no longer believe in God. We believe in the physical universe - in matter and the laws of physics. That means that all we can be is matter that obeys the laws of physics. That's all we can be, because there is nothing else.
In particular, we can't have any free will or any ability to make a real choice. Matter that obeys the laws of physics doesn't choose anything - it just obeys the laws of physics. We're just machines made of atoms obeying the laws of quantm electrodynamics, which make up biochemicals obeying the laws of biochemistry, which make up neurons obeying the laws of neurology - and nothing more.
We can't love in the real sense of the word - choosing what's best for the one we love - because we can't choose anything. Even the lesser flavors of love are just a matter of biochemicals and neurons just doing their thing.
There's no real beauty in any objective sense - there's just certain things happen to hit our neurons in a certain way.
For that matter, there's no truth, either, and not just in the postmodern sense. If our brains were built by evolution, they were built to give a good enough answer fast enough. They were not built to find actual truth, even were such a thing to exist.
So in this view, free will, love, beauty, and truth - everything we thought of as making us human - are dead. We're just machines, just like the computers on our desks. As more and more people believe this (and start to act like it), it becomes more and more rare to be treated in a genuinely human way.
- People expect you to care about your job.
What I think is funny about this is that the actual expoiting slave driver bosses will accept sometimes that you do what you get paid for and then go home. They won't tell you so, but if you are able to read faces you can see them smile a little with respect if you refuse to get exploited. But some of the engineering colleagues will never accept that. 24/7 is the requirement. Even if nobody, not even them, gets anything out of it.
However, if it impacts them negatively in any way (i.e. They overpromised) you will find that respect doesn't help.
--
The term "Tech" is malleable to mean both a business vertical, or the software-related division within any a company in any business domain. Expect strategic equivocation between the two.
Any bad action or decision from the non-technical people in a "tech" company is suddenly the fault of the nerds, they'll feel the heat and are expected to fix it (even if the problem is by definition not their problem to fix). Credit flows in the opposite direction, regardless of where it belongs.
What can you do then if you love programming and don't want to be a manager? It's just terrifying.
It can be a positive motivator for continuous improvement but at the same time it can be overwhelming to feel like there is always so much to learn and you'll never learn it all.
It is a roller coaster of "I think I'm pretty good at this" to "jesus--I understand 10% of what these HN comments are talking about." It helps if I think about the alternative universe where I tried to do something with my political science minor. That usually does the trick. :-)
Psychological issues: on-call stress, unhealthy work-hours expectations, impostor syndrome, family-unfriendly policies and social environment
Cultural issues: affluenza and general entitlement, discrimination, moral posturing, people slamming your company and your product (rightly or wrongly - both hurt)
— Douglas Adams
Which could be good or bad, depending on whether you agree with the statement that ignorance is bliss. For instance, if you had asked me 5 years ago whether owning a self-driving car would be awesome, I would have answered with an enthusiastic yes. Now, as a novice-to-journeyman software engineer, if I had to own a car at all, I'd buy one made before computers became a fundamental component inside most vehicles (got my eye on a 1976 Chevy Silverado, but I digress).
Call me paranoid, but I can't help but feel it's only a matter of time before some hacker gains control of a highway full of cars and demands X # of bitcoin from their occupants or he'll drive them all off a bridge.(1) I can't un-see that image in my head, and it terrifies me. Security professionals need to be right every single time in order to be successful at their jobs. Hackers need to be right only once to be successful at theirs. It's a Sisyphean task trying to keep people physically safe in a digital age, let alone keep their privacy intact.
Which brings me to my other point- technology being used by those in power to maintain and expand that power by weakening our expectations of privacy:
-Social media platforms are being co-opted to derive insights about everyday people that even they don't know about themselves, and these insights are being used to manipulate their behavior at the voting booth, at the shopping mall, etc.(2)
-Governments are creating "social credit scores" based on how well a citizen tows the official party line, who they associate with, or the opinions they express. And these scores can affect everything from their job prospects to their ability to get a loan to their very geographic mobility.(3)
-Facial recognition technology is being deployed in traffic cameras and even in wearable technology to make it easier to pick "undesirables" out of a crowd.(4)
I don't mean to single out one single country. If this technology exists, there's a greater-than-zero chance in any country that sooner or later a leader will come along who will seek to use that technology for their own gain.
Sorry to get so dark, I don't mean to sound overly dramatic. I never thought of myself as a tinfoil-hat type of person, and I hate that I'm essentially slowly turning into one. Technology does a lot of good too, I'm just genuinely scared for the future.
Sources:
(1) -https://www.wired.com/2015/07/hackers-remotely-kill-jeep-hig...
(2) -https://www.forbes.com/sites/kashmirhill/2012/02/16/how-targ... -http://business.time.com/2012/07/31/big-data-knows-what-your... -https://www.nytimes.com/2018/03/19/technology/facebook-cambr...
(3) -https://www.wired.co.uk/article/china-social-credit -https://observer.com/2018/02/america-isnt-far-off-from-china...
(4) -https://www.wsj.com/articles/chinese-police-go-robocop-with-...