Thinking bigger: a free engineering school
blog.thecodepath.com
blog.thecodepath.com
The problem is the punchline. iOS and Android programming is low on the list of topics that I see as really extending your abilities as a software engineer and thinker, are not deeply challenging, nor do they require close mentorship to learn. Mobile application design, yes, but mobile application implementation, not so much. (Yes I realize these are sometimes inseparable, but this does not seem to be a design-focused offering.) The shelf life for mobile APIs and design patterns is really measured in months, and StackOverflow actually fits the bill nicely for most of it since you have to throw out most of what you know every 6-12 months.
If you're really "thinking bigger", why not offer a class that focuses on applications of cutting edge but fundamental computer science research, topics informed by the current trend of mobile applications? Or research in other domains altogether (robotics, materials, mecheng, etc) as applied to software? Build something with a mobile component, sure, but that is an implementation detail and anyone who has "plateau"'ed and is looking to climb the next hill is going to be bored by a class focused exclusively on the sausage making part of writing mobile apps. People like that have already seen 5 or 6 generations of platform-hopping, can pick up the basics in a weekend, and instead want to learn how to think about things differently and learn things they can use for the rest of their careers regardless of the latest platform or API. In other words, focused education should provide massive, long term leverage, not a short term boost to the resume. There is no shortage of topics out there right now that fit the bill. Just browse Coursera to see for yourself.
Learning how to hack together an iOS app to market yourself to the "most competitive mobile startups" seems completely at odds with the mission of CodePath outlined in this post. This type of topic surely belongs in there in the long run for practical reasons, but having it as the "launch offering" is weird.
There is always going to be a lot of pressure to teach surface-level skills that are in high demand due to companies who want more warm bodies to hack stuff out. Not even top universities are immune to this, just look at the spread of Java throughout top computer science schools and the proliferation of classes on OOP that are now largely irrelevant just a few years later.
I think what you are doing is great. Don't lose sight of the big picture :)
Looks like a great idea!
Only question I have is how they plan to attract the best simply by offering the highest quality classes. Does highest quality mean most difficult, or will they have some sort of standard for admission? For instance, admission at Hack Reactor is pretty selective (under 3%). I'd be interested to see what their specific plan is to prevent developers who may not be the best or who may turn out to have limited commitment from claiming some of what I assume are limited spots in the class.
The key differences for us are we are very focused on existing experienced engineers that want to learn new technologies in a hands-on accelerated way amongst peers. We offer our courses in the evenings around a job schedule and the courses are free of charge. Our business depends on helping those interested find jobs they love. See http://pandodaily.com/2013/08/26/job-recruiting-in-silicon-v... for more information.
"Highest quality" is a complicated thing to define but suffice to say it is in part about creating ultra high quality. We provide detailed videos, extensive wikis, hands-on projects, open-source and closed-source libraries, and extensive mentorship. We also have a process for selection of our candidates that involves a phone screen and a short in-person interview to assess background and commitment to the program.
A monastery like environment, complete with places like dojos where there would be practice and sparring sessions, prayer and contemplation halls where the young and old from various schools of thoughts (Mac/*nix/MS, anything) mingle and discuss their ideas. A place where rank/wealth/ethnicity/gender doesn't matter; and where judgements would be of the work and not of people. A truly jedi-esque order of programmers, helping younger and able programmers realise their true potentials. The place would have volunteers who teach for free and those who truly want to learn. The Internet bandwidth, though limited, would be used judiciously. The gates of the monastery would be open for all those who wish to learn. And not just for programmers. The place would be open for the curious from any background.
Wouldn't such a thing be wonderful!
LOL because he says so. I used to participate in the IEEE video conference series in the 90s and they were pretty awesome. And reasonably well attended, although expensive.
As for the lack of mentors the original problem of fire all the old expensive engineers and only hire cheap inexperienced ones means the theoretical mentors will have plenty of time for their mentoring duty; they'll be unemployed. Or the purpose of this is to get them jobs; in which case they'll be mentoring the kids at work instead of at the hackerspace?
A huge part of engineering unfortunately involves some expensive gear. As ham radio guys have known for decades, stuff thats a generation or two old does exactly the same job as cutting edge for about 1/1000th the cost. My POS oscilloscope at home is about two generations out of date, luckily I don't have the skill or other gear to do cutting edge work from the 90s so I'm all good. Thats just EE which is fairly easy to do at home... don't get me started on my previous career plan of ChemEng. Anyway a decent hackerspace Can help, although in my chosen fields of electronics and machining I generally have better gear at home than any hackerspace has (hey, they pay us well in tech, non-computer hardware doesn't depreciate as fast as computer video cards, and I'm not a kid anymore so spend a grand a year on gear and none of it goes obsolete and by the time you're "old" you have quite a basement indeed)
One oddity is the only two engineering classes they mention by name are Android and IOS and those are typically code monkey topics, not say, MechEng or CivEng. I would think theoretical MechEng would be pretty cheap to teach as would CivEng.
engineer (n.) early 14c., "constructor of military engines," from Old French engigneor, from Late Latin ingeniare (see engine); general sense of "inventor, designer" is recorded from early 15c.; civil sense, in reference to public works, is recorded from c.1600. Meaning "locomotive driver" is first attested 1832, American English. A "maker of engines" in ancient Greece was a mekhanopoios. [1]
It looks like the steam engine operator meaning of the word didn't show up until the 19th century.