How many of you speak more than one language? Since Hackaday is an English-language site whose readership is world-wide, we are guessing quite a lot of you are not monoglots. Did you learn your second or third languages at school, and was it an experience you found valuable? How about your path into software? If you are a coder, were you self-taught or was your school responsible for that as well?
It’s been a constant of the last few decades, officials and politicians in charge of education worrying that tech-illiterate children are being churned out of schools ill-equipped for the Jobs Of Tomorrow, and instituting schemes to address the issue. One of the latest of these ideas has come our way from Florida, and it’s one that has sparked some controversy. It sounds simple enough, make coding equivalent to language learning when it comes to credits in Floridian high schools.
You might think that this idea would be welcome, but instead it has attracted criticism from those concerned that it will become an either-or choice in cash-strapped school districts. This could lead to kids without an extra language being at a disadvantage when it comes to applying for higher education. There are also concerns that the two subjects are not equivalent, and should not be conflated.
It’s difficult from the perspective of an adult technical journalist without a background in education to speculate on the relative benefits to young minds of either approach. It is very likely though that just as with previous generations the schools will discover that there is limited benefit in pushing coding at kids with little aptitude or interest in it, and that the benefits in terms of broader outlook and intellectual exercise gained by learning another language might be lost.
Which was more valuable to you at school, coding or learning a language? Were you of the generation that learned coding through BASIC from the manual that came with your home computer, and should today’s kids be doing the same with Scratch and Python on boards like the Raspberry Pi? Let us know in the comments.
Child at computer image: Nevit Dilmen [CC-BY-SA-3.0], via Wikimedia Commons.
‘It is very likely though that just as with previous generations the schools will discover that there is limited benefit in pushing [another language] at kids with little aptitude or interest in it, and that the benefits in terms of broader outlook and intellectual exercise gained by learning another language might be lost.’
Fixed that for you…. now it applies to both, and is equally relevant. I was taught french at school (secondary) – it was of no use to me, as I couldn’t handle English (undiagnosed dylexica at the time). Many years later, I’ve picked up bits and pieces of programming languages, and bits and pieces of foreign languages. Both are equally inaccessible to me, but I push myself harder when it comes to learning programming, because I want to.
I’d argue as we increasingly enter a technically centric world, that programming languages would be far more valuable than spoken languages.
Maybe due to my dylexica my world point is viewed, but who knows!
I am 27 and do speak fluently 7 languages. I am thinking of learning to code precisely because I feel curious about comparing
which ones? Can you give us an example (one sentence in 7 languages)?
I know Czech, little Slovak (it is almost the same), less English, even less German and Polish, and I’m starting to learn Russian, because Putin will take half of the world. I should learn Chinese because China will take the other half (including North America), but it is too difficult for me.
I have always been fascinated by my East European friends. They all speak 3 languages minimum. And many of the languages are quite difficult ones like German or Hungarian. As for Chinese, I’d say: don’t be afraid. If you have an acute hearing (for the different tones) and a memory of at least average quality, the language is not difficult at all to speak. The writing is alas quite a different thing, but there is practically no grammar and the pronounciation is not too difficult, either. Give it a try. After all, being able to communicate between different cultures is what being European is all about.
And, yes, it _is_ a pity that the US seem to have decided to give up taking part in any international politics and to make way for the more expansive global players.
Don’t worry… it’s the typical catalan i think…. which means he speaks catalan, spanish, english, a little bit of french, probably german also, and i’m wondering about the sixth.
Typical? Im not an expert, but As far as I know the typical catalan speak fluently spanish and catalan, and maybe french. However english…I dont think so
I found that my experience learning a foreign language helped when I started learning programming languages. Once I made the connection that the process is similar (both have a written syntax and structure, rules governing the language, etc…) picking up programming languages became easier.
Sorry, I accidentally reported this comment while scrolling on my phone, but while I’m here:
I also noticed that, but I have also noticed that I’ve been able to relate programming concepts to all sorts of others learning situations, including learning more languages. Both are helpful, but I’m not sure they fill the same areas for how one learns. Programming gives you lots of logical mindset types of help, but language learning has mainly helped me with learning English (my primary language) and other languages easier.
Having no foreign language experience because I was a turd in school (who vocally opposed anything non STEM) this saddens me. I’ve been able to cultivate a lot of stuff I missed over the years but languages have been very tough for me to crack. Isn’t there room for both?
Kids should learn, at least, the fundamentals for both. And be equally obligate to have good grades to pass in both. But they should learn how to use computers to solve problems, not the way schools of today announce proudly that they have a lot of computers for the students, but then the only thing they learn is to use facebook and its ilk.
Also, there are always the kids that have interest and those who don´t. It is of no use to force the full aspects of programming languages upon then. General problem solving techniques, that could be adapted to many situations, would be more useful in the long run. Not all the kids of yesterday learnt BASIC from the manual, just those that liked it and were interested in computers. Same way, not all kids of today schools are interested in programming computers. If we can teach them enough common sense to not waste their lives in social media, and not to click in phishing links, that can bring more improvements than forcing , say, python classes upon them, just to have 90% of the class copy an assignment made by some computer-savy older brother or parent.
I learned English by being dropped into Grade 1 in Canada (no ESL courses in 1953!). School was before computers were accessible, all we had in high school was a Heathkit analog computer. Personally learning other languages from a young age has benefited in that you learn to piece things together without necessarily knowing the whole. Snippets of a sentence in German Dutch, French and even English is enough to get the gist of what is being said. Programming, distinct from coding, is about design and architecture more than coding in a specific computer language. I have self taught assembler for NCR 315, Univac II, Univac 1100 series, 9000 series (IBM 360), z80. Fortran, PL/I, Cobol, C, C#, VB and php followed. What really concerns me is that without design and architecture school kids are going to create the pile of c**p that was Unix programs, for the most part a truly horrid example of coding without thought. No range checking, no comments for the next victim, super tricky code that is indecipherable and counts on specific compiler behaviour, no thought for portability etc etc etc. . So no, I don’t think teaching coding is a good idea by itself. I survived 43 years of working in the computer field by learning and then learning again any new computer language needed. The ability to pick up something new when needed is far more useful to you, what is here today will all change in a year or so, be prepared for that.
This should not be framed as an either-or issue, any more that trying to argue that more math should be taught at the expense of language skills in the mother tongue. Furthermore, the idea that there is a choice in the first place is something only English-speakers can fool themselves into beliving, and given the known benefits in several intellectual domains from acquiring a second language, they are basically handing an advantage to those from other languages who must learn English as a second tongue.
I’m in the same camp here. It would be good if all students could be presented with a foreign language (I learned German in high school, but wish I’d learned something that had more local speakers, like Spanish. Coding is a bit more specialized and does not teach the same sort of mental skills – it’s something not everyone needs to learn.
I agree. I want to add: for those of us that English is not our mother tongue (my mother tongue is Spanish), learning English as a second language (at least until reaching an intermediate level) is a very useful tool that really helps later when you learn CS/programming/coding, etc.
It lets you undertand the acronyms, commands, function names, etc and gives you easy access to the technical literature (manuals, chip specs, application notes, advanced books, etc).
May be I am a little “prejudiced”, having learned English in the 60’s – 70’s when you had to go to the libraries to get the (limited) technical material available about computers and electronics and you were lucky if you got a new magazine once a month… Nowadays most of it is “just a click away”.
Best regards,
Daniel. (Montevideo – Uruguay)
Of course that’s the root of the problem for native Anglophones: they don’t HAVE to learn a second language, whereas most of those of us that were not born into English did if we wanted to get ahead. One of my grandmothers, who was comfortable in several languages, used to say: (roughly translated) “Another language is an easy stone to carry – the problem is picking it up.”
“Another language is an easy stone to carry – the problem is picking it up.” That is a really nice way of looking at it.
Though, I prefer knowing more then one language, as there are many advantages, especially when programming.
I still really can’t wrap my head around the though process behind the creation of Cyanogenmod, as for some reason they took away the support for non-US keyboard layouts (On physical keyboards)… Something I as a native Swedish speaker would never do, as why??! Same thing goes for anyone that uses a non-US keyboard.
Though, there are many other positive sides of knowing more then one language, as in some situations, it is far easier to explain advanced concepts in a langue that handles them more often. I would’t turn to English if I need to describe the properties of a certain type of snow to someone that knows Swedish. Nor would I use Swedish for explaining RF components, as most of the terminology doesn’t even exist in Swedish or is simply read as if they were Swedish words. In the end, if one knows more then one language, then there really isn’t something bad to it.
I think a lot of it (both human language and computer language) is being taught in a way that a) you’re likely to learn & remember and b) in such a way that it can scale as you learn more without previous things being too much of ‘islands’ (more things to remember) or taking precedent over previous things (trying to forget ‘wrong’ things).
I found I struggled to learn foreign languages but have got to a point with computer languages that, bar some exceptions, I can pick them up fairly quickly leaving only language specific features to learn. Part of that is because the logical method of (computer) languages fitted in closer with how I prefer to learn, plus they were also taught in a abstrace/pictoral style which also appealed.
I think both sides of the fence could take a lesson from each other to see what styles of teaching work best for those people in order to include the missing audience whose preferred learning method is in the other camp.
Omw very good questions ???? I speak two languages I went to a afrikaans school while I learnt English at home basically
I always advocate to learn other languages, it expands massively the way someone thinks.
I’m polyglot, swiiss german at home, all schools in french, first tech. translation at 15, some english.
At 13 self taught BASIC (VIC-20), later 6510 + ARM assembler, forth, c.
This is what I’m good at, but reading italian and spanish works me, as understanding C++, Obj C, Java, perl, python, php, html, js, swift, pascal, comal, tcl but don’t ask me to write any code.
Mastering a language is more important than knowing many, but it’s getting easier with every new ones you learn and it does affect the way of thinking dramatically.
I’m of the generation that learned coding from the home computer manuals, self-taught. I agree with Gerrit that coding and programming are separate. I don’t think I learned much design and architecture from these manuals. BASIC especially is bad — the B stands for beginner, so as long as I stayed with BASIC, I stayed a beginner.
I don’t agree that learning a programming “language” is really learning a language at all. It’s still in English! Here’s a thought: Some of the French and Russian programmers I’ve worked with showed some interesting approaches to coding (in English!) that is a reflection of their different language structure. Even though I only know English, I believe that learning a foreign language may actually help with coding and programming because of the expanded thinking you can get from it.
In Italy we have lot of pressure from parents and political institution to teach English in schools. That is of course a good thing, however I feel that many miss the point that languages (either spoken or programming) have a mean if you have something to say (or something to solve). So let’s focus children on fundamentals. The capability to have a critic and independent thinking should have higher priority that a programming language (BTW: which one?)
I was in Italy in a camp 2 years ago. There ware announcements about daily schedule in 3 languages. The English was terrible, they spoke very fast with strong Italian accent and pronunciation. It was shame because there ware some good things to do. We just didn’t know about it.
“Coding” is not a language. It’s a way to write “recipes” for computing engines.
Learning a second (human) language exposes us to other cultures and ways of looking at the world, something sorely needed in today’s climate of nationalistic extremism and religious intolerance.
When I grew up our schools were fortunate enough to begin teaching French in 6th grade to all students, followed by French, Spanish, and Latin in the junior and senior high schools.
Computer languages? I learned them by hanging out at the computer room in college, reading scraps of yellow teletype paper left behind by other students and printing out “moon lander” (BASIC) to see how it worked.
30 years later I retired from IBM after a career that included work on everything from the original IBM PC to Watson-scale supercomputers.
There are some similarities. Chomsky’s ideas of recursive grammars in natural languages was directly adopted by programming languages, which gave birth to modern compilers.
However, they are vastly simpler. A simple argument for this is that an experienced programmer can pick up a new programming language in a day, but it takes much longer for someone to pick up a new natural language, even if they know several others already.
This is both true and wrong in a way but points to the (in my opinion) most crucial problem with programming languages.
You are right – an experienced programmer will pick up a new programming language in a day. But he will not be able to use it on any target. He needs to learn the API of the target. Knowing C(++) and using it on Windows to write Client/Server UI Applications in a RAD environment does not give you the skills to code C++ on an embedded system or a microcontroller. It even gets worse with operating systems in the mix. You might be a Windows API guru knowing all the tricks in the M$ world. But that doesn’t make you a good Linux coder. Not even if you stay in the same language. It gets a bit better with cross-platform languages like Java but even here you have to learn how to adapt to hte target for best results.
So coming back to comparing himan languages and programming code I see a similar level of complexity when literally mastering the language. You can learn English (if it’s not your native language) on a “Give me drink” level which is similar to learning the basics of a new computer language. But writing a poem similar to writing a usefull application requires a lot more.
Learning another human language can be valuable as a learning tool. It seems, however, that not everyone can learn a language at the same rate, which leads some to think they cannot learn a language at all.
When my daughter was in school and preparing for college, she was awarded credit for band as language credit. If the band geeks can get credit for their efforts, surely, the computer nerds are due some credit for their efforts.
I learnt Spanish at school and at home was encouraged to learn spoken foreign languages as much as possible. I have pushed myself to learn as much conversational French, German and Italian as I can. I have also attempted to learn Mandarin and Japanese as well as it is useful for anyone involved in technology. Learning Mandarin and Japanese without a formal teacher is very difficult and without an specific use or purpose in my life makes it even more difficult to remember!
I find it is the same with coding to an extent. My coding skills are average at best. When I have specific requirements within a project I work harder to achieve the required goals and re-learn the syntax and coding style. If I coded everyday no doubt I would improve considerably.
Teaching languages or coding is only going to work if the students are encouraged to apply that which has been learnt in school. Unless there is a specific reason to speak a foreign language or write code students will always struggle in my opinion. Learning a foreign language or coding is a very useful mental exercise as it can teach mental discipline…but without purpose its not going to stick.
Card on the table I didn’t truly bother trying to speak a foreign language until I met girls whilst on holiday in Chile! Then learning to converse became very important too me…see its all about the motivation behind it!
Programming is not about memorizing language syntax, its about logic.
I was thinking the same. In school I had to study three languages mother tongue, russian and english. On top of it I’m learning on my own german for two years now, which I still struggle with.
Compared to programming languages, I can get up to speed in about a month or two, and feel relatively comfortable in the new language. Because logic doesn’t really change. Obviously I can’t become the said programming language expert in such short time, but I can get by and do interesting stuff. No way I’ll be able to learn a language in two month and have meaningful conversation. I’ll be limited to “Hello my name is …”, “What’s your name?” and “How are you?” :)
TL;DR; It’s easier to learn programming language once you know how to program, because logic largely stays the same. While spoken language, grammar tends to change heavily and it is important to remember “syntax”
This!
In my opinion a programming language basiscs should be taught on all schools that teach any science or computer related skills (be it graphics design, photography, CAD design, finance etc or anything else) and many already do. But for the general public, maybe teaching how to do high level stuff like making macros for an office suite or creating a database, both of which I was taught at school. For many people ending up in office jobs, this could give them an edge compared to people with no programming or scripting skills at all.
School wasn’t the first to teach me programming, that I did on my own in the late 80ies, first basic, then assembly and later pascal and c. When I was ‘taught’ c and c++ at school I finished my assignments in 10 mins and went on creating stuff I was interested in.
I consider programming and normal languages to be equally beneficial to me for communicating with devices and people alike and sometimes this goes hand in hand by cooperating with non-native speakers in programming. I’ve worked with Italian and Spanish people to build applications while I’m Dutch myself.
Case in point: I’ve just taught someone in the real estate business to do regular expressions. Saved him many hours of repetitive work. It’s a bit like giving a man a fish and he lives for a day, teaching him how to fish will provide him for the rest of his life. So it is with basic programming skills.
As a Dutch speaker myself, I know how useful it is to have that super power. :-)
The word “language” common to “foreign language” and “programming language” is a red herring. Human languages are very different from programming languages, as all readers here will appreciate, but not necessarily everyone else.
Treating them as equivalent in high school for credit purposes is like compensating history with math. It is simply a political question if you, as a governing body, want to allow that. Maybe a ‘robust decision’ is better than a supposedly accurate one?
Where I live and work, some proficiency in foreign languages is essential. On the other hand, if you would analyze which programming languages are related to high-income jobs you would identify a clear winner: Excel. So what exactly does that tell us for the education of the future workforce?
Exactly. If there is need for a discussion at all about what subject is equivalent to programming it should be by making comparisons to music programs. Not that I am suggesting getting rid of music in schools, but I do think that students should be asked to advance in one or the other after being exposed to both. In my experience the act of learning to read sheet music and learning to code in BASIC was far more similar than learning another language.
Programming languages have a limited life span, thereby human languages are way more relevant. In University, I learned Flash Actionscript, only 5 years later a totally useless skill. My basic grasp of japanese, dutch or my fluent skills in english (2nd language in school) or french (3rd language in school) will be usable all my life.
Sorry Felix. Flash was kind of a bad choice though. A proprietary web language as your main focus? Really? That is definitely a market driving by short term fads. You learn to program in general first then you learn that kind of shit on the job or not at all. Otherwise you are just begging to see your hard hours of studying count for naught.
If on the other hand you learned an application development language.. well.. come on, almost everything just looks like C even today and look how old that is.
Sounds like ActionScript 2.
At least then, you did the curly brackets and maybe dotted notation. JavaScript is closely similar and Java is remotely similar.
If you liked Action Script then try a game language called Love. It is a strongly graphics oriented language like ActionScript but it’s engine is the language LUA which is both powerful and fast (one of the fastest). Love is like a fun way of learning LUA. LUA gives you the power to write your own application specific language at some stage.
HTML 5 / JavaScipt may be something you like to. If you want to conquer the internet of languages then PHP / MySQL are next.
If you want to conquer coding hardware then a variant of C or a C like language is next or the are many hardware specific languages like the Arduino Sketch that is C like and easy to learn.
I have done hundreds of languages. Technically they are either procedural languages or Object Oriented Languages (OOP) but a lot of languages were previously procedural so they can be coded for either way.
So to me they fit into two groups. Those where you have [function {} or class{}] and those that don’t use curly brackets in this way or at all.
The first language of either type is the steepest learning curve. Each language of it’s type is easier after that until you just need to read the list of primitives, the syntax and operators of a new language and your on your way.
Some are still a bit quirky to pick up like VHDL because there quite different but most are one of two types.
When I was a kid in elementary school we had 8-bit computers in school, with BASIC on them. BASIC was, of course, in English. But almost nobody understood a word of it. So we had a logic problem: learning to code (new concept) using English (new concept). Needless to say that did not go too well.
To this day I can’t understand why BASIC keywords were simply not translated into our language, and why even now there are almost no computer languages with non-English keywords.
Universities will always try to teach the languages that they think will be relevant to their students in the workforce. Workplaces will always chose to write their software in the languages that they see as currently popular as those will have the most support. This means there is a huge amount of inertia behind existing languages and things which look like them and the early winners were in English.
But.. now that open source has grown so large not everything has to cater to the market. if a lot of people want something then somebody usually creates it. So… good question… why aren’t there more computer languages based on human languages other than English? I don’t expect one to originate in the corporate or academic worlds but why not in open source?
English IS my first language but apparently not yours so I’m going to turn this question around right back at you… why don’t you start working on an open source programming language based on your own mother tongue today?
why aren’t there more computer languages based on human languages other than English?
My guess is that this is because most languages are inflected; words morph based on their role within a sentence. One could imagine something like a FORTH in which nominative refers to the address of a variable, genitive refers to the value of the variable, and dative indicates a store to the variable, but the inflection rules themselves would have to be artificial; natural languages have too many irregularities.
I don’t expect one to originate in the corporate or academic worlds but why not in open source?
The folks who would be writing such software have, by and large, already learned English; the itch is no longer in so much need of scratching.
I did. The problem is lack of time, and constant change of computing targets :) Each keyword is represented by a fixed byte (say x0A for PRINT), and only the front end would be different (in human language). I will finish it someday.
I was raised in both english and dutch, and later french since elementary school, through high school…
I learnt programming by reading books/tutorials/references. I learned C++ and machine language (x86) at roughly the same time. Then a few years later we would get some introductory programming courses in school. I can assure you that for a lot of people it was beneficial to have the keywords in english: key words like “if” , “then”, “while”, … form a very small set of words and if they are in a foreign language from the perspective of the student, then it is more clear to the student which words in a program are language keywords and which are user/programmer choice names of variables/functions/classes etc… It forms a kind of foreign-familiar typesetting.
Short response:
I am a computer programmer by trade, speak 3 languages and am working on number 4. In other words.. I am pretty confident that I know what I am talking about. when I say that the idea of foreign languages and programming being equivalent is bullshit.
Long response:
Offering to teach programming languages is good. Offering to teach human languages is good. Making one a substitute for the other is foolish. They are not equivalent. Programming languages are a form of logic far more akin to a branch of mathematics than to human language.
Most kids learn some amount of foreign language in school. Most never use it directly in their later life. When most kids learn programming the same will probably be true. One value in either is the way in which they make you use your brain, forming new connections and developing new (to the learner) ways of thinking. With language this means learning to clearly communicate with others who may not think the same as yourself. With programming this means thinking logically and working out detailed steps to accomplish a goal.
The other value of learning these things is to better understand the world around oneself. Studying languages will help you understand different cultures. It will help you understand place names, and history. It even helps one to understand new words in ones own language as they often originate from a common root or are directly borrowed. Programming on the other hand helps one understand the technology that we all are surrounded by and depend on.
Understanding our own technology I think is something that we are very sorely lacking in our society. Far too many are complacent or even prefer ignorance over understanding the black boxes around them. Towards this goal I would add that hardware, both mechanics and electronics should be added to the standard curriculum and more than a single semester each. Programming alone is not enough. Even if it requires another year I think in todays globally connected technological world foreign languages, programming and hardware should all be a part of the standard education expected and received by everyone.
It seems like an unfair comparison, no question about it, but I can understand why a school district might do it, and I don’t really fault them for it.
I am a US resident native English speaker. I learned German in high school and after an initial hard start really enjoyed it, but it frankly has never been of any use to me at all. I am not (finally) learning Spanish, which is something I am likely to be able to put to use (living in southern Arizona) — but I don’t expect it to be a game changer for me, just fun.
Computer language skills on the other hand have been my career, livelihood, hobby, and way of life for over 30 years. They have been immensely useful.
So on utilitarian basis, learning a computer language wins hands down. On a philosophical basis, I tend to be warm and fuzzy about the idea of learning another human language, even though it has been of no use to me whatsoever..
Well, you should visit Germany then. If you start talking in German there, most will answer in German, although everyone below 40 should be able to do so in English. If you want to test your German first, watch some Tagesschau.
Expect some pretty hefty dialects depending on the region.
I think learning a second language is more important than learning programming. But the most important thing to teach to children is problem solving methods, which is not specific to programming. The future is not about all jobs will be programmers jobs.
But as for learning language it must be one you’ll have the opportunity to talk. Why should one learn a language that it will never use?
My first language is french and I grew up in a 100% french milieu, I had no incentive to learn english until I got interested in electronics and the Heatkit assembly manuals where in english.
I think learning basic Boolean logic should trump both computer programming and second languages in schools. But my perspective is this: when I taught introductory programming at a private college, I put away the computers for the first 40% of the class and forced students to draw flowcharts. Old school, I know (and it ticked off a lot of students/customers and other programming faculty initially) but a good logical picture better communicates what a person is going to program than any spoken or programming language ever used.
“The name of a Type instance is a Name instance representing the name of the Type; its value may not be a null name….The name of an Instance instance is optional, but where it exists it must not be a null name….An Instance instance with no name is always considered to have a unique name, distinct from any other Instance instance with no name.”
— Rational UML Document Set, Semantics, Chapter 5.2
By all means, let us give the educators yet one MORE instance of a diversionary tactic which can be used by them to explain away our childrens’ total ineptitude at one of the three most basic of skills.
“Besides a mathematical inclination, an exceptionally good mastery of one’s native tongue is the most vital asset of a competent programmer.”–Edsger Djikstra
The thing about school is that it is zero-sum with regards to time.
Speaking as a teacher, my days are packed– but the kids’ days are even more so. Unless you want to make the school year longer (there’s good reasons to do it, but suggesting this won’t win you any popularity contests) or the school day longer (I think this would be a disaster), arguing for teaching a new thing means arguing for not teaching an old thing.
It’s easy to argue that something is important enough to teach. When you start trying to argue that something else needs to go, you get some very understandable blowback. See also: keyboarding vs. handwriting, fiction vs. nonfiction in the english curriculum, STEM vs. STEAM, etc.
My kids are learning programming, Spanish, and keyboarding in school right now. But their handwriting is atrocious, and I’ve spent tons of money hiring tutors to fix their poor spelling. Thank goodness that they can still read/speak English above their grade level.
My view is that I essentially “hire” schools to teach what my wife and I are not qualified to teach on our own. I feel that it is my job to teach IT/IS/STEM/science stuff, because the schools won’t do it to my satisfaction.
There is a third option. More years. I can’t imagine our conservative voters ever being willing to pay the taxes to support that but I think it makes sense. As soon as society shifted to where one needs more than a high school diploma to be successful we should have tacked on some more years.
Personal opinion of course as I have no direct evidence to back it other than my own experiences, but in high school I took Japanese and a beginner level C++ class. For me, the most beneficial ended up being the C++ class. I’m 31 now, and I haven’t used much of any Japanese in the time since, but having a more fundamental understanding of how computers function and what coding is has helped me quite a bit. I’m a Mechanical Engineer now and I don’t have any fear of writing up a short script or a macro to get a job done. Also, when I do run into software issues I’m much more likely to take a look at what I’ve ‘told the computer to do’ before blaming that ‘POS’ software. I’ll be honest…usually I told it something dumb. :D
For me at least, having that background in coding and software has been really beneficial. Even though it’s very rare for me to do much coding at work, having an understanding of data-structures, loops, if else and all that stuff really does help. As far as education goes I feel it would be good for a language credit.
Frustrated as we may get by the wider world not understanding Tech. Not everyone needs to know programming to do their job, or even to do it extremely well. Basic scripting knowledge for frequently used software may help but IMO it’s better for most people to specialize in 1 field and let someone else do the programming.
There’s so much to learn already in schools with not enough time or funding to do it. Programming should certainly be offered as electives but knowing BASIC, Python, Ruby, Java, or Visual Basic doesn’t help a doctor or bank manager do their job any better. Teach programming to those who will most benefit from it. Accountants might benefit from knowing VB, SQL, or languages for accounting software. But forcing it on the primary & secondary schools won’t help most people. Save it for University once they’ve chosen a field that actually uses it.
Languages on the other hand should be taught to children. There’s significant evidence that by your late teens your brain has a harder time picking up a new language. Learning a second or third language at a young age will benefit most people even in single language countries.
Here’s a weird perspective: My mother was born in the Philippine Islands and knows five languages and several dialects. She holds advanced degrees in math, business, and English. Her primary language is Tagalog, but English is a close second. When she immigrated to the United States 50 years ago, she became a public school teacher specializing in ESL (English as a Second Language). When I was born, she was determined that I master English to the exclusion of all other spoken/written language. She was extremely supportive of what has become STEM, to the point that she objected when I was forced to take Spanish in middle- and high-school.
She may have reconsidered if she knew whether or not knowing a foreign language would have helped me with my current career. However, I’m not entirely convinced that she didn’t have the right idea all along.
http://thedailywtf.com/images/mfd/2/08_pjfiq.png
Credit: Mark Bowytz, The Daily WTF
I have 3 Languages (English, German and Spanish) which are fluent, and can speak / understand SOME Russian and Czech (nimnyoga). As for computer languages, I started off with BASIC, then FORTH, then ASSEMBLER (65xx and very little 68xx based). I had saved up all my money from allowances and converted it to Deutschmarks when mom would ship us over to be with the Grandparents (Oma and Opa). Every chance I would get, I would purchase electronic magazines (Elektor) and computer mags (64’er, Chip, etc.). It was always fun seeing the differences in schematic drawings…for instance, the resistor (Wiederstand) is a “triangle wave” drawing compared to the rectangular box. Or even the capacitor (Kondensator) -)|- in the US, and just two vertical rectangles parallel to each other. It just amazes me that we can communicate by math, vocalization, signing, etc. We, as a people, need to upgrade (and I don’t mean like a Cyberman [ had to throw in the Dr. Who reference] in order to move on in this ever expanding world of ours.
P.S. – Dealing with Tech Support from Romania, I did get to learn my contact number in Romanian…once you learn something that is meaningful, it sticks with you…just like a good joke. 73, de KC8KVA
Isn’t -)|- used for electrolytic caps only?
And btw., it’s Widerstand. Even some native Germans mix those up. “Wieder” has the meaning “again”. “Wider” has the meaning “against”. The pronounciation is identical. Funny coincidence that the English words are so similar.
I think that students should learn both. There are some schools that allow a student to substitute a foreign language with a programming language. I believe this shouldn’t be allowed; we’re comparing interfacing with human beings vs technology. Sure there are similarities in learning a new language. However, it is completely different when learning foreign languages that are not latin based or use the English alphabet. Learning a foreign language is beneficial for globalism, for communicating with individuals from different cultures.
In the late 90’s my school district in Texas changed their rules to treat computer languages same as human languages with respect to credits needed for graduation, so I had one semester of Spanish and then switched to taking all the CS courses. I was the only person who enrolled in CS 3 so the teacher basically told me to come up with a project and show progress on it, since she realized I knew more than she did … :D (to be fair I started CS 1 already knowing x86 assembler, Basic, Pascal, C, HTML… the whole series of CS courses were pretty much goof-off time for me, as I could bang out every assignment in minutes)
When someone lives in Europe, they learn multiple languages … because the countries are close together and many people travel around Europe. They grow up living in that environment. I live in Minnesota USA. The only language other than English that I would even have a chance to speak might be Spanish. Like any languages, including programming, you have to use it, or you’ll lose it.
If you want “proof” that coding languages and human languages are not at all the same thing, just consider that the average good programmer can’t write good documentation. The two are completely different skills. People who are good at programming are nerdy – they are good at STEM and not at humanities (some are good at both but..). People who are good at languages tend not to be nerdy and have trouble with math and science.
You can learn the basics of a spoken language in a short time – a vocabulary of several hundred words and some simple grammar and you can get by. However, fluency takes a lot longer (especially as you age). To really develop fluency, you need to understand the _culture_ in which the language lives. If a Quebecois goes on a verbal rant in France, the locals will stare at him wondering what he’s on about (Quebec movies are subtitled in France). US OTA television channels censor swearing on their programming that comes from Britain, but they don’t usually censor the British idioms – some of which are rather offensive in Britain. Why do these things happen? – because of culture (maybe swearing is not the best example of culture…) – the people in one country don’t understand the use of the words from another culture even when the language is the same.
Where is the culture in programming? I would say it largely doesn’t exist. Programming doesn’t need culture. It does need precision. Is there precision in spoken language? Not often – we understand language meaning even if the words/grammar are incorrect.
Code and language are two different things. Don’t make the mistake of confusing one with the other.
Coding is of little use for the overwhelming majority of people. Billions of computers exist (most are now smart phones) and people use them without any coding. Human language is useful. Understanding a foreign language means understanding another culture – and that can benefit everyone.
My high school taught German ( note it TAUGHT it but very few of us LEARNT it) despite my father been born in Germany and spoke German with his parents and brother.
My daughters school taught some language – god knows which one.
I wish my school taught a programming language ( in the day it would have been BASIC at best) it would have given me something to actually have during me enthusiasm to be there for.
For some of us the humanities/ geography /history were a complete waste of time. I’m talking totally meaningless to me – I’m no ignoramous I’m quiet aware of the greater world and what’s going on. But I don’t give a shit. Leave that to those that care and leave the technical stuff to us that care about that. We are all different and fit in to different places in the world – it’s not a one size fits all
Kind of place.
So basically I’m happy with the notion of people choosing to learn a human language v a machine language. After all we really don’t learn jack until we need to use it. So what time we spend 5 and 18 years of age is largely a waste in the current education system.
If you want learn about mechanics buy a bomb and try and get it registered and keep it in the road.
A former office mate of mine immigrated from Russia. When he first arrived, he knew little English. He told me that when he applied for a programming job, one of the questions he was asked was “what languages do you speak?”, obviously expected to reply with things like Russian, French, etc. instead he replied “C, Fortran” and a couple other languages popular back then. He was immediately hired. :-)
As for the question of human language vs computer languages: no they are not equivalent. But they certainly have similarities in scope. Something I’ve often said over the years is that once you know one functional language, the only difference from another is syntax. There’s a certain feeling to that if you compare the “romance” languages: the root words are all the same and the major difference between them is the syntax. Similarly, I certainly feel more comfortable with the Nordic languages because of my familiarity with English and German.
FORTRAN was used instead of the foreign language requirement at my undergrad engineering school. My HS had offered Latin, and Spanish; neither of which interested me. Later in Grad school for Chemistry, there was a foreign language requirement and it HAD to be German, so my decision in HS was the correct one. A friend of mine majored in Physics and had a language requirement which was REQUIRED to be German, Russian, or Japanese.
I’m not saying that having languages available, or even required, in HS. The point is not to assume that having a foreign language is needed for college. Certain disciplines have different requirements, Prior guessing may be a waste of time for those not particularly liking foreign language. The same is true of coding with one major exception — usually coding includes logical thinking methods and problem solving, both of which will likely have increasing importance in the future.
I can confirm that using code as a kind of rosetta stone totally works. I was reverse engineering a Polish asm project that had tons of comments and as I dug through the asm glancing at the comments by the end when I opened a different project I didn’t realize until I had re-typed it that I was paying more attention to the comments than the asm. It was a very weird moment because I did not understand the Polish by itself but I felt what it was trying to convey and could communicate it correctly to others.
I am 44 and my first language is Italian. English is my second language, and I consider a long list of programming languages my other languages. Java, C, C++, Ruby, Perl, PHP, just to name some I used in the past 15 years.