Coding (or programming) is a hot topic of conversation lately. MOOCs are offering programming classes [1] for free while industry titans are urging everyone to code [2]. On the other hand, others are objecting to the notion that everyone should become programmers [3]. I think the truth is somewhere in between these two extreme positions.
I personally think coding (or scripting) is similar to writing. Not all of us are good enough, motivated enough, or would even enjoy writing for a living. But because the written and spoken language drives much of the world today, it's important to have a strong grasp of language, be able see how it is being used for or against you and be able to use it to your advantage.
The ability to read and write code is similar. Familiarity with how code moves machines and software is the foundation to understanding how the most powerful man made forces in the world today are controlled and built. Being able to write even simple scripts or simple data filters can multiply your productivity or give you new perspective on how to frame problems and approaches to solutions. Without a basic understanding of code, one will be left behind in today's world.
Without a strong grip on the written and spoken language, we are at mercy of others who wield it better than us. Code is in many ways similar to this. I may never be a a master writer or a master programmer (or even a 'good' one for either), but knowing the basics is invaluable.
Of course, we should note that writing and coding will have "diminishing returns" for most everyone. We should exercise discretion in how far we should take our pursuit and have good judgment on what we expect to get from either discipline.
I personally feel that most people probably won't benefit from learning how to code. Coding is fun and rewarding, but there are few practical situations outside of certain professions. I mean anyone can learn how to do simple I/O and calculation with python, but what are they going to use it for? Fact is, most programs you might want to make are already available for free online, made by people who have coded for a long time.
It's like with most forms of manufacturing. You could go out into the woods and carve some wood and make your own bow... or you could just go out and buy a cheap bow which will probably outperform your homemade bow easily.. and when it comes to coding, you don't even buy anything, everything is supplied for free.
I feel like we should focus on making sure that everyone is very comfortable with computers. I've seen many a horror story from tech support, seems like it would be good to do..
On March 05 2013 02:47 Tobberoth wrote: I personally feel that most people probably won't benefit from learning how to code. Coding is fun and rewarding, but there are few practical situations outside of certain professions. I mean anyone can learn how to do simple I/O and calculation with python, but what are they going to use it for? Fact is, most programs you might want to make are already available for free online, made by people who have coded for a long time.
It's like with most forms of manufacturing. You could go out into the woods and carve some wood and make your own bow... or you could just go out and buy a cheap bow which will probably outperform your homemade bow easily.. and when it comes to coding, you don't even buy anything, everything is supplied for free.
On March 05 2013 02:47 Tobberoth wrote: I personally feel that most people probably won't benefit from learning how to code. Coding is fun and rewarding, but there are few practical situations outside of certain professions. I mean anyone can learn how to do simple I/O and calculation with python, but what are they going to use it for? Fact is, most programs you might want to make are already available for free online, made by people who have coded for a long time.
It's like with most forms of manufacturing. You could go out into the woods and carve some wood and make your own bow... or you could just go out and buy a cheap bow which will probably outperform your homemade bow easily.. and when it comes to coding, you don't even buy anything, everything is supplied for free.
I disagree. If you use a computer at all (which I think nearly everyone does) learning to code even at a basic level will improve your ability to function in the computer realm. It will allow you to understand more how the computer works and become more technologically literate. Everyone shouldn't be out there building huge programs and re-writing websites because there are others out there doing it better, as you point out. But the basic knowledge of how computers work and how programs run allows someone to work better. I hope that you are not advocating that everyone should not need to learn math, because a calculator can do it?
The bigger point is that (at least in the US, not sure for EU or the rest of the world) there is currently a huge deficit of people with programming knowledge in the private sector. Companies are increasingly moving online, and they need -competent- people with these skills. Key word being competent. These skills are not being taught or emphasized in the US schools, and thus the current situation arises. If more people were exposed to coding, perhaps some would be interested and enter into a career in software. Planting the seed is as important, if not more important, than actually providing immediately useful real-life skills
Hm... first of all, the problem we have right now is not that we have too many people venturing into coding and getting frustrated. There is this notion that coding is something elitist, that you have to be some kind of guru to do it. Suggesting coding is not for everyone is like saying that reading or writing is not for everyone; something that was done in the medieval times to discourage people from reading and writing.
The other misconception is that coding is really only necessary in certain professions, i.e. for "Coders". The reality is: Coding helps you in a lot of situations. There is an entire industry of jobs where coding would be beneficial, but it is not taught. The best example are business analysts, who have to sift through tons of data everyday as their day job, but also a lot of secretaries who use software such as Excel on a daily basis. These tools can be scripted, and should be.
Tobberoth, your example is, unfortunately, not sustainable. A lot of manufactured things never require tweaking. Tell me, how many of you guys have ever tweaked your computer? Perhaps you only downloaded a tool to do that for you, and that's fine. But computers are incredibly flexible tools. Tweaking them is kind of necessary to use them at 100% efficiency. But there's a much better reason your 'bow' example does not work: For a long time, manufacturing was hard, and time-consuming. Now that that's changing (think 3D-printers etc.), people do manufacture lots themselves--and for that precise reason, they don't like the manufactured version.
I sometimes cringe when I hear gamers talk about their favourite game software (I'll assume that's SC, what else?), and demonstrate an incredible lack of knowledge. That's another reason I support this claim: If more people would code, more people would have an understanding and appreciation of how software works internally.
Of course not everyone will end up actually working as a programmer. But that's not what this campaign wants to achieve--it's the awareness of it.
'Cuz they are going to spend 80 hours a week working there.
edit: I was a computer science major, so this doesn't fall on deaf ears. I know how to code. But knowing how to code doesn't mean you can look at someone else's and know what the heck it does. It can take a long time to understand.
I think, in addition to the obvious uses for coding, coding is an important skill for any scholar/academic. Not just math professors, but even experts in non-technical areas need to use computers to automate processes. You can often get away with what already exists, but it's not enough anymore.
I am also a programmer. I finished one of the top universities in my country when it comes to computer science. From my personal experience coding is easier than debugging. I have seen people just choke when their code wouldn't work and the error wasn't obvious.
Programming is more about knowing how to handle the situation when the code doesn't work the way you want (in 99% of cases you will have to debug your code), than the actual ability to code.
I recently posted on my fb an offer to help anyone interested in getting started to code. Only 2 people have expressed interest in that, and of them, neither has committed. Maybe the next generation will have the time?
People should at least hear about coding, but I think that knowing how a computer functions is actually what's more important. Everybody should have at least one class in school dealing with how a computer works and what makes it work.
Programming, in my experience, is about knowing what's available to you (language specific) and knowing how to use it well. Also, polymorphism! The first class you design for a professional project should NEVER be the actual implementation of what you want, unless you understand that writing the implementation class leads to understanding the requirements better and being able to abstract it accordingly!
On March 05 2013 03:53 RoyGBiv_13 wrote: I recently posted on my fb an offer to help anyone interested in getting started to code. Only 2 people have expressed interest in that, and of them, neither has committed. Maybe the next generation will have the time?
People are lazy and programming is "hard". The biggest problem though is that people have no connection to programming; they just don't see the point. If someone has no interest in it, it'll be a waste of time trying to teach them. Would you be interested in learning how to ride horses or in learning about interior design when someone posted that on facebook?
I'm a research assistant at my university in the psych department, and my boss had me do this very mundane but also annoying task of looking at two lists of data, and seeing how much time each of the lists had for a certain variable in common. "a" 05 05 "a" 03 03 "b" 05 10 "b" 02 05
and so on. So she expected me to calculate it by hand, over and over again. And there were about 300 files I had to compare. So, thinking like a true programmer (being lazy) I wrote up a program that did exactly that, and I could simply input the filename and I'd have my values instantly. To my knowledge there wasn't any program that could do this, or that could do this as precisely and specifically as I needed, so I luckily could write one myself.
On March 05 2013 03:53 RoyGBiv_13 wrote: I recently posted on my fb an offer to help anyone interested in getting started to code. Only 2 people have expressed interest in that, and of them, neither has committed. Maybe the next generation will have the time?
People are lazy and programming is "hard". The biggest problem though is that people have no connection to programming; they just don't see the point. If someone has no interest in it, it'll be a waste of time trying to teach them. Would you be interested in learning how to ride horses or in learning about interior design when someone posted that on facebook?
You're looking at it from an employment perspective, even though millions of people use computers and aren't employed in the IT field. I think he would liken it to being interested in reading, or knowing how a car works, i.e., more general things that can be applied outside of a livelyhood context.
On March 05 2013 03:45 CreationSoul wrote: I am also a programmer. I finished one of the top universities in my country when it comes to computer science. From my personal experience coding is easier than debugging. I have seen people just choke when their code wouldn't work and the error wasn't obvious.
Programming is more about knowing how to handle the situation when the code doesn't work the way you want (in 99% of cases you will have to debug your code), than the actual ability to code.
Completely agree. I graduated from the most difficult theoretical computer science program in France. While all of us thus know our way through the most complex algorithms, few can actually efficiently implement them, and most importantly, debug and troubleshoot code. Debugging most of the time requires a deep understanding of system architecture and software engineering practice, not just algorithms, language syntax and libraries, which is what schools only teach.
On March 05 2013 04:24 Roe wrote: and so on. So she expected me to calculate it by hand, over and over again. And there were about 300 files I had to compare. So, thinking like a true programmer (being lazy) I wrote up a program that did exactly that, and I could simply input the filename and I'd have my values instantly. To my knowledge there wasn't any program that could do this, or that could do this as precisely and specifically as I needed, so I luckily could write one myself.
This is a great example of what I was talking about in my prior post. Coding is invaluable in all areas of academia.
I think everyone should learn some amount of coding. Even if all you are going to use is Excel, knowing a few basics on scripting can go a long way. On the other hand, not everyone is cut out to be a programmer, just like not everyone is cut out to me a mathematician. However, everyone learns how to do arithmetic in school.
That video just sounds like a whole bunch of tech guys saying: "please we need a greater supply people who code out of love so we can work them harder and pay them less"
On March 05 2013 04:24 Roe wrote: and so on. So she expected me to calculate it by hand, over and over again. And there were about 300 files I had to compare. So, thinking like a true programmer (being lazy) I wrote up a program that did exactly that, and I could simply input the filename and I'd have my values instantly. To my knowledge there wasn't any program that could do this, or that could do this as precisely and specifically as I needed, so I luckily could write one myself.
This is a great example of what I was talking about in my prior post. Coding is invaluable in all areas of academia.
I saw that too... my wife is a teacher and so much of the redundancy involved at her work just breaks my heart... being able to code even some of the simpler routines they do would save so much time
On March 05 2013 03:53 RoyGBiv_13 wrote: I recently posted on my fb an offer to help anyone interested in getting started to code. Only 2 people have expressed interest in that, and of them, neither has committed. Maybe the next generation will have the time?
People are lazy and programming is "hard". The biggest problem though is that people have no connection to programming; they just don't see the point. If someone has no interest in it, it'll be a waste of time trying to teach them. Would you be interested in learning how to ride horses or in learning about interior design when someone posted that on facebook?
You're looking at it from an employment perspective, even though millions of people use computers and aren't employed in the IT field. I think he would liken it to being interested in reading, or knowing how a car works, i.e., more general things that can be applied outside of a livelyhood context.
I have no idea what you are trying to say. I meant teaching them at a basic level, which most people simply don't have an interest in. I've tried. It's the same thing with cars, just that more people are interested in cars and therefore know more about them than they do about computers.