Former miners out to put Kentucky on the tech map
theguardian.com
theguardian.com
EDIT: additional thought: there are also great outdoor recreation opportunities that is one of my favorite things about living here (hiking, mountain biking, rafting)
What the people really want is work. The article tells the tale - a thousand applicants for a handful of positions. The program I'm in had hundreds of applicants for only ten positions.
To me, too much money has been spent trying to resuscitate the coal industry when it could have been directed at new industries. The politics of it all doesn't interest me, and it wouldn't interest the legion of skilled technical personnel now clamoring for even minimum wage jobs if they had somewhere else to go (aside from relocate entirely).
Can you shed any light on how the oil industry is viewed, how many people it employs, etc? I've really only ever been down to the area on the weekends, and while a lot of the climbing access is via oil company roads, I've never seen any oil workers or trucks. Is this because the industry doesn't employ many people, or just because they don't work weekends?
Incidental fun fact, the Gallery climbing area has a huge overhang (15-20 meters horizontally, 20-30 vertically) where there's a well casing that goes from the ceiling to the floor for no apparent reason. Presumably there's an oil jack up top, but I'm curious why the well is located there...
Thanks for your informative participation throughout this discussion.
Fracking operations, though, are complicated. There's usually a sizable site from which directional drilling spreads out underground. There's water, sand, and hydrochloric acid going down the holes, and mixed oil, gas, and sludge coming up. Lots of trucking activity.[1]
[1] https://www.fractracker.org/resources/oil-and-gas-101/explor...
And for those who don't know, the correct pronunciation of Pikeville is 'packvul'. (I grew up in the area)
I believe that having affordable, high-speed internet (where you are allowed to actually host a server), would revitalize Appalachia.
Between the shuddered coal-plants that can be repurposed as data-centers, and rails-to-trails right-of-ways that can be used for fiber runs, there is plenty of opportunity.
Good luck convincing the politicians, though.
Technically, you should have benefited from some of the legislation passed, but after looking at it, it was pretty impossible to access.
I would love a symmetric 6/6 (would love to host a server).
http://kentuckywired.ky.gov/Pages/index.aspx
Not sure how efficient it is at the moment, seems pretty slow going. I get all the ads for "Fioptics", but the best speed that is offered in my location is 10 MBps :\. But supposedly it is actively underway to connect the state with increased internet speeds.
But having to fly around the country for interviews ? That's the deal breaker, unfortunately.
I think it would be pretty hard to convince even the most disillusioned Bay Area or NYC software developer to move to rural Kentucky over e.g. Pittsburg or Portland.
Techies tend to be socially liberal, or at the very least, libertarian, and the appeal of a place like Kentucky just isn't there.
in case you haven't seen "Generation Z" numbers - you're in for a surprise - http://www.dailywire.com/news/12785/gop-tsunami-looms-genera...
also, while the 20-30 year olds did vote primarily for Clinton - definitely not in an overwhelming fashion by any stretch of imagination.
that said - yes, it would be pretty hard to convince a native New Yorker to move to KY, but then again that person might be a Midwest transplant living in NYC to begin with...
https://public.tableau.com/profile/mycollegeoptions#!/vizhom...
Not sure how that translates going forward, if the left leaning young people split their vote or don't bother voting then that really helps the opposition, but it's different from young people being more conservative.
All this in a town of only 7,000 people.
Population is increasing slowly; it's not a dying town. The town itself never had heavy industry; the mines were elsewhere. It's a service center for central Appalachia. Population within 20 miles is 110,000. The town's problem is that the area it services is losing population.
If you wanted to locate there, the local mall has about 30,000 square feet available. No coffee shop in the mall, but the mall has a supermarket-sized Texas Roadhouse. Eat more beef. AT&T offers 45mbps Internet in most of the downtown area.
[1] https://en.wikipedia.org/wiki/Pikeville_Cut-Through [2] http://eastkyexpo.com/AllEvents.html
That said, our leaders spend any aid money we get on 'tourism' which never pays off, but they don't learn.
There are bigger places in much worse shape. Youngstown, OH, population down to about 60,000. It was once a bigger industrial city. When the steel industry shut down, it lost its purpose. Plenty of industrial space is available if you have some use for it. Ohio and Pennsylvania have too many cities like that: Akron, OH; Erie, PA, Bethlehem, PA. Pittsburgh came back from losing its steel industry. Cleveland didn't.
[1] http://www.visitpikeville.com/ [2] http://www.pikevillemainstreet.com/
Not really. It's still down population almost 10% from 2000.
Losing Westinghouse was a gigantic loss--and it didn't need to happen. Westinghouse should have been a source for tech talent during the Dot Com boom to combine with CMU and Pitt students. Instead Pittsburgh was a technology desert in that same time (I remember trying to find WiFi hotspots there in 2000-2002 and people staring at me like I was from Mars).
Don't want to get too political here, but this "middle-america" vs. "liberal minorities" class war is nothing but a fabrication of the media and the elites to get these two disenfranchised groups to battle amongst themselves- they're the same side of coin.
At 25 I went back to school for programming and it was hard and I only was able to do it because of the support of my parents. For a 55 y/o coal miner with a family to support, rent to pay, etc. I can't even begin to imagine how they would go about "learning to code"- as if they don't have these responsibilities.
Though children are the future, these people are the present, and if we don't find ways to help them (whether it's free community college, bootcamps, or internship placements), they're going to get desperate (e.g. vote Trump), and the future is going to pay dearly for it.
Not everyone can build a decent sized building, and the people designing and managing their construction are likely also in the top intelligence quartile. But they're not necessarily the ones doing the actual construction of the thing.
In programming, there seems to me to be a refusal do the kind of delegation that occurs in construction. Instead, we've got a huge market of tools designed to reduce boilerplate and increase abstraction so that the highly intelligent programmer can get more done faster.
That's all well and good, but at the end of the day there are programming nails that need to get hammered, and its not going to matter if they're hammered by a MENSA member or not. The current mindset seems to want to deny this, and make every programming task something that must be handled by the best of the best.
People try and try to apply the analogy to software. Heck that was the entire premise of EJBs. Have your smart people design the system. Then hire a bunch of foreign slave labor to implement the interfaces and BLAMO the program is done.
It just. doesn't. work.
No matter how good your up front design is, designs need to change over time. That is what makes software so powerful. But if you are just a code grunt and you don't KNOW how to design anything, you won't know when things need to change. So what do you do, keep adding more and more if blocks until a senior person can code review it? That is a crappy way to build software. WAYYY better to have 2-3 smart people working together than 1 genius and 14 code monkies.
There's not really much science in non-academic computer science. We're just builders who make, fix, and break things.
Edit: added do
Though it's all antidotal from Going through different college courses that teach both programming and contactor/ladder logic. The programming classes had something like 40% learn rates, while the ladder logic classes everyone eventually got it. And with chances of going out to the field utterly normal people have been able change our contactor/ladder logic to make things work and/or fix issues.
Sure, coding skills sharpen and evolve through experience, but coding was heavily emphasized and there was much lab work in my CS curriculum.
Most CS curricula should definitely not be focusing on any one language, no matter what the year. A typical first few courses are something like:
1) intro to computer science. This is typically teach entry level program flow techniques, loops, if/else, recursion, some OO. My school used java but the focus was not on the language.
2) Data Structures and Algorithms. Overview of your typical data structures and common operations. Gets in to big O, etc. My school accepted assignments in both java and c++, but didn't emphasize either one.
3) Architecture. This is low level CPU architecture. Pipelines, caches etc. We used some sort of assembly for assignments.
4) programming paradigms. This was basically SICP. Meta circular evaluators, etc. We used scheme for assignments but again no real emphasis on the language.
5) OSes. Basics of operating systems. Threads, memory management, networking etc. Assignments were in C.
I think this is the standard CS curriculum, at least according to my experiences and most of the people I've worked with with CS degrees.
Reducesuffering simply stated that some programming tools were taught in the first years of college and he or she did not say his curriculum excluded any of the topics in your list.
But 95% of people can't lay bricks precisely enough or at the speed a bricklaying company is going to hire them. And for sure 95% of people aren't interested in laying bricks.
Is it worth teaching 95% of people to code? I don't think it is. Most people don't have to lay bricks to live in house.
95 % of people can't make more money than coding. Some can and do. Many would if they could.
Both programming and physical labor are enjoyable and good for a person in different ways and both ruin a person in different ways if taken too far.
I guess if it all paid the same I'd lay bricks half a day and program the other half :)
Bricks aren't powerful programmable tools that most people already work with on a daily basis.
No they aren't. Either they're making the same salary either way, or else their employer has fired them and hired someone else to push that "button" at a fraction of that salary, once it became obvious that their job could be automated.
No problem, I'll generate one so big you won't be able to read it in a year! And it will only take 30 seconds.
They gave people an IQ test and took the top percentile of a group that, due to their interest, was already slightly selected for intellectual ability. This is not proof that anyone can program.
Did you even read the article? It is in accordance with the unfortunate fact that programming is a high IQ job that the majority of people are not capable of becoming proficient in. Though for many here this is not unfortunate, as it is the reason wages remain high despite a lack of licensure.
Humans differ in cognitive ability and most of this difference is genetic. Modern psychometrics and common sence agree with this. We cannot build a better word on false but pleasing ideological assumptions.
You don't need to be the top 1 percentile to make CRUD apps, they chose the best because they had the first pick, not necessarily because they needed to.
I mean, get out in the world and see what most people are like.
Sure we're all different and maybe 95% is high but its at least 50%. One out of every two people I meet I am confident they could become proficient at programming given a solid learning environment.
>One out of every two people I meet I am confident they could become proficient at programming given a solid learning environment.
That's quite possible, even if what I say is true. People tend to mix with people on their own intellectual level. The people you talk to enough to get a good estimate of their intelligence are unlikely to be randomly selected from the population.
If you believe average people can become good programmers, this implies you could make billions converting 100 IQ people into programmers and then undercutting everyone else. I predict you will fail, unless you figure out a way to vastly deskill the art of programming.
For example, the evolution of Javascript from a low status programming language to a high status one has paralleled a shift from a stable core language and a well documented API to the DOM to a combinatorial explosion of changing frameworks and complex development toolchains. Learning some combination gulp and babel and redux and angular(2) and webgl and ten other things is more a matter of access to people who will patiently answer questions than something a person can learn without working on a team.
I'm a learn-by-doing type though, YMMV.
At least half of these already self-selected and 80% filtered students were not really able to program (and eventually flunked or transferred to other departments - although some people who could program flunked and some who couldn't graduated, I think the two groups were quite well correlated).
I'm sure you can do better at teaching (and filtering) than the CS program at my university, but if such a focused group had a 50% failure rate I'm sure the general population is at the very least not better (remember that it's not just about 'raw' ability but also about interest and motivation).
But, maybe I'm over-thinking that part. Either way, I have witnessed first hand that not everyone can code, and we have probably all seen this. I mean, it's a vague statement to begin with. Sure, you can probably show most people how to write a for-loop, but that's a far cry from them being a proficient, professional coder, which is really what's implied by the phrase "learning to code" if used for any practical purpose.
And, you can't just chalk it up to bad teaching. I've seen many people, in school and at work, who just didn't have the thinking style. In school, so many people couldn't turn the corner, then switched majors and did perfectly well. They weren't unintelligent. Coding just never clicked. And, as a tutor, I really witnessed it up-close. For some, I was able to guide them to finding the solution, giving them just enough to turn on their inner coder and help introduce them to that part of their brain.
But, for others, no matter what I did, it just didn't click. I could show them pieces at best, but they could never seem to put it all together. Felt like it was just something about the way their minds worked.
And, there are some who somehow made it through school, but struggle professionally and it shows in the quality of their code. The idea that we can make anyone "good enough" is unrealistic.
Bad code costs money and it's economically no different from any other skilled field, wherein firms that employ highly skilled resources are at an advantage over those who employ less proficient resources. And, this is not just true for Google.
My experience is that being a good programmer is more than a matter of intelligence. It's a certain thinking style that lends itself well to organizing data flows and presentation. It's a certain ability to focus on abstract structures and keep chains of relationships in the mind while envisioning how to manipulate them. And a lots of otherwise smart people just don't think like this natively and "teaching" them is both painful for everyone and has limited effects.
I bet most of us have met perfectly smart people who just didn't click with coding. Just not a good fit for their thinking style. Even if they nominally want to be programmers for the money or cool factor or whatever. Even if they take a bunch of classes. They just never quite get there.
And square pegs beating themselves into round holes usually does indeed cost more than it produces. People should play to their strengths instead of chasing external expectations. It's better for them and for society in my estimation. But certainly if people want to give programming a try they should. And at least "some" experience in programming is better than none. But most people can't/won't become professionals.
But, the bigger part is being able to step back and "see" the path; to pull from what you know to approach the problem and formulate a solution.
Seems like there were three groups: those who just couldn't get it; those who wrestled and muddled their way through; and those who just kind of got it, almost intuitively. The latter is a minority, and I would bet that an outsized percentage of those people really can learn to code.
I suspect that the process selected 11 people because there were funds to educate ~11 people and that ~11 would have been enrolled in the program if the applicant population was significantly different regardless of that difference being a left or right skew.
One of the things each offers is sustained direct access to other people's time and in particular sustained direct access to expert's time. That's the difference between a personally tailored answer and closed as duplicate on StackOverflow. It's the difference between here's the answer and ten other things I can tell you about and here's someone else's question and several divergent answers to your duplicate question which might not have been the same.
For a while I thought the biggest value we provided as a bootcamp was direction and on-demand expert help. But now I don't think that's true. I think the biggest value we provide is that we make everyone show up at the same time every day and work until some other time, and we help direct what they should be working on during that time.
In short, it's social pressure, discipline, and scheduling. Those are everything.
Look at Thinkful's "part-time self directed" bootcamp - all the material is there, there's a mentor to help you once/week for a few mins, you pay $8,500 to do it - people are obviously dedicated to learning when they start. And the end graduation rate? ~31%.
I know another bootcamp that decided to just record their bootcamp and put it online, and charge you $2,000 for access to the videos. 28 people signed up and paid the $2,000, and one person watched past the first lesson.
I would guess that the percentage of people who can discipline themselves enough to learn on their own while balancing other responsibilities and not paying $2,000-8,000 is much, much smaller.
Think back to when you were in college - say it's a Calculus class. What do you think the graduation rate of that class would be if you gave everyone a Calculus book and said, "Fit it in when you can!" I'd guess it would approach zero except for a few superstars.
The same thing seems to be happening in programming. In 2017 the thing holding you back from learning something isn't resources. It's direction and discipline.
Good programmers are adept at being able to visualize complex trees and with experience to be able to quickly prune (exclude) suboptimal paths.
This is a pretty limited skill set and is closely correlated with spatial reasoning. Studies have shown that that skill is somewhat malleable through training but still follows a bell curve. Better training could double the number of people who could potentially succeed in stem careers but that is still far from everybody being able to code.
And the effect of training is to largely move people from the middle of the curve slightly to one side and not moving somebody from the middle to the edge of from one edge to the other. That means while you can make some people programmers you can't make anyone excellent programmers.
On a side note my experience is that people without strong spatial reasoning skills tend to find shortcuts early on that help them cope and those coping methods can eventually become strengths in their own right. For example they become adept at memorizing procedures (medicine) or start at the end state and work backwards (project management). To someone who relies on strong spatial reasoning abilities and never developed these techniques these people's abilities can seem like they are able to manage complex trees with speed (memorizing) or extremely deep trees with ease (project management).
Source: Several dentists in the family and that's about what they say. (doesn't stop them from charging large fees though, I mean, they do have student loans to pay off:)
But the result back then was that even among young talented people who entered programming classes, a large percentage (40%-70%, don't remember) just couldn't do it.
The biggest "tell" was understanding pointers (in C). A lot of people just got stuck on that and couldn't move forward.
Talent is distributed unevenly, but I don't think a series of competing local lobbies will change that. I've always thought that all of the local ecosystems for which talent flows unevenly should think seriously about banding together and working on policies that 1) increase overall talent availability 2) distribute its spread more evenly -- 1 would involve working to get Congress to create incentives for entrepreneurs/high-skilled workers of all kinds to come to America in the first place, for example, while 2 might be a combination of infrastructure/tax policies.
The broadband struggle is real. I worry that at some point we'll still need to relocate.
Basically, the high level solution is live in the CLI as much as possible, and remote into your "main driver" as much as feasible. I had to accept that I won't ever be working with my daily processes transparently. I had to make conscious decisions all the time, for example: do I work with this customer-sent Word file on the remote Windows box or download and work on my laptop?
Mostly I live in SSH and screen to various Unix boxes. Will add Mosh and tmux this year to try them out over unreliable connections. Windows RDP was okay on bandwidth caps, a license of NX was used for those few times I could not escape X11 (ship it to a remote Windows box to maintain state). ESXi for those times I had to work through a VPN and view the remote display via the VM video because the VPN cuts off all other remote access.
If you are in this for the long-haul, then your own Supermicro Mini-1U with up to 128GB RAM colo'd will probably be cheaper than even an OVH annual dedicated server.
Hope this helps.
There should be a public list of politicians who voted for blocking municipal broadband, to give tech-oriented voting blocs an easy way to inform single-issue voters how to vote against them.
They told us the same thing: coal miners have to think. You do the right thing, the right way, every time, or somebody could die.
The stakes are lower for tech projects, but they brought the care with them.
This stood out for me in the article. I moved to coding after a few years as an aerospace engineer. In the aerospace world you don't want to make mistakes either, so I know how jarring it can be to move to an industry that operates on the motto "just ship it and we'll patch it later, maybe".
I hope they can bring their thoughtfulness to their code and develop a reputation for shipping solid product.
A lot of times it seems people take it for granted that 'skilled/intelligent' and 'rural' are mutually exclusive.
Coincidence or indicative of people from declining industries switching to tech?
I know about a number of resources for kids learning to code, but those are maybe not appropriate for a motivated adult wanting to investigate switching careers.