Month: November 2018

Best apps to learn Coding

Have you tried to find out which are the best apps to learn Coding? Is very hard, isn’t it?

There are a lot of apps on the internet that pretend to teach coding or programming. But most of them are poorly build and full of ads. Trying to test out which one are worth your time can be good waste of, well, time!

To make it easy for you I have made a list of some of the best apps to learn Coding.

These are all apps that I have used and found very useful for getting started with the fundamentals.

All these apps are very well built by experts of the field, full with interactive challenges and well explained examples.

I definitely recommend these apps to anyone who is really interested into learning coding or computer science.

List of the Best apps to learn Coding

  1. Programming Hub
  3. Solo Learn
  4. Mimo
  5. Codemurai

List of the Best game apps to learn Coding

  1. Grasshopper
  2. Tynker

The best Apps to learn Coding

Programming Hub

Programming hubProgramming Hub is an easy to use app that offers dozen of courses about some of the most popular programming languages and computer fundamentals.
All of the courses are very well written, engaging and interactive.
Some of the courses are free and others give you free access to some of the tutorials.
The Pro subscription gives you access to all the courses and a certification when you finish a course.


  • Fundamentals
  • IT Basics
  • Java
  • Android development
  • C programming
  • C++
  • Building Website
  • CSS
  • HTML
  • JavaScript
  • JQuery
  • SQL
  • C#
  • Python
  • Shell Scripting
  • R Programming
  • Swift
  • Assembly 8086
  • Artificial Intelligence
  • React Native
  • iOS development
  • Blockchain
  • Ruby
  • Computer Networks
  • Machine Learning
  • Cryptography
  • Cloud Computing
  • Unity

Price: Free + Paid

Get it on Google play

Comments form the users:

As a child I’ve always wanted to know how to program and this app taught me how to program with python and now I can program with it any way I want so thank you for developing this app!

Great app to learn. Fully satisfied with learning. Makes different programing languages to learn easier. Also the e-certificates which you earn by completing are very useful. The quality of learning is the best! And if you want to learn like a PRO then it’s OK to empty a small amount from your pocket.

brilliant logoBrilliant is probably the best place to go on the internet if you are seriously interested into learning Computer Science.

The courses are well organized, full of interactive problems with great explanations.

It has a lot of courses about Computer Science as well as other subjects like Math and Physics.

The app comes with a premium but all the courses come with some of the tutorials open for free.


  • Computer Science Fundamentals
  • Computer Science Algorithms
  • Artificial Neural Networks
  • Learn Python
  • Machine Learning
  • Computer Memory
  • Advanced Algorithms
  • Other subjects related to Math and Physics

Price: Free + Premium

 Get it on Google playDownload on the App Store

Comments form the users:
This brilliant, is amazing!😊 It has a app as well as a website.That’s the way the real learning should be. It’s interesting, interactive, 😆attractive, but the only problem is the high cost of subscription 😑😒.

I love this website and platform. This is how learning should be – interactive, fun, and challenging. My only quibble is how punitive the stats system is for getting questions wrong. Days of leveling can be wiped for a simple misread of one question. I think this is somewhat destructive to my learning. I’m scared to make mistakes and accordingly answer questions. I think learning should be more about taking risks.

Solo Learn

solo learn logoSole Learn is no just one app but, a group of apps each focused on e specific language.

This app helps you learn programming through short concept explanations that are followed by quizzes and checkpoints.

Courses are completely free and personalized based on your progress and preferences.


  • Learn Programming
  • Python
  • Java
  • JavaScript
  • JQuery
  • HTML
  • CSS
  • PHP
  • SQL
  • Ruby
  • C++
  • C#

Price: Free

Get it on Google playDownload on the App Store

Comments form the users:

Solo Learn is a great app for people like me with no basic knowledge of technical jargon. I’ve been an Arts student through my life but recently had a sudden interest in programming and coding and Solo Learn takes me through the phase smoothly. I enjoy learning with Solo Learn. I hope to be a senior programmer in the nearest future

