开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《异口同声 neural_complete》
今日推荐英文原文:《Can you learn to code on your phone?》

今日推荐开源项目:《异口同声 neural_complete》传送门:GitHub链接
推荐理由:输入 #in 然后回车打出 #include 应该是相当常见的操作了,作为节省时间的手段人尽皆知。但是如果再进一步,把后面那个头文件也回车打出来兴许更能节省时间。这个项目就是自动补全更进一步的形态,通过神经网络训练让其能够预测你需要的下一行代码是什么,从而进一步节省时间。兴许以后可能每一个人的每一个项目都会有一个单独的自动补全模块,从而达到根据每个人每件事不同风格来决定他输入的下一行代码可能是什么,我们就能把更多时间花在创造新的代码上。
今日推荐英文原文:《Can you learn to code on your phone?》作者:Simon Hargreaves
原文链接:https://medium.com/swlh/can-you-learn-to-code-on-your-phone-95523c7c3eeb
推荐理由:利用手机学习写代码的方式

Can you learn to code on your phone?

Given the limited screen size and options for programming on your phone is it even possible to get a good grounding in a programming language just from a smartphone?

The benefits of learning to code have been pushed heavily to people of all ages as an option for upskilling or just becoming more computer literate. There are a lot of options out there, but I’ll just look at a handful and see if they are any good.

Coding games

Theses apps develop the ideas of building sequences, using functions, and conditionals but leave out variables and other useful constructs like while loops. These are clearly games, but a good introduction for younger kids or those not that interested in getting into the more serious side just yet.

Lightbot

I love the look of Lightbot, it was one of the first “programming” games I looked at for introducing kids to the principles of programming. The instructions are very clear and easy to understand. It introduces functions, or procedures as they are called in Lightbot world, quite early and does a very good job of using them in solving puzzles. It covers functions, calling functions within functions, iterative functions (a function calling itself) and conditionals. Although conditionals is a little clunky, it’s a start. It comes in two versions Code Hour (functions) and the full version (functions and conditionals). It quite quickly turns into puzzle-solving rather than learning principles, but it should keep kids engaged for a while and peak their interests for more challenging stuff. Ages 5–11 for the early levels, the challenging levels will have a lot of adults scratching their heads.
  • Verdict: An excellent puzzle game that covers some coding principles. Very polished.
  • Level: Absolute Beginner.
  • Age: 5+
  • Mood: Very enjoyable to fiendish

Clear and helpful instructions

Using procedures to solve problems

Colour coding for conditional commands

Algorithm City

Algorithm city feels like a bit of a Lightbot clone. The interface and instructions aren’t as clear and it seems as they introduce iterative functions pretty early which may be confusing. It covers all the same territory as Lightbot without doing it as well. I’d look at Lightbot “hour of code” first before doing this one.
  • Verdict: A puzzle game that covers some coding principles. Feels a bit clunky.
  • Level: Absolute Beginner.
  • Age: 5+
  • Mood: Fun, short lifetime.

Basic commands for solving puzzles

Introducing iterative functions

Programming Walkthroughs

Moving onto more advanced topics you’ll move on to more focused and serious applications that start to take you through the nuts and bolts of actual programming languages. They usually take you through the syntax and practicalities of using a language. It takes a lot of effort to keep them engaging.

Grasshopper

If you’re looking for something that introduces some serious programming principles then Grasshopper is pretty good. It has been developed by Google and is completely free. It covers the javascript language and takes you from complete beginner through everything up to objects and properties. The pace at which you cover the subject matter is quite quick and it may be daunting for someone that can be intimidated by this kind of thing. But that being said if you want to learn it’s an excellent start.
  • Verdict: A great walkthrough, gets the principles across well and you get to see results quickly. Javascript only.
  • Level: Beginner. If you’ve never seen code before you’ll still do ok.
  • Age: 10+ to Adult
  • Mood: Fun

Clean and friendly interface

Explanations of real code, with a simple click to code interface.

Mimo

If you want to learn a wide variety of languages and subjects then Mimo is pretty good at learning on the go. It covers everything from Javascript to R and Datascience to Cybersecurity. It all feels like the first couple of chapters on an introduction to the subject and doesn’t go into depth. It’s also far too easy to zip through the subject without having felt like anything has been absorbed. It follows the “read the text”, “do the quiz” methodology, which for a mobile learning platform is pretty par for the course. If you want to get across a whole bunch of subjects before you dive into something more complex, then it’s pretty good. You’ll have to pay for the subscription to get anything useful though.
  • Verdict: A very wide-ranging set of subjects, it covers a lot of ground. Very engaging but doesn’t go into depth.
  • Level: Absolute beginner to novice.
  • Age: 10+ to Adult
  • Mood: Whirlwind tour

Lots of subjects to choose from.

Introduction to the subject with “click and go” quizzes.

Khan Academy

It would be difficult to cover this subject without including Khan academy, possibly the granddaddy of online learning platforms. The usefulness of Khan has been proven in academic subjects and is essential to any home learning process. Unfortunately, their mobile delivery is terrible. It is mostly a link through to the web-based interface (on android at least) and their programming introduction is just not designed for a small screen. The interface works adequately for a tablet-sized screen but the interface just isn’t usable on a smartphone. The subject matter is introductory Javascript using the Processing JS library and covers very much the same ground as Grasshopper but in a much more “video” and voice-over type format. It’s fine on a laptop, but if you’ve got that available there are much better options to get started with.
  • Verdict: A good set of materials but not practical on a mobile device. Avoid.
  • Level: Beginner.
  • Age: 10+ to Adult
  • Mood: Frustrating

In portrait mode, everything is too small

Landscape mode doesn’t work either

Encode

Encode is another javascript tutorial. It is very basic. It walks you through language basics at a snail’s pace. It’s dry and there and are no fun challenges to break up the information. The code editor is functional and follows a similar click to code method to Mimo and Grasshopper but with more text to input. The topics go all the way up to objects and arrays, so nothing the other tools don’t cover. Ages 10+ but even adults will be looking for something else to do after 5 minutes.
  • Verdict: Comprehensive, but just really dull. Javascript only.
  • Level: Novice, you should have some idea of code before touching it.
  • Age: 15+
  • Mood: Feels like homework

Clear overview of the subject, but very dry.

A basic click and go code editor with a lot more typing.

Programming Hub

Similar to Mimo programming hub has a wide variety of content on offer, and without going for the paid version you are limited to a small subset of the course material. The user interface is very basic and by default, there is a text to speech engine enabled. Fortunately, the mute button is front and centre on the interface otherwise I would have thrown my phone out of the window within a few minutes. The pace is slow, very slow and you have to continually hit the Tap to continue button just to move forward, a click for every paragraph is too much. The content and quiz format is interspersed with “click to code” sections, but it doesn’t seem as slick.
  • Verdict: Wide selection of courses, but presented in a frustrating way. I lost patience with it.
  • Level: Beginner, but you have to be committed to stick with it.
  • Ages: 15+
  • Mood: Feels like more homework

Wide selection of subjects

Read the text and do the quiz format

Sololearn

Sololearn is similar to Mimo in the breadth of courses and the cost. The starting level is much higher, and it has a much more exhaustive and academic tone. With that, it really forces you to walk through a lot of tedious stuff before getting your hands dirty and doing anything fun or practical. The coding interface is very slow, as there is a requirement to do accurate typing of code all with the mobile keyboard, there is no click to code interface.
  • Verdict: Wide selection of courses, but the presentation and pacing are very slow, and the interface is unpleasant.
  • Level: Novice, you need to stick with it to get anywhere.
  • Age: 15+
  • Mood: Feels like homework with detention

Wide range of course materials with detail

Read the text and do quiz format

What about Scratch?

A lot of you will have probably come across Scratch. It is probably the best implementation of programming principles without scaring you with code available. Unfortunately, I was unable to find any apps that provide a scratch interface for mobile that isn’t tied to some other kind of product. If you find one please let me know and I’ll update the article.

Courseware Apps

Online courses that take a more serious approach to get you up to speed are widely available. These take the form of “Code along” lessons, with an almost exclusive focus of doing the actual work on a desktop. To get anything from it you need to be watching and working along with the videos in a local software development environment. These are great for watching videos on the move and then picking up and review at home.

Udacity

Udacity is a full-on courseware website, there is no app for android that allows you to do programming examples on your phone. You can watch on the move through the website, but it is not a great experience.

Udemy

Udemy has a similar setup to Udacity with the wide selection of courses available. They do slightly better in the mobile app department and it’s a relatively slick experience for watching videos and doing the quizzes, but for programming, a desktop is the only serious option.

Conclusion

If you’re a kid or trying to get a younger kid into the idea of coding, get Lightbot. It’s a great puzzle game.

If you want to graduate to real code then get Grasshopper it’s free and will get you started in understanding the principle ideas behind any programming language. Even though it is javascript the ideas are all transferable.

If you know how to code a little bit already and looking at ideas to explore do a few taster sessions on Mimo and see if you think it’s worth the money.

To get in-depth or hands-on with a programming topic it seems a smartphone is just not going to cut it. Desktop and tablet options are much more varied and allow a serious exploration of a programming topic even just through a standard web browser. There just isn’t the screen space or input options for phones yet.
下载开源日报APP:https://openingsource.org/2579/
加入我们:https://openingsource.org/about/join/
关注我们:https://openingsource.org/about/love/