Sadly, this is how things are for many of us students, I currently study bachelors in CS here in Nepal and for me and some of my friends stuck in our villages (lockdown isn't still over here yet), we have been doing C assignments using editors avalialble in the playstore.
Seeing these apps have millions of downloads, we're definitely not alone and I have seen many indian and other south asian friends do the same.
My personal setup includes a 2$ stand and A samsung J7 phone paired with a keyboard over OTG cable. Since I have been doing this for few years I have a pretty complex setup of termux, a student credit powered VM from Azure, emacs. I have managed to develop python cli apps, jupyter notebooks, even flutter development using some port forwarding hacks.
Send me through your CV if you're looking for an internship after you finish your studies. My company is based in Jwagal, Kathmandu. Check my profile for my contact details. jonathan @ domain name in profile.
Hey, if you are interested you can reply me with your email address here, i can ship you a laptop for free (intel 5th gen i5) that i dont use anymore. it has 4gigs of ram soldered (surface pro 3). and can hopefully be used for some development.
> they can charge 30-40% of orignal price to receive electronic items
Ouch. Hanlon’s razor aside, it’s almost as if the government is intentionally preventing the economy from modernizing.
Really sad that some bureaucrats couldn’t see the huge long term gains of a more technology-oriented economy, and instead could only focus on whatever marginal short term revenue these tariffs generated.
Red tape is definitely an issue, but freight costs to Nepal are also extremely high. It's a landlocked country with very poor transportation networks. Air courier (eg DHL) to Kathmandu is in the range of $5/kg, and if the final destination is in a village it needs to be hand-carried there. So accessing cheap stuff from abroad is much harder than we might think coming from developed countries. There is no such thing as slapping on a FedEx label right to the final destination.
Could go the opposite way and welcome everyone and everything in, and have situations like your ports being bought by China, as is happening in African nations.
AFAIK, China has invested considerably in controlling African port infrastructure and operations, not trade policy in the abstract. While owning a port often implies direct control over what goes through it, the converse is not true: a government can still control its own port infrastructure while being completely laissez-faire about what goes through it.
They are building the ports to control the policy, it ain’t altruistic.
China owned port can be shut down on a whim, thus giving its owner political power because closing the port would effect the nations livelihood via exports/imports.
This is the problem in many emerging economies in SE Asia. Just because many people are struggling to arrange their daily meals, Governments get into socialist mode and taxes anything which does not classify as bare necessity.
Sadly, it is a vicious loop and these economies are not modernizing enough at a rapid pace despite so much talent waiting for an opportunity.
If the tax money is spent on education, healthcare, and infrastructure such as communication/fiber and water, then it will only take one generation to go from: poor - have to work in order to eat, to poor - but have free time to learn coding without starving, then after 3 generations you might have gone to an information society without going through the industrial age. Unless other countries suck out all the bright minds.
I'm weird, your comment got me interested in Nepalese custom duties. I had a read through and it looks like notebooks do not incur import duties in Nepal!
> Automatic data processing
machines and units thereof;
magnetic or optical readers,
machines for transcribing data on to
data media in coded form and
machines for processing such data,
not elsewhere specified or included.
-Portable automatic data processing
machines, weighing not more than 10
kg, consisting of at least a central
processing unit, a keyboard and a
display:
8471.30.10 ---Notebook and Laptop
My experience with China customs is that if custom officer feels like taxing you 15%/25%/45% on this particular day, they will find a way to tax you. Unless.
In Argentina you have to pay 50% of the market value for all electronic imports and you will have to deal with customs officers (who will usually try to make your day quite miserable if you don't "tip" em)
I wasn't even able to send anything from abroad to my colleagues in Vietnam. We make electronics + firmware + backend API's and he needed a few Samsung phones + electronics to test; you can only ship new phones sealed in boxes there and electronics need bucket loads of paperwork and then pay $. Never had that issue with China, but it's 2+ years ago since I last had to ship anything there though.
Is worth mentioning regarding Argentina and this HN submission in particular that the government is aiming to provide a laptop to every secondary student, they are build (assembled is probably more accurate) in Argentina and they come with a Linux distribution maintained by them called Huayra. I think that is pretty awesome for such a poor country.
Customs in general are annoying, I was arriving to Germany from the US with a new MacBook, I was stopped and they ask me where did I buy the computer, I had bought in Germany, so they say it was fine, they told me to send a copy of the invoice to them, which I did. They were just making sure I paid the taxes there.
From what I heard from Argentineans bribing is very common, but they somehow think people taking the bribes are the only corrupt but not people bribing, or avoiding taxes.
> From what I heard from Argentineans bribing is very common, but they somehow think people taking the bribes are corrupt but not people bribing, or avoiding taxes.
Wait this isn't the case everywhere. I thought this how corruption laws are made.
Was the case for me when I flew back to Germany with my music instruments. They would not listen to any reason but forced me to pay to get the instruments that are my property back. Thieves.
> Sadly, with how things are with the courier and customs dep. here they can charge 30-40% of orignal price to receive electronic items
Something I never really understood, when going to less developed countries, why are customs always trying to fleece everyone? Normalized bribes, byzantine bureaucracy, astronomical import duties on computers and essential products.
What's the goal with this? Is there some kind of long term strategy I'm not seeing? Do they not want investments or a tech sector?
The unemployment and brain drain these countries suffer sure paints a bleak picture.
During my travels I met a family in Kenya who were some of the friendliest people I'd ever met. They showed us all around the the local towns and brought us to a fantastic bunch of places. In return, I wanted to support their son who was going through education at the time - either pay his fees or send him school supplies. Unfortunately, they said that there was no point because any money or supplies we sent to them would never arrive; they'd just be taken by the people at the post office as soon as they saw a foreign stamp. It wasn't even government mandated fees on customs. It was just theft. This was before the advent of digital currency and other means of sending money abroad, so we simple had no way we could support them other than giving them gifts while we were there.
I still think about them all the time, and how sad it is that people live in a society like that where blatant robbery was simply the norm. It gives me some hope though that with the proliferation of affordable mobile phones across impoverished regions, people finally have the means, however modest, to receive an education.
I remember a story a few years ago about a boy in some remote area in Mongolia who could follow remote courses from MIT and improve his chances at getting a job.
I think that cheap computers and internet changed the game in education. I can learn to code in python anywhere. When I was studying, PC were few and you had to be at a university to have a reasonable chance to touch one. There was practically no internet.
The individual customs official or even the department is not incentivized to look at the benefit to the entire country. On the other hand, they are directly responsible to increase their collections, based on which they get a cut.
I don’t know about Nepal, but traditionally places like Brazil pursued “import substitution” strategies of charging high tariffs on technology products to try to establish home-grown industries, and pursue autarky (self-sufficiency).
It’s an insane thing to do since the benefits to consumers and business users of these products is many times higher than the money made by the industries producing them. To a lesser extent the same pattern emerges in dirigiste-curious economies like Canada who limit foreign entrants into markets like telecom, resulting in a general tax on the entire population who suffer expensive and inadequate data plans in order to protect local oligopolies.
> To a lesser extent the same pattern emerges in dirigiste-curious economies like Canada who limit foreign entrants into markets like telecom, resulting in a general tax on the entire population who suffer expensive and inadequate data plans in order to protect local oligopolies.
That's something I never understood either. Telecom is a commodity. I also think that's what hurt Blackberry back when it was still relevant: They were developing these phones in an environment where the carrier had all powers and where data was so limited.
I remember them being incredibly skeptical at the iPhone because Apple was expecting data to become cheap and plentiful.
There are a significant amount of people who are basically milking the rest of the society with their power and doing so without any consequence. This is what entrenched corruption looks like.
There are no need to specifically break any laws that others are not breaking already, there just have to be so many that compliance is impossible and enforcement selective. When the gray area expand so significantly, you get the power broker rich as they enjoy competitive advantage.
The high fees are used to discourage imports. Here in my country they say these taxes are used to "protect the local businesses/manufacturing", but it makes absolutely no sense, because most (tech) products aren't even made here. They usually charge you 60-70% of the retail price.
In 2016 I tried fedex and told my friends to send old macbook. In insurance he had written the purchase price. And I had to pay all the taxes. And it was 40% tax.
Customs officers are thieves here.
And fedex did nothing. I supposed the would deliver to my home. But they made me run for 2-3 days and told me to go to customs and claim my items.
> we're definitely not alone and I have seen many indian and other south asian friends do the same.
Thank you for considering the struggles of others while you yourself face it. I know a self made individual from Nepal like you in U.S. working in IT with green card and might be able to guide you. Contact me if you're looking for such help.
It's hard to visualize the digital divide in education induced due to the pandemic by someone who has easy access to compute, Internet and uninterrupted power supply.
[Trigger warning: Suicides]
Even middle class families in India spend more than 40% of their earnings on their children's education, So when the pandemic made education online, E-education startups with questionable practices became unicorns, their founders billionaires while children from marginalized, underrepresented communities quit their education forever in-favor of labor work.
There were numerous cases of children committing suicides because they couldn't afford a phone or because they broke the only phone shared with their siblings for education.
The hardware problem is not just because of accessibility, But also because of the lack of repairability. Many people came forward to donate their old phones, But it was often useless. Perhaps if OLPC had been successful things might have turned out differently, Maybe there's still a chance to build a OLPC using latest hardware like RPi 400. Then we need to solve the networking, Perhaps improving upon LoRAWAN could enable real time text messaging; I've been tracking this problem[1] on my platform since the start of the pandemic.
> Perhaps if OLPC had been successful things might have turned out differently, Maybe there's still a chance to build a OLPC using latest hardware like RPi 400.
At India scale they could design their own machines. Something like a ThinkPad X60 where the motherboard can attach a RPI Compute Module.
Rich states like Tamilnadu already have a successful free laptop program for Govt. high-school students and Govt. colleges.
Recent specs were LENOVO E41-25 (81FS) with AMD A4 and 4GB memory. There are rumors that there will be an upgrade this year with HP manufacturing the laptop as Lenovo is barred from Govt. contracts in India.
It's to be noted that the said state has also made all educational content for schools distributed over free-to-air channels.
So a modular computer based out of RPi which can receive TV/Radio can technically cost lesser than the aforementioned full-fledged laptop. I've been brainstorming such a device with others on the thread mentioned on my parent comment.
Also when talking about inexpensive compute device for education, We cannot ignore Chromebooks. Asus Chromebook C223 costs just $189 that's for device with 11.6" display, dual core CPU, 4GB RAM, 32GB storage+SD card, HD cam and WiFi5. RPi + similar accessories would cost more.
I think Google is subsidizing entry level Chromebooks.
Of course usefulness of ChromeOS itself or the privacy implications is debatable and sadly full UEFI firmware replacement for this particular device isn't possible but there are lots of other chromebooks where we can run Linux/Windows or to some extent even macOS like regular PC.
But in my experience[1] browsing experience on an entry level Chromebook is miles ahead of any ARM based SBC mainly due to hardware acceleration mess.
I think of all those people with phones that easily break because the phone was not made so well. Or because the children are not so tech savvy to make garabage tech work. Like I can. Having been in a highly stressed environment myself, the emotions that drive them to self harm are all too well known for me.
I know this was a typo, but it feels like an unintentional portmanteau of "garbage" and "garage" which seems to fit particularly well. I hope you don't go back to edit this!
Out of curiosity, is something like a Raspberry Pi Zero an option in terms of availability and having the equipment lying around to make it work (i.e. SD card, usb plug, etc.)?
You should consider reaching out to the Raspberry Pi Foundation and explaining the situation. It is a registered charity and may have a program for distributing kits (and covering the associated costs) to areas or individuals who do not have easy access to hardware.
It's probably a step-up from just using a phone or phablet but with a Raspi you'd still need (compatible) monitors. No idea what the availability and markup is for these though reliable electricity might be another issue for remote regions.
Here in Haiti, it’s the electricity issue. If you’re lucky you can get electricity for 6 hour a day. In the middle of the night. That’s why people prefer portable stuff, because you can easily charge them somewhere else (in my native town, there are people that have setup charging stations with batteries and inverter).
wow! I'm glad that termux exist, it's such an amazing tool!
I don't know if you might find it interesting but I made an open source coding tool and framework for Android that is pretty fun and fast to use. You can code using the phone or a computer using a remote editor throught Wifi (no internet required).
It comes with lots of examples and remixing them is quite fun to get quick and nice results.
The "compile it your self" link in the README (https://github.com/victordiaz/PHONK/blob/master) is a 404. (also, it should be "yourself"), and the landing page site header is cut off on mobile, so the GitHub link doesn't show up.
Based on the description "Connect your computer and Android to the same WIFI network" I'd assume that you need at least two devices, but from your comment I gather that's not the case? Maybe you should clarify that on the landing page.
If you ever write about yiur setup, it will be a huge help! I have a friend who is constrained for comouting resources, but eager to learn nonetheless. I help out wherever I can but it is hard for me to get his perspective, because as crappy and old as they may, I still had full fledged PCs to cut my teeth on.
Can you share what apps you use? I saw an editor on the tweet image, So I guess there's some different setups using different apps out there.
Chrome on Android also has DevTools internally (through chrome://inspect when you connect a debuggable android to a laptop). I don't know whether that's possible to expose or not on the phone, but would be very helpful.
VSCode/Monaco should also be "runnable" as they're running on JS / V8. That will open a lot of extensibility.
For most starting out it's editors in playstore, There are editors for different langugages, I started with the pydroid editor. There you can write code and hit compile to show the output. As traversing menus by hand gets quite hard, the next approach is probably to learn termux and terminal as everything is keyboard driven.
I have tried jupyternotebooks, vscode on browser but the small screen is the real blocker and you can barely see the editing field.
I use termux for everything now, for websites I just open a localhost port and see it in my browser or do live reload in spare phone. Video and images are also redirected by the termux to respective apps.
Chrome's DevTools don't have a mobile UI AFAIK, so the best available option for debugging in a mobile browser is probably Liriliri's Eruda https://eruda.liriliri.io/ which is a kind of embeddable debugger that runs as part of the website you're debugging.
Suppose I had an extra PC lying around that I could donate (6th/7th gen Intel, can run Ubuntu 20.04, no monitor) -- (a) would that hypothetically be useful to you, and (b) how would I get it to you without spending on international shipping?
Yes, when you were learning to develop in the 80's. This has a slight undertone of bootstrap lifting and a total lack of empathy for people who have little access to stuff that is thrown out like trash in the west. Use your brain.
> Yes, when you were learning to develop in the 80's. This has a slight undertone of bootstrap lifting and a total lack of empathy for people who have little access to stuff that is thrown out like trash in the west.
Speak for yourself. You know nothing my access to computers, which was not the privileged ‘western’ fantasy you imagine.
I was thinking about what it would be like to have a smartphone to learn on, and for someone who grew up without easy access to computers until later I think it would be amazing.
Taking your comment in the best possible light, I see this as a general indicator that for would-be-developers, things are often so much better than they were, despite the fact that many OSes are locked down.
Services like Azure and GitHub make it easy to get started, and combined with great documentation like MDN and Q&A on StackOverflow, so much more information and opportunity is available.
I remember struggling to learn QBASIC as a kid in the '90s without any resources (I didn't have internet). My programs were 20 times the length they could have been if only I'd been able to learn a few basic data structures.
As someone who is just learning coding in Python again, the amount of available learning material and projects create the luxury problem of overabundance. It's like drinking from a fire-hose as it's nearly impossible to discern the myriad of low-quality from high-quality content or even what's even relevant in order to get a general programming education.
Too many companies trying to lock you into eco-systems, new frameworks springing up and becoming obsolete too fast. Do I need github or is gitlab better? Flask? Flutter? Django? Blockchain? Machine learning? To a beginner this is all a swirling mess and leads to being overwhelmed and paralyzed.
This - I never felt the lack of learning materials. I saved my pocket money to buy Turbo C++ and Assembler in my teens. They came with nice fat books that explained standard libraries and instruction sets. My library had more books with references for DOS interrupts/syscalls, memory managers. I got a game programming book that showed me how to push pixels into the framebuffer, and which ports to bang to get a Sound Blaster to sing. I had the Mike Abrash optimization book and spent much of idle school time doodling pipeline simulations on paper.
There was just a handful of integrations like that, and the rest was up to you. The world was less interconnected, there were no REST APIs or gigantic browser/OS API surfaces.
I asked for a Borland C book and compiler, which my parents gave me for my 15th birthday (I think)... I tried to read it but I couldn't understand it.
I also used to carry around and read the "Practical C++ programming book", trying and failing to grok it... what I didn't understand (and what I didn't hear anywhere) was that trying small examples is the only way to really get started in a new programming language.
As a high schooler, the only languages I made progress in were the super-approachable ones -- like TI-basic and QBASIC.
The modern internet would have made it all so much easier :-)
I mostly just remember copying stuff from here and there, not too different from the age or stackoverflow, just printed and mostly correct!
I did have some lucky breaks, like going to local small town art school to study "computer graphics" as a pre-teen with a 20-year old tech student who would just casually explain to us anything from alpha blending to linear algebra. Said student later went on to design GPUs for Bitboys, ATI and AMD.
> Taking your comment in the best possible light, I see this as a general indicator that for would-be-developers, things are often so much better than they were,
That’s exactly the point - for someone who is enthusiastic, the resources a phone provides are vast.
When I was learning, not only were the computers primitive and expensive, but even access to information about them required all manner of work, travel, etc.
What Android version do you run on your J7? My J7 is stuck on Android 6 and can't install Termux. It doesn't get OTA and I'm not sure how to update it.
I have j7 max with android 8. IIRC termux should run on android 5+ maybe try to install from fdroid or search older apk versions also there is userland app that you can try.
Yep, I have to thank my conditions for forcing me to learn linux stuffs. As much as I would like to I cannot recommend it to friends who are just starting out to do it as I myself spend 3+ weeks to learn vim. They get perplexd on installing termux.
I grew up in eastern Europe in the communist era, in a country where entire factories were run using Commodore 64 computers that were smuggled in, bypassing export controls and sanctions.
The programmer at one such factory was a friend of my father, and we'd go over to his place for dinner semi-regularly. He didn't have kids, and I was six, so I was bored to tears. No toys and nobody my age to play with!
He did have a C64, which was the only other one in town apart from the one at the factory. He was using it to practice programming after-hours at home. There were no games on it, but he did have a book of games.
As in: a literal printed book of the source code for several simple games. That you were supposed to type in to be able to play!
So I did. I had nothing else to do, so I whiled away the hours while the adults chatted poking away at the keyboard, typing in the BASIC code of the shortest, simplest game first.
It didn't work at first. There were some errors. With help, I fixed the typos, and hey presto, the game worked! I still remember the elation, the feeling of accomplishment after all that work. I didn't even play the game for more than a minute or so, I immediately got to work on entering the next, longer game's code. I was hooked.
Eventually I tried all three or four of the games in the book, and got bored. However, I was allowed to borrow the BASIC introductory problem set book, which I took back home with me to study. I solved the problems one at a time on grid paper (to match the fixed-width screen layout). I "ran" the programs in my head, debugged them by working out the variable values step by step on paper, and then tested my solutions on the real C64 computer whenever my parents went over for a social dinner. Most of my programs worked, and ran at ludicrous speed compared to the glacial pen & paper solutions I had worked out. I instantly understood that Computers were levers for the mind. Learning to control that raw power was intoxicating.
We fled across the iron curtain as political refugees, and I took that textbook with me. I had no access to computers for nearly a year, but when we finally got settled permanently in the West my dad bought a used C64 at a garage sale for a few dollars. This was a computer that back in my homeland would be the carefully guarded control hub of a factory. Here it was a discarded plaything. Even at that age, that blew my mind.
I learned more programming languages in quick succession. Pascal at the age of 11, C and Assembly at 12, C++ at 13. I had written 3D engines by the time I went to University.
Statistically, if you know programming, you probably learned it in a tertiary education setting, most likely in your late teens or early twenties. Just like learning a foreign language at that age, you'll never be perfectly fluent. You'll always have an accent, no matter what you do.
To me, programming is my mother tongue. I'm perfectly fluent and unaccented. You probably can't even tell, you can't hear the difference.
Why is a comment that makes assumptions about its readers and makes typical bragging points of meaningless things like learning syntax at a young age near the top? It felt like I was reading a parody towards the end.
> Statistically, if you know programming, you probably learned it in a tertiary education setting, most likely in your late teens or early twenties. Just like learning a foreign language at that age, you'll never be perfectly fluent. You'll always have an accent, no matter what you do.
I appreciate your story, but this comment bothered me, because it's something people repeat a lot and it's actually not true. There's no good evidence that adults have more difficulty acquiring language than children. There were some older studies that claimed to show such, but as has become all too familiar these days, their methods were spurious and there have been some replication issues.
I work for a company whose entire purpose for the last 35 years has been making fluent speakers of adults. We do it. We do it regularly. Our students are diplomats and military personnel. They don't really get a choice of whether they study a particular language. It's their job and they have to do it.
The reason adults fail to gain fluency in foreign language is because they don't do the work. They choose to do other things. There is no fundamental limit on the language acquisition abilities of adults, if they just stop bitching about homework and put the effort in.
And I firmly believe the same is true about programming. I didn't start programming until I was 16. I didn't even have a computer until I was 15. I'm almost 40 years old now and I'm the head software engineer for my company. The people I see who struggle with programming who have been at it for years, they're the ones who have approached their entire career under the attitude of "I am not very good at this, I need to find easy, quick fixes for things". Rather than putting the effort in to learn, they cheap out and never grow.
It may feel like growth is not a linear function of effort all the time. Sometimes you feel like you're banging your head against a wall, not understanding things, and not progressing. That's mostly just feeling. I've had it several times myself and have been surprised to find, coming back to a topic several months later, that the topic much easier to understand on the 2nd go. Even when we subjectively feel like we aren't learning and aren't progressing, we still actually are.
> There's no good evidence that adults have more difficulty acquiring language than children.
This kind of rocked me, because in my experience, kids have a clear and obvious advantage compared to adults. They can completely passively acquire a language, phonology and grammar, with no training, in a matter of 5 years or so. And that's completely passively, no education, no effort.
I totally buy that you can turn an adult into a fluent speaker. And I get that it's good for your business to show adults that it's not impossible. But it's like a million times easier for kids, isn't it?
> in my experience, kids have a clear and obvious advantage compared to adults
Their advantage is that they have almost unlimited time.
Consider how long it takes for a child to speak their first word and, then, to actually speak in well-formed sentences: Several months, even years, of complete immersion and 24/7 exposure to native speakers.
Now compare this to an adult attending a language class for the first time. Chances are, by the end of that class, they will be able to say their first words or even sentences, will understand these words' & sentences' meaning and in which contexts to apply them. Adults are orders of magnitude faster at learning new languages because they already know most of the concepts a new language's words and grammatical structures can refer to. (We all inhabit the same planet, after all.)
The only problem is: Learning all the intricacies of a language, of its grammar and vocabulary, of its melody and accent takes time and lots of continued exposure to native speakers. Adults usually don't (want to) spend that time – whether that's a conscious decision or an unconscious one.
Interesting theory. But it cannot explain a few things. One of which is why children never have accents, and adult non-native speakers do. Another is that children do not need lessons to learn a language, and adults always do.
I'm not quite sure what you're trying to say by "children never have accents", but children do have accents, both the accent of whatever locality in which they live, as well as their own accents from not learning the language precisely. My 3-yr-ld son pronounces all words end in an "-ar-" sound of some kind as "-aiee-". He wanted to play "cards" and it came out "cai-eeds". There are other, similar foibles in the language of children that I think could easily be called "children have a unique accent".
Also, it is very not true that children do not need lessons to learn language. If anything, children receive MASSIVE amounts of explicit language training that we would never think to apply to adults. Children have songs about the alphabet and numbers. We play games with them about colors and shapes. Before the age of about 5, almost all of their toys are fundamentally designed around learning components of language. All of the books that we read them are about.
Both my 3-yr old and my 5-yr-old make what I find to be a hilariously cute error in speaking. Things that belong to them, they say are "Mines". I thought about it, and their way is more consistent. You say that toy is yours, hers, his, theirs, ours. It's only in the 1st person that we drop the -s sound at the end.
When do children gain fluency? How do we even define fluency? In the language training industry, we have the International Language Roundtable Scale (https://en.wikipedia.org/wiki/ILR_scale). The ILR Scale ranges from 0 for a raw beginner to 5 for "educated, native speaker", with people typically appending "+" to a level to blend in between levels a little. Based on the ILR scale, my 5-yr-old is a 2 and my 3-yr-old is a 1. I know full-grown adults, born and raised in America, who would probably only rate a 3+.
Children do not learn fluency without massive effort on both their and everyone else around thems behalf. And then adults complain about having to do 5 hours of homework every week and whine about not gaining fluency in Mandarin. "It's just easier for children". Yes, in a round about way, it is easier, but those reasons are purely social. Given that some adults do demonstrate the capacity to achieve fluency, yet are not living anywhere near a completely, 100% immersed life like a child does, there is clearly some natural advantage that adults have that makes up for the lack of nurture.
1. Accents are evidence that the speaker did not fully acquire the phonology of the language. A French native speaker will speak English with a French accent because they haven't acquired the full English phonological inventory. Children who learn a language don't have this problem.
2. Children will learn colors and shapes just fine without explicit instruction. They do it all the time. In the pre-developed world, children didn't get taught how to speak. There were no flash cards or toys for learning numbers. They just learned by observing.
3. Letters is something else. The orthography of a language -- learning how to write it -- is a different beast from learning how to speak it. Education is necessary here. So we agree about that, for sure. No one will passively acquire how to write.
4. Children make errors in production all the time. As they learn a language they make generalizations -- generalizations that actually make sense, like "mines" -- but which are considered "wrong" by adult speakers. They'll correct themselves over time without instruction.
You might want to check out reading Steven Pinker's "The Language Instinct," it has a lot of ideas and research that might be new to you.
> 1. Accents are evidence that the speaker did not fully acquire the phonology of the language. A French native speaker will speak English with a French accent because they haven't acquired the full English phonological inventory. Children who learn a language don't have this problem.
True. But, referring to my earlier comment[0], this is a matter of changing language learning habits for adults, not a matter of ability.
> 2. Children will learn colors and shapes just fine without explicit instruction. They do it all the time.
Define "without explicit instruction". We explicitly read our children books that put a ton of emphasis on getting the words for colors, shapes and animals across (by repeating them over and over). We repeatedly ask our children questions such as "What color is this?", "What's that animal called?". If that is not teaching, I don't know what is.
> In the pre-developed world, children didn't get taught how to speak. There were no flash cards or toys for learning numbers. They just learned by observing.
Well, they certainly must have been listening, too, and their relatives must have pronounced the words for colors in the first place or otherwise they certainly would have never learned those words. But where do you draw the line here between "passive observing/listening" and "being taught"? To me, at the end of the day, these are all just different learning techniques and I don't see anything special in the way a child's brain acquires a language compared to an adult's.
> No one will passively acquire how to write.
Funny, I actually disagree here. I remember that, back in the day, my 4-year old cousin used to copy books verbatim, letter by letter, before he could actually read or write. (Where I'm using "write" in the sense that one puts letters on paper to form words and sentences and to articulate some meaning.) By the end of this whole process, my cousin knew how to read and write perfectly. And by that I mean: He was an absolute grammar nazi by the age of 6. Later, he would then go on to read dictionaries in foreign languages aloud, page by page, for hours while we were on vacation – just to annoy me. Today he speaks four languages absolutely fluently and he's at least somewhat proficient in another two.
Anyway, I'm sure my cousin once had to ask my aunt about the pronunciation of individual letters of the alphabet – to map them to the sounds he already knew – and probably also about words whose spelling differed a lot from their pronunciation. But if what he did is not "passively [acquiring] how to write" (and read), I don't know what is.
Then again, he put in massive amounts of time to accomplish what he might have learned much faster in elementary school.
> 4. Children make errors in production all the time. As they learn a language they make generalizations -- generalizations that actually make sense, like "mines" -- but which are considered "wrong" by adult speakers. They'll correct themselves over time without instruction.
Sure, as will adults. It's just that correcting them (whether a child or an adult) leads to much faster results and stops mistakes from becoming ingrained in their mind. Once again, it's a technique speeding up the learning process. (Which is why it's so helpful to have a native speaker correct you while you're learning a language.)
> You might want to check out reading Steven Pinker's "The Language Instinct," it has a lot of ideas and research that might be new to you.
Would you mind summarizing some of these ideas that, if I understand you correctly, undermine OP's (and – by extension – my own) argument?
I think I'm okay ending the back-and-forth here. I'll post the link to the book and you can check it out. It's a fun way to be exposed to modern (last 75 years) research in linguistics. Talks a lot about language acquisition research, which you have some opinions about. Come at it with an open mind and you'll learn something, I'm sure.
> Everyone has questions about language. Some are from everyday experience: Why do immigrants struggle with a new language, only to have their fluent children ridicule their grammatical errors? Why can't computers converse with us? Why is the hockey team in Toronto called the Maple Leafs, not the Maple Leaves? Some are from popular science: Have scientists really reconstructed the first language spoken on earth? Are there genes for grammar? Can chimpanzees learn sign language? And some are from our deepest ponderings about the human condition: Does our language control our thoughts? How could language have evolved? Is language deteriorating? Today laypeople can chitchat about black holes and dinosaur extinctions, but their curiosity about their own speech has been left unsatisfied—until now. In The Language Instinct, Steven Pinker, one of the world's leading scientists of language and the mind, lucidly explains everything you always wanted to know about language: how it works, how children learn it, how it changes, how the brain computes it, how it evolved. But The Language Instinct is no encyclopedia. With wit, erudition, and deft use of everyday examples of humor and wordplay, Pinker weaves our vast knowledge of language into a compelling theory: that language is a human instinct, wired into our brains by evolution like web-spinning in spiders or sonar in bats. The theory not only challenges convention wisdom about language itself (especially from the self-appointed "experts" who claim to be safeguarding the language but who understand it less well than a typical teenager). It is part of a whole new vision of the human mind: not a general-purpose computer, but a collection of instincts adapted to solving evolutionarily significant problems—the mind as a Swiss Army knife. Entertaining, insightful, provocative, The Language Instinct will change the way you talk about talking and think about thinking. New in 2007: The new “PS” edition contains an update on the science of language since the book was first published, an autobiography, an account of how the book was written, frequently asked questions, and suggestions for further reading.
> "It's just easier for children". Yes, in a round about way, it is easier, but those reasons are purely social. Given that some adults do demonstrate the capacity to achieve fluency, yet are not living anywhere near a completely, 100% immersed life like a child does, there is clearly some natural advantage that adults have that makes up for the lack of nurture.
I like this argument, it puts it very succinctly!
On a completely different note, seeing that you're developing VR applications for learning languages: How is that coming along? Is Diplomatic Language Services already using it in production? And what improvements in learning/teaching compared to non-VR applications (and non-VR private classes) have you seen? I mean, I generally understand the appeal of VR but I hadn't heard of it in the context of language learning yet, so I'm wondering what the advantages might be since it's a purely visual thing, so a priori not necessarily more conducive to teaching a language(?)
PS: Now that I've seen you mention your alma mater on your website: What a coincidence – I once went to Shippensburg for one of my boxing fights! :) What a beautiful place!
We're currently in trial phase, so we don't have a lot of results yet, but what we've built so far is based on existing research and the results we have seen are consistent with it. The research has shown significant results in various learning factors, primarily based in sensory engagement reinforcing neural pathways. I'm... not sure how much I can share about that research, as it was presented to us as proprietary information by a person we are hoping will be a research partner of ours in the near future. Though I will say, I'm quite proud of myself for having intuited most of the factors and built them into our design before we met them :)
The VR at the most basic level provides a context in which to learn the language. It's one thing to read a book about a place and learn the words associated with the people and culture of that place. It's another thing to stand in that place and see the thing you're talking about.
And we've all heard that full immersion is the "best" way to learn a language. But that's just not an obtainable goal for most people. As I said, most of our students are government employees. They work most of their time from the States or a US Military base. When they are put into a situation to use their language skills, it can often be at the last minute for a deployment of some kind. They're adults with careers, kids, houses, and not enough money to travel the world whenever they want. So the VR gets us closer on the "being there" scale than they'd get otherwise.
We're taking a different approach from our competitors in the market. There are a number of "VR" foreign language training apps that are basically just DuoLingo or Rosetta Stone in a 360 video (and in a few cases, we've seen people calling it VR even when there's no headset involved, sigh). You are meant to purchase a course that is solitaire and self-guided. They're all using speech recognition engines to judge pronunciation. That sounds like a great idea on the surface but turns out to be complete garbage in practice. Speech recognition engines only work about 95% of the time for fluent speakers, where the threshold for non-frustrating Human-Computer Interaction requires more like a 98% success rate. So you get into a problem of not knowing if the errors you detect are because the student isn't pronouncing the words correctly, or if the speech engine is not doing its job. Even worse, you get a lot of false positives as well, which gives students the illusion that they are progressing when they are not (I've actually done a fair amount of work with speech-oriented interfaces as well. My career has been... very broad).
In our case, we already have a successful business doing 1-on-1 language classes, so we've designed the application to fit into that. Also, I wanted to make sure that our instructor body didn't think we were trying to put them out of a job. Most of our students are in class for about 5 hours a day, two to three times a week, for about 3 months at a time. They spend that time 1-on-1 or 2-on-1 with a certified language instructor. Our VR app constitutes about 1 to 2 hours a week of that course, and it still involves your instructor. In this way, we avoid the pronunciation assessment issue that our competitors have entirely. But we are also providing a much more personalized experience for our students, as well.
We take imagery from Google StreetView, combine it with didactic content, and weave in narrative of taking a guided tour of the location with your instructor (I've even built a whole lesson editor that our curriculum developers are able to use on their own, so we're getting pretty fast at making new content, too). You discuss the place and maybe role-play a few interactions like renting a hotel room or buying food at a restaurant.
That's Phase 1. We are currently entering Phase 2, which involves different interaction metaphors and more interactive play for role-plays.
Even in traditional language instruction, there are concepts of "immersive" role-play, what are called "isoimmersions", which could be as complex as setting up a mock bank teller booth in a room or as simple as lining a bunch of chairs up and calling it a "bus". I see a lot of our product as taking that concept and making it not hokey. Cultural learning is also a big part of our training regimen, as it doesn't do a diplomat much good to learn Arabic without learning a specific region's dialect and culture.
In our own trials, we're seeing a very sizable increase in student engagement. The students are reporting and showing that they are more motivated to study. The instructors are also having fun with the project, which we think is significant. We have a pretty broad range of student level, but we're seeing improvement across the board. Even the seasoned students who are used to isoimmersions have discussed how the VR headset gives them a brand new perspective on the content.
Our team is basically me as head engineer, a junior developer, and a rotating roster of 3 language training specialists from whomever has time from fulfilling our regular work contracts.
As for Shippensburg... it's a nice place to visit. I don't miss it much. Gettysburg is a better town in that region.
Thank you so much for taking the time to write such a detailed response! The approach of "traveling" to a foreign place using VR is a really cool idea I hadn't even thought of! Now I kinda wish your app were open-source (or available for a fee) and my online Spanish teacher could use it in his language class with me haha. :)
Those things are fairly easy to explain and they also aren't god-given facts.
> children never have accents, and adult non-native speakers do
This mainly due to two things:
1. Language learners usually try to map the sounds they already know (from their own mother tongue) to the new language's sounds. In fact, there are studies that suggest that, depending on their mother tongue, language learners will not even notice certain differences between sounds in the target language and their native language. (Consider how Japanese people tend to have issues distinguishing the letters R and L, or how both English and Spanish native speakers usually cannot pronounce the French/German "r" properly because that sound doesn't exist in their native language.)
This is not at all set in stone, though, because it only takes a handful of weeks of focused practice to reset your ears (and your tongue) and tune them to a new language's sounds – preferably before you learn any of the vocabulary or grammar of that language.[0] Also, the greater the spectrum of sounds you already know (the more languages you speak), the easier it will be for you to learn a new language's accent as your brain will be already attuned to listening closely to tiny differences in sound and speech melody.
Once again, consider that a child has years to learn the sounds and all these nuances.
2. Habits. Language classes almost never focus on pronunciation and speech melody in the beginning. From my POV this is a huge mistake as it means that language learners attending such classes will sooner or later get into the habit of pronouncing words of the new language using their native language sounds. That is, when they see (or think of) a word in their new language, they will no longer pause to think about how to pronounce it – they will just do it. Unfortunately, at this point it's pretty much game over as it will take a lot of work to change these habits. Then again, a lot of people also don't really care that much about having an accent.
> Another is that children do not need lessons to learn a language, and adults always do.
This is not true and I know a few people who have gone the full-immersion-zero-lesson route. It is incredibly hard, though, given the time constraints you usually have (usually a few months to a year) and you will usually progress only very slowly. Again, just consider how much time it takes a kid to learn a language by just observing and mimicking others! For adults, lessons are simply a much faster way to get started and become somewhat proficient in a language. Also, once they've taken a few lessons, they will be orders of magnitude faster at learning the rest of the language.
[0]: For an introduction to this approach of learning a language, I can recommend Gabriel Wyner's book "Fluent Forever" and, also, his pronunciation trainers and his YouTube videos on the International Phonetic Alphabet (IPA). They got me from speaking absolutely zero Spanish to being asked whether I'm a native speaker in about two months of living in Colombia. …which doesn't mean I was speaking perfect Spanish at all – but it sounded like I was! In fact, on various other occations, people told me that they could tell precisely which city I had learned Spanish in because I had become so attuned to the accent people speak there.
As the other comment says, it's all about the immersion. If you're locked somewhere with no way to communicate except to learn a new language, you'll learn it pretty fast. There might be an upper age limit on learning it fluently, but I wouldn't bet on it.
If anything, adults have an advantage that they have settled down a bit and can study effectively on their own, instead of just passive and forced learning.
Of course, they still have all the temptation to just screw around, too. And if you're not actually locked to that new language, the old language is incredibly tempting.
> I appreciate your story, but this comment bothered me, because it's something people repeat a lot and it's actually not true. There's no good evidence that adults have more difficulty acquiring language than children. There were some older studies that claimed to show such, but as has become all too familiar these days, their methods were spurious and there have been some replication issues.
According to a 2018 paper [1], the ability to acquire new languages declines steeply after age 17.
[1] Hartshorne, Joshua K., Joshua B. Tenenbaum and Steven Pinker. 2018. A critical period for second language acquisition: evidence from 2/3 million English speakers. Cognition 177:263-277. https://l3atbc-public.s3.amazonaws.com/pub_pdfs/JK_Hartshorn...
hey, i coded since i was a child as well but i would never say someone will never be fluent in the "mother tongue", i am sure you are dedicated but, don't stop others down, a ton of people learn later on in life and manage just fine. some people started later because lack of access, my first computer as well was a c64, i too have coded in basic, pascal and the likes, and i know people who has started later and just got their first job, i don't judge anyone who wants to take up programming later on in life, not everyone gets the same start in life and that is okay, anyways, ive met people who learned english and you would never be able to tell they weren't native speakers, at the end of the day, any language mastery comes down to time, and grit.
Loved your write up of your amazing experience, what a great post.
Typed in game listings, I remember those well! There were magazines devoted to these for the Vic 20 / C64, with pages and pages of source code to type in.
(We were absolutely glued to them.)
I recall having the C64 basic manual for quite some time before being able to afford the actual C64, selling my Vic20 in the process and doing a summer job as a teen to afford. I stayed up at night reading it from cover to cover in anticipation. Not nearly as impressive as your story (I grew up in the safety of Norway, and you were picking up the languages way, way faster!), but it hints at a passion for computers we were both yearning for!
(I got into assembly on the Amiga but never C++, sadly)
> We fled across the iron curtain as political refugees, and I took that textbook with me. I had no access to computers for nearly a year, but when we finally got settled permanently in the West my dad bought a used C64 at a garage sale for a few dollars. This was a computer that back in my homeland would be the carefully guarded control hub of a factory. Here it was a discarded plaything. Even at that age, that blew my mind.
That's an incredible story! I can't help but think about all the wasted talent for those who couldn't escape. Truly communism held eastern Europe decades back.
He probably means programming or debugging while dreaming, which certainly happens when you're up 4am in the morning fixing a stubborn bug or learning something new that captivates your brain.
I meant it literally. I've had dreams where instead of a normal language, I dreamt in C++, as if it was a human language. Instead of spoken words, a header file was changing in my mind, taking shape to match my thoughts.
Sounds like it was an abstract-declarative sort of narrative - header files are generally references that prospectively describe and model things.
I'm curious if the code was valid. (Hmm, and if the numbers were all fuzzy... people sometimes say they can't read clocks or digits.)
A bilingual friend once shared that they sometimes forgot which language they'd heard something in, their brain could subconsciously translate back and forth with so little effort. This sounds kind of like that.
Hmmmm... programming languages are unique in that they're generally never sounded-out to the same extent as wetware languages, eg in how commas and periods turn into pitch changes and pauses. Human(-to-human) language does have a visual/written component, but it's maybe... hm, 50/50 sounds potentially wrong, but it is sorta half-half; audio serialization is generally awkwardly bolted on to the side with programming, which is generally always visual, and has strong correlation (or even fundamental integration) to control and problem solving.
To integrate all that very young may have perhaps slightly remapped things around such that that language processing developed strong cohesive lock-step with visual/spatial reasoning, with sufficient cohesion that the integration retained structural integrity even when the logical/rational/etc parts of the brain shut down when asleep.
It was a bit like that: no audio! It was the structure and form of the API of a pair of associated classes shifting around fluidly. Very abstract, and not at all like human speech. But it was definitely my thoughts. As in, the code was my stream of consciousness, not a product of it.
im betting he meant it. ill ofyen have fever dreams whem too much caffiene or whatever and ill be trying to do for loops and what not in various languages. ive had people talk to me in code in dreams. in my dreams things are usualy sent essentially telepathically as ideas anyway so language is more about concepts amd structure.
I think this is more common than people realize. Especially in the Indian subcontinent, where most people have a smartphone but only few have a PC. I learnt programming on pen and paper first and then on those phone IDEs even before I had access to a pc. And even after a PC, I used to use my phone as a display for my desktop via chrome remote desktop because my monitor got damaged and only showed shades of green. And my case wasn't even that extreme, I was just not that bothered to get a proper setup until I really got into programming. The situation is way more difficult who are constrained by their financial situation and have to find a way around it.
Yeah, I wish the governments in India and Nepal would provide some subsidies to incentivize companies to manufacture boards like to RPi which as far as I understand have open specifications.
Giving a RPi to a family without resources in India is a force multiplier. They typically have a small television set and letting them access a proper computer vitalizes learning for the children of that household.
I only have anecdotal evidence of this though, from when I handed an RPi I wasn't using to my housekeeper's daughter and also got her a 3g dongle with a cheap data plan for her to connect to the internet. It got handed down from her to her brothers as well.
Sadly, Raspberry Pi can't be manufactured by third parties, since Broadcom doesn't sell the SoCs to the public.
There are some other ARM SBCs listed here, but I'm not familiar with them enough to know whether they're good substitutes. (Hopefully the "Banana Pi" is?)
I was going to explain that the only difference between the raspberry pi & generic pi is the support that comes from having the mindshare/marketshare. But honestly, I think in the scope of the real issue it's mostly bike-shedding.
If you want to deliver a million Pi to the subcontinent, the real problem isn't the dollar difference between the various SBC. If you compare a Pi to a phone, you also have to bring ..
- Power; not just the obvious, but also that the onboard battery on a phone brings a high tolerance for supply issues.
- Screen; preferably enough of a screen to make the outlay worth it. If you just put a phone screen on a pi, what did you really gain?
- Connectivity; particularly the last mile where the phone has near-infinite flexibility.
Of course none of these are remotely difficult (although connectivity can be difficult remotely), but they're all BOM cost that end up making the SBC one of the least interesting parts to solve. For most the Pi-based laptops & Tablets I've seen, the Pi itself is ballpark 10% of the overall cost.
I think if I was going to attempt this (and to be clear, I use that phrase entirely in the 'armchair quarterback' scope), I'd be trying to create a terminal that's essentially a phone dock - because this isn't going to be an either/or purchase, no-one's going to give up their phone to get this terminal instead. So instead of using all your BOM trying to recreate what they already have, concentrate on what they're missing.
Also an armchair quarterback, but yes, to me one of the great mentionable intellectual/ecological "crimes" is the non-updateability of billions of phones. We don't have infinite retries at using physical resources on the scale we have.
That said, I haven't looked at how many tools work all the way back to much older versions of Android.
Pi is nice, but also used hardware would do the job. At least in Western countries old Core2 Duo business desktops are basically worthless by now, and such laptops don't exactly cost much either. Why not export more of those and get some more years out of them before recycling? They are perfectly adequate for learning to program.
A big problem I have seen with Pi in India is that it overheats and throttles heavily because the the temperature is usually high. With additonal cost of a good power supply, monitor, HDMI cable, its not worth it.
IMO a better device will be a laptop ~ 80 USD with an ARM processor and basic specs - especially a good in-built speaker.
Just about everywhere, people learn programming on their graphing calculators and other low-end devices. I cut my teeth on a hand-me-down Psion 3C.
In some sense, I think doing it that way might even be easier. Constraints release creativity, and being able to read a single user's manual (however thick) and technically know everything you need to know is powerful.
Superior in what way? It’s far easier to write a minimal program on a TI calculator like the TI89. No App Store account or Internet required. It’s included in every calculator for free, with function integration into the hard (ie easier to be precise while typing) keyboard.
When it comes to programming, almost every way. Try getting a job if you only know how to program a TI-84. Now compare that with knowing python or JavaScript.
> It’s far easier to write a minimal program on a TI calculator like the TI89.
Yes, and far harder to write anything but a minimal program. Completely impossible to write anything in a commercially used language.
> No App Store account or Internet required.
So what? These are widely available.
> It’s included in every calculator for free, with function integration into the hard (ie easier to be precise while typing) keyboard.
So what? You can’t write anything resembling a modern program. This is a way in which the calculator is incapable of serving as a general purpose computer, not an advantage.
I’m not against calculators. I learned to program on my father’s TI, long before I had access to computers. I still like keystroke programming an HP-15C for repetitive calculations today. But there is no way that is better than Pythonista or the ilk for programming in general.
> Completely impossible to write anything in a commercially used language.
You're approaching this as if the comment was an opinion about the feasibility of doing commercial software development instead of what it was, which is a statement about HCI and the "implicit step zero" of software creation on today's commodity computing devices. Another way to put it is that this is a discussion about friction, and the original comment was specifically an observation about static friction, and you're talking about kinetic friction—while also insisting that the original comment is wrong because you want the subject to be the latter and not the former. It's a weird, overly hostile, and uncharitable way to interpret the other person's words.
The original comment as it stands is fine. Don't expect to be able to interpret it on different terms than the way it was meant to be understood.
The context is: “Nepalese student learns HTML, JavaScript, CSS using just a mobile phone.”
And: “It’s easier to program a TI-89 calculator than an iPhone.”
> The original comment as it stands is fine. Don't expect to be able to interpret it on different terms than the way it was meant to be understood.
The comment is complete bullshit in this context.
> instead of what it was, which is a statement about HCI and the "implicit step zero" of software creation on today's commodity computing devices.
This is simply not true. The comment was a response to a thread. You have made up a context in which it makes sense out of whole cloth.
You can see the comment wasn’t meant in this narrow context because the poster defended it by saying ‘superior in what way?’, rather than by clarifying the context in which it might be valid.
I miss the days when there was an instant on programmable device. We need that again. It would be great if iPhones shipped with Swift playgrounds as a pre-installed app for example.
Swift playgrounds shipping on iPhone sounds a lot like the “I wish there was something akin to TI-Basic for smartphones. A built-in IDE with an interpreted language, with easy path to compilation.”
So does Pythonista.
But a ti-84 is not easier to program than an iPhone, except for in the trivial sense that you can skip a few taps needed to install a programming app. Other than that, the ti is strictly worse.
I agree calculators are a good way to learn a limited form of programming, however Apps definitely better. If you want to quibble over the ease of installing an app vs purchasing a calculator, that’s a sideshow to the value of learning python vs ti-84 programming.
The irony is that the biggest obstacle to the iPhone being easy to program is people saying it’s hard to program rather than saying ‘use Pythonista’ or the like.
> The context is: “Nepalese student learns HTML, JavaScript, CSS using just a mobile phone.”
It's not. You are ignoring the place in the thread where the comment appears.
No one has argued that learning TI Basic is more worthwhile than learning HTML, JS, and CSS (or Python) on a mobile phone. No one has argued for advising someone that they should be "getting a job if you only know how to program a TI-84". The claim is strictly that going from 0 to hello world is easier on a calculator than it is on an iPhone.
> made up a context in which it makes sense out of whole cloth
Wrong, and posting another comment trying to argue your uncharitable take won't make it correct or reasonable. Go pick a fight and declare that the pushback you encounter is "bullshit" somewhere else. This is stupid.
> This fight has now moved on to a dispute about what a hello world program is?
Nobody is talking about hello world programs except you. That’s the point.
> Right. A "built-in IDE". To "write a minimal program".
‘to write a minimal program’ was added in a later comment from the claim in response to my point about the iPhone being superior, as perhaps the one example of why the TI might be easier to program.
It doesn’t define the issue - it’s just one thing that the commenter was trying to argue was better about the TI.
I don’t even think it’s true. Firing up Pythonista and writing hello world is very straightforward. Doing the same on a TI-89 is not actually simpler. The process is in fact very similar.
> What personal attack of mine is that, by the way? Be specific. Can you quote it?
“…trying to argue your uncharitable take….”
“…Go pick a fight and declare that the pushback you encounter is "bullshit" somewhere else…”
> Nobody is talking about hello world programs except you
Oh, they're not? When the person you replied to wrote, "It’s far easier to write a minimal program on a TI calculator", what did you understand that to mean?
Reading back the thread, it's clear that not only is hello world in scope, minimal programs are the only sort of program that anyone who isn't you even mentioned. What this is is a bizarre situation where you insisted on linking the topic of programming TI-89 calculators to general purpose computing while simultaneously trying to take up arms at the suggestion that anyone could think there could a relation between the two.
> that’s not a quote [...] just another thing you have made up just now
> You chose to reply to a comment that wasn’t a reply to you to make a personal attack based on an inaccurate rendering of the context.
Oh, I did? So those bits you're identifying didn't occur here <https://news.ycombinator.com/item?id=27912959>, in a reply to a comment that was a reply to me? (Or is it that they did occur there, but you're maintaining that the comment is a reply to another comment that was itself not a reply to me?)
Not only was this a stupid thing to pick a fight over, this has got to be the dumbest attempt to quarrel over the written record that I've seen since "I'm not using the word free" <https://news.ycombinator.com/item?id=23250829>
-----
Edit following your edit:
> ‘to write a minimal program’ was added in a later comment from the claim in response
Yeah, it's almost as if someone wrote down their thoughts to share them, and then after seeing your response they attempted for your sake to offer some clarification in a followup to eliminate the misunderstanding. And it's almost as if you can't seem to acknowledge that we're here because you misunderstood them, and you continue to insist on maintaining that the thing that came from your misreading them is the thing that they meant all along.
Here's a tip: if someone says something that sounds outrageous and your first thought is, "man, it's unbelievable that someone would say that!", then your second thought should be, "yeah, it IS unbelievable that someone would say that", and then reflect on why your first thought was to believe that that's what they were saying. Otherwise, what you end up doing instead of holding them responsible for their intent, the products of their mind, and so on, is attempting to hold them responsible for the products of your mind.
Hello world is a straw man introduced by you - not the commenter I was relying to.
As I pointed out, even if we consider hello world, the proposition is still not true - it’s not easier on a TI-89.
So what do we have in summary? You spoiled the discussion by introducing personal attacks, your argument is a straw man, and even the straw man version is simply not true.
You made several falsifiable claims that don't hold up, and you handled this by (a) editing your comment in a way that materially changed those claims (removed them and then in their place moved forward with a different argument that is necessarily at odds with what you originally wrote and removed), and (b) in the case of your most recent comment (when it was too late to edit the earlier), you ignored the straightforward questions put to you that, if answered, would refute concretely things you claimed about who said what when—an already ridiculous change of subject even more doomed than the original unnecessarily adversarial argument about the barriers that exist to write a program.
It's clear at this point that you don't actually stand behind anything—you are not committed to any actual position, or facts; you are only committed to the act of arguing. If there was any doubt about whether you were here to pick a fight, that has been erased. There is no reason to believe that you're responding in good faith, and there is no way to justify engaging with you further.
You responded to my edit previously. You are bringing it up again instead of responding to my comment.
This doesn’t change anything about the discussion or explain why you keep leveling personal attacks and accusations.
You can plainly see what’s written, and complaining about an edit has nothing to do with the points I made.
Let’s consider again what we have in summary: You spoiled the discussion by introducing personal attacks for reasons that are not clear, your argument is a straw man, and even the straw man version is simply not true.
Being a poor student in Brasil, I went through my first two years of college using a R$ 400,00 (around 80 dollars) Dell notebook. Several of my projects hosted on GitHub were written using this machine.
There's a super market chain here (Carrefour) that sells eletronics. They usually would hold a sales when something is wrong (a product is about to expire or an electronic presents mal functioning). My notebook in question fell into this category, it presents a small defect. The defect?! The Windows pre installed in the machine wouldn't activate online (some problem with the key).
So I got the notebook extra cheap, activated it by phone (since I could not activate it by software), saved the key, remove windows, installed linux (which doubled the speed of the machine, of course) and went my merry way into college.
I don't know the rest of the world, but a smartphone in Brazil can be compared in price to a notebook (a not very good one). The second advice from this story is Linux can give new life to old machines, try it.
I've added 5+ years of life to several of my old laptops with Linux. Spouse was hesitant to try it on their dying windows machine but with Linux it was very usable and absurdly faster. It's actually still usable and it's a 2006 dell.
It's almost time to move their win7 machine to ubuntu
I grew up in Norway in the 90’s, and at that time even here most people had at most one computer at home for the whole family.
My father had a couple of books that were written by Lynda Weinman, one about HTML and one about graphics for the web. I read those books, and with pen and paper I would some write some rudimentary HTML.
A couple of years later I finally got a computer of my own and started typing out HTML in Notepad and getting to see the result in Internet Explorer.
This was part of the early beginning of my fascination with computers.
Today I am a software developer, writing applications on macOS, iOS, FreeBSD and Linux :)
Honestly, a smartphone is more powerful than any of the computers I used to learn HTML, JS or CSS. Better screen resolution too. The main problem is screen size.
My first reaction was "Get this person a Raspberry Pi stat!", but that might not help them much if they don't have access to a monitor. What I imagine would work better for them is a small light laptop with a couple USB ports for good compatibility with inexpensive peripherals, a long-lasting replaceable battery of an affordable and common type, and no requirement that the computer be connected to the internet to be useful (f*ck off and die, Chromebook).
I've had Asus and Lenovo laptops that fit this bill pretty well, and the Lenovo was even close to being cheap enough to be practical (~$150) (the Asus was more like $250, but it was also a 1080p 14" with a 9+-hour battery). Of the stuff I can easily find available online right now, a Kano would fit the bill pretty well (you can find them on sale for also ~$150), as would the low end Lenovo IdeaPads. I like those a bit better than the Kano as they have a sturdier build and include a webcam
I used to have a similar setup on my phone when my laptop started dying and I was in the middle of moving countries.
You can have Node running via termux, albeit with some limitations, e.g. no global modules.
Of course debugging isn't really possible, so you'll have rely on your engineering prowess.
I wanted to create a similar setup for Rust, but unfortunately compiling the compiler from source to work on Android was way above my skills (provided it was even possible to begin with).
When I was learning programming, all I had was a big book called "Thinking in C", a notepad (pen and paper), and lots of free time. Few days a week I will go to the library to retype my solutions from the exercises.
That is some hardcore hackery-dackery. It takes dedication and a real desire to learn to put up with such adverse conditions.
I know a chap who, for a while, had spotty access to a PC except for the locked down one he had at work in his (non-programming) job. He passed the long hours making tiny JavaScript hacks in the URL bar.
While I don't mean to slight the front-end dev's dedication, there are more than a few of us who learned BASIC programming in the late 1970's and early 1980's... without access to any computing device at all.
We would study BASIC from manuals and other books, and pour over program listings in magazines. Then we would write out programs on paper, and "interpret" them in our heads to see if they worked correctly.
Some home computers like the Timex / Sinclair were relatively inexpensive ($100 USD in 1981, $330 in today's dollars), they weren't cheap even then, and that was the very lowest-end device possible (4Kbytes RAM, no storage whatsoever). An Apple II with a floppy drive and montior would run into the thousands of dollars back then.
When I first got my hands on a computer late 90s, other people should have seen my fathers facial expression when he saw his 10 year old son typing "weird code" into a terminal window at a "lightning" 1-2chars/sec speed :) I didn't have the pocket money to buy expensive foreign computer magazines, so I was studying at the book store when we went to the mall.
People all complain that the hardware is too closed these days, but I get emotional when I see kids having access to such inexpensive hardware. Amazing times.
Early 80s?? We were doing that stuff up to the mid 00s in my school. Honestly I found it extremely unappealing because you could not get the result immediately, but in the long run, it helps to think about the working logic behind codes instead of simply shooting in the dark and debugging.
I have a similar history. What amazes me is that I used to write in assembly language for the Z80, plugging in the hex machine code numbers inline into BASIC and Turbo Pascal programs, and I never saw an assembly manual, instruction list or book, and never had an assembler! Somehow picked up instructions one at a time from magazine columns, wrote assembly on paper and hand-translated into machine code. It's such a different world now, being able to order online, if not download instantly, just about everything. I came across Rodney Zaks' Programming the Z80 about 10 years ago in a second hand shop and it was like seeing the Holy Grail—a legendary book I never imagined I'd ever see a copy of, much less own.
I have difficulties understanding this. I learned Basic ard 84 on a c64. I don't understand why anybody would learn it without access to any device. I mean what would even get one interested in it/how would one know this exists?
> I have difficulties understanding this. I learned Basic ard 84 on a c64. I don't understand why anybody would learn it without access to any device.
You don't understand my youthful obsession with computers? Or you don't understand that my family couldn't afford a C64 when they first came out?
I hopefully don't have to explain the 2nd reason to you.
As for the first, I don't quite know how to explain that. As I learned of what computers where, and how they worked, it just overtook my ambitions in life. Being a firefighter or astronaut could just not compare to being able to command a machine to perform complex tasks at my bidding. I wanted to work on robots, I wanted to make an AI that could converse with me, I wanted to explore strange new worlds, and more.
I understand a youthful obsession and I understand not being able to afford a computer. I can understand if there is a slight access to a computer (either in a shop selling those not minding the kids playing ard, or a distant acquaintance of an uncle allowing for 30 min screen time every month or needing to bribe the grounds keeper for access to the schools it room), but I have a hard time understanding zero access and doing pen and paper programming. I mean why chose basic and not assemble when choosing without a computer.
How did you learn what computers were? Did you see it on a TV show about computers?
Computers weren't new. The idea that an ordinary person might have access to one, or even own one, even if that "ordinary person" wasn't you, was new at the time. And there was more than a little excitement about those turnkey machines you could just buy and use, assuming you had the money. There were books and magazines, educational TV shows, etc. I picked up BASIC long before I ever saw a computer that ran BASIC. (I did have the opportunity to try a little bit of FORTRAN using MarkSense cards on a 1401 in the year before the MIPS Altair 8800 was announced as a kit in Popular Electronics. We'd send the card bundles away, and a couple of weeks later we'd get a printout, usually of syntax errors, along with punched versions of the cards we'd sent off. One would quickly learn to pay a little more attention writing and mentally running code.) With BASIC, it's very easy to picture what's going on without knowing much at all about the hardware. With assembly language, not so much.
I learned BASIC via books myself. I learned about it through the Commodore PET at school and some Apple IIes later on. I didn't have a computer at home, but I'd often write simple little text "games" in BASIC (things where you just enter your name and it asks you questions). I didn't have access to the computers at home all the time, so my situation was not one where I knew I'd get a chance to try it on a computer.
We eventually got a PC at home later on, but I already loved working out programming logic. With the PC, I also remember one time writing up some assembly in the library at school with pen and paper and eventually typing it in when I got home.
Having grown up in communist Romania, I had this experience - the first computer I toyed with was a Spectrum clone, which we had at the school, and had access to it for about 2h/week. I definitely knew what it is and how to use it, but I couldn't spend time actually developing even simple programs on it.
So I had a copied manual at home, and a couple of magazines with listings, and I would write my programs in basic on paper, and emulate them in my head, to verify they work. Then when I had access to the computer at the school I would use that time to type in the program and really run it.
Thankfully my parents were able to buy for my own Spectrum clone after a while (when they become cheaper/more affordable, because the PCs finally were being imported, so a lot of local companies would move from their Spectrums to PCs) and then I could spend innumerable hours building simple move-the-cursors games directly on the hardware.
Is it time to revive the OLPC program? That one started the low-cost "netbook" trend, after that the smartphones and tablets got to the forefront.
How much would a ruggedized laptop cost to make now? I know there's some RPI kits out there but they seem pretty pricey for what you get; I suspect the biggest expense is the screen, so that's an area that could be improved on. Surely there's older screen tech that can be produced at ridiculous scale nowadays? 1024x800 is enough for the basics. If that can run on a 5w USB charger that would be ideal, it could run off solar panels and cheap powerbanks then.
Anyway, if that's there then the tech companies who want to deduct some taxes can order millions and distribute them to the countries where people could benefit from them.
I worked for a NGO that distributed OLPC laptops to rural schools in Nepal. Those laptops are super slow + its interface is hard to use. People in villages use smartphones that are 100X faster. Later, we switched to Raspberry pi(s) connected to peripheral devices.
If you want to help out or learn more, check out: https://www.olenepal.org/.
I hate that Netbooks died. I think they were just too good for too cheap of a price. A full environment (who cares if it’s slower) often costs far more now. It fell victim to market segmentation. We got locked down tablets (whose OSes were end-of-lifed soon after release) that were optimized for passive consumption instead of boundless creation.
It is probably best for them to develop their own solutions based upon their own needs and what they have access to. Offering suggestions is certainly valid, but recognizing that they may not be heeded for various reasons is important. Just look at what happened when the author told his brother that he needed a laptop.
FWIW it really isn't that hard on Android, as you can just install Termux and then install stuff like clang or the Android SDK tooling. For a while a couple years ago I was doing this and using a foldable bluetooth keyboard; the setup was small enough to fit in my jacket pocket and felt a bit more convenient than carrying around a laptop.
It's gotten to the ridiculous state where common phones will very often have more screen resolution than 14'' laptops. So as long as you have a way to comfortably stand close enough you won't be lacking for pixels. Eye strain from focusing that close will probably be higher though.
This is clearly an extreme case, and quite impressive. I was commenting on the general case of developing on a phone screen. 2300x1080 phone screens are now on ~200$ phones, while getting more than 1920x1080 on a 14'' laptop is difficult and gets you a "why would you even want more than FHD on a 14'' laptop" comment consistently. At least 16:10 is now becoming more common so 1920x1200 is growing a bit.
actually working on tiny screen is not that hard tbh. When my macbook was under repair I used to use microsoft rdp to connect to other pc.
The good thing is i can use external keyboard and mouse. And screen was somewhat okay. The only issue was battery as I keyboard + mouse drains battery a lot.
I tried this and it was a bit of a pain. Partly because the device didn't have enough storage, but stuff like finding a decent editor was hard, and just about everything needs some tweak to work.
My experience is not that bad. It's Linux after all, of course you're gonna need to tweak something. I spent a few hours customizing Neovim with Coc.nvim and were off to go.
It's kinda crazy that Termux on my phone runs smoother than any terminal on my laptop. (TBF it does have more RAM and faster storage!)
Apple doesn't advertise much outside the United States, and given Android is significantly more developer friendly, there isn't a reason for a student to learn on iOS.
Android's pretty plug and play in that regard thanks to USB OTG, and you've got a lot of the Linux world amenities on top of it (especially if you're rooted).
Story reminded me about this one time I had to listen to a Samsung representative at a summit. While she was pitching their VR web browsing initiative, she somehow mentioned how a [Samsung] smartphone could be used as a PC.
Being the cinyc that I am, I assumed the worst: you are trying to sell me a junk solution to a problem I don't have, lady.
Looking at stories like this, I realize I have no vision and understand a lot less about the world than my ego has been telling me
Recently I was looking to donate some money to Sri Lankan charities and was talking to various groups, asking them what their most urgent needs were and where I should allocate money.
One charity was based in the Mullithivu region[1] which is an impoverished rural region in Sri Lanka. The kids there don't neccessarilly have access to the internet or computers at home, so with COVID are left behind as the schools move towards some form of digital teaching.
I thought it was interesting that one of the most effective solutions for this that the charity found was to purchase USB keys loaded with digital curriculums. Apparently while the homes don't have computers, almost all have Smart TVs (to access tamil language programming?) and thus the kids could follow along with school as long as they had their USB keys. The director of the charity also mentioned they were also trying to get the curriculum through phones (he mentioned Viber explicitly, but I'm not sure why it needed to be limited to that), which was another device all families had access to.
We ended up purchasing USB keys for an entire school ($5 each) and money to fund digital content creation. I wonder if there would be a big impact on education in these areas if someone could work out the UX/UI/ergonomics of teaching through mobile phone. Or whether it's just a better idea to fund a infrastructure (school computer labs). The advantage of the former, I suppose, is one could just do it and see if it has an effect.
Thanks for mentioning this! I've also been looking to donate to Sri Lankan charities in the north-east but it has been difficult to understand which charities are still operating and have a legitimate impact.
We donated to six charities and I ended up learning a lot (from a position of significant ignorance) about the charity landscape. I was shocked to find out that $33 per month can fund a full undergrad scholarship for a student.
I was particularly impressed/interested in this non-profit that acts as a coding school and accelerator: http://www.yarlithub.org/
For anyone reading this thread who may be in a similar situation: I wrote a script that allows you to use GitHub Actions as a computer. Any work you do can be committed to a repository and saved for later.
It can either boot up a command-line, or a complete desktop interface. Both are available entirely over the Web (and thus a smartphone). All you need is a free GitHub account. Both are also available over Tor in case you're in a situation where things might be blocked.
I originally built this for doing competitive hacking challenges with a friend, but I have also used it at libraries, and from my phone. In general, it is great for when you need a desktop but don't have one, or for when you can't install things on the computer you're using.
Hopefully this helps others who need access to such resources for learning!
This might be a big deal, but I have been mentoring this guy on an on and off basis, he does not have a laptop, is not a CS student (was studying for medical exam - NEET) and writes all his code on an android cellphone. He got interested in cyber security and wrote his first functional keylogger (disclaimer : it was good exercise to teach him basic *nix utilities and how native functionalities can be leveraged by an attackers to their end, not for malicious objectives) using his phone as an IDE, compiler and what not.
This is why I think it sucks when device manufacturers like Apple and to a lesser extent Google (Google Play has been more open to allowing development related apps in their store) restrict the kinds of apps that can be downloaded from their store. Smart phones are every bit a generic computing device as a PC, and for many people world wide it's the only one they have access too. For companies like Apple to say nope, you can take selfies with this thing, but you are absolutely not allowed to upload an IDE or code editor to our app store is really taking away opportunities like the one in this story.
The LinkedIn author states in the LinkedIn post comment where someone referenced this HN post, that they are Indian, not Nepalese. Perhaps the title should be amended.
You may or may not be surprised at how many kids in Silicon Valley (especially San Jose) did a full year of remote school using only a mobile phone, and in many cases, where that was a shared mobile phone and the only household method of accessing the internet. It worked about as well as you might expect, given these kids are often from households with multiple other disadvantages.
To help poor countries I was working on Arduino Nano (3$ computer) with a 2" OLED monochrome display (very very little energy required, especially if you show pixels only 1/10th of a time and use eye remanence). I don't have time to make it through, but maybe someone will be interested. It has low CPU but you can stream any kind of data through USB serial.
That "just a mobile phone" is a computer in small form factor and possibly more powerful than computers two decades ago. Especially on Android devices where you can run chrooted a full GNU/Linux environment, the only difficulty (but not a barrier) smartphones have for being used productively are the small display screens and the lack of keyboard.
Yeah I don't think anyone is under the impression that any smart phone is not powerful enough to do this, but have you actually tried development on a phone? Even with a keyboard this is masochistic.
But many seem to think that smartphone implies being limited to mobile apps to do work which fortunately on Android isn't the case. Tried to see if it's possible but no, I haven't used it to build something substantial. I didn't mind that much the small display as the lack of keyboard. A phone with slide out keyboard will probably be a fine choice for this usage.
And that, in a nutshell, is why it's just wrong for smartphone operating systems and app stores to go to increasingly extreme lengths to ban programming environments. termux itself, while wonderful as a concept, is already too crippled on my Android 9 device to be much use, and is/will be even more so in later versions.
It's close to my story, I learned html and js using my mobile - Nokia N70. There was no ide or syntax highlighting and very little multitasking, but I was able to build websites and publish them. Was such a great moment when people saw my website! Got PC with the internet 3 years after my first website went public
This is why I hate how modern smartphones make it so hard to program anything. IPhone App Store policies make it all but impossible to actual use the iPhone for full fledged programming (including compiling, etc).
I would only say that coming from a poor third world country too I am a little less gullible, or using the more PC term my degree of belief stretches a lot when reading posts like these.People in western rich countries trust more, that can be a blessing or a sin.
Many third-world countries use a mobile phones, and some use paper to practice and learn to code. Especially at the start of this online class, many people struggle with their internet connection.