Great tutorials! I didn’t expected to spend that much time in one app, but now I do. SoloLearn app is my final stop to learn programming and design. And they even have challenges, where you can compete with other members. 5 Star!


mimoMimo is an app that helps you learn coding from scratch with personalized lessons on a tight schedule.

For example, it keeps track of your progress, collects achievements and badges and you can always start where you left off.

In addition, courses are fun, interactive with easy and short explanations.

The app comes at a Premium, but it gives you a free preview for every course.

Mimo - Learn to Code


  • Programming
  • Build an Android App
  • Build an iOS App
  • Swift
  • Kotlin
  • Instagram Stories
  • Become a Web Developer
  • React
  • HTML
  • CSS
  • JavaScript
  • Make a Website
  • Make a Game
  • C#
  • Understanding Video Games
  • Become a Hacker
  • Cyber security
  • Understanding Machine Learning
  • Understanding Blockchain
  • Using APIs
  • R
  • Python
  • SQL
  • Automate Tasks
  • Ruby
  • Java
  • C++
  • PHP
  • Git
  • Command Line

Price: Free + Premium

Get it on Google play Download on the App Store

Comments form the users:

The app is well organized and seems to be very promising, but I can’t tell since it’s all paid. Only the first chapter is free, and it’s not enough to get to know the content. What makes it frustrating is that there’s no warning about it. You get excited to start learning and then hit a wall. Could be better on this aspect.

So far this app has been very user friendly and I’m very excited to learn about coding. It’s something I have been intimated with for a while but just the first chapter destroyed my hesitation. Let see if I can return with building my own app giving this app credit for the education


codemuraiCodemurai is a mobile app that allows you to learn programming on the go. Whether your goal is to create websites, mobile apps or games.

The courses are structured in bite-sized lessons and every lesson is short, to the point and full of interactive exercises. Therefore it makes it easy to learn the skills you need, anywhere, anytime!

For example, learn to make websites, games and apps while waiting for a bus or at an airport.


  • Web Development
  • iOS App Development
  • Android App Development
  • Game Development
  • Python Programming

Price: Free + in-app purchase

Get it on Google play Download on the App Store

Comments form the users:

Okay, okay, okay. I had some doubts about this app, BUT I got it anyways. This is the BEST app I have found to learn Python ( I haven’t tried the other courses… Yet). It is so simple and it is teaching me stuff all my other learn Python apps are not. I highly recommend this app to everyone looking to learn Python.

This app is great not going to lie, it’s my favorite coding app. My problem is with the latest update. I enjoyed watching ads for coins. They weren’t disruptive, and they made the experience of this app enjoyable. Please bring back the ads.

Best game apps to learn Coding

And if you like to play games, good news, these are some of the best game apps that I have found that will teach you coding by playing the game.


grasshoperGrasshopper is a free coding adventure game that teaches to write Code.

Your job is to progress thorough challenging levels as you develop your abilities and collect achievements.

With every level you pas you learn new skills necessary to pass the next level.

Price: Free

Get it on Google play Download on the App Store

Comments form the users:

Great app!I love the UI, the bite-sized lessons, the support forum and the code playground. My only wish is that the developers develop a similar app for other programming languages. Otherwise, great job you guys. Keep up the good work!

This app is remarkably ‘code newbie’ friendly and makes the programming language it teaches very understandable and approachable. Definitely a must for beginners. Would love if the developers made more apps just like it teaching the other languages. Great job. I would most certainly suggest it to anyone i know wanting to learn to code that is taught in it. Bang up job guys, really.


tinkerTynker is a game that lets you build your own game while learning programming at the same time.

The app has step by step tutorials and puzzles and templates for building the game.

It works offline without Internet access

Price: Free + in-app purchases.

Get it on Google play Download on the App Store

Comments form the users:

