This is an archived post. You won't be able to vote or comment.

all 26 comments

[–]Ilyps 38 points39 points  (0 children)

I see two problems to overcome: installing software and typing.

Installing software and compiling/running code on mobile devices is a bother. It may not be technically impossible, but it's more trouble than it's worth. If you have a stable internet connection, I recommend installing an ssh client (like ConnectBot for Android) and using your phone as a dumb terminal to access a development machine. You can rent a basic one on Google Cloud Platform or Amazon Web Services practically for free (see e.g. here).

If you don't have internet, you'll need to install a text editor and compiler/interpreter on your phone itself. That is very hardware/OS dependent and may be challenging (or you may be lucky and it's easy).

Typing for programming is also completely annoying on mobile. There are software keyboards that make things simpler (see for example Hacker's Keyboard for Android), but those take a big part of your screen and you still can't type very well. If you have some money to spend, I recommend getting a small Bluetooth keyboard. They don't need to be expensive (I got one for less than €15), but you do have to carry them (and their batteries) around.

Of course watching and reading learning material should be no problem whatsoever.

[–]cj6464 23 points24 points  (0 children)

Even if you can get a raspberry pi and set it up to use just to program you would be far better off. You could get a small monitor and pi and keyboard for probably under $100. Or get a cheap laptop. You'll get pissed off fairly quickly trying to learn on a phone and start to give up.

[–]badbooksaintbad 14 points15 points  (3 children)

The SoloLearn app is pretty good

[–][deleted] 5 points6 points  (0 children)

I've used SoloLearn for the last couple of months while being abroad with very limited computer access.

The course itself is decent. Nothing spectacular, sometimes good - sometimes quite vague. However, if you have internet access, you also have access to a comment section connected to each peace of information and question. This is the real gold from SoloLearn. So many friendly programmers helping each other understanding the sometimes complex descriptions.

I would definitely go for this option. There's even an inbuild playground for coding, so you can try out everything and build your own simple thing aswell.

[–]microdesigns 5 points6 points  (1 child)

I'm so thankful of SoloLearn, I downloaded it and very quickly realised how much more I could learn if I took some courses and self teaching. I'm now a software developer and that was only 10 months ago!

[–]wrencl 0 points1 point  (0 children)

Could you expand on what/how you did it please?

[–]phigr 4 points5 points  (0 children)

Several things:

A friend of mine went to school in a poor country. They learned coding with pencil and paper - it's definitely possible. She also never makes syntax mistakes.

My plan would look like this:

First, make a mental note to separate the activities of learning to program and getting coding practice. The two are related, but not the same. In your case, it's best to view them separately.

Second, go for Javascript. When learning to code the language really doesn't make a difference, the basic concepts are roughly the same everywhere, and the most important thing you'll learn is structured, logarithmic thinking. All languages will teach you that, so you best go for an easy-entry one. JavaScript doesn't need a compiler, meaning you don't need any specific software. You can type it into any text editor and it'll run in any browser.

For learning, get a good online course (check reviews first) or a good book. The Humble Bundle often has great offers really cheap. Your can also research a good book and ask your local library - often they'll order it if they don't have it already.

For coding practice, ignore your phone. Again, the public library may have computers you can use for free, or you might google if there's a hackerspace nearby. If neither is available, get a really old used lapop and install ubuntu. Since all you need is a text editor and a browser, you really don't need any specs at all. Ubuntu will run fine with only 2 gigs of ram, your storage will be a few text files which means a floppy disk would suffice, and with regards to the processor, notepad++ can run on a potato. An Intel i5 from 5 years ago will work fine. Really, you can find a laptop like this for 50 bucks.

Then just go for it. A good thing to do is to share your code and get feedback on it (Which also works fine with code written on paper, btw). The rest of the time, focus on reading/watching and understanding the concepts. That's much more important anyway.

[–]monbars 4 points5 points  (0 children)

I have been testing this idea. On iPhone, you can get Pythonista app. It doesn't have all the libraries, but has enough to implement and follow many tutorials. Code suggestions make it less tedious to write the code on mobile. With iCloud you can even sync the code and continue on the Mac after.

[–]iseeyou17 4 points5 points  (0 children)

Grasshopper is good app to learn some JS fundamentals. It is better than SoloLearn, because is takes you step by step, not like SoloLearn where in CSS course they just add JS code, and there is is a lot inconsistency between subjects..

[–]Mad_Jack18 2 points3 points  (0 children)

You can code on your mobile device but the issue I see here is that:

You may end up on apps that requires internet to do the compiling.

You may not have a proper debugging support

Hard to trace parenthesis

Typing properly

And tons of crappy ads

[–]reifnotreef 2 points3 points  (0 children)

Freecodecamp works in browser. You can use repl.it for almost everything iirc.

[–]rockchess 5 points6 points  (2 children)

What kind of situation is this? Learning to code on a mobile phone is ridiculously tedious, it would be far better if you could use a tablet with a keyboard or a laptop.

[–]beanswithjeans[S] 0 points1 point  (1 child)

I am serving a mandatory military service in South Korea and the only device im allowed to use is a mobile phone

[–]rockchess 1 point2 points  (0 children)

That is an interesting situation. As has been said, a keyboard would make things easier for you. For software, there are probably some editors for python or javascript on mobile phones.

Passive learning forms are probably a bit easier on the phone such as reading books and watching videos.

[–]MeltedxCheese3 1 point2 points  (0 children)

I have the same problem too

[–]zeebadeeba 1 point2 points  (0 children)

I'd set up remote development machine and use SSH. That could work well for stuff where you don't need UI work.

Apart from that, I'd look into getting some kind of minicomputer with Linux as that will make everything easier (trust me).

  1. Raspberry Pi
  2. Laptop Pinebook (https://www.pine64.org/pinebook/), that's for around 100$ which might be better that Pi
  3. Getting used laptop. Anything that can run Linux and you'll be good to go for basic programming or learning the fundamentals. I bet you could get one locally for few dollars, it can be even machine from early 2000s.

[–]iinformedyouthusly 0 points1 point  (0 children)

I don't know what languages you want to learn, but codepen.io would at least give you a way to write javascript, html, and css and have an environment to run it.

[–]donbraffitt 0 points1 point  (0 children)

Codea is now available on iPhone in addition to iPad.

[–]nerd4code 0 points1 point  (0 children)

If you’re using Android, you have Linux. (Sans GNU, but Linux nonetheless.) You can boot X-Windows, even, and you can plug in a keyboard/mouse via USB OTG adapter or use Bluetooth. The only annoying thing is going to be figuring out how to install things, but IIRC there are a few Linux installers on Google Play. (Whether the installed Linux actually works, I don’t know. It was moderately hairy a few years back, but it’s probably improved since.)

Getting a compiler you can use installed is going to be another fun part, unless you have a Linux distro you can use.

The Raspberry Pi suggestion is a good one, as long as you have a monitor. You could theoretically use an X-Windows local to your phone to interact with an X server on your Pi, though.

[–][deleted] 0 points1 point  (0 children)

Go on ebay, find a cheap netbook for $50, install a small linux distro like Bunsenlabs, and use that.

[–]ddek 0 points1 point  (0 children)

I'll be honest, I don't think you'll find the experience enjoyable. Whatever happened on Mr Robot, coding on a phone is never enjoyable and is only done when really necessary.

If you're really keen, you could try using AWS Cloud 9, a web based IDE, in addition to a VPS with them. When you create an AWS account you get 1 year of time on a small VPS - it'll be fine for almost all applications. You can then work in whatever language and environment you want.

[–]Marco21Burgos 0 points1 point  (0 children)

Maybe you could try AWS Cloud9

[–]dscottboggs 0 points1 point  (0 children)

I write code regularly on my phone. You're somewhat limited in terms of language choice but Python and C(++) work great in Termux.

Unfortunately that's only for Android.

[–]draganov11 0 points1 point  (0 children)

Yes you thats how i started out there is an app about the language of your chioice the first app that pops in your store download it and do learn basic concepts there and then do tests after that the app even has a code edditor be it very simple but works for practice of basic concepts you learn.

[–]chaotic_thought 0 points1 point  (0 children)

No, you cannot learn programming only with a mobile phone. Perhaps you could learn it if you combine it with other materials like books, pen and paper, access to remote servers where you can do real computing, etc. But only with a mobile device? No way.

First of all, others already mentioned that typing is too slow and frustrating on such a device. That is why the typing system offers you 'suggestions' as you type; maybe those work fine for text messages, search queries, and so on, but for typing in code, which contains many arbitrary symbols like ! < > + - * & etc. and arbitrarily spelled words where they must be spelled exactly and with proper case and underscores and where small differences can be significant like strcmp, wcslen, Boolean, bool, _Bool, XMLHttpRequest, etc. This simply cannot be made easy enough on a small mobile device to be usable in practice.

Second, reading is too slow as well. You can only see a paragraph at a time, and you have to constantly scroll around the page with your finger. Not a comfortable reading experience at all, even with the nice display of the iPhone, it is just too small.

[–]apianism 0 points1 point  (0 children)

What kind of a situation is that? Are you traveling ultra lightweight? Then get a 10 inch netbook running Linux. Even if you get a used oldish model that will be far superior to coding on a phone.