Learn to code like it's 1996
defmacro.org
defmacro.org
Immigrated to a few blocks away from where you mentioned, also from Ukraine, in 1995. Both parents attempted taking similar courses. Mom stuck it out while cleaning houses during the daytime, Dad realized it wasn't for him but also struggled between jobs.
My mom turned sixty this year and last I spoke to her today at 10:30pm, was busy at work, trying to finish deploying a new release at the office. She's been a COBOL engineer (yeah..) with a hectic schedule for the last fifteen years.
Not sure where I'm going with this, but from bringing today's Google Doodle to her attention, to reading and clearly heavily related to this, to seeing Derek's post on life on the front page, I think I should call my parents and thank them again for moving our family into the unknown and trying to make it through herculean efforts.
COBOL engineers are a narrowing breed. Tried venturing into learning it a few times.
I sometimes wonder if those dealing with legacy systems have been subjected to new fangled methodologies like agile and scrum. The statement quoted just brought that thought to mind.
I doubt it. I worked as a Mainframe programmer (in this century). Revision control consisted of printing your full current version of the code and inserting it into the project's binder.
As a native-born American citizen who -- like many -- wasn't born into a rich family and worked my butt off to pay for school, I couldn't help but read that and go, "gee, that would have been nice."
Community colleges are quite cheap. $46 per course in San Francisco.
Lots of programming courses. http://www.ccsf.edu/NEW/en/educational-programs/ccsf-catalog...
These people were not getting an MBA from Stanford.
$400 for a life skill might sound like a great deal, but it can be hard to afford.
First I wanted to build iOS apps, so I learned enough C to take on Objective-C. Time to learn the Cocoa frameworks. Published an app. I should learn web development. Grokked HTML, CSS, some JS. Wait things can be done easier with jQuery? Learned some 'o' that. None of this means anything without some passable design skills. Time to learn photoshop, illustrator, or some open source alternative. Oh crap, I need to deploy this! And what's this 'Git' everyone's going on about? Wait a minute, I don't understand anything that's going on with anything! Time to dig deep into the underbelly of Unix. I should get with the times! Need to learn some front end frameworks. Angular looks amazing, here I go! Hmmm, are mobile apps the way of the future? I'm not sure. Maybe I should leverage this using the web skills I already know! Time to get up to speed with PhoneGap, Cordova, or AppGyver...
And this is just practical stuff. Nevermind the math, algorithmic, and hardware domains that I'm sure break into a million parts like the 'coding' endeavour I mentioned above.
Learning to code doesn't mean learning a dozen hip frameworks to pump out apps for the appstore. It means learning how to decompose problems into very simple parts and how to write down instructions for solving these simple parts so precisely that even a dumb machine understands.
Being precise and having the ability to tackle complicated tasks are useful in other contexts too. Learning to code teaches how to think in an unusual way.
Furthermore it's nice to know at least in principle how the things that you use every day work. Everbody should know how an internal combustion engine works. Not in sufficient detail to be able to build one, but well enough to explain to their children when they ask. Because maybe their children will want to build engines someday.
This is why people should learn how to code. It's not necessary that they learn how to build shiny things, they should learn the very basics.
That last part is what made me almost quit programming, upon the realization that the industry was not on a long march of progression, but on a cycle of reinvention, where each generation rediscovers the knowledge of previous generations in different flavors, especially in software. If more people learned the fundamentals they could discern between that which is new and that which is novel and spend their time accordingly. The industry as a whole would be better off.
I do mostly agree with you though. The more directions I approach software development from (different languages, frameworks, platforms), the more understanding I have of the different layers. If you approach a project knowing that you could write the whole thing from scratch, but choose not to, when limitations inevitably bubble up in the framework you're using it's a lot easier to work around them than if you're just copying and pasting stuff from tutorials without even understanding what the framework is trying to do.
Generally, though, programming skills are developed through practice, and practice requires motivation. It's hard to maintain motivation when you're constantly fighting the kinds of errors that frameworks completely abstract.
#1 Google, which helps you quickly find answers from #2
#2 Online tutorials, communities such as Stack Overflow and blogs
As a self-learner, it's awesome now a days. It costs next to nothing to learn, to get involved with open source or a community, and most importantly, to create your own projects!
In 1996, I had one friend I could call to ask a question. Maybe I could save up some money to buy some crap book on Visual Basic or C. Computers were still expensive back then, and a server - geez, forget about it.
1) Textbook
2) Teacher
3) Classmates
I dicked around doing Philosophy and construction for half a decade outside of high school, and one of the things that amazed me when I went back to school was how easy programming had become. Have a compile error? Google it. Getting this weird "Segmentation Fault" thing? Google it, and see what causes it.
I went from combing through the pages of the textbook to never cracking a book past second year, and in only a decade or so. I still sometimes marvel at how copying and pasting an obscure error into Google nets me the answer more often than not within 5 minutes.
Now that I learn it on my own terms, it's a much more enjoyable hobby, and it makes more sense.
And that let you do a end-to-end app with just fox/visual foxpro. Now, I html+js+(angular/jquery/...)+css(less?sass?)+nosql,postgressql,obj-c,sqlite,functional, declarative, reactive, imperative, *nix, windows, osx, and that is just a small sample of what I'm doing now...
Not that today's books are that much better. Pick up a php book sometime, they're even worse than php itself is.
In the end it always comes down to a persons will to succeed. Learning programming is basically a battle to simply keep putting your face in front of the code. The biggest value that resources like teamtreehouse and codecademy offer is that they make it more engaging (read: less painful) and so people are more likely to press on and get to a point where they say "Hey, maybe I can actually be a programmer".
True, but they aren't competing against job candidates from 1996.
Not that the whole movement is about finding a job. In fact, I think it will be more healthy for industry and students alike if "learn to code" is not a promise for a direct payoff at all, but a push to develop a useful core skill like math, communication, and understanding of science and humanities.
That's why i think it's a good idea to bring as many kids as possible into contact with programming, to find the ones passionate about it. It's also why i think it's a bad idea to push people in a programming course as a path to a job (if they haven't shown an interest in it themselves). I have been the person interviewing graduates of those courses too many times already, and in my experience they're mostly unhireable on serious software projects.
It's about understanding the internet, being literate in the 21st century, about being a producer of content not just a consumer.
Coding is fun, everyone should be able to do it, not just professional programmers.
Reality says otherwise, though. I have two friends who came to The Netherlands during the Balkan war in the early 90's. He used to be a math professor, she used to be a surgeon. Nowadays, he's cutting marble for tombstones, she works at the HR department. Quite the step back, although they have no regrets coming here.
I mean, I'm new to this game but did you even call it "coding" in 1996? To me just the word "coding" represents a kind of coolness factor that I doubt existed around programming in the mid 1990's. It used to be a nerdy thing, something you had to be 'smart' and work at a big company to do. Now tech is cool, the game has completely changed. I mean were startups even a thing in 1996? Were hoodies, mac laptops, red bulls and coding on rooftops popular? Because of things like Github, Ruby on Rails, awesome screencasts etc. I think it's just gotten more fun and productive to be a programmer and the lifestyle has more of a mainstream draw than it used to.
The other big plot line in 2013 that wasn't there in 1996 is the impending genocide of universities in America. Higher tuition rates, lower employment rates, it seems like the learn to code movement is the Newtonian "equal and opposite reaction" to the imminent death spiral of 4-year degree programs in America. I think we're going to see a ton of innovation from the "learn to code" schools in the next few years, innovations in education that the Universities won't be able to match, and the "learn to code" schools are going to kick the living crap out of colleges when it comes to where people choose to spend the money they have allocated for education.
Yes, we did. It wasn't that long ago! Sheesh! Thanks for making me feel old :-D
> were startups even a thing in 1996?
Ask pmarca! (https://news.ycombinator.com/threads?id=pmarca)
In seriousness, yes, they were, but it took a lot more money to get one off the ground back then than it does today; lots of proprietary software licenses to be bought, physical servers to be rack-mounted, and so forth. (You used to have to pay thousands of dollars per seat just to get access to some companies' API documentation! Yes! Seriously! Now, of course, you can just Google it.)
It was sufficiently expensive that a college student (which I was back then) couldn't really think of starting one on a whim. You had to get access to some serious capital to make a real go of it.
So many of those costs have collapsed these days that it's much, much easier to do a startup than it was then. But that's a double-edged sword -- while it opens up opportunity to lots more people, it also means there's lots more half-baked "startups" out there than there used to be.
It seemed an inevetability back then too (and 10 years before that, with the first wave of the cheap PCs).
Like now, it actually wasn't.
>But I think it's one of those things we'll look back on like the 2010 iPad / 1993 Apple Newton and say "yeah coding trade schools were a cool idea back then, but the world just wasn't ready for it yet", and now that they've become 'cool' so to speak we're going to see that permanent explosion.
Nope, it's just a fad now too, driven by the current bubble. It will subside with it.
>I mean, I'm new to this game but did you even call it "coding" in 1996?
You'd be surprised, but it was called coding in 1986, 1976 and even 1966. And it has been considered cool, in the right circles, ever since 1970 (circa).
>I mean were startups even a thing in 1996?
Sure they were. And Open Source. Everybody and his dog started a startup around that time, until they had a bubble bust circa 1999-2000.
Seriously man, you have to check up on the history of this "coding" thing. You seem to be missing a lot of knowledge, that's not just folklore but also essential to a well groomed developer.
Here's a 1998 documentary on the building of Mozilla: http://www.youtube.com/watch?v=u404SLJj7ig
Here's the Hacker's Dictionary: http://www.catb.org/jargon/html/index.html
Making things overtly fashionable makes everyone worse off.
Not sure how good a programmer you can become without being inherently excited about the whole thing.
In a way I believe everything can be learned the same way. I suck at design, but in theory I could see how I could learn it. The problem is I would have to be constantly absorbing new things. While talking a walk I would have to notice the typography on shop signs, when browsing the web I would make mental notes of designs I like, and so on. Totally doable, yet I am not doing it. On the other hand I read about programming all the time, even about topics I don't really work with atm like scalability, 3d programming, machine learning and so on.
Perhaps a course can be a good start, but I suppose it only gets you 1% of the way...