Obama Becomes First President to Write a Computer Program
wired.com
wired.com
Obama is leading by example. He and his biggest supporters are people who never in their lives imagined that they would ever write a computer program or anything close to it. There's a cultural barrier that's hard for most of us to see, a clear demarcation between most people's daily lives and the idea of writing even the simplest program. Crossing that barrier is hard, real hard, and I am surprised and encouraged that Obama took the plunge.
Code literacy is important, not so that the average person can become a 10X engineer but so that they can understand what's happening in the world around them on another level. It's the same reason that people should learn physics or chemistry or biology. Because these processes control our world and a basic understanding of them, even if we don't use it professionally, can help give people valuable context. Hopefully this kicks off more interest in learning the basics so that in ten years the sales guy won't think that coding a full featured CRM from scratch will take you a couple of hours over the weekend. We're moving toward a more automated world and the value of understanding it is increasing exponentially.
"moveForward(100);"
A publicity stunt should not be confused with a tectonic shift in technology literacy or usability.
Big deal- no. It's quaint, cute and frankly, a little pandering.
A "developer" who has been excited over "moveForward(100);" has been the subject of pandering.
Your PETA comment is not consistent with the point I'm making. Obama did some cargo cult "programming." I'm not sure that it's worth saying Obama is the first president to have ever "programmed" when all he did was follow a recipe. Obama did not develop any deep insight into software development and how the difficulties of the discipline justify the high salaries of your average developer. There's no real meat here.
I disagree. None of that requires code and I don't think people need to know code any more than they need to know how a circuit board works or the inner workings of their internal combustion engine or microwave.
What people do need, however, are broadly-applicable critical thinking skills and a basic introduction to logic. Those skills can be applied to physics, chemistry, biology, ticket booking, car problems, oven problems, anything.
I 100% agree with this. This was a great way to set an example.
> Coders will rule the future global economy.
I completely disagree with this and haven't seen any evidence. You could say the same about engineers or doctors or any other skilled profession that deals things that affect people in a similarly pervasive fashion. None of them "rule the future global economy."
> As for pandering, no, it was symbolic and the presidency is all about the power of symbolism.
I'm not sure where this came from since I never talked about pandering.
When everyone knows how to code and coders rule the future global economy, coders will have the prestige and salary of a cashier or a waiter.
I work in computational linguistics, and it is often aggravating to see linguists doing hours of manual work on data that could be done using a five-liner.
E.g. my wife is a neurolinguist, and she was manually doing mechanical transformation of some EEG data, which was going to take her two days. I wrote a small Python script on the spot in a couple of minutes that did the same work.
That convinced her to learn some Ruby. Afterwards, she has saved a lot of time by writing small data transformation scripts for her research and that of some colleagues.
The problem is that a lot of people don't even know that it is relatively simple to pick up enough scripting skills to make your life easier. So, I think it definitely makes sense to add some coding to high school curricula, so that people at least know, when applicable, that basic scripting is not hard and where to start.
Why didn't that convince her to learn Python? Especially since she could eventually use SciPy, NumPy, etc.
How is his "race" (as you guys call it) relevant?
See pages 16-19
Do you know better term to describe "it"?
It seems to me that the use of this word facilitates the formation of ideas like "mixed-race couple" or "people of other races" which are not as easy to express in my language. It creates a (further) mental separation between groups of people by giving an official way of categorizing them which would be harder if there were no generic word for it. I'm not saying making the word disappear would make the problem of racism disappear, but I really think the frequent use of this word increases psychological walls between communities.
Finally, there is no scientific basis for saying Obama is of the "African American" race because he is as "Caucasian" as he is the former, which shows that what it really conveys is more than harmless classification for statistical purposes.
Let me ask it another way.
Let's say that you're really fond of Asian women (my God! is it still legal in politically correct world?). How would you express such fact without referring to race?
And yes, it is legal, I don't think I ever denied your freedom of expression.
If we want programming to go mainstream we really need to have a near total visual environment. Yeah it won't be efficient but in today's world most won't notice. The people who write the tools may be encumbered with the text laden language but why should programming be solely confined to a text world?
When I was barely out of high school, I briefly consulted for a guy that had built a net worth in excess of $100 million from scratch with a very successful chain of auto body shops. I was first introduced to him after his son told me that a few days prior, his father's computer came up with a message box saying that a program had "performed an illegal operation". He yanked the power cord out of the wall and began contemplating what he would say to the police when they came.
Last year, Steve Wynn, billionaire casino mogul, was accused of threatening the life of Girls Gone Wild founder Joe Francis via email over a $2 million gambling debt. Steve won a defamation lawsuit, with his primary argument being that he couldn't possibly have done it because he had never sent an email in his life.
While technology is an integral part of our world, the most crucial skill for leaders isn't being able to code or necessarily even operate it. It's being able to identify what needs to be done, then building and managing teams that can get things done. If you can do that, you can accomplish almost anything.
I know of a CEO of a major American company that has his secretary print out all of his hundreds of daily emails and manually sort them for him. He then dictates his replies into a dictaphone and has her type them out.
edit s/pharmacy/pharmaceutical/ edit2: this is a joke. I don't know who this is, am trolling
There's a huge difference between "no tech expertise" and "never written a computer program".
I know doctors, real estate agents, lawyers, consultants, and a few successful CEOs who are very averse to using anything tech, and they're all raking it in just fine.
http://studio.code.org/sh/32532000
(http://www.siliconrepublic.com/innovation/item/39544-wit2014)
> moveForward(100);
https://www.quora.com/What-was-the-one-line-JavaScript-that-...
However, I suspect that coding will become the new literacy. It's becoming an essential life skill, but only a few people need to be really good at it; most people just need a basic functional knowledge.
Are computers everywhere and do people use them every day? Yes. But mechanical ability isn't the new literacy and just as many people interact with engines on a daily basis and would be helped by it in daily life. I think it is much more useful to think of programming like woodworking, leatherworking, sewing, soldering, etc. Very useful skills which can improve your life, but not at all necessary, and "only a few people only need to be really good at it" as you stated.
I have a lot of friends who work in offices surrounded by Excel spreadsheets all day. I know for a fact they would be more productive if they knew how to use it better, write macros, VBA... or heaven forbid, use a database instead. I think this is going to happen more often in the future, too.
Stupid alert: I briefly worked at a startup that did push to production by remote desktop to the server and manually restarting the IIS server after copying things into place. They didn't automate it - because "it's the way we always did it." (Yes, they're out of business now.)
Automation also has the potential to make a task less error-prone and its output more consistent. A botched or forgotten manual task can be difficult to clean up after, so there's risk management too. For instance: in one incident, a coworker at a former employer accidentally ran the "send thousands of people email about how much we're about to pay them in a few days" script on input from the wrong year because January had just ended and he had to input a value containing the last day of the month (e.g. 2013-01-31) by hand.
That is, if the benefit is worth the costs.... do so. Otherwise, reconsider.
And few things make as glorious as a mistake as an automated job going out of control. There is a reason one of the most important questions you should ask on any automated task is "how do I make it stop?"
Literacy itself used to be a niche skill, learned by a select few who made an earning from it (scribes, criers), while the majority of craftsman got along just fine without it. Then the printing press came along, and it brought a proliferation of readable material, and literacy became useful. Not essential, but useful. People could distribute political literature, or send messages cheaply. Literacy bloomed. And as literacy increased, and became expected, it became essential.
We're at the beginning stage of that now. Somewhere around (probably before) the printing press. Programming literacy is becoming useful, but not yet essential.
There will always be a need for people who understand computer science, but those engineers will be like compiler engineers or hardware engineers are today...enabling a much larger group of programmers to produce the software that provides value to users. And as we're able to provide improved layers of abstraction to make software development easier, we'll see computing become more accessible to more programmers who will build software with a much richer understanding of the domain.
So I'm torn about initiatives like this. I see coding as the new literacy...it will be a skill required by almost every professional who is an expert in his or her domain. But they won't be coding in today's languages and coding will be significantly easier than it is today. So we need to find a way to teach children to develop using tomorrow's tools today. And that means extracting the part of programming in today's languages that is intrinsic to programming while doing our best to avoid the part of coding that is just pain inflicted by today's limited abstractions. That separation may be difficult (or even impossible) to achieve, but that doesn't mean we should try. Because anyone who doesn't learn how to instruct a computer to accomplish tasks is going to be automated out of a job (https://www.youtube.com/watch?v=7Pq-S557XQU)
That is an extremely unusual definition of "literacy."
"Coding is the new literacy" implies that coding will be necessary for anyone who wants to interact with modern life, not just for experts. Imagine trying to use the freeway system if you could not actually read streetsigns, for example. i.e. if you were illiterate.
That's the whole point. Computers and robots are creating a world in which there really isn't room for anyone who isn't an expert. We've already automated the low-hanging fruit...we've got a fraction of the manufacturing jobs because computers and machines can do that work faster, cheaper and more effectively. Google and such are working on less low-hanging fruit (people who drive automobiles for a living, lawyers...there's a bunch of examples in that youtube clip). That bar for offering utility beyond what can be automated is steadily rising.
If you're not an expert in something, you're going to be pretty useless in the world we're creating.
Regular expressions and basic Unix utils are also amazingly valuable in non-tech jobs that involve computer use.
"Life skill"? Maybe not. Enormously valuable in bureaucratic jobs? Definitely.
The point of bureaucracy is not to be efficient, it's to give jobs to people who otherwise would be flipping burgers or mopping floors, but are too educated for that. See hyper-bureaucratic countries like France for a vision of this.
I'm on the side of basic income for everyone to avoid this problem and reclaim efficiency in administrative processes, but in our judeo-christian cultures not working is considered a bad thing®, and thus this idea has a hard time gaining traction.
This is one of the lessons that keep cropping up when they try to automate say claims administration at the VA. Something that's only 90% automatable might as well be 0%.
Is your assumption that businesses are thriving while wasting 10-30% of their revenue on busywork? If so, it should be trivial to crush them with your 10-30% reduction in overhead. Do it?
Is your theory that regulations requiring hard-to-automate bureaocratic work is created with the sly intention of creating busywork for people? Ah, special interests. They can lead to some messed up stuff, but most regulations are put in by well-meaning people trying (often ineffectually) to do what they're actually stated to be for--enforcing safety, fairness, etc.
I've regularly stated that I want most of my job automated away by Google, and we do have start-ups chipping away at old business models, but if it were entirely a matter of simply deciding to stop wasting money, I'm going to go out on a limb and say someone would've done it already.
Consider math. It's extremely useful and people need it to properly function in modern life. And yet people are not only terrible at it, but they are proud of how terrible they are at it. They believe (incorrectly) that math is something you "just get" and that it is not a skill that can be learned. To me, those people are illiterate, but the perceived social stigma of being math illiterate just isn't there like it is with actual illiteracy.
So, if math, which is much more fundamental and useful in the every day lives of people isn't the new literacy, I don't think coding has a chance.
I think this statement is only accurate for basic math. Nearly everybody I've known has had a situation where they wanted to code something or wished they knew how. Math is almost the opposite, I've heard more complaints about wasting time on "useless math" than I've heard regret for not pursuing it more. That's not to say they're right, but it's absolutely a strong opinion I've heard from a huge range of people.
I do disagree with the premise of coding being the new literature though (as defined by >99% of the population). Any point where that percentage is reached will be one where programming looks nothing like it does today and has been abstracted to a meaningless level.
At a fundamental level, math is taking stuff you know and manipulating it into answers to stuff you don't know. That thought process is extremely important. I use it every single day. Sometimes it's intuitive, like saying, "I need to visit five stores today. What's the most efficient way to get there?" Other times it's actual math, like saying, "I need to figure out the most efficient way to tackle my debt."
The list goes on and on. Can I justify buying a new car? Should I go to college? If I were laid off tomorrow, how long could I support my current lifestyle? Even questions that have nothing to do with math such as "How do I replace my brake rotors" require that exact same mindset. Start with the stuff you know, and use it to get answers.
Will you use integration by parts in your job? No. Will the thought process you've cultivated by applying integration by parts on a difficult problem help you? Yes, vastly.
If you don't know math, you might not realize that a lot of these questions have concrete answers that are relatively easy to figure out. You might just wing it or not bother at all. And while that's perfectly fine when you burn another quarter-gallon of gas on your errands, it's not when you're figuring out whether you need to sell your car or how much to save each month for your kid's college fund. Or when you're given shady statistics by a politician. Or when you're offered the Once In A Lifetime opportunity to invest in Amway.
http://mysite.science.uottawa.ca/mnewman/LockhartsLament.pdf
Why not "Everyone should learn how to fix a broken pipe" or "Everyone should learn how to cook" or whatever?
Here is mine: "everyone should follow his own passions"
I don't see how learning to fix a broken pipe would be as globally applicable.
>Obama wrote his code part of event today organized by Code.org, which brought brought 20 middle school students from the South Seventeenth Street School in Newark, New Jersey, to the White House, where they met the president and worked on Hour of Code tutorials.
>Last year, Obama delivered a YouTube speech last year[...]
Scott Dadich @sdadich EDITOR IN CHIEF
Mark McClusky @markmcc EDITOR, WIRED.COM
Maybe we should fork it and turn it into a bigger project.
"President's work gets forked".
I'm thinking not.
He sent exactly two e-mails during his eight years in office.
Not even kidding.
I'm already confident I can replace most/all of the IRS, Treasury, and all the welfare/safety-net type programs with fairly simple, hard-to-abuse software/hardware system. Given that the laws were significantly different and simplified. (And snowball's chance in Hell they'd allow that. Although there are alternate law/tax/welfare configurations which are both physically possible and theoretically sustainable.)
Programmers love rewriting things from scratch. But experienced programmers know it's often better to see what can be salvaged.
> Ilves moved to Leonia, a borough of 9,000 people a short trip over the George Washington Bridge from Manhattan, when he was three years old. He grew up there and learned computer programming at Leonia High School. Ilves graduated as valedictorian in 1972 and went on to receive degrees from Columbia University and the University of Pennsylvania. (...) Ilves credits the programming classes he took at Leonia High School with his work to turn Estonia from a country that essentially had no communications infrastructure after independence to what is now a European Silicon Valley of sorts. The most notable example? Skype was created in Estonia.
http://www.washingtonpost.com/blogs/post-politics/wp/2014/09...
Its actually a good "hello world" exercise: http://youtu.be/RmfP2rHV7io
(I actually had a guy yesterday try to recruit me for this company, working on "dot JS node".)
drawline(0,0,0,1)
drawline(0,1,1,1)
drawline(1,1,1,0)
drawline(1,0,0,0)
and here we are crazy of his great achievment. 10 PRINT "HELLO WORLD"
20 GOTO GUANTANAMO BAYDon't get me wrong, making programming a core competency is a novel goal and everyone should do it like everyone should do some chemistry in high school or do a physics project (I for one built an awesome bridge of balsa wood). It is an important skill that people should be exposed to at some point but the idea everyone should 'learn' to do it is a misnomer.
But just as I don't consider someone fatally unknowledgeable about biology if they can't quite remember what, say, the liver does, I don't consider someone fatally unknowledgeable if they don't know how to write a computer program.
It would be nice if everyone tried programming at some point, but the idea that everyone should know how to is kind of silly.
Of course you did. Why isn't your 3rd grade logo code a program? Even "Hello world" is a program!
Bitter sarcasm put aside, I have often, existentially, wondered "what is programming?" The word "programming" obviously carries a lot of colloquial meaning, but I'd be interested in hearing where others draw the line between programming and, er..., data entry.