I'm the submitter -- this one just had to get out there for comment.
I have worked with a few real 10x-ers -- in the systems field, not development. None of them had agents, nor were they particularly flashy people. These are the kind of people who go from contract to contract getting reliable, interesting work. The reason they can do this is because they actually know enough to be a 10x-er. Most of the really talented people are in some sort of IT services role, either an independent consultant or a highly valued veteran employee of a big services shop if they choose not to jump around. People in this category are the kind who can jump in and rip apart a problem until the _real_ root cause is found, no matter how insanely difficult it is to locate. In the systems side of the house, that requires a mix of expert-level talent, troubleshooting skills and enough experience in different environments. Yet, nearly every one of these people has been a pleasure to work with -- they don't treat you like idiots, and if you show an interest, you learn something from them. I imagine any web framework du jour rockstar that felt they needed an agent would not be as nice to work with.
Honestly, I'm not sure what planet the author is living on. Granted, I don't live in Silicon Valley -- my experience is in "boring" industries like airlines, banking and insurance. I know now that hiring is a huge pain in the butt simply because the market is flooded with under-qualified people. It's a mix of dumb luck and leveraging your connections to get a good job. And yes, going into an interview cold with no one on staff who knows you is like playing the lottery...50 people are applying for the same spot sometimes. Beyond the typical recruiter slimeweasels, I can't imagine dealing with someone's agent when hiring for a position.
Maybe the market for phone app developers really is so hot now that people are jumping jobs for 20% raises the way they did in Dotcom Boom #1. I don't know. But on my boring side of the fence, where stuff needs to work reliably all the time, and there's always pressure on costs, the market is a little different. There's constant wage pressure from outsourcers and H1-B shops, and management really needs to be cajoled into spending anything to keep IT running. Enlightened companies keep a few senior, truly good people on staff, but the overall trend is down, both age-wise and salary-wise. The thing that they don't get is that to get to that 10x level, you need to have the experience to see what went wrong the last 20 times you've seen something implemented. Whatever - I don't see myself telling potential employers that they'll need to speak to my agent...
I have 2 kids, one who is ready to hit kindergarten next year. From my extremely limited parenting experience, it seems to me that just putting computers in the classroom or in students' hands isn't going to fix long standing education problems. This (in my opinion) goes double for locked down tablets like the iPad.
I'm actually not pushing computers, tablets or other electronic stuff too much on the kids. There are so many fundamentals to work on (reading, numbers, vocabulary, learning to act like a normal human) that electronics can't solve or make worse. They watch movies, watch a little too much YouTube for my taste, and play a couple of educational games. The older one knows a little about navigating around the computer, and of course every kid knows how to use an iPad/iPhone. Ask me in 14 years whether I screwed them up too badly, but it's working out pretty well just reading to them. playing with them, answering all of the 29 million 4 year old questions they have, etc.
Computers can't fix the real problems -- crappy parents, crappy home situations, low pay and low respect for teachers, etc. Every kid should be computer literate...not just phones and tablets, but able to use an office suite, look stuff up, etc. If they express an interest in coding or IT, great -- but the fundamentals of logic and scientific reasoning should take precedence. It's no reason to dump a computer or tablet into a kid's hands without a good curriculum to back it up. And from the article, it sounds like Pearson just sold the LA school district a bunch of slideware.
I'm not sure I buy the whole argument, but there is one thing that might come true. Most development frameworks are so far abstracted from the actual hardware and software dependencies that it might as well be like gluing together functionality chunks. This has and will continue to make simple application/web development more accessible. Look at iOS and Android -- lots of the hard work is done for the developer. Instead of calling into the database directly, a complex API feature optimizes the query somewhat and returns the results in a nice format. Accessing the phone's hardware is similar -- just more glue code. Web frameworks are similar, and the design goal is to make applications easier to write/maintain.
Automating development has been tried for years, as has separating dev from business logic and giving analysts the ability to write applications. (Access and Excel macros are the best I've seen so far in this category.) I think the market for the typical junior developer writing a CRUD application or web forms might be less lucrative, but someone still has to know how to interact with the hardware at a low level. The toolkits, libraries and frameworks can't write themselves.
I'm a big ThinkPad fan, but I generally go download a fresh set of drivers and run my own OS install when I buy one.
This just sounds like a PC manufacturer wanting to juice the margin a few dollars by installing some crapware. Most techies just wipe out the crapware, but the crapware vendors pay the manufacturer to put their crapware on the machine image. Unfortunately, it looks like they went one step further and installed crapware that was spyware also.
I'm surprised they thought they could get away with it -- but maybe my line of reasoning was used -- "consumers don't know the difference, pros wipe out the crapware, what's the harm?" Companies need to be prepared for the fact that people are going to disassemble, reverse-engineer and poke and prod every little thing about their products, then release detailed accounts of it all over social media and the tech blogs. It sounds like someone hasn't realized that yet or was willing to take the risk.
"I suppose it's different in the US, you do seem to equate wealth with success and happiness."
I think that more most mature people who have responsibilities, the motivation is not having to constantly worry whether you can meet your obligations. We just don't have the same labor protections or unemployment compensation that other countries (Canada, EU, etc.) do. There are a lot of people, even the responsible ones, who can't live within their means, and there is a lot of societal pressure to do so.
For me, having manageable debt and savings generates happiness. Having 2 little kids, we go through periods where we basically spend everything we make, and my happiness level goes down during those periods. For others, that happiness may only come when they have every single consumer toy they can buy, cars, a huge house, etc.
Interesting points. My experience with federal employees comes from working with regulatory agencies and from friends who work for defense contractors. In general, you're dealing with normal human people who are mired in a mess they can't really directly control. I see very similar stuff at the large corporations I've done work for -- basically a private self-perpetuating bureaucracy. The key to doing well in an environment like that, assuming you don't want to brown nose your way up the ladder, is to learn the exact minimum amount about what's needed to work the system to your ends and not to let it engulf you. If you fight it, it will roll over you -- but if you completely embrace it to the point you know every little trick, become an "insider," you'll hate working there eventually.
I imagine a lot of this just doesn't exist inside CIA/NSA and the more elite branches of the military. In that way, it probably is pretty cool for a mathematician or computer security genius to basically be given an unlimited budget and free reign to work on something extremely complex. Also, there are still some people with a strong sense of public service...if the right opportunity came along I wouldn't be against it, for example.
Agreed on the pay scales for government service as well. I almost took a job with the state university system a few years back...unfortunately it was a 20% pay cut for less interesting work. I ended up opting for the more interesting work, but it was a similar deal -- very generous time off, guaranteed permanent employment, and a decent pension. Basically, the only thing that they can offer is a stable wage progression as you gain time-in-grade, small merit increases based on reviews, and a promotional path to change your base pay. So, you really have to want to do it, or have a fun job, or love the work environment, or some combination of this.
"cyber-security is looking to be the safest career path an undergraduate could pursue."
Uh oh, here comes another surge in CS enrollment. Seriously, I just heard a story talking about how petroleum engineering undergrad programs are suffering because the oil boom is slowly settling back down. These new grads were getting six figure starting salaries when things were going great, and now things are leveling off. Any temporary spike in demand for new grads is usually smoothed over very quickly by economic forces. I would just focus on the fundamentals -- get a good solid CS education, engineering education, or whatever, and your skills will transfer if you have the talent to succeed in these fields without the artificial demand.
The first dotcom boom led to a huge jump in CS enrollment, followed by a prolonged period of un- or underemployment in the field. I still think we're working through a bunch of the first hangers-on even today that haven't been weeded out completely. Chasing a college major for money if you don't have the talent or desire just ends badly when the temporary good times end and you find yourself in a bad spot. The second dotcom boom today is generating more CS enrollment again as people want to write the hot new phone app...guess where most of them are going to be when the world moves on to something else??
The reason why the armed forces aren't getting the new grads is most likely due to culture. If you're a civilian DoD contractor, you're paid pretty well but there are a lot of political obstacles to jump over. I've worked with a lot of different types of people in my career, and the "elite cyber warriors" that would be hunting down vulnerabilities in foreign systems would probably bristle at the typical office politics situations, let alone what happens in government/military.
That said, I've always wondered how the CIA/NSA attracts super smart mathematicians, systems experts, etc. The government pay scale is very rigid. Say what you will about the NSA, but they really do seem to have a pretty big cache of talented people to do some of the things they've been doing. Beyond the idea of public service, the only thing in my eyes that makes a permanent job in government or military attractive is the stability and guaranteed retirement. I'm liking stability now that I've grown up and produced offspring, but I'm sure the typical "elite hacker d00d" straight out of college doesn't care and is most likely hostile to government.
I really wish these tax deals didn't exist. I'm on the opposite end of this problem, living in New York. Taxes are high, cost of living is high, but in my opinion quality of life is high too. Florida, North Carolina and Texas constantly go trolling for companies in high-tax states (NY, CT, MA, CA, etc.) and bribe them to move. Some of these bribes are crazy, as in, "We'll build you a headquarters, give you free utilities for 10 years, and you'll pay zero property taxes." The problem is states end up playing Prisoners' Dilemma with each other. New York does the same kind of incentives, but can't support the level of offers that no-tax states can...I think some regions of upstate NY are waiving local taxes for a certain number of years, but businesses want permanent gains. The worst thing is that the anti-tax folks whip the media up into a frenzy whenever one of these companies moves, trying to get more people onto the anti-tax side using this as an example.
The problem is that in Florida and Texas, states with no income tax, you get what you pay for in terms of services. In NY, outside of NYC, even the crappiest school districts are adequately funded and provide OK education. The state university system is good and still a bargain if you get into one of the better schools. Public services are decent in most places. In a state where you pay no income tax and $1000 a year in property taxes, you're not going to get the same level of services. I worked for one of those relocated companies, and went on a fact finding trip when they wanted to move me to Orlando. A real estate agent (who was actively trying to sell me on the idea) actually mentioned that if our kids are used to NY public schools, I would have to put them in private school to get them the equivalent. There goes all that cost savings from the cheap house and low taxes! Plus the weather sucks -- yeah, yeah, I'm weird, I like winter.
In this case, Oregon just hasn't figured out that data centers are not an employment source. Most run lights-out and employ one or two techs to swap out equipment and maintenance/security forces. Any images of 20-something developers in hip office spaces cranking out the latest phone apps are not applicable here -- they're still sitting somewhere else.
This topic is near to my heart. I grew up in the Rust Belt during the early 80s. During this time, the last of the good manufacturing jobs were being automated or offshored in my home city. We're seeing the same thing happen, but this will be a different group of people. The city has tried everything to regenerate economic growth, reorganizing the economy around "knowledge work", funding he universities and what little industry is left. The problem is that the population is largely unemployed factory workers, who have no skills and are not really trainable for "new economy" jobs. The only economic mobility for these people is winning the lottery or hitting the jackpot in a personal injury lawsuit. (I would love to see sociologists prove the negative correlation between economic mobility and number of ads for ambulance-chaser attorneys on local media.)
"That's mean", you say, "The market will take care of these people." The problem is that these peoples' lives are not going to get better. My hometown back in the day used to have auto plants, steel mills and other manufacturing that ran three shifts all year round, and they employed thousands of people per shift. The workers had stable jobs, retirements covered by pensions and union deals, and made a comfortable middle class living. They were able to buy cars, buy houses, and send their kids to college. They were even able to buy the occasional nice thing and weren't living day to day.
What's different this time? Low level knowledge work is on its way out. There are no secretaries anymore, tech support is offshored or automated, and service jobs are being replaced by machines. I can't remember the last time I went into the bank since I was able to deposit checks on my phone...see, I'm part of the problem! The next logical step is going further up the knowledge worker chain. I've worked in many corporate environments (in IT mostly) and have witnessed tons and tons of jobs that can and will be replaced by software or a changed process. That's good, right? I wonder about this -- those mid level knowledge worker jobs are the last ones in the economy that pay a decent wage for something that the average person can handle. I realize I'm generalizing, but think about this - Joe/Jane Average coasts through high school, gets into college, and parties for 4+ years. At the end, they graduate with a degree in business, psychology. communications, whatever. The economy that is about to be replaced has a place for millions of these people...corporate jobs that involve taking a stack of input work, performing a process on it, and passing it onto the output stack. These millions are the ones paying taxes, buying houses, and buying cars to commute back and forth to that office park in suburban Atlanta, Dallas, New Jersey, etc. When those jobs dry up, the same "Detroit Effect" will happen - maybe to a lesser extent, but you will have a segment of the population who isn't quite able to train to make the next step. The city I lived in was a close cousin to Detroit -- the local economy dried up and the city just started rotting from the inside. Crime went up, property got neglected because no one could afford to fix it or live in it, etc.
Solving this is going to be a monster problem, and one I hope doesn't require a revolution. But really, how do you explain to people that the answer to the next phase of the economy is to have some people not work, and have the workers subsidize that? Or tell someone that the retirement savings they built up over 40 years is now meaningless? The problem is that everything is organized around wealth and work -- nothing short of a disaster is going to easily change that. The only things I can think of are a British style aristocracy where knowledge workers become servants or other low level employees, or some sort of feudal system.
One of the problems that I have in IT is that many companies expect that new candidates have experience with all the equipment they would be expected to handle. For example, if you're a systems integration person who works in an HP shop with IBM storage and Juniper networking, it's hard to jump to a Dell/NetApp/Cisco environment. Not technically hard, mind you -- every vendor has their quirks but the same stuff gets done on everything. The hard part is convincing the interviewer that you have enough generalist skills to pick up what's needed. I regularly work with different vendors' equipment, support procedures, ways of handling patching and firmware management, storage configuration and so on. Do I go to training classes and spend months learning? No, I use my knowledge of what needs to be done at a high level and research how that particular vendor implements it, picking up what I need as I go.
That said, there are some basics I agree with the submitter on: - A person with 20 years' dev experience should have at least encountered PKI at some point!! - A person who just graduated from CS should be able to code a simple example without too much trouble...nothing fancy, just basic code literacy stuff. - A person with experience managing HP equipment should at least be able to articulate what may or may not be different managing IBM/Dell/whatever equipment.
I think two things need to happen. 1. Companies need to stop hunting for the exact right person and hire someone with the expectation that they'll learn on the job. You may not be 100% ready to "hit the ground running" (I hate that phrase) but if you have the skills and desire to learn you'll figure stuff out. The company I do work for has some very proprietary stuff that no one outside of the industry knows before coming on board. It's expected that new hires take a while to become fully productive. 2. The crop of employees does need some improvement. This is way easier said than done - smart people are scared of taking a job in IT or development because of the threat of outsourcing or automation. I personally think we're still working through some of the people who got into IT in the first dotcom boom, and now we have a second phone/social/mobile/big data bubble pumping more people into the field. In this sense, I feel for employers because their hires need to have the potential to pick up the skills they need if #1 is to be achieved.
Girls-first or generally, I don't know if pushing a single field or skill ("coding") is the right idea. "Coding" is increasingly becoming stratified due to outsourcing of routine stuff. You have people working on the core guts of operating systems, VM platforms, etc. who are very high end and always in demand, but you also have a huge glut of mid- and low-level coders. These are the corporate IT developers doing Java or.NET CRUD-style applications, and it's becoming pretty clear that outsourcing is killing a lot of that work or making it less profitable. (The other elite-level coder is the serial consultant who flies in to correct the messes the outsourcers deliver, but that's another story.) There are also a whole other bunch of mid level "coders" writing phone apps or website pieces in various application or web frameworks.
I'd be more interested if there was a focus on developing core skills (logic, troubleshooting, and a comfort level with technology beyond end-user status) early on in school. People with this fundamental layer of knowledge are useful in many different fields, even non-technical ones. Pushing coding, nursing, or any other "hot, in demand" career path is going to lead to a glut of graduates who have a low skill level and limited prospects once the hot field is cold again. I do systems integration work, and I can't stand seeing "developers" who have absolutely no idea of how what they write runs in the real world. There are a finite number of both men and women who are suited for this field. Pushing more people into it rather than finding somewhere they fit better is a bad idea.
The problem is, education-wise, we tend to come back to chasing fads. I'm just barely old enough to remember in the late 80s when the Japanese were supposed to take over the world, and education systems were looking at how to apply their methods here. Then there was the finance boom, then the dotcom boom, then the real estate boom, then the second dotcom boom...who knows what's next?
It's 2015, and most of the egregious geek stereotypes have changed significantly. But, the development and IT industries are still very similar. Development is a very solitary experience, as is IT once you get out of run of the mill support. I know I've spent stretches of a few hours digging through log files, troubleshooting an intermittent problem, etc. by myself. Even with agile development, pair/team programming, and every other coding fad that makes people work together, there is a lot of time spent alone solving problems. I like doing this -- it fits my personality type. Do most women? Probably not; I'm guessing most would rather be in social situations. Do some? Sure, I've worked with a bunch.
Being married to a female, and now having a daughter, I can safely say that men and women are very different creatures. I think women self-select out of IT and development mainly for the following reasons: - Perceived lack of socialization, and yes, the nerd stereotypes are still there to a lesser extent. - Especially in workplaces that suck, the work/life balance is screwed up. My wife and I both work, I'm in IT and she's got a corporate finance job. We are both incredibly lucky to have good employers who don't death-march us on a regular basis. I know many more people who don't have this luxury. If you're female, and are wired like most females, you will want to take care of your children more than spending extra hours at work. I feel that way too, and this is coming from someone who really loves my job and loves digging into strange problems. - Women are smart, and they see the writing on the wall for the IT/dev industry. Now that it's "easy" to program an application for a phone, and more aspects of systems management are automated, there will be an inevitable reduction in employment and salaries across the board. These days, you really have to be on top of your game to stay employed at the higher salaries, and be constantly learning. There are a lot of jobs that have less of the constant retraining, are more stable, and have a better balance. - Especially in the SV startup/web/social media sphere, the rise of the "asshole brogrammer" stereotype as evidenced by many stories all over the tech press might be scaring women away too. This is kind of the opposite end of the nerd spectrum -- now that development is open to more people, the more extroverted fratboy types who got through CS are founding startups and getting themselves into sexual harassment trouble.
Do I think any of this encouragement works? Not really. I think what would work is to keep developing girls' logic, problem solving and math skills at an early age. Those who excel at these and can handle all the other crap that comes with an IT/dev job will gravitate toward it. Others won't, and we just have to live with that.
OSS stuff like Linux and xBSD is already out there, and they can build their own back doors. Microsoft already gives companies and governments access to the source code for its products. I guess the mainframe providers (IBM, Fujitsu, etc.) are the only ones left that this would affect. That, and the network device manufacturers...I could definitely see Huawei getting a boost by being the only network device manufacturer allowed to sell to Chinese banks.
I guess the question is why -- every country on earth spies on every other country and its own citizens. So, it's probably being done to boost domestic companies. One of the things that's really going to make China come out on top this century is their ability to do stuff like this...it's one of their greatest strengths. If they decide they want to do something, it's done with zero debate. Their big overarching project right now is a massive urbanization project -- just picking up millions of rural peasants and physically moving them to cities. Can you imagine the US or a European country trying something like that? It would never work, look how much people complain when a local government uses eminent domain to build a road or public works project.
The summary is right though - companies can't ignore China. There are billions of people and a huge growing middle class, all with the full will of their government pushing through whatever is needed. There are always possible bumps in the road, but I'm assuming China will be the dominant superpower in a couple of decades just because they can make stuff happen that we can't/won't.
I have heard rumors from folks that work at MS that he was basically blinded by his vision, and didn't want to listen to anybody. The result as we all know, is Windows 8.
I heard the same rumors. What's interesting is that some people (Steve Jobs, etc.) can get away with that, and others (Ballmer/Sinofsky) can't. Jobs had to literally die before Apple made a large-screen iPhone, and I don't think we'll ever see new physical buttons on an Apple product again thanks to his minimalist design manifesto.
If they actually do teach MBAs something useful, the Windows 8 case would be a perfect example. I see mini examples of this in the large companies I've worked in as well -- one person gets a hold of the decision makers, doesn't let go, and blows things up because they stop listening to criticism.
I guess that's the end of RT and ARM-powered Windows devices.
In my opinion this is a good thing. Despite all the bashing, Microsoft has done a decent job with server operating systems lately, and Windows 7 was pretty good. It's interesting that they have enough money, power and leverage to recover from a move that would probably have sunk a smaller company -- it was also able to absorb 3 iterations of Surface Pro before they got it right, and the killing of Surface RT. Windows 8 was basically a panic reaction to the iPad/mobile/social/Bubble 2.0. I'm sure Windows 10 isn't going to give that all up, but it'll be cool to see them not totally write off desktop/laptop computing yet. Let's hope they don't mess up Windows 10 and Office 2016 too badly before launch. One thing about killing RT is that they're basically saying they can't make money off the Windows Store apps the same way Apple does. This could be a good thing -- let them focus on being a good OS developer instead of trying to be another Apple.
This is a very current problem. The tech press is talking about IBM's announcements/rumors about yet another huge restructuring. Not so long ago, IBM was one of the most stable places in the world to be employed at outside of government and academia. There was an implicit contract that employees who contributed and worked within the framework of the company would be taken care of for an entire career. I think that needs to come back for those who desire it, not necessarily for socioeconomic reasons, but for workforce improvement reasons. This move to contractors and outsourcing for everything is just idiotic MBA management consultants looking at a spreadsheet and seeing a way to shift costs. The long term problem is that loyalty works both ways, and employees who are treated as disposable will treat their employers the same way.
I know that large organizations generate forests of dead wood as well, and that there comes a time when some of it needs to be cleaned. However, an enlightened company in my mind would be better served retraining that dead wood worker for something else. You get someone who knows the organization's culture and politics, and the institutional knowledge of how their previous job was done doesn't walk out the door.
I know I'm not in the majority on/., but I would love the ability to stay with the same employer for an extended time, without the worry of suddenly losing my job and immediately being branded with The Scarlet Letter U (unemployed) that prevents me from being hired ever again. I actively seek out employers who treat their employees well in exchange for long service -- and they're harder and harder to find. The reality is that the industry is rough - the 25 year old single coder/systems guy is preferred over the experienced person who's done the latest rehashed tech fad over and over again. Anyone with a family would be pretty foolish to go the contractor route - it's hard to explain to the family that you can't pay the bills this month because a customer didn't pay you or there's no work to be had. There's a difference between someone like me, who would put in extra effort in exchange for more security, and someone who just wants job security because they're lazy. I've worked with plenty of those types over my career as well -- they set themselves up as the single point of failure in a system or hold all the knowledge on a particular process just because they're scared someone will come and lay them off. You would get less of this if large companies didn't routinely say "we're cutting 30,000 workers" the way HP just did.
The problem for me with contracting isn't the constant learning - I like that. It's the bouncing around, never knowing where you'll be in 6 months, and never getting to finish anything you start.
In a perfect world, my solution would be twofold: - Admit that there is going to be huge structural unemployment in the future, and enact European style unemployment insurance and worker protections. - Take the design/engineering aspects of IT or SW development, draw a clear line between the engineering and the tech tasks, and merge it into the licensed professional engineer track. A professional organization would get a lot more support than the unions that techies irrationally fear. In addition, having a clear career ladder starting out as an entry level tech, spending the time necessary to make mistakes, then graduating to a status that requires you to be responsible for what you build/design is a good thing.
One of the things that I always thought about Google Glass was this -- it has a billion good uses for work, but is stupid and creepy when you start walking around in public with it. It's creepy in more than one way - there's the "everyone thinks you're a stalker" thing, the weird head gestures you need to make to control it, the talking to yourself, and also the "Google now knows exactly what my eyes are tracking in any given image" kind of creepy. I'm not a millenial, so I probably sound like an old coot, but Google already knows enough about us - phones, search, Gmail, etc.
Now, that all goes out the window when you're talking about work use. With all these cloud data centers hosting thousands of racks of servers, maintenance techs would be able to get real time info. Warehouses would be able to show human forklift drivers where stuff is. Aircraft and car mechanics would be able to get manuals without having to print/read paper job cards. Stuff like that is very useful - walking around with them in public is a different story.
Maybe Google is realizing this and tailoring future devices for certain applications.
The PFC appointed as Social Media Officer probably chose a weak password. Seriously, whenever I see a news article about a social media account being "hacked," I really wish journalists would understand these are just password-protected web services!
Celebrities' naked pictures and Twitter feeds get hacked because they have simple passwords, not because some genius hacker spends months looking for an exploit on their personal phone and the opportunity to introduce it. And even "security question" based password resets don't work when a celebrity will choose answers that anyone can find in 100 gossip rags.
SCADA and the like are the worst things to have available on an accessible network. Vendors never update their software, everything's insecure by default, etc.
I've worked in environments like this, and some of the equipment is just not possible to secure without leaving it on its own network. It makes maintenance a nightmare -- sneakernetting patches, software updates, AV signatures, etc. I know an air gap isn't a guarantee of security, but it at least prevents dumb things like drive by downloads on someone's computer affecting production equipment.
Working with vendors of some of this stuff is equally bad...most of them deny a problem exists. And even if they acknowledge a problem, they won't lift a finger to fix it because they just have to say it's secure if installed as per our instructions. I've seen lots of software for control systems, etc. with 15 or 20 year old software libraries gluing everything together. (Using the 15 year old version now, I mean.) The vendor knows they're one of a handful of firms providing stuff like this, and they know that companies don't care about information security anyway. (One example of this from outside of the manufacturing industry -- I was integrating a very specific peripheral for a customer, and the vendor absolutely refused to digitally sign the Windows drivers, rendering it nearly impossible to install on 64-bit Windows. A lot of people might say "that's what you get with closed source," but open source libraries and other code have their problems as well.
Not all legacy stuff is bad. Not all legacy stuff should be kept around to the point where you can't find people to run it, however,
I've had experience working in die-hard IBM mainframe shops as well as places that used the HP MPE operating system on the HP 3000 minicomputer system. In the 3000 case, the customer was relying on a service provider that was providing an application that was way way way out of date but still worked. All the IBM places I've ever worked have been slowly "modernizing" their application stack, but in most cases, the core transaction processing has remained on the mainframe because that was the best solution. It's extremely rare these days to see an end user facing green screen application, but they do exist as well. (Yes, I work in "boring" old school industry sectors, very few web-framework-du-jour hipsters here, but we're also not old farts.)
The problem I've seen is that vendors love the fact that customers are locked in and will do nothing to encourage them to get off. Most ancient mainframe code can run virtually unmodified on newer hardware, and that backwards compatibility is a big selling point. It allows IBM to go in, swap out your entire hardware platform at $x million, and keep billing you by the MIPS without changing any code.
But...the reverse problem is that "mainframe migration" projects often end up becoming case studies of how Big Consulting Company X was paid hundreds of millions to not deliver a working system. I believe I read about DWP's "Universal Credit" project that has Accenture, IBM or Oracle written all over it. These kinds of projects usually try to port all the business logic and transaction processing to some horrible-to-maintain J2EE monstrosity backed by an Oracle database. They usually fail because (a) no one correctly estimates the work required to pull all that business logic out of 30+ years of cruft, and (b) the consulting companies replace their star team (that travels with the sales force) with new grads in India (who do the actual work.) I've seen this cycle over and over again, and am still amazed that CIOs aren't wary of consultants.
Coming from the IT/systems side of the fence, this isn't just limited to programming languages. There are tons of little niches in industries and technologies. The key to not letting a niche define you is to stay flexible. For example, I do systems work for airline industry customers. Think of every niche, legacy, arcane, backward standard, and it's there. Any one of these niches can be followed down so far into the expert level that you can build a career out of them. But, these things can change, and if you get too mired in the details and never pick your head up above the water, you can get lost. You wouldn't believe how complex something like tracking lost luggage or managing passenger data is once you peel off the covers...and a lot of that complexity is because of the massive layers of legacy stuff that have been built up over the years.
My approach to my career has worked well so far: (1) be willing to learn a lot about a particular subject so you can do good work on it, (2) keep sharp by slightly changing the things you work on every once in a while, and (3) keep your eyes/ears open so you can figure out which trends to hop on just in case the current job dries up. It's difficult to do this, but not so bad if you really like learning all the time. If I ever get sick of working in my little corner of the world, I'm pretty confident that I would be able to pick up a job in another little corner pretty easily.
Niches are everywhere, and often that translates into knowing about how an industry works at the insider level. Treating exposure like this as a learning opportunity is a good way to keep yourself marketable, and not just in your specialty field. Not being able to do this is a good way to brand yourself as a permanent generalist who doesn't have the desire/ability to dig in and find answers. Not trying to sound like a jerk, but there is a big difference between someone who can really dig into a problem and someone who just does what's in the manual.
From the perspective of most IT customers, bugs are bugs regardless of closed or open source. They still rely on other people to find them, patch them and release changes.
Companies who rely on open source libraries may or may not have the ability or spare resources to go digging through the code of a library, finding a security issue, writing a patch for it, recompiling the library, then using that patched copy in production. Companies in the 'service provider' realm may be able to do this, simply because they are staffed appropriately and have a greater IT focus. I do IT work for airline customers. Airlines want as little to do with IT as possible, even though it's a key part of their business...it's not directly related to the surprisingly low-margin business of moving people and planes. I would never advise a customer to roll their own Linux distribution, for example, even if it was based on a commercial one. There's just no appetite for keeping things maintained in a business who doesn't live and breathe technology.
The problem is that, increasingly, even closed source vendors are relying on open source libraries to provide large blocks of their application's functionality. A company who doesn't write operating systems generally shouldn't try rewriting these very important pieces, of course, but the closed source companies providing applications that use open source libraries need to be on top of these issues and ideally contribute back their patches.
Whether closed or open source, companies need to be able to respond quickly to security problems, and those problems may end up getting traced back to something like OpenSSL, the Apache stack, etc. Open source has the advantage of "more eyes" looking at the code for vulnerabilities, and less commercial pressure. Closed source companies have the opportunity to provide (usually at a cost) the expertise and support necessary to find and fix a customer problem. I've had both awful and good experiences with both trying to get bugs resolved. If you pay for it, and the closed source vendor has good support, they will move heaven and earth to fix your problem. For non-technology companies, closed source or support-funded open source companies like Red Hat give internal IT teams a good boundary between them and "the vendor" as well as someone to call when they have done their homework and find they can't fix something. For the Googles, Facebooks and maybe some academic institutions, the internal IT department can be staffed with kernel hackers and the like to maintain their own highly-optimized implementations. Techies tend to forget that users and companies have very little desire to mess around with technology, and use it to get their work done.
I would say I'm pretty much a technocrat, in that I would take hard data over what feels correct or what has always been done any day. If the data show beyond any doubt that working with children in the manner that the article suggests produces better results than thousands of years of corporal punishment evidence, then I would follow the study regardless of what anyone else did.
The problem is that when you're working with people, especially _all_ the people, studies only get you so far. Average IQ is 100 -- so lots of parents are below that. Some parents are poor, or work 3 jobs, or don't give a crap about their children. Whenever I see bad behavior, I have to remember to reserve judgement because of these facts. Some parents lack the ability to reason with their children -- and no parent can reason with a preschooler sometimes! I have 2 little kids and really don't want to screw them up too badly. I'd like to think that treating them like human beings who need training works better than "My dad beat me up all the time, and look how well I turned out!" It must be a pretty lousy job being a social worker for a state child welfare agency and seeing children from the entire cross section of the public as opposed to what you are exposed to regularly.
It seems to me that the study boils down to a consequence of the old adage "Children learn what they live." If your household is a nice tranquil place with two academic parents who take the time to raise their kids, the kids will turn out better than those from a household ripped from an episode of Cops. Now, there's some scientific data behind this, showing that children can model the behavior they're exposed to.
One of the state universities by me is offering a "pre-intro" CS course that focuses more on the absolute basics before stuffing them in a programming course: CSE 110 It seems to me that this is a good way to scare away people who don't actually want to do CS, and to fill in gaps in knowledge that today's students would have. It's interesting that this is different from the high level survey course for non majors, and it's only a "suggested prerequisite" for the more programming and logic-heavy traditional Computer Science I, II and III.
To me, that seems like a good idea. Typical students who think CS is a good fit because they've messed around with computers are different from those of previous times. Most will not have the low-level programming, algorithms and other experience that people had to have at least a familiarity with back before the app revolution. See my other post in this article -- writing a Minecraft mod or cooking up a web application in ReallyCoolFrameworkOnRails doesn't give you the same low level understanding of how a computer actually does all the magic it does.
Everyone seems to be pointing to this as a gender issue, but the way I see it, it's a way to get more students interested in the stuff that _most_ of them will be doing with a computer science education.
The world has changed significantly since I graduated college almost 20 years ago (with a STEM degree that wasn't CS.) In 1997, the year I got out, the dotcom bubble was just inflating and all the protocols and "glue" that make Web applications work were just starting to be enhanced and built out. Fast forward to now, and there's so much abstraction in typical computer systems that many "coders" writing web applications don't even deal with system-level code. There are a billion web frameworks that keep getting cycled through every 6 months as the new hotness, and tons of new languages to run on them. This group of people will be better suited to learning enough logic to keep them from doing stupid stuff in their framework of choice, and this seems to be what the course focuses on. It acknowledges the reality that many CS grads aren't going to be sitting down in front of the terminal and writing hardware drivers, or doing embedded systems work.
Think about it -- to build a web application in the 1990s, you had to first design the entire database schema and set that up on a system somewhere. Then, you had to write code to have your web application talk to the database to get information in and out. Then you had the whole presentation layer with a combination of static and dynamic HTML plus all sorts of crazy CGI, Flash, ColdFusion or whatever glue code to get everything working. To build an iPhone app now, download XCode, pick a sample project and just glue together all the huge chunks of pre-built functionality. The focus on the app becomes the presentation layer because everything below that is solved for you. This is how a bunch of ex-fraternity "brogrammers" can build Tinder or Uber and make $40 billion in Monopoly money...there is obviously some technical talent behind it, but the app itself is relying on huge amounts of pre-integrated, well-documented libraries.
A student coming into CS now sees apps, social media and mobile devices. How do you keep them down on the C++ and data processing farm when this is the current face of computing? The reality of it is that some parts of software development are no longer only for the nerdy crowd. Apple put computers into hundreds of millions of ordinary peoples' pockets. They are now a consumer electronics company more than a computer company (and their current crop of Macs seems to reflect this.)
I'm the submitter -- this one just had to get out there for comment.
I have worked with a few real 10x-ers -- in the systems field, not development. None of them had agents, nor were they particularly flashy people. These are the kind of people who go from contract to contract getting reliable, interesting work. The reason they can do this is because they actually know enough to be a 10x-er. Most of the really talented people are in some sort of IT services role, either an independent consultant or a highly valued veteran employee of a big services shop if they choose not to jump around. People in this category are the kind who can jump in and rip apart a problem until the _real_ root cause is found, no matter how insanely difficult it is to locate. In the systems side of the house, that requires a mix of expert-level talent, troubleshooting skills and enough experience in different environments. Yet, nearly every one of these people has been a pleasure to work with -- they don't treat you like idiots, and if you show an interest, you learn something from them. I imagine any web framework du jour rockstar that felt they needed an agent would not be as nice to work with.
Honestly, I'm not sure what planet the author is living on. Granted, I don't live in Silicon Valley -- my experience is in "boring" industries like airlines, banking and insurance. I know now that hiring is a huge pain in the butt simply because the market is flooded with under-qualified people. It's a mix of dumb luck and leveraging your connections to get a good job. And yes, going into an interview cold with no one on staff who knows you is like playing the lottery...50 people are applying for the same spot sometimes. Beyond the typical recruiter slimeweasels, I can't imagine dealing with someone's agent when hiring for a position.
Maybe the market for phone app developers really is so hot now that people are jumping jobs for 20% raises the way they did in Dotcom Boom #1. I don't know. But on my boring side of the fence, where stuff needs to work reliably all the time, and there's always pressure on costs, the market is a little different. There's constant wage pressure from outsourcers and H1-B shops, and management really needs to be cajoled into spending anything to keep IT running. Enlightened companies keep a few senior, truly good people on staff, but the overall trend is down, both age-wise and salary-wise. The thing that they don't get is that to get to that 10x level, you need to have the experience to see what went wrong the last 20 times you've seen something implemented. Whatever - I don't see myself telling potential employers that they'll need to speak to my agent...
I have 2 kids, one who is ready to hit kindergarten next year. From my extremely limited parenting experience, it seems to me that just putting computers in the classroom or in students' hands isn't going to fix long standing education problems. This (in my opinion) goes double for locked down tablets like the iPad.
I'm actually not pushing computers, tablets or other electronic stuff too much on the kids. There are so many fundamentals to work on (reading, numbers, vocabulary, learning to act like a normal human) that electronics can't solve or make worse. They watch movies, watch a little too much YouTube for my taste, and play a couple of educational games. The older one knows a little about navigating around the computer, and of course every kid knows how to use an iPad/iPhone. Ask me in 14 years whether I screwed them up too badly, but it's working out pretty well just reading to them. playing with them, answering all of the 29 million 4 year old questions they have, etc.
Computers can't fix the real problems -- crappy parents, crappy home situations, low pay and low respect for teachers, etc. Every kid should be computer literate...not just phones and tablets, but able to use an office suite, look stuff up, etc. If they express an interest in coding or IT, great -- but the fundamentals of logic and scientific reasoning should take precedence. It's no reason to dump a computer or tablet into a kid's hands without a good curriculum to back it up. And from the article, it sounds like Pearson just sold the LA school district a bunch of slideware.
I'm not sure I buy the whole argument, but there is one thing that might come true. Most development frameworks are so far abstracted from the actual hardware and software dependencies that it might as well be like gluing together functionality chunks. This has and will continue to make simple application/web development more accessible. Look at iOS and Android -- lots of the hard work is done for the developer. Instead of calling into the database directly, a complex API feature optimizes the query somewhat and returns the results in a nice format. Accessing the phone's hardware is similar -- just more glue code. Web frameworks are similar, and the design goal is to make applications easier to write/maintain.
Automating development has been tried for years, as has separating dev from business logic and giving analysts the ability to write applications. (Access and Excel macros are the best I've seen so far in this category.) I think the market for the typical junior developer writing a CRUD application or web forms might be less lucrative, but someone still has to know how to interact with the hardware at a low level. The toolkits, libraries and frameworks can't write themselves.
I'm a big ThinkPad fan, but I generally go download a fresh set of drivers and run my own OS install when I buy one.
This just sounds like a PC manufacturer wanting to juice the margin a few dollars by installing some crapware. Most techies just wipe out the crapware, but the crapware vendors pay the manufacturer to put their crapware on the machine image. Unfortunately, it looks like they went one step further and installed crapware that was spyware also.
I'm surprised they thought they could get away with it -- but maybe my line of reasoning was used -- "consumers don't know the difference, pros wipe out the crapware, what's the harm?" Companies need to be prepared for the fact that people are going to disassemble, reverse-engineer and poke and prod every little thing about their products, then release detailed accounts of it all over social media and the tech blogs. It sounds like someone hasn't realized that yet or was willing to take the risk.
"I suppose it's different in the US, you do seem to equate wealth with success and happiness."
I think that more most mature people who have responsibilities, the motivation is not having to constantly worry whether you can meet your obligations. We just don't have the same labor protections or unemployment compensation that other countries (Canada, EU, etc.) do. There are a lot of people, even the responsible ones, who can't live within their means, and there is a lot of societal pressure to do so.
For me, having manageable debt and savings generates happiness. Having 2 little kids, we go through periods where we basically spend everything we make, and my happiness level goes down during those periods. For others, that happiness may only come when they have every single consumer toy they can buy, cars, a huge house, etc.
Interesting points. My experience with federal employees comes from working with regulatory agencies and from friends who work for defense contractors. In general, you're dealing with normal human people who are mired in a mess they can't really directly control. I see very similar stuff at the large corporations I've done work for -- basically a private self-perpetuating bureaucracy. The key to doing well in an environment like that, assuming you don't want to brown nose your way up the ladder, is to learn the exact minimum amount about what's needed to work the system to your ends and not to let it engulf you. If you fight it, it will roll over you -- but if you completely embrace it to the point you know every little trick, become an "insider," you'll hate working there eventually.
I imagine a lot of this just doesn't exist inside CIA/NSA and the more elite branches of the military. In that way, it probably is pretty cool for a mathematician or computer security genius to basically be given an unlimited budget and free reign to work on something extremely complex. Also, there are still some people with a strong sense of public service...if the right opportunity came along I wouldn't be against it, for example.
Agreed on the pay scales for government service as well. I almost took a job with the state university system a few years back...unfortunately it was a 20% pay cut for less interesting work. I ended up opting for the more interesting work, but it was a similar deal -- very generous time off, guaranteed permanent employment, and a decent pension. Basically, the only thing that they can offer is a stable wage progression as you gain time-in-grade, small merit increases based on reviews, and a promotional path to change your base pay. So, you really have to want to do it, or have a fun job, or love the work environment, or some combination of this.
"cyber-security is looking to be the safest career path an undergraduate could pursue."
Uh oh, here comes another surge in CS enrollment. Seriously, I just heard a story talking about how petroleum engineering undergrad programs are suffering because the oil boom is slowly settling back down. These new grads were getting six figure starting salaries when things were going great, and now things are leveling off. Any temporary spike in demand for new grads is usually smoothed over very quickly by economic forces. I would just focus on the fundamentals -- get a good solid CS education, engineering education, or whatever, and your skills will transfer if you have the talent to succeed in these fields without the artificial demand.
The first dotcom boom led to a huge jump in CS enrollment, followed by a prolonged period of un- or underemployment in the field. I still think we're working through a bunch of the first hangers-on even today that haven't been weeded out completely. Chasing a college major for money if you don't have the talent or desire just ends badly when the temporary good times end and you find yourself in a bad spot. The second dotcom boom today is generating more CS enrollment again as people want to write the hot new phone app...guess where most of them are going to be when the world moves on to something else??
The reason why the armed forces aren't getting the new grads is most likely due to culture. If you're a civilian DoD contractor, you're paid pretty well but there are a lot of political obstacles to jump over. I've worked with a lot of different types of people in my career, and the "elite cyber warriors" that would be hunting down vulnerabilities in foreign systems would probably bristle at the typical office politics situations, let alone what happens in government/military.
That said, I've always wondered how the CIA/NSA attracts super smart mathematicians, systems experts, etc. The government pay scale is very rigid. Say what you will about the NSA, but they really do seem to have a pretty big cache of talented people to do some of the things they've been doing. Beyond the idea of public service, the only thing in my eyes that makes a permanent job in government or military attractive is the stability and guaranteed retirement. I'm liking stability now that I've grown up and produced offspring, but I'm sure the typical "elite hacker d00d" straight out of college doesn't care and is most likely hostile to government.
I really wish these tax deals didn't exist. I'm on the opposite end of this problem, living in New York. Taxes are high, cost of living is high, but in my opinion quality of life is high too. Florida, North Carolina and Texas constantly go trolling for companies in high-tax states (NY, CT, MA, CA, etc.) and bribe them to move. Some of these bribes are crazy, as in, "We'll build you a headquarters, give you free utilities for 10 years, and you'll pay zero property taxes." The problem is states end up playing Prisoners' Dilemma with each other. New York does the same kind of incentives, but can't support the level of offers that no-tax states can...I think some regions of upstate NY are waiving local taxes for a certain number of years, but businesses want permanent gains. The worst thing is that the anti-tax folks whip the media up into a frenzy whenever one of these companies moves, trying to get more people onto the anti-tax side using this as an example.
The problem is that in Florida and Texas, states with no income tax, you get what you pay for in terms of services. In NY, outside of NYC, even the crappiest school districts are adequately funded and provide OK education. The state university system is good and still a bargain if you get into one of the better schools. Public services are decent in most places. In a state where you pay no income tax and $1000 a year in property taxes, you're not going to get the same level of services. I worked for one of those relocated companies, and went on a fact finding trip when they wanted to move me to Orlando. A real estate agent (who was actively trying to sell me on the idea) actually mentioned that if our kids are used to NY public schools, I would have to put them in private school to get them the equivalent. There goes all that cost savings from the cheap house and low taxes! Plus the weather sucks -- yeah, yeah, I'm weird, I like winter.
In this case, Oregon just hasn't figured out that data centers are not an employment source. Most run lights-out and employ one or two techs to swap out equipment and maintenance/security forces. Any images of 20-something developers in hip office spaces cranking out the latest phone apps are not applicable here -- they're still sitting somewhere else.
This topic is near to my heart. I grew up in the Rust Belt during the early 80s. During this time, the last of the good manufacturing jobs were being automated or offshored in my home city. We're seeing the same thing happen, but this will be a different group of people. The city has tried everything to regenerate economic growth, reorganizing the economy around "knowledge work", funding he universities and what little industry is left. The problem is that the population is largely unemployed factory workers, who have no skills and are not really trainable for "new economy" jobs. The only economic mobility for these people is winning the lottery or hitting the jackpot in a personal injury lawsuit. (I would love to see sociologists prove the negative correlation between economic mobility and number of ads for ambulance-chaser attorneys on local media.)
"That's mean", you say, "The market will take care of these people." The problem is that these peoples' lives are not going to get better. My hometown back in the day used to have auto plants, steel mills and other manufacturing that ran three shifts all year round, and they employed thousands of people per shift. The workers had stable jobs, retirements covered by pensions and union deals, and made a comfortable middle class living. They were able to buy cars, buy houses, and send their kids to college. They were even able to buy the occasional nice thing and weren't living day to day.
What's different this time? Low level knowledge work is on its way out. There are no secretaries anymore, tech support is offshored or automated, and service jobs are being replaced by machines. I can't remember the last time I went into the bank since I was able to deposit checks on my phone...see, I'm part of the problem! The next logical step is going further up the knowledge worker chain. I've worked in many corporate environments (in IT mostly) and have witnessed tons and tons of jobs that can and will be replaced by software or a changed process. That's good, right? I wonder about this -- those mid level knowledge worker jobs are the last ones in the economy that pay a decent wage for something that the average person can handle. I realize I'm generalizing, but think about this - Joe/Jane Average coasts through high school, gets into college, and parties for 4+ years. At the end, they graduate with a degree in business, psychology. communications, whatever. The economy that is about to be replaced has a place for millions of these people...corporate jobs that involve taking a stack of input work, performing a process on it, and passing it onto the output stack. These millions are the ones paying taxes, buying houses, and buying cars to commute back and forth to that office park in suburban Atlanta, Dallas, New Jersey, etc. When those jobs dry up, the same "Detroit Effect" will happen - maybe to a lesser extent, but you will have a segment of the population who isn't quite able to train to make the next step. The city I lived in was a close cousin to Detroit -- the local economy dried up and the city just started rotting from the inside. Crime went up, property got neglected because no one could afford to fix it or live in it, etc.
Solving this is going to be a monster problem, and one I hope doesn't require a revolution. But really, how do you explain to people that the answer to the next phase of the economy is to have some people not work, and have the workers subsidize that? Or tell someone that the retirement savings they built up over 40 years is now meaningless? The problem is that everything is organized around wealth and work -- nothing short of a disaster is going to easily change that. The only things I can think of are a British style aristocracy where knowledge workers become servants or other low level employees, or some sort of feudal system.
One of the problems that I have in IT is that many companies expect that new candidates have experience with all the equipment they would be expected to handle. For example, if you're a systems integration person who works in an HP shop with IBM storage and Juniper networking, it's hard to jump to a Dell/NetApp/Cisco environment. Not technically hard, mind you -- every vendor has their quirks but the same stuff gets done on everything. The hard part is convincing the interviewer that you have enough generalist skills to pick up what's needed. I regularly work with different vendors' equipment, support procedures, ways of handling patching and firmware management, storage configuration and so on. Do I go to training classes and spend months learning? No, I use my knowledge of what needs to be done at a high level and research how that particular vendor implements it, picking up what I need as I go.
That said, there are some basics I agree with the submitter on:
- A person with 20 years' dev experience should have at least encountered PKI at some point!!
- A person who just graduated from CS should be able to code a simple example without too much trouble...nothing fancy, just basic code literacy stuff.
- A person with experience managing HP equipment should at least be able to articulate what may or may not be different managing IBM/Dell/whatever equipment.
I think two things need to happen.
1. Companies need to stop hunting for the exact right person and hire someone with the expectation that they'll learn on the job. You may not be 100% ready to "hit the ground running" (I hate that phrase) but if you have the skills and desire to learn you'll figure stuff out. The company I do work for has some very proprietary stuff that no one outside of the industry knows before coming on board. It's expected that new hires take a while to become fully productive.
2. The crop of employees does need some improvement. This is way easier said than done - smart people are scared of taking a job in IT or development because of the threat of outsourcing or automation. I personally think we're still working through some of the people who got into IT in the first dotcom boom, and now we have a second phone/social/mobile/big data bubble pumping more people into the field. In this sense, I feel for employers because their hires need to have the potential to pick up the skills they need if #1 is to be achieved.
Girls-first or generally, I don't know if pushing a single field or skill ("coding") is the right idea. "Coding" is increasingly becoming stratified due to outsourcing of routine stuff. You have people working on the core guts of operating systems, VM platforms, etc. who are very high end and always in demand, but you also have a huge glut of mid- and low-level coders. These are the corporate IT developers doing Java or .NET CRUD-style applications, and it's becoming pretty clear that outsourcing is killing a lot of that work or making it less profitable. (The other elite-level coder is the serial consultant who flies in to correct the messes the outsourcers deliver, but that's another story.) There are also a whole other bunch of mid level "coders" writing phone apps or website pieces in various application or web frameworks.
I'd be more interested if there was a focus on developing core skills (logic, troubleshooting, and a comfort level with technology beyond end-user status) early on in school. People with this fundamental layer of knowledge are useful in many different fields, even non-technical ones. Pushing coding, nursing, or any other "hot, in demand" career path is going to lead to a glut of graduates who have a low skill level and limited prospects once the hot field is cold again. I do systems integration work, and I can't stand seeing "developers" who have absolutely no idea of how what they write runs in the real world. There are a finite number of both men and women who are suited for this field. Pushing more people into it rather than finding somewhere they fit better is a bad idea.
The problem is, education-wise, we tend to come back to chasing fads. I'm just barely old enough to remember in the late 80s when the Japanese were supposed to take over the world, and education systems were looking at how to apply their methods here. Then there was the finance boom, then the dotcom boom, then the real estate boom, then the second dotcom boom...who knows what's next?
It's 2015, and most of the egregious geek stereotypes have changed significantly. But, the development and IT industries are still very similar. Development is a very solitary experience, as is IT once you get out of run of the mill support. I know I've spent stretches of a few hours digging through log files, troubleshooting an intermittent problem, etc. by myself. Even with agile development, pair/team programming, and every other coding fad that makes people work together, there is a lot of time spent alone solving problems. I like doing this -- it fits my personality type. Do most women? Probably not; I'm guessing most would rather be in social situations. Do some? Sure, I've worked with a bunch.
Being married to a female, and now having a daughter, I can safely say that men and women are very different creatures. I think women self-select out of IT and development mainly for the following reasons:
- Perceived lack of socialization, and yes, the nerd stereotypes are still there to a lesser extent.
- Especially in workplaces that suck, the work/life balance is screwed up. My wife and I both work, I'm in IT and she's got a corporate finance job. We are both incredibly lucky to have good employers who don't death-march us on a regular basis. I know many more people who don't have this luxury. If you're female, and are wired like most females, you will want to take care of your children more than spending extra hours at work. I feel that way too, and this is coming from someone who really loves my job and loves digging into strange problems.
- Women are smart, and they see the writing on the wall for the IT/dev industry. Now that it's "easy" to program an application for a phone, and more aspects of systems management are automated, there will be an inevitable reduction in employment and salaries across the board. These days, you really have to be on top of your game to stay employed at the higher salaries, and be constantly learning. There are a lot of jobs that have less of the constant retraining, are more stable, and have a better balance.
- Especially in the SV startup/web/social media sphere, the rise of the "asshole brogrammer" stereotype as evidenced by many stories all over the tech press might be scaring women away too. This is kind of the opposite end of the nerd spectrum -- now that development is open to more people, the more extroverted fratboy types who got through CS are founding startups and getting themselves into sexual harassment trouble.
Do I think any of this encouragement works? Not really. I think what would work is to keep developing girls' logic, problem solving and math skills at an early age. Those who excel at these and can handle all the other crap that comes with an IT/dev job will gravitate toward it. Others won't, and we just have to live with that.
OSS stuff like Linux and xBSD is already out there, and they can build their own back doors. Microsoft already gives companies and governments access to the source code for its products. I guess the mainframe providers (IBM, Fujitsu, etc.) are the only ones left that this would affect. That, and the network device manufacturers...I could definitely see Huawei getting a boost by being the only network device manufacturer allowed to sell to Chinese banks.
I guess the question is why -- every country on earth spies on every other country and its own citizens. So, it's probably being done to boost domestic companies. One of the things that's really going to make China come out on top this century is their ability to do stuff like this...it's one of their greatest strengths. If they decide they want to do something, it's done with zero debate. Their big overarching project right now is a massive urbanization project -- just picking up millions of rural peasants and physically moving them to cities. Can you imagine the US or a European country trying something like that? It would never work, look how much people complain when a local government uses eminent domain to build a road or public works project.
The summary is right though - companies can't ignore China. There are billions of people and a huge growing middle class, all with the full will of their government pushing through whatever is needed. There are always possible bumps in the road, but I'm assuming China will be the dominant superpower in a couple of decades just because they can make stuff happen that we can't/won't.
I have heard rumors from folks that work at MS that he was basically blinded by his vision, and didn't want to listen to anybody. The result as we all know, is Windows 8.
I heard the same rumors. What's interesting is that some people (Steve Jobs, etc.) can get away with that, and others (Ballmer/Sinofsky) can't. Jobs had to literally die before Apple made a large-screen iPhone, and I don't think we'll ever see new physical buttons on an Apple product again thanks to his minimalist design manifesto.
If they actually do teach MBAs something useful, the Windows 8 case would be a perfect example. I see mini examples of this in the large companies I've worked in as well -- one person gets a hold of the decision makers, doesn't let go, and blows things up because they stop listening to criticism.
I guess that's the end of RT and ARM-powered Windows devices.
In my opinion this is a good thing. Despite all the bashing, Microsoft has done a decent job with server operating systems lately, and Windows 7 was pretty good. It's interesting that they have enough money, power and leverage to recover from a move that would probably have sunk a smaller company -- it was also able to absorb 3 iterations of Surface Pro before they got it right, and the killing of Surface RT. Windows 8 was basically a panic reaction to the iPad/mobile/social/Bubble 2.0. I'm sure Windows 10 isn't going to give that all up, but it'll be cool to see them not totally write off desktop/laptop computing yet. Let's hope they don't mess up Windows 10 and Office 2016 too badly before launch. One thing about killing RT is that they're basically saying they can't make money off the Windows Store apps the same way Apple does. This could be a good thing -- let them focus on being a good OS developer instead of trying to be another Apple.
This is a very current problem. The tech press is talking about IBM's announcements/rumors about yet another huge restructuring. Not so long ago, IBM was one of the most stable places in the world to be employed at outside of government and academia. There was an implicit contract that employees who contributed and worked within the framework of the company would be taken care of for an entire career. I think that needs to come back for those who desire it, not necessarily for socioeconomic reasons, but for workforce improvement reasons. This move to contractors and outsourcing for everything is just idiotic MBA management consultants looking at a spreadsheet and seeing a way to shift costs. The long term problem is that loyalty works both ways, and employees who are treated as disposable will treat their employers the same way.
I know that large organizations generate forests of dead wood as well, and that there comes a time when some of it needs to be cleaned. However, an enlightened company in my mind would be better served retraining that dead wood worker for something else. You get someone who knows the organization's culture and politics, and the institutional knowledge of how their previous job was done doesn't walk out the door.
I know I'm not in the majority on /., but I would love the ability to stay with the same employer for an extended time, without the worry of suddenly losing my job and immediately being branded with The Scarlet Letter U (unemployed) that prevents me from being hired ever again. I actively seek out employers who treat their employees well in exchange for long service -- and they're harder and harder to find. The reality is that the industry is rough - the 25 year old single coder/systems guy is preferred over the experienced person who's done the latest rehashed tech fad over and over again. Anyone with a family would be pretty foolish to go the contractor route - it's hard to explain to the family that you can't pay the bills this month because a customer didn't pay you or there's no work to be had. There's a difference between someone like me, who would put in extra effort in exchange for more security, and someone who just wants job security because they're lazy. I've worked with plenty of those types over my career as well -- they set themselves up as the single point of failure in a system or hold all the knowledge on a particular process just because they're scared someone will come and lay them off. You would get less of this if large companies didn't routinely say "we're cutting 30,000 workers" the way HP just did.
The problem for me with contracting isn't the constant learning - I like that. It's the bouncing around, never knowing where you'll be in 6 months, and never getting to finish anything you start.
In a perfect world, my solution would be twofold:
- Admit that there is going to be huge structural unemployment in the future, and enact European style unemployment insurance and worker protections.
- Take the design/engineering aspects of IT or SW development, draw a clear line between the engineering and the tech tasks, and merge it into the licensed professional engineer track. A professional organization would get a lot more support than the unions that techies irrationally fear. In addition, having a clear career ladder starting out as an entry level tech, spending the time necessary to make mistakes, then graduating to a status that requires you to be responsible for what you build/design is a good thing.
One of the things that I always thought about Google Glass was this -- it has a billion good uses for work, but is stupid and creepy when you start walking around in public with it. It's creepy in more than one way - there's the "everyone thinks you're a stalker" thing, the weird head gestures you need to make to control it, the talking to yourself, and also the "Google now knows exactly what my eyes are tracking in any given image" kind of creepy. I'm not a millenial, so I probably sound like an old coot, but Google already knows enough about us - phones, search, Gmail, etc.
Now, that all goes out the window when you're talking about work use. With all these cloud data centers hosting thousands of racks of servers, maintenance techs would be able to get real time info. Warehouses would be able to show human forklift drivers where stuff is. Aircraft and car mechanics would be able to get manuals without having to print/read paper job cards. Stuff like that is very useful - walking around with them in public is a different story.
Maybe Google is realizing this and tailoring future devices for certain applications.
The PFC appointed as Social Media Officer probably chose a weak password. Seriously, whenever I see a news article about a social media account being "hacked," I really wish journalists would understand these are just password-protected web services!
Celebrities' naked pictures and Twitter feeds get hacked because they have simple passwords, not because some genius hacker spends months looking for an exploit on their personal phone and the opportunity to introduce it. And even "security question" based password resets don't work when a celebrity will choose answers that anyone can find in 100 gossip rags.
SCADA and the like are the worst things to have available on an accessible network. Vendors never update their software, everything's insecure by default, etc.
I've worked in environments like this, and some of the equipment is just not possible to secure without leaving it on its own network. It makes maintenance a nightmare -- sneakernetting patches, software updates, AV signatures, etc. I know an air gap isn't a guarantee of security, but it at least prevents dumb things like drive by downloads on someone's computer affecting production equipment.
Working with vendors of some of this stuff is equally bad...most of them deny a problem exists. And even if they acknowledge a problem, they won't lift a finger to fix it because they just have to say it's secure if installed as per our instructions. I've seen lots of software for control systems, etc. with 15 or 20 year old software libraries gluing everything together. (Using the 15 year old version now, I mean.) The vendor knows they're one of a handful of firms providing stuff like this, and they know that companies don't care about information security anyway. (One example of this from outside of the manufacturing industry -- I was integrating a very specific peripheral for a customer, and the vendor absolutely refused to digitally sign the Windows drivers, rendering it nearly impossible to install on 64-bit Windows. A lot of people might say "that's what you get with closed source," but open source libraries and other code have their problems as well.
Not all legacy stuff is bad. Not all legacy stuff should be kept around to the point where you can't find people to run it, however,
I've had experience working in die-hard IBM mainframe shops as well as places that used the HP MPE operating system on the HP 3000 minicomputer system. In the 3000 case, the customer was relying on a service provider that was providing an application that was way way way out of date but still worked. All the IBM places I've ever worked have been slowly "modernizing" their application stack, but in most cases, the core transaction processing has remained on the mainframe because that was the best solution. It's extremely rare these days to see an end user facing green screen application, but they do exist as well. (Yes, I work in "boring" old school industry sectors, very few web-framework-du-jour hipsters here, but we're also not old farts.)
The problem I've seen is that vendors love the fact that customers are locked in and will do nothing to encourage them to get off. Most ancient mainframe code can run virtually unmodified on newer hardware, and that backwards compatibility is a big selling point. It allows IBM to go in, swap out your entire hardware platform at $x million, and keep billing you by the MIPS without changing any code.
But...the reverse problem is that "mainframe migration" projects often end up becoming case studies of how Big Consulting Company X was paid hundreds of millions to not deliver a working system. I believe I read about DWP's "Universal Credit" project that has Accenture, IBM or Oracle written all over it. These kinds of projects usually try to port all the business logic and transaction processing to some horrible-to-maintain J2EE monstrosity backed by an Oracle database. They usually fail because (a) no one correctly estimates the work required to pull all that business logic out of 30+ years of cruft, and (b) the consulting companies replace their star team (that travels with the sales force) with new grads in India (who do the actual work.) I've seen this cycle over and over again, and am still amazed that CIOs aren't wary of consultants.
Coming from the IT/systems side of the fence, this isn't just limited to programming languages. There are tons of little niches in industries and technologies. The key to not letting a niche define you is to stay flexible. For example, I do systems work for airline industry customers. Think of every niche, legacy, arcane, backward standard, and it's there. Any one of these niches can be followed down so far into the expert level that you can build a career out of them. But, these things can change, and if you get too mired in the details and never pick your head up above the water, you can get lost. You wouldn't believe how complex something like tracking lost luggage or managing passenger data is once you peel off the covers...and a lot of that complexity is because of the massive layers of legacy stuff that have been built up over the years.
My approach to my career has worked well so far: (1) be willing to learn a lot about a particular subject so you can do good work on it, (2) keep sharp by slightly changing the things you work on every once in a while, and (3) keep your eyes/ears open so you can figure out which trends to hop on just in case the current job dries up. It's difficult to do this, but not so bad if you really like learning all the time. If I ever get sick of working in my little corner of the world, I'm pretty confident that I would be able to pick up a job in another little corner pretty easily.
Niches are everywhere, and often that translates into knowing about how an industry works at the insider level. Treating exposure like this as a learning opportunity is a good way to keep yourself marketable, and not just in your specialty field. Not being able to do this is a good way to brand yourself as a permanent generalist who doesn't have the desire/ability to dig in and find answers. Not trying to sound like a jerk, but there is a big difference between someone who can really dig into a problem and someone who just does what's in the manual.
From the perspective of most IT customers, bugs are bugs regardless of closed or open source. They still rely on other people to find them, patch them and release changes.
Companies who rely on open source libraries may or may not have the ability or spare resources to go digging through the code of a library, finding a security issue, writing a patch for it, recompiling the library, then using that patched copy in production. Companies in the 'service provider' realm may be able to do this, simply because they are staffed appropriately and have a greater IT focus. I do IT work for airline customers. Airlines want as little to do with IT as possible, even though it's a key part of their business...it's not directly related to the surprisingly low-margin business of moving people and planes. I would never advise a customer to roll their own Linux distribution, for example, even if it was based on a commercial one. There's just no appetite for keeping things maintained in a business who doesn't live and breathe technology.
The problem is that, increasingly, even closed source vendors are relying on open source libraries to provide large blocks of their application's functionality. A company who doesn't write operating systems generally shouldn't try rewriting these very important pieces, of course, but the closed source companies providing applications that use open source libraries need to be on top of these issues and ideally contribute back their patches.
Whether closed or open source, companies need to be able to respond quickly to security problems, and those problems may end up getting traced back to something like OpenSSL, the Apache stack, etc. Open source has the advantage of "more eyes" looking at the code for vulnerabilities, and less commercial pressure. Closed source companies have the opportunity to provide (usually at a cost) the expertise and support necessary to find and fix a customer problem. I've had both awful and good experiences with both trying to get bugs resolved. If you pay for it, and the closed source vendor has good support, they will move heaven and earth to fix your problem. For non-technology companies, closed source or support-funded open source companies like Red Hat give internal IT teams a good boundary between them and "the vendor" as well as someone to call when they have done their homework and find they can't fix something. For the Googles, Facebooks and maybe some academic institutions, the internal IT department can be staffed with kernel hackers and the like to maintain their own highly-optimized implementations. Techies tend to forget that users and companies have very little desire to mess around with technology, and use it to get their work done.
I would say I'm pretty much a technocrat, in that I would take hard data over what feels correct or what has always been done any day. If the data show beyond any doubt that working with children in the manner that the article suggests produces better results than thousands of years of corporal punishment evidence, then I would follow the study regardless of what anyone else did.
The problem is that when you're working with people, especially _all_ the people, studies only get you so far. Average IQ is 100 -- so lots of parents are below that. Some parents are poor, or work 3 jobs, or don't give a crap about their children. Whenever I see bad behavior, I have to remember to reserve judgement because of these facts. Some parents lack the ability to reason with their children -- and no parent can reason with a preschooler sometimes! I have 2 little kids and really don't want to screw them up too badly. I'd like to think that treating them like human beings who need training works better than "My dad beat me up all the time, and look how well I turned out!" It must be a pretty lousy job being a social worker for a state child welfare agency and seeing children from the entire cross section of the public as opposed to what you are exposed to regularly.
It seems to me that the study boils down to a consequence of the old adage "Children learn what they live." If your household is a nice tranquil place with two academic parents who take the time to raise their kids, the kids will turn out better than those from a household ripped from an episode of Cops. Now, there's some scientific data behind this, showing that children can model the behavior they're exposed to.
One of the state universities by me is offering a "pre-intro" CS course that focuses more on the absolute basics before stuffing them in a programming course: CSE 110 It seems to me that this is a good way to scare away people who don't actually want to do CS, and to fill in gaps in knowledge that today's students would have. It's interesting that this is different from the high level survey course for non majors, and it's only a "suggested prerequisite" for the more programming and logic-heavy traditional Computer Science I, II and III.
To me, that seems like a good idea. Typical students who think CS is a good fit because they've messed around with computers are different from those of previous times. Most will not have the low-level programming, algorithms and other experience that people had to have at least a familiarity with back before the app revolution. See my other post in this article -- writing a Minecraft mod or cooking up a web application in ReallyCoolFrameworkOnRails doesn't give you the same low level understanding of how a computer actually does all the magic it does.
Everyone seems to be pointing to this as a gender issue, but the way I see it, it's a way to get more students interested in the stuff that _most_ of them will be doing with a computer science education.
The world has changed significantly since I graduated college almost 20 years ago (with a STEM degree that wasn't CS.) In 1997, the year I got out, the dotcom bubble was just inflating and all the protocols and "glue" that make Web applications work were just starting to be enhanced and built out. Fast forward to now, and there's so much abstraction in typical computer systems that many "coders" writing web applications don't even deal with system-level code. There are a billion web frameworks that keep getting cycled through every 6 months as the new hotness, and tons of new languages to run on them. This group of people will be better suited to learning enough logic to keep them from doing stupid stuff in their framework of choice, and this seems to be what the course focuses on. It acknowledges the reality that many CS grads aren't going to be sitting down in front of the terminal and writing hardware drivers, or doing embedded systems work.
Think about it -- to build a web application in the 1990s, you had to first design the entire database schema and set that up on a system somewhere. Then, you had to write code to have your web application talk to the database to get information in and out. Then you had the whole presentation layer with a combination of static and dynamic HTML plus all sorts of crazy CGI, Flash, ColdFusion or whatever glue code to get everything working. To build an iPhone app now, download XCode, pick a sample project and just glue together all the huge chunks of pre-built functionality. The focus on the app becomes the presentation layer because everything below that is solved for you. This is how a bunch of ex-fraternity "brogrammers" can build Tinder or Uber and make $40 billion in Monopoly money...there is obviously some technical talent behind it, but the app itself is relying on huge amounts of pre-integrated, well-documented libraries.
A student coming into CS now sees apps, social media and mobile devices. How do you keep them down on the C++ and data processing farm when this is the current face of computing? The reality of it is that some parts of software development are no longer only for the nerdy crowd. Apple put computers into hundreds of millions of ordinary peoples' pockets. They are now a consumer electronics company more than a computer company (and their current crop of Macs seems to reflect this.)