The world we live in today is touched by technology like never before. And the trend does not seem to decelerate any time soon. Much of technology has to do with machines powered by codes and algorithms.
Literacy and skill in programming is, therefore, a pursuit that can prevent (or delay) one from becoming obsolete in this ongoing automation. Think of robots, automated factories, self-driving trucks and autonomous drone delivery.
There are way too many online places, courses, platforms and frameworks for absolute beginners to learn programming; and most of them are free.
In this post I focus on my experience with one of them, Sololearn.
Completing all Courses on Sololearn
To give you a bit of back-story, I tried teaching myself programming 3 or 4 times (if I can recall correctly) only to fail poorly and give up. I would try it for a month, by reading from a book and coding along. I would understand very little of what I was doing. I tried that with Java.
In late 2015, beginning of 2016, I decided to do it again. I would go a different route though, with a specific goal in mind: a mini-project that I would work on. Moreover, my learning and skill acquisition experience would be built from multiple sources: taking courses, working on personal programming projects, reading specialty books and coding along, and watching lectures (programming) to name a few. I would spend a few hours per day, everyday, engaged in deliberate practice.
My specific project involved bioinformatics: the cross-road of computer programming and biology. I aimed for doing simple genome analyses with Python. I wrote about this a few months ago.
Then I discovered Sololearn, an online interactive platform to learn and practice coding. This would aid my practice of Python. What I liked most was their focus on making the platform very interactive. I wrote a post about it on my blog on steemit, so I won’t go into those details again here.
However, I want to offer some insights after completing not only the Python, but all programming courses (12 in number) on Sololearn, as of March 2017.
The most time spent was on the Python and C++ courses.
After finishing the first few, it was much easier to deal with the rest, probably because at their core, all programming languages share many commonalities. I’m not sure if I’d recommend someone to try complete all of them though. It can be very boring, unless Sololearn diversifies/differentiates its programme for each course; should they do it?
This platform is a great place for absolute beginners. However, intermediate and more advanced programmers are likely to flee, as the course matter may not excite them. I’m not sure if Sololearn wants to solely focus on beginners.
One plus point (from me) is the way they incentivize/gamify the platform. Users receive some form of power (XP points) for completing courses (they also get certificates), and for other activities on the platform.
Additionally to taking courses interactively, Sololearn has a discussion forum, a code playground, and a challenge section where users can compete with each other in time-sensitive one-on-one challenges. These are other ways for obtaining (and losing!) XP points.
I guess a good way to attract and retain intermediate and advanced programmers would be to tailor the challenge section to their needs. As it is now, the questions in these challenges need a lot of work: many of them are repetitive and often too easy.
These 1-0-1 challenges are time based: you only have a few seconds to answer a question or complete a code snippet. However, the timer concept/function needs further work to be at least decent; it could be redesigned from scratch or taken out completely. Some questions and code-completion snippets require much more time than others, so the rigid timer is non-sensical.
A nice section of Sololearn is the leaderboards: global, regional, programming language based, etc. They rank users in order of their XP. This is a good way to track your progress on the platform.
I’m not sure if I’ll be spending much time here if everything stays the same. I could keep upping my way through the ranks through code challenges, but they are not too engaging for me due to the quality of the questions. I could also gain XP by creating new quizzes and challenge questions myself and by interacting in the forum sections. But that’s not too engaging either.
Since Sololearn claims to have 15 millions learners, I’m hopeful that they’re gonna up their game to reach a more diverse user-base, not only novices. But, I guess it’s okay if they don’t too…
Aside of working on personal programming projects, my current study/practice approach to coding is by taking interactive courses on Udacity and Big Data University (supported by IBM) on machine learning, which is at a totally different level, as it involves knowledge of linear algebra, probabilistic statistics and a solid hold of computer programming and machine learning algorithms.
I also work (hands-on) with a few books on machine learning, watch talks on Youtube, and at the same time post my own programming tutorials on Youtube (what better way to learn than trying to teach?!).
Another aspect of my coding involves cyber-security, but I guess this is the subject of another post, as I have way too much to say/write about it.
Bottom line, one of the easiest ways for absolute beginners to learn and start programming is through Sololearn. It’s free, but you pay with the amount of time you dedicate everyday to this endeavor. Rewards, in my view, are directly proportional with the amount of time you put in and the amount of deliberate practice you do. So, if this is of your interest, I hope it helps you take off the ground with coding!