It is the best game ever I think you should play all the time you can make your own things and gets to play other people’s things it’s so fun to play neighbor baldies and all kind of that stuff I love you should play it.

Filed under: ProgrammingTagged with: ,

What is Coding?

Computer code

Computers today are everywhere, the modern world wouldn’t be so modern without them! They are fast, efficient and they never complain. But all these computers have one BIG PROBLEM, they are like newborns that now NOTHING! We have to tell a computer what to do first in order for them to be useful. And the way that we tell the computer what to do is by writing Code that the computer will execute. But what is Coding? How does Coding Works? Can you learn how to code and is it hard?

Coding is the process of writing structured set of instructions in a programming language. The whole point of writing those instructions is to give them to a computer for execution. And indeed, it is by executing those instructions that a computer knows how to do all the amazing things it can do, like:

  • playing a Youtube video,
  • moving characters in a video game,
  • applying filters to your Instagram photo, etc.

What is the Coding process?

Compiling Process
The programmer writes the code in e programming language like C++.

The code written in C++ can not be executed directly by the computer.

The programmer converts the C++ code into binary code with the help of a program called “Compiler”.

Binary code contains only 0 and 1, it is the only code a computer can execute.

It’s the computer’s processor’s job to execute the binary code.

During the execution of the code the processor tells the other parts of the computer to perform certain tasks, like:

  • tells the monitor to display an image,
  • tells the printer to print a document, etc.

What can Code do?

Every computer program is composed of at least three phazes:

  • Input
  • Processing
  • Output

Input Processing Output

The Input

The input is the information that is entered into the program. It might be in the form of: text, sound, button click, etc;

An example of an input would be when you enter a search phrase on the google search box. In this case the search phrase is the input in the form of text.

The Processing

The processing is the execution phase. The program takes the input and starts executing the coding instructions based on the input. When the program finishes the execution, it produces an output based on the input and the instructions it executed.

For example, after google gets the search phrase as input it starts to search on it’s database for the most relevant websites based on the input.

The output

The output is the information that the program outputs after it finishes the execution.

For example, after the google finishes the search and finds the most relevant websites, it displays the result in the browser’s page.


As we have already said, coding is about teaching the computer how to solve a particular problem.

These are the main steps that needs to be taken for writing the code to solve the problem:

  1. Identify the problem
  2. Find a solution to the problem
  3. Write the solution in code
  • As an example, lets take the problem of finding the largest number in a series of random numbers: 6, 4, 9, 0, 1, 5, 1, 4, 2, 3.
  • This would be a solution to this problem:
    1. Take a variable “max”, that will store the value of the largest number.
    2. Give this variable the value of the first number in the series, max = 6.
    3. Check every other number if it is larger than the value of max.
    4. If the value of that number is larger than the value of max, store that value in max.
    5. When finished checking all numbers, return the value of max.
  • This is how we would write the above steps in code:

int find_max(){
    int nums[10] = {6, 4,9, 0, 1, 5, 7, 4, 2, 3};
    int max = nums[0];
    for(int i=0; i<10; i++){
        if(nums[i] > max)
            max = nums[i];
    return max;

A group of instructions, like the ones above, that solve a particular problem, is called an Algorithm.

Programming languages

Today, there are hundreds of programming languages, each designed for a specific purpose. But it used to be the case in the early days of computers that programmers would write the code directly into machine language or binary code 0 and 1. As you can imagine, writing code this way can be very tedious and is very hard, if not impossible, to write large programs this way.

To make programming easier, computer scientists, created the first programming language called Assembly. This is a low-level programming language where each instruction is directly converted into binary code.

Coding with assembly instead of machine language makes things much easier. Because now programmers could code using words, which are much easier to remember and understand than binary code. After the code is written, it is put into a program called assembler, which converts the assembly code into machine code.

Since assembly language is closely related to the machine language, different computer architectures and operating systems have different versions of assembly language. This means that the programmer has to rewrite the assembly code for each environment using the respective assembly language for that environment.

This is an example of how assembly code looks like:

section .text
   global _start            ;must be declared for using gcc
_start:                     ;tell linker entry point
   mov    al, 5             ;getting 5 in the al
   mov    bl, 3             ;getting 3 in the bl
   or     al, bl            ;or al and bl registers, result should be 7
   add    al, byte '0'      ;converting decimal to ascii
   mov    [result],  al
   mov    eax, 4
   mov    ebx, 1
   mov    ecx, result
   mov    edx, 1 
   int    0x80
   mov    eax,1             ;system call number (sys_exit)
   int    0x80              ;call kernel
section    .bss
result resb 1

High-level programming languages

Today we rarely use low-level programming languages like Assembly. Instead, high-level programming languages are preferred like C++, Java, PHP, Python, etc.

High-level programming languages are closer to human language than to machine language. Therefore they are easier to understand and code. These languages are independent of computer architecture of operating system, because they aren’t directly converted to machine code.

This is an example of how a high-level programming language like Java looks like:

public class Test {

   public static void main(String args[]) {
      int x = 30;

      if( x == 10 ) {
         System.out.print("Value of X is 10");
      }else if( x == 20 ) {
         System.out.print("Value of X is 20");
      }else if( x == 30 ) {
         System.out.print("Value of X is 30");
      }else {
         System.out.print("This is else statement");

High-level programming languages are grouped into three types, based on the process in which the high-level code is converted into binary code.

  • Compiled languages
  • Interpreted languages
  • Bytecode languages 

Compiled languages are all those languages which have to be converted into machine language, before they can be run by the computer. The conversion to machine language is done with the help of a program called compiler. The main advantage of a compiled language is that it is fast to execute. This languages have to be compiled differently for computers with different architectures, because the machine code is different. Examples of such languages are: C, C++, Go, etc.

Interpreted languages aren’t converted to machine code, instead they are executed with the help of a program called interpreter. The fact that these languages aren’t converted to machine language makes these languages slower than the compiled languages, but also gives them the ability to be machine-independent. Examples of such languages are: PHP, Python, Ruby, etc.

Bytecode languages are in between compiled and interpreted languages. These languages are first compiled into bytecode, which is than executed by a virtual machine that acts like an interpreter. These languages are faster than the compiled languages, but slower than the interpreted ones. They are also machine-independent. Examples of such languages are: Java, C#, etc.

What do programmers do?

Computer programmers translate software design into code that computers can execute, creating the operating systems and software applications that we use every day.

Since computer programmers’ primary responsibility is to write code, they must know at least one programming language. And because different languages are suited to different applications, most programmers learn multiple languages or more versatile languages. Programmers also update code for programs to make them more secure or more functional. They routinely check the code for errors.


How to learn to Code?

Learning to code can seem very daunting as you are just starting out. This is because of the unfamiliar syntax and the logic behind. But once you learn the fundamental concepts and familiarize yourself with the syntax and the logic, everything will just feel so much easier.

If you are serious about learning programming, its definitely worth it to spend some time to learn the underlying concepts of how computers work, how is the program stored in memory and executed by the CPU, what are algorithms, data-structures, etc. Learning programming won’t happen over night, so it’s important to have a long term plan. And, when it comes to coding, nothing will teach you better than practice.

The good news about learning programming is that, there are so many resources on the internet, you can even start to learn some basic concepts by downloading an app.

Fore those who are really serious about learning programming and are thinking in long terms, majoring in a Computer Science program is the way to go.



Filed under: ProgrammingTagged with: ,



AccessDeniedException is a  Checked exception thrown when a file system operation is denied. Typically due to a file permission or other access check.

Below is an example where this Exception is thrown by the Files.write() method because it can’t find a file at “C:\\test\\” directory.

Path path = Paths.get("C:\\test\\");

try {
	Files.write(path, new byte[] {127,0,0,1}); //will throw java.nio.file.AccessDeniedException
} catch (IOException e) {

java.nio.file.AccessDeniedException: C:\test
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
at java.nio.file.spi.FileSystemProvider.newOutputStream(Unknown Source)
at java.nio.file.Files.newOutputStream(Unknown Source)
at java.nio.file.Files.write(Unknown Source)
at test2.Main.main(
Filed under: Exceptions, JavaTagged with: , , , ,

Comparing Strings in Java

How to compare two Strings in Java?

To compare two Strings in Java use the .equals() method of the String Class.
Don’t use == to compare Strings, you might get unexpected results.

String hello  = "Hello";
String hello2 = "Hello";
String hello3 = new String("Hello");
String world  = "World";
//Objects default hashCode
System.out.println( System.identityHashCode(hello)   );     //366712642
System.out.println( System.identityHashCode(hello2)  );     //366712642
System.out.println( System.identityHashCode(hello3)  );     //1829164700
System.out.println( System.identityHashCode("Hello") );     //366712642
System.out.println( System.identityHashCode("World") );     //2018699554

//Comparing with .equals 
// .equals method compares the actual string characters
System.out.println(  "Hello".equals(hello)   );     //true 
System.out.println(  hello.equals(hello2)    );     //true
System.out.println(  hello.equals(hello3)    );     //true
System.out.println(  hello.equals(world)     );     //false
System.out.println(  "Hello".equals("World") );     //false

//comparing with ==
// == compares the reference values
System.out.println(  hello == hello2     );    //true
System.out.println(  hello == hello      );    //true
System.out.println(  hello == hello3     );    //false
System.out.println(  hello == "Hello"    );    //true
System.out.println(  "Hello" == "Hello"  );    //true

The .equals() method is case sensitive, whereas the .equalsIgnoreCase() is not case sensitive.

//Case Sensitive
System.out.println( "Hello World".equals("hELlo WOrlD")            );    //false
//Case Insensitive 
System.out.println( "Hello World".equalsIgnoreCase("hELlo WOrlD")  );    //true
Filed under: Java, StringTagged with: ,

RuntimeException in Java

RuntimeException is a sublclass of Exception that can be extended to create unchecked Exceptions.


Unchecked Exceptions are those Exceptions that don’t have to be caught on compile time, where as Checked Exceptions do have to be caught on compile time.

A NullPointerException is a subclass of RuntimeExceprion. You aren’t required to catch a NullPointerException.

Object a = null;
a.toString(); // throws NullPointerException

A IOException is direct subclass of Exception so it is a Checked Exception and you are required to catch it.

try {
    //thorows IOException
    FileReader fr = new FileReader(filePath);
} catch (IOException e) {


Filed under: Exceptions, JavaTagged with: , ,

null and Null Pointer Exception in Java – java.lang.NullPointerException

What is null in Java?

In Java null is just a special value of type literal just like: 1, 1.0, ‘a’, “abc”, etc;
You can think of null as either no value is assigned to a reference variable or the reference variable is pointing to nothing.

Object a;
// is  the same as
Object a = null;

You can cast null to any type

Object a = null;
Object a2 = (Object)null

String s = null
String s2 = (String)null

Integer i = null
Integer i2 = (Integer)null

What is NullPointerException?

NullPointerException is a RuntimeException.


NullPointerException is thrown when you use an object reference that has value null.

public class Car{
    public String color = "red";
    public void start(){
        //start the engine

Car myCar = null;
int[] myArr = null;

//Invoking a method from a null object

//Accessing or modifying a null object’s field
myCar.color = "black";

//Taking the length of null, as if it were an array
System.out.println( myArr.length );

//Accessing or modifying the slots of null object, as if it were an array
myArr[1] = 10;

//Throwing null, as if it were a Throwable value
public void foo() throws Exception{
    Exception e = null;
    throw e;



Filed under: JavaTagged with: , ,