I wonder what they want with this company. I've looked at it from time to time, and it's mostly people complaining about their bad experiences or fresh grads comparing offers and perks from Accenture vs. KPMG vs. IBM for entry-level management consulting positions.
Maybe someone convinced them that they can mine the data with AI the way Microsoft is trying to do with LinkedIn?
Honestly, if someone can solve the transparency problem that happens when finding a new job, I'd pay a billion dollars for the company. It's infuriating applying for positions and hearing nothing positive or negative back, applying for fake positions, not getting your profile past the Taleo/HR filters and into the pile that the person with an actual clue reviews, etc. etc. etc. Companies must miss so many good potential hires just because of all the stupid filtering, and with all the BS artists in IT these days I can see why they do it, but it's frustrating that it's still so hard to find a job when you actually need one.
I'm sure a lot of people think that getting rid of all the overhead in every industry is a good idea...everything will be super-cheap, no one will pay for expensive middlemen in a transaction, etc. What I think people don't realize is that this overhead they want to get rid of is what's actually holding the economy together.
Especially in banking, both front- and back-office workers make at least a decent middle-class salary, and some make much more than that. If the pace of worker replacement is too fast, all the consumption these workers use their pay for will be removed from the system over a very short time. These workers won't pay taxes, won't buy houses and cars, won't have children, etc. Corporate office work used to be a secure alternative to factory work or the service industries...but it looks like we're in for a big change. What I wonder is what these workers will end up doing...I worked in banking IT earlier in my career and there are legions of people essentially doing manual paperwork processing, even though the paper is computer data these days.
All I'm saying is that if we want AI to take over, we're going to have to rip down the entire work-to-consume economic model, and that is not going away without a major fight.
Maybe there would be fewer bad hamster wheel owners if the hamsters had a way to push back. If the hamster was a PE, and the penalty for signing off on something they were forced to rush through was "you'll never work in the industry again and will be sued out of existence," the level of cowboy development would go way down.
The fact that whole branches of software development can go in and out of fashion in 6-month cycles is a bug, not a feature. No one will support this because most techies think regulations are evil, but I think it's time to grow up as a profession, build stuff around a known-good core and innovate around the edges unless there's a truly mind-blowingly better way of doing something.
This is exactly correct. There's no money in fixing security problems, insurance will pay any damages, and executives are shielded from any liability anyway. And all they have to do is give consumers a year of free "credit monitoring."
Until we start treating software engineering the way we treat civil engineering, and hold authors of software liable for their creations, nothing will change. Companies are protected anyway, and software guys can just walk down the street into a new job like nothing ever happened.
One problem is that companies continue to run software that was built as a one-off by some consulting company, offshore vendor or similar. They either don't exist anymore, or want millions to even look at the code again.Those packages need these out-of-date frameworks and other software as dependencies, and the company doesn't have the expertise in-house to know whether a patch will break something. In my line of work, the main offender is awful Java thick client applications, and these often require a _specific_ point release of some horribly outdated JRE/JDK. But JEE web apps are even worse in this regard...and despite the hype around app-of-the-month, there are TONS of these systems from the 2000s floating around in big companies.
Consulting companies should be required to at least hand over the source code for software they produce if they're not interested in maintaining it long-term as an actual product. And if a company is relying on some system as a dependency, they shouldn't allow their vendors to walk away without fully understanding what they've left running on their systems.
China is showing one of the positives that having tight control over the economy can have. If something needs to be done, it's done and there is zero debate. There's also no begging educational institutions and private companies to please comply...it's a top-down order.
Unless there was another world war at hand, something like this or any of the other investments China has made in the recent past could never happen in the US. There's too much infighting and zero initiative to get something massive done.
Like it or not, the Chinese system does have the ability to make massive changes with very little friction. When the financial crisis hit in 2008, the Chinese plowed money into infrastructure to basically offset the recession. At an even more macro level, they're using their control to effectively manufacture a middle class by moving people from the countryside to cities. These are things that we'd never get done in the US even if there were an imminent need.
Yes, real estate agents are kind of a drag on the whole process, and I don't know what's going to happen to them. Most are adapting by charging lower commissions. But it's not like you can go on Zillow or Redfin and click "Add to Cart" on a house you like. They really did provide a service up until MLS was put online...they were the ones with the keys and the books of Polaroids showing their inventories, and you really couldn't go house hunting without talking to one.
Real estate transactions in general are very expensive because you have so many people involved at every phase (the agents, the buyers, the sellers, the title search company, the mortgage company, etc.) But, I'm not convinced that suddenly pulling all middlemen form the economy and causing double-digit unemployment overnight is the answer either.
The problem with pointless jobs is that we have the entire ecosystem built around earning and consuming. This isn't going to go away without a fight. And when you consider that most technical jobs are going to be automated, pointless work will be all that's left pretty soon.
I've worked in big companies for most of my career, and there are plenty of jobs like this. Not, "Oh, you don't see everything I do behind the scenes" type jobs, but jobs that could be automated with nearly zero effort. The techies among us will jump on writing whatever shell script is needed, but I don't think automating everything is a good idea.
"Luddite!" you cry...not exactly. Here's the problem...large companies provide semi-stable employment and are almost the only source of stable employment outside of government. Thousands of graduates come out of Big State University with some generic management, psychology or communications degree they partied their way through. If all the pointless jobs go away, there's nowhere to employ these people, and they won't buy houses, buy cars, go on vacations, pay property taxes, have children, and basically keep the consumer economy going.
tl;dr: Unless you want to break the work-for-money-so-you-can-consume cycle, think of the C students.:-)
We all know that JavaScript is a pretty messy language to work with unless you're using some sort of framework. Part of that is that it's been pushed to do way more than it ever was designed to do and is hyper-complex as a result.
I guess my question is how far up the abstraction tower goes. Why would developers pull hundreds of libraries from dozens of sources just to build a simple program? And more importantly, why would you dynamically pull these resources instead of building against a known-good set, and only update one of your dependencies when you've tested it completely?
I know software is all about move-fast-and-break-things these days, but the "trust the Internet implicitly for all my source packages" is one thing I can't get my head around.
Lots of people in this field, especially in the SV startup scene, may not have had experience with Dotcom Bubble 1.0. However, I believe we're finally starting to see signs of the peak for Bubble 2.0. During 1.0, it was all about getting big quickly, launch parties, flashy advertising and IPOs. 2.0 seems to be all about disruption and dominating the market segment you're in without having to sell yourself to the public. This explains the relentless drive to build businesses on top of other companies' APIs. Problem is, when that company stops making the data you rely on available for free (or cheap,) the party's over and your business model is toast. Could you imagine what would happen if Google pulled access to its maps API or started charging?
Bubble 2.0 is probably going to hang in there a lot longer than 1.0. The Cloud means startups don't have to raise millions more to build data centers, and there's still the allure of getting access to billions more users' data in one way or another so startups will be able to get VC money for a while. Since we're not selling pets.com stock to individual investors there probably won't be a dotcom crash. But I think the same things will happen with tech that came out of this bubble...we'll pick up the really useful stuff and continue using it in a less frenetic manner.
I'm one of those rare people in the technology field who feel that we should try to be more inclusive. I've worked with a lot of people in the past who treat IT as their own little club and don't want to deal with newbie questions. And let's face it; our field doesn't exactly attract gregarious extroverts with amazing people skills the way sales or marketing does. Some interactions I've had over the years make me wonder how certain people get through the non-IT parts of their lives. The reality is that we attract a lot of very smart, opinionated people who don't have much of a filter. It's not everyone, but the egregious examples overshadow everyone else.
An example of this is Linus Torvalds and the Linux kernel developer crowd. Linus is famous for having zero filter whatsoever...usually he isn't wrong, but he certainly has no problem telling people how wrong they are and how right he is. Obviously he's a very smart guy and heads up a critical open source project, but you can be smart and not-a-jerk at the same time.
One other good example is trying to get into the DevOps space from the Ops side. There are tons of examples where people go out of their way to explain things to newcomers and I've been thankful for those while learning. On the other hand, you also encounter the developer types who feel that Ops is encroaching on their club. Sometimes, trying to get a worked example of how to do something in one of the 25,000 tools on offer today is like pulling teeth. I've gotten everything from "RTFM" to "You couldn't possibly understand this, don't bother." I'm one of those weird people who isn't a knowledge-hoarder and will teach anyone who is willing to learn something I know. Butting up against attitude like that is a very good way to discourage anyone from even trying to improve their lot in life.
Applying money to any problem, regardless of size, solves it. The question is how willing we are to do it and to what levels.
The US was able to find money to fund a whatever-it-takes crash program to build the atomic bomb in the 1940s. It was able to build the Interstate highway system in the 50s. It was able to do another crash program to land on the moon in 1969. No one ever complained about the cost of these. But education seems to be one of these things we just don't want to fund properly. Unfortunately, the opposition comes from all sides...the upper middle class homeowners complain about taxes, the super-rich want their kids in the elite private schools and want to defund public schools, and the religious people want their kids in private religious schools, and also want to defund the public schools so their choice would be even clearer.
Pay teachers like CEOs, select them carefully, fund the public schools the same way the elite private schools are, and the problem will disappear.
This happens in IT contracting too. I've avoided it for that reason, but contractors I've worked with love the higher pay and freedom. The huge downside is the feast-or-famine nature, and constantly having to hustle your next job. If you can't sell, it doesn't matter how much of a rockstar you are.
A lot of people like to dismiss a college education as too abstract, overly intellectual, etc. and it can be. But, skilled trades have a tendency to have a pay cap and less room for upward mobility once you hit it. In fact, unless you're in a strong-union state and are working for union employers, there's bound to be downward pressure on wages from people who are willing to work for less. Unionized trade jobs are the only ones where you have a chance at a full career's worth of compensation progression.
Both a college degree and a trip through trade school/apprenticeship are lottery tickets for life. You can only buy one, hoping it will pay off, and it doesn't for everyone. Some plumbers/electricians make more than I do and own a business that allows them way more financial freedom than I have. Some are stuck in the equivalent of gig-economy world doing handyman-type jobs. And, some people graduate from college and end up doing very well...while others either drop out or don't pick up any marketable skills along the way. (If you really win the education lottery and get into an Ivy League school, there are opportunities that just aren't available to anyone else such as investment banking and management consulting...and once you're in that club you can't really fail too badly.)
Given the choice, I'd still choose to do a bachelors' degree. Unless you're going into academics, anything more is too much. I barely use any of my formal education in my job (BS in chemistry, and i do systems engineering work.) But it did get me in the door, and it's essentially the minimum standard now for all non-trade jobs. One thing I do think post-secondary education helps with is maturing kids to a certain degree. A stint in the military would do this too, and maybe a good apprenticeship program would. But, having a bridge from childhood to adulthood where you're allowed to make a few stupid mistakes that aren't life-altering can be a good thing.
It taps into the current trend of portraying "creators" in the media. In the IT/Dev space, it's usually the stereotypical web startup hipster with the hemp satchel, ironic mustache, Moleskine notebook and MacBook Pro with Github and Slack stickers on it.
Microsoft is trying to replace those Macbooks with Surfaces, so slapping the label "Creators' Update" on Windows is seen as one way to do it. Almost all web developers I've seen are Mac users though, so I think it's just for effect.
The interesting thing about Windows is that they used to have to convince people to buy the new versions every few years. Now that it's a "service" that you just buy once with a computer (Home and Pro) or pay monthly for the rest of your life (Enterprise/Education), there's less marketing magic around new releases. No more people lining up at computer stores at midnight, flashy launch parties, etc.
In an environment like that, there's no reason to promote a new version, so why spend money on a marketing campaign? Just reuse the one from last year. It would be great if they plowed the money they saved by firing the marketing team into product engineering, but that just doesn't happen anywhere.
I'm involved in a big cloudification project and there is absolutely pressure to use consumer-grade identity services instead of your own. It's part of the massive responsibility offload that's happening. "Oh, the cloud will do that." "Oh, this SaaS product Just Works (TM)". While this is true in many cases, I highly doubt an IT department in any sort of established company is going to want Facebook to be the _default_ identity provider. I can see a use case where you have essentially "throwaway" users who work for a week or so then disappear...but if your workers generate documents and need access to shared resources, do you really want Facebook or Google knowing what they do with their IDs when logged on?
As it is now, Amazon, Google, Facebook and Microsoft may very well end up the 4 biggest "keepers of identity" at least in the consumer space. Tech has a way of running in cycles though. I saw a very interesting article a while back that wrote out what I was thinking...everyone is assumed to be a "digital native" and tech genius just because they grew up with the Internet and the smartphone, but the reality is that people actually know way less than they had to in the past. If something isn't more than a few taps and swipes away, most born-on-the-smartphone users are lost.
Microsoft doesn't care what you run anymore...as long as you run it on their hardware and pay them every month for the rest of your life. Their strategy is to get everyone possible onto a monthly subscription, and Office 365 is the first step for most organizations. Once you have that, then you take over the company's identity management with Azure AD, first with cloud-only IDs, then synchronization and then with full-blown ADFS. This gives them a very solid foothold to move the company's computing resources into Azure, giving Microsoft the lock-in they want.
It's actually a good strategy...since they can't sell boxed products anymore, they're trying to control the entire market by controlling where you run stuff, not what you run on it. I'm guessing there might even be a day where they decide to drop Windows once the revenues from Azure and Office 365 get high enough.
Companies are addicted to cheap outsourced labor...there's no way this wasn't drafted without consulting them first. It sounds like the sponsoring companies are just going to have to jump through another hoop to show that there's still a relationship with the company. And you can bet there is...Tata, Infosys and the like use their H-1B slots to move people on-site to their customers. These people either do the work that absolutely can't be done offshore or are interfaces between what's left of the on-site team and the offshore IT farm.
Immigration law is full of all sorts of exceptions and gray areas, and I'm sure a lot of those were purchased by lobbyists. So, while it appears to be a good step in the right direction, it's not an outright ban and probably won't make much difference.
What jobs are you trying to recruit for? And more importantly, how much are you willing to pay?
The problem is that all employers are engaged in a race to the bottom, and every one of them is afraid to stop trying to strip every single cost out of their business. I see this in IT all the time -- regardless of how much more it costs in terms of change orders and lost productivity, businesses are falling all over themselves to offshore their IT departments. The main reason is that all their competitors are doing it and on the golf course it seems like a quick win.
Businesses have to realize that labor is not a free resource and that there is an advantage to paying more for better workers. Well-paid workers will stick around, work harder and be more engaged. Again from my world, most IT contractors I've dealt with just don't care about their jobs because they know they'll be somewhere else 3 or 6 months later.
The problem with making it a requirement is that you really can't get into any sort of detail without losing half the class. I've been systems-engineering my way through life for 20+ years, and I'd only consider myself slightly above a code monkey skills-wise. It's clear that some sort of exposure to logical thinking, troubleshooting, etc. helps. But, even with templating I would find it very difficult to open up Visual Studio and crank out a full-stack web application that I'd dare show off to anyone. I can automate stuff, glue things together with PowerShell, etc...but actual development requires real skill, or 100 hour weeks running in circles until you get it right.
Also, my example is one of someone who is very interested in computers and systems engineering. Imagine trying to teach whatever they can call "computer science" to a disinterested bunch of high school students. Same goes for requiring a foreign language...you can't get too far down into details or most of the students won't be able to pass the class.
I don't know what to think about what makes a good education before. Most of the jobs people are doing now are going to be gone, and SW development is almost sure to be done automatically through abstraction or entirely in India very soon. Maybe all those liberal arts majors we used to laugh at are going to have the last laugh after all...
Definitely, most of the decrease in employment is due to automation and aging population. On the automation front, think of how many _thousands_ of clerical workers had to be employed at large corporations in the 1950s. There was a massive corporate "clean out" in the early to mid 1990s, and it has only continued since then. For one of my first IT jobs, I was a contractor for a large life insurer in NYC. Their headquarters took up 2 Manhattan blocks, was filled to capacity a few years before I showed up, and was only one of several offices around the country. When I got there, whole floors were empty.
Another thing that might explain the loss is the trend for companies to fire people in their late 40s/early 50s. I'm 43 and know it's going to be a hard road if I end up on the wrong end of a layoff a few years from now. A lot of these "end-career" professionals are stuck in limbo before the age where they're allowed to draw their retirement savings penalty-free (59.5.) Most aren't going to get hired for anything like the job they had before, and I think a lot of them are going on SS disability. How else would they survive with no income? Being on disability means you're not working, because you can't do that legally.
The company I work for is _finally_ starting to take back work from offshore companies after realizing they were being left with an unmaintainable mess...and this took almost 10 years. Lots more companies are still addicted to cheap coders. That's where all the onshore junior developer jobs went when it comes to custom applications and software.
The other thing that's happening is software as a service applications that are good enough out of the box to not need as much dev work done on them Things like SharePoint Online and Salesforce.com are good examples of this...plus every single corporate niche application (travel, scheduling, etc.) are being targeted. The best a junior developer can do is get hired at one of those companies, but they tend to use offshoring or other cheap soiurces of labor.
It's not a good thing, because we really do need a bunch of new recruits in the pipeline who are capable of learning and don't mind spending time gaining experience. Companies want people to jump from freshly-printed CS degree to rockstar full-stack 10x developer, and it's just not possible without real-world, low-level experience.
Welcome to my world in infrastructure-land. Everyone wants to be seen as using the absolute latest DevOps and container tooling and it's a total treadmill run keeping up. The latest is serverless...IFTTT but in the cloud!
I know that it was meant to be tongue-in-cheek, but that whole "Oh yeah, Platform X is dead, that's from 2014. We're using CloudCheetah this year!"
Ironically, the hardest thing I can think of for a _total_ newbie is drilling down through all the layers of abstraction to show what actually happens. I'm in IT and infrastructure-as-code is the same way. We have a nice easy way to program things, but it's so divorced from something that actually happens. Everything new lately has been a layer on top of another layer with the hope that it will make things easier.
An example from my world is Azure Resource Manager. At the core, it's a RESTful API that takes in JSON configuration files and tells Microsoft's cloud back-end what needs to be configured. ARM is almost a language in its own right, and it's nearly impossible to write configuration files without some guidance. So, someone at Microsoft wrote a Node.js wrapper on top of ARM that I found out about the other day (Azure Building Blocks.) So, you have an ARM framework, written in a JavaScript framework, sending commands via insert-your-language's SDK to a RESTful interface that hides unfathomable levels of complexity behind it!
The push to wrapperize everything is going to get to a point where some levels of complexity are permanently locked away. People who are totally new and starting out at Node.js or a similar framework will be able to make things work, but they won't know _how_ they work.
I'll make one "get off my lawn" statement -- we've overloaded HTTPS to perform way more duties than it was ever designed to do, and chosen to write applications in browsers running JavaScript, which was also never meant to do anything nearly as complex as it does. This is why you have the endless parade of new frameworks, wrappers, etc.
I wonder what they want with this company. I've looked at it from time to time, and it's mostly people complaining about their bad experiences or fresh grads comparing offers and perks from Accenture vs. KPMG vs. IBM for entry-level management consulting positions.
Maybe someone convinced them that they can mine the data with AI the way Microsoft is trying to do with LinkedIn?
Honestly, if someone can solve the transparency problem that happens when finding a new job, I'd pay a billion dollars for the company. It's infuriating applying for positions and hearing nothing positive or negative back, applying for fake positions, not getting your profile past the Taleo/HR filters and into the pile that the person with an actual clue reviews, etc. etc. etc. Companies must miss so many good potential hires just because of all the stupid filtering, and with all the BS artists in IT these days I can see why they do it, but it's frustrating that it's still so hard to find a job when you actually need one.
I'm sure a lot of people think that getting rid of all the overhead in every industry is a good idea...everything will be super-cheap, no one will pay for expensive middlemen in a transaction, etc. What I think people don't realize is that this overhead they want to get rid of is what's actually holding the economy together.
Especially in banking, both front- and back-office workers make at least a decent middle-class salary, and some make much more than that. If the pace of worker replacement is too fast, all the consumption these workers use their pay for will be removed from the system over a very short time. These workers won't pay taxes, won't buy houses and cars, won't have children, etc. Corporate office work used to be a secure alternative to factory work or the service industries...but it looks like we're in for a big change. What I wonder is what these workers will end up doing...I worked in banking IT earlier in my career and there are legions of people essentially doing manual paperwork processing, even though the paper is computer data these days.
All I'm saying is that if we want AI to take over, we're going to have to rip down the entire work-to-consume economic model, and that is not going away without a major fight.
Maybe there would be fewer bad hamster wheel owners if the hamsters had a way to push back. If the hamster was a PE, and the penalty for signing off on something they were forced to rush through was "you'll never work in the industry again and will be sued out of existence," the level of cowboy development would go way down.
The fact that whole branches of software development can go in and out of fashion in 6-month cycles is a bug, not a feature. No one will support this because most techies think regulations are evil, but I think it's time to grow up as a profession, build stuff around a known-good core and innovate around the edges unless there's a truly mind-blowingly better way of doing something.
This is exactly correct. There's no money in fixing security problems, insurance will pay any damages, and executives are shielded from any liability anyway. And all they have to do is give consumers a year of free "credit monitoring."
Until we start treating software engineering the way we treat civil engineering, and hold authors of software liable for their creations, nothing will change. Companies are protected anyway, and software guys can just walk down the street into a new job like nothing ever happened.
One problem is that companies continue to run software that was built as a one-off by some consulting company, offshore vendor or similar. They either don't exist anymore, or want millions to even look at the code again.Those packages need these out-of-date frameworks and other software as dependencies, and the company doesn't have the expertise in-house to know whether a patch will break something. In my line of work, the main offender is awful Java thick client applications, and these often require a _specific_ point release of some horribly outdated JRE/JDK. But JEE web apps are even worse in this regard...and despite the hype around app-of-the-month, there are TONS of these systems from the 2000s floating around in big companies.
Consulting companies should be required to at least hand over the source code for software they produce if they're not interested in maintaining it long-term as an actual product. And if a company is relying on some system as a dependency, they shouldn't allow their vendors to walk away without fully understanding what they've left running on their systems.
China is showing one of the positives that having tight control over the economy can have. If something needs to be done, it's done and there is zero debate. There's also no begging educational institutions and private companies to please comply...it's a top-down order.
Unless there was another world war at hand, something like this or any of the other investments China has made in the recent past could never happen in the US. There's too much infighting and zero initiative to get something massive done.
Like it or not, the Chinese system does have the ability to make massive changes with very little friction. When the financial crisis hit in 2008, the Chinese plowed money into infrastructure to basically offset the recession. At an even more macro level, they're using their control to effectively manufacture a middle class by moving people from the countryside to cities. These are things that we'd never get done in the US even if there were an imminent need.
Yes, real estate agents are kind of a drag on the whole process, and I don't know what's going to happen to them. Most are adapting by charging lower commissions. But it's not like you can go on Zillow or Redfin and click "Add to Cart" on a house you like. They really did provide a service up until MLS was put online...they were the ones with the keys and the books of Polaroids showing their inventories, and you really couldn't go house hunting without talking to one.
Real estate transactions in general are very expensive because you have so many people involved at every phase (the agents, the buyers, the sellers, the title search company, the mortgage company, etc.) But, I'm not convinced that suddenly pulling all middlemen form the economy and causing double-digit unemployment overnight is the answer either.
The problem with pointless jobs is that we have the entire ecosystem built around earning and consuming. This isn't going to go away without a fight. And when you consider that most technical jobs are going to be automated, pointless work will be all that's left pretty soon.
I've worked in big companies for most of my career, and there are plenty of jobs like this. Not, "Oh, you don't see everything I do behind the scenes" type jobs, but jobs that could be automated with nearly zero effort. The techies among us will jump on writing whatever shell script is needed, but I don't think automating everything is a good idea.
"Luddite!" you cry...not exactly. Here's the problem...large companies provide semi-stable employment and are almost the only source of stable employment outside of government. Thousands of graduates come out of Big State University with some generic management, psychology or communications degree they partied their way through. If all the pointless jobs go away, there's nowhere to employ these people, and they won't buy houses, buy cars, go on vacations, pay property taxes, have children, and basically keep the consumer economy going.
tl;dr: Unless you want to break the work-for-money-so-you-can-consume cycle, think of the C students. :-)
We all know that JavaScript is a pretty messy language to work with unless you're using some sort of framework. Part of that is that it's been pushed to do way more than it ever was designed to do and is hyper-complex as a result.
I guess my question is how far up the abstraction tower goes. Why would developers pull hundreds of libraries from dozens of sources just to build a simple program? And more importantly, why would you dynamically pull these resources instead of building against a known-good set, and only update one of your dependencies when you've tested it completely?
I know software is all about move-fast-and-break-things these days, but the "trust the Internet implicitly for all my source packages" is one thing I can't get my head around.
Lots of people in this field, especially in the SV startup scene, may not have had experience with Dotcom Bubble 1.0. However, I believe we're finally starting to see signs of the peak for Bubble 2.0. During 1.0, it was all about getting big quickly, launch parties, flashy advertising and IPOs. 2.0 seems to be all about disruption and dominating the market segment you're in without having to sell yourself to the public. This explains the relentless drive to build businesses on top of other companies' APIs. Problem is, when that company stops making the data you rely on available for free (or cheap,) the party's over and your business model is toast. Could you imagine what would happen if Google pulled access to its maps API or started charging?
Bubble 2.0 is probably going to hang in there a lot longer than 1.0. The Cloud means startups don't have to raise millions more to build data centers, and there's still the allure of getting access to billions more users' data in one way or another so startups will be able to get VC money for a while. Since we're not selling pets.com stock to individual investors there probably won't be a dotcom crash. But I think the same things will happen with tech that came out of this bubble...we'll pick up the really useful stuff and continue using it in a less frenetic manner.
I'm one of those rare people in the technology field who feel that we should try to be more inclusive. I've worked with a lot of people in the past who treat IT as their own little club and don't want to deal with newbie questions. And let's face it; our field doesn't exactly attract gregarious extroverts with amazing people skills the way sales or marketing does. Some interactions I've had over the years make me wonder how certain people get through the non-IT parts of their lives. The reality is that we attract a lot of very smart, opinionated people who don't have much of a filter. It's not everyone, but the egregious examples overshadow everyone else.
An example of this is Linus Torvalds and the Linux kernel developer crowd. Linus is famous for having zero filter whatsoever...usually he isn't wrong, but he certainly has no problem telling people how wrong they are and how right he is. Obviously he's a very smart guy and heads up a critical open source project, but you can be smart and not-a-jerk at the same time.
One other good example is trying to get into the DevOps space from the Ops side. There are tons of examples where people go out of their way to explain things to newcomers and I've been thankful for those while learning. On the other hand, you also encounter the developer types who feel that Ops is encroaching on their club. Sometimes, trying to get a worked example of how to do something in one of the 25,000 tools on offer today is like pulling teeth. I've gotten everything from "RTFM" to "You couldn't possibly understand this, don't bother." I'm one of those weird people who isn't a knowledge-hoarder and will teach anyone who is willing to learn something I know. Butting up against attitude like that is a very good way to discourage anyone from even trying to improve their lot in life.
Applying money to any problem, regardless of size, solves it. The question is how willing we are to do it and to what levels.
The US was able to find money to fund a whatever-it-takes crash program to build the atomic bomb in the 1940s. It was able to build the Interstate highway system in the 50s. It was able to do another crash program to land on the moon in 1969. No one ever complained about the cost of these. But education seems to be one of these things we just don't want to fund properly. Unfortunately, the opposition comes from all sides...the upper middle class homeowners complain about taxes, the super-rich want their kids in the elite private schools and want to defund public schools, and the religious people want their kids in private religious schools, and also want to defund the public schools so their choice would be even clearer.
Pay teachers like CEOs, select them carefully, fund the public schools the same way the elite private schools are, and the problem will disappear.
This happens in IT contracting too. I've avoided it for that reason, but contractors I've worked with love the higher pay and freedom. The huge downside is the feast-or-famine nature, and constantly having to hustle your next job. If you can't sell, it doesn't matter how much of a rockstar you are.
A lot of people like to dismiss a college education as too abstract, overly intellectual, etc. and it can be. But, skilled trades have a tendency to have a pay cap and less room for upward mobility once you hit it. In fact, unless you're in a strong-union state and are working for union employers, there's bound to be downward pressure on wages from people who are willing to work for less. Unionized trade jobs are the only ones where you have a chance at a full career's worth of compensation progression.
Both a college degree and a trip through trade school/apprenticeship are lottery tickets for life. You can only buy one, hoping it will pay off, and it doesn't for everyone. Some plumbers/electricians make more than I do and own a business that allows them way more financial freedom than I have. Some are stuck in the equivalent of gig-economy world doing handyman-type jobs. And, some people graduate from college and end up doing very well...while others either drop out or don't pick up any marketable skills along the way. (If you really win the education lottery and get into an Ivy League school, there are opportunities that just aren't available to anyone else such as investment banking and management consulting...and once you're in that club you can't really fail too badly.)
Given the choice, I'd still choose to do a bachelors' degree. Unless you're going into academics, anything more is too much. I barely use any of my formal education in my job (BS in chemistry, and i do systems engineering work.) But it did get me in the door, and it's essentially the minimum standard now for all non-trade jobs. One thing I do think post-secondary education helps with is maturing kids to a certain degree. A stint in the military would do this too, and maybe a good apprenticeship program would. But, having a bridge from childhood to adulthood where you're allowed to make a few stupid mistakes that aren't life-altering can be a good thing.
It taps into the current trend of portraying "creators" in the media. In the IT/Dev space, it's usually the stereotypical web startup hipster with the hemp satchel, ironic mustache, Moleskine notebook and MacBook Pro with Github and Slack stickers on it.
Microsoft is trying to replace those Macbooks with Surfaces, so slapping the label "Creators' Update" on Windows is seen as one way to do it. Almost all web developers I've seen are Mac users though, so I think it's just for effect.
The interesting thing about Windows is that they used to have to convince people to buy the new versions every few years. Now that it's a "service" that you just buy once with a computer (Home and Pro) or pay monthly for the rest of your life (Enterprise/Education), there's less marketing magic around new releases. No more people lining up at computer stores at midnight, flashy launch parties, etc.
In an environment like that, there's no reason to promote a new version, so why spend money on a marketing campaign? Just reuse the one from last year. It would be great if they plowed the money they saved by firing the marketing team into product engineering, but that just doesn't happen anywhere.
I'm involved in a big cloudification project and there is absolutely pressure to use consumer-grade identity services instead of your own. It's part of the massive responsibility offload that's happening. "Oh, the cloud will do that." "Oh, this SaaS product Just Works (TM)". While this is true in many cases, I highly doubt an IT department in any sort of established company is going to want Facebook to be the _default_ identity provider. I can see a use case where you have essentially "throwaway" users who work for a week or so then disappear...but if your workers generate documents and need access to shared resources, do you really want Facebook or Google knowing what they do with their IDs when logged on?
As it is now, Amazon, Google, Facebook and Microsoft may very well end up the 4 biggest "keepers of identity" at least in the consumer space. Tech has a way of running in cycles though. I saw a very interesting article a while back that wrote out what I was thinking...everyone is assumed to be a "digital native" and tech genius just because they grew up with the Internet and the smartphone, but the reality is that people actually know way less than they had to in the past. If something isn't more than a few taps and swipes away, most born-on-the-smartphone users are lost.
Microsoft doesn't care what you run anymore...as long as you run it on their hardware and pay them every month for the rest of your life. Their strategy is to get everyone possible onto a monthly subscription, and Office 365 is the first step for most organizations. Once you have that, then you take over the company's identity management with Azure AD, first with cloud-only IDs, then synchronization and then with full-blown ADFS. This gives them a very solid foothold to move the company's computing resources into Azure, giving Microsoft the lock-in they want.
It's actually a good strategy...since they can't sell boxed products anymore, they're trying to control the entire market by controlling where you run stuff, not what you run on it. I'm guessing there might even be a day where they decide to drop Windows once the revenues from Azure and Office 365 get high enough.
Companies are addicted to cheap outsourced labor...there's no way this wasn't drafted without consulting them first. It sounds like the sponsoring companies are just going to have to jump through another hoop to show that there's still a relationship with the company. And you can bet there is...Tata, Infosys and the like use their H-1B slots to move people on-site to their customers. These people either do the work that absolutely can't be done offshore or are interfaces between what's left of the on-site team and the offshore IT farm.
Immigration law is full of all sorts of exceptions and gray areas, and I'm sure a lot of those were purchased by lobbyists. So, while it appears to be a good step in the right direction, it's not an outright ban and probably won't make much difference.
What jobs are you trying to recruit for? And more importantly, how much are you willing to pay?
The problem is that all employers are engaged in a race to the bottom, and every one of them is afraid to stop trying to strip every single cost out of their business. I see this in IT all the time -- regardless of how much more it costs in terms of change orders and lost productivity, businesses are falling all over themselves to offshore their IT departments. The main reason is that all their competitors are doing it and on the golf course it seems like a quick win.
Businesses have to realize that labor is not a free resource and that there is an advantage to paying more for better workers. Well-paid workers will stick around, work harder and be more engaged. Again from my world, most IT contractors I've dealt with just don't care about their jobs because they know they'll be somewhere else 3 or 6 months later.
The problem with making it a requirement is that you really can't get into any sort of detail without losing half the class. I've been systems-engineering my way through life for 20+ years, and I'd only consider myself slightly above a code monkey skills-wise. It's clear that some sort of exposure to logical thinking, troubleshooting, etc. helps. But, even with templating I would find it very difficult to open up Visual Studio and crank out a full-stack web application that I'd dare show off to anyone. I can automate stuff, glue things together with PowerShell, etc...but actual development requires real skill, or 100 hour weeks running in circles until you get it right.
Also, my example is one of someone who is very interested in computers and systems engineering. Imagine trying to teach whatever they can call "computer science" to a disinterested bunch of high school students. Same goes for requiring a foreign language...you can't get too far down into details or most of the students won't be able to pass the class.
I don't know what to think about what makes a good education before. Most of the jobs people are doing now are going to be gone, and SW development is almost sure to be done automatically through abstraction or entirely in India very soon. Maybe all those liberal arts majors we used to laugh at are going to have the last laugh after all...
Definitely, most of the decrease in employment is due to automation and aging population. On the automation front, think of how many _thousands_ of clerical workers had to be employed at large corporations in the 1950s. There was a massive corporate "clean out" in the early to mid 1990s, and it has only continued since then. For one of my first IT jobs, I was a contractor for a large life insurer in NYC. Their headquarters took up 2 Manhattan blocks, was filled to capacity a few years before I showed up, and was only one of several offices around the country. When I got there, whole floors were empty.
Another thing that might explain the loss is the trend for companies to fire people in their late 40s/early 50s. I'm 43 and know it's going to be a hard road if I end up on the wrong end of a layoff a few years from now. A lot of these "end-career" professionals are stuck in limbo before the age where they're allowed to draw their retirement savings penalty-free (59.5.) Most aren't going to get hired for anything like the job they had before, and I think a lot of them are going on SS disability. How else would they survive with no income? Being on disability means you're not working, because you can't do that legally.
The company I work for is _finally_ starting to take back work from offshore companies after realizing they were being left with an unmaintainable mess...and this took almost 10 years. Lots more companies are still addicted to cheap coders. That's where all the onshore junior developer jobs went when it comes to custom applications and software.
The other thing that's happening is software as a service applications that are good enough out of the box to not need as much dev work done on them Things like SharePoint Online and Salesforce.com are good examples of this...plus every single corporate niche application (travel, scheduling, etc.) are being targeted. The best a junior developer can do is get hired at one of those companies, but they tend to use offshoring or other cheap soiurces of labor.
It's not a good thing, because we really do need a bunch of new recruits in the pipeline who are capable of learning and don't mind spending time gaining experience. Companies want people to jump from freshly-printed CS degree to rockstar full-stack 10x developer, and it's just not possible without real-world, low-level experience.
The linked article is even better:
Welcome to my world in infrastructure-land. Everyone wants to be seen as using the absolute latest DevOps and container tooling and it's a total treadmill run keeping up. The latest is serverless...IFTTT but in the cloud!
I know that it was meant to be tongue-in-cheek, but that whole "Oh yeah, Platform X is dead, that's from 2014. We're using CloudCheetah this year!"
Ironically, the hardest thing I can think of for a _total_ newbie is drilling down through all the layers of abstraction to show what actually happens. I'm in IT and infrastructure-as-code is the same way. We have a nice easy way to program things, but it's so divorced from something that actually happens. Everything new lately has been a layer on top of another layer with the hope that it will make things easier.
An example from my world is Azure Resource Manager. At the core, it's a RESTful API that takes in JSON configuration files and tells Microsoft's cloud back-end what needs to be configured. ARM is almost a language in its own right, and it's nearly impossible to write configuration files without some guidance. So, someone at Microsoft wrote a Node.js wrapper on top of ARM that I found out about the other day (Azure Building Blocks.) So, you have an ARM framework, written in a JavaScript framework, sending commands via insert-your-language's SDK to a RESTful interface that hides unfathomable levels of complexity behind it!
The push to wrapperize everything is going to get to a point where some levels of complexity are permanently locked away. People who are totally new and starting out at Node.js or a similar framework will be able to make things work, but they won't know _how_ they work.
I'll make one "get off my lawn" statement -- we've overloaded HTTPS to perform way more duties than it was ever designed to do, and chosen to write applications in browsers running JavaScript, which was also never meant to do anything nearly as complex as it does. This is why you have the endless parade of new frameworks, wrappers, etc.