Brain food: Affordable healthy snacks to get your brain running

What is the one thing that programmers around the world can agree on, regardless of the variety of differences they have? The job requires constant and rigorous brain activity — to churn out the best logical solutions. To put the pro in programming, a programmer must have their brain at its best functioning, at all times; and for that to happen, the brain needs special food (like every program needs a special code).

Here’s a list of most efficient, but budget-friendly fuels for your brain, to keep it and your pocket at their healthiest.


Let’s start with the base that will support everything — Water. The cheapest and most essential. Our brain is 73% water, which is enough to convince you how important hydration is for it. Give it what it’s made of! There are studies which indicate a decrement in cognitive performances at dehydration levels of as low as 1%; whereas lower dehydration levels at 2% show adverse effects on visual-motor tracking, short term memory, and a decline in attention. Make sure that your water intake is at least 2.7L — 3.7L (11–15 cups) every day to adequately meet your daily hydration needs.


Foods rich in carbohydrates with lower Glycemic index or GI value (below 70) are the best for your central processing unit — the brain. Prefer whole wheat or whole grain food over white flour food. These are high in carbohydrates and have a low GI value. Here is an abbreviated data of the Glycemic Index for such cheaper and healthier food:

  • Wheat roti — 62 ± 3
  • Chapati — 52 ± 4
  • Barley — 28 ± 2
  • Sweet Corn — 52 ± 5
  • Spaghetti — 48 ± 5

Breakfast Cereal;

  • Porridge — 55 ± 2
  • Muesli — 57 ± 2


  • Apple — 36 ± 2
  • Orange — 43 ± 3
  • Banana — 51 ± 3
  • Pineapple — 59 ± 8
  • Mango — 51 ± 5
  • Dates — 42 ± 4


  • Boiled Carrots — 39 ± 4
  • Boiled Sweet Potato — 63 ± 3
  • Vegetable Soup — 48 ± 5

Dairy Products;

  • Full Fat Milk — 39 ± 3
  • Skimmed milk — 37 ± 4
  • Ice Cream — 51 ± 3
  • Yogurt — 41 ± 2


  • Chickpeas — 28 ± 9
  • Kidney Beans — 24 ± 4
  • Lentils — 32 ± 5
  • Soya Bean — 16 ± 1


Vitamins and minerals are extremely crucial as they work as fertilizer-and-manure for your brain. We fulfill most of our VnM quota through our food, but some essential vitamins such as D3 is only produced and processed when exposed to direct sunlight, so get up, and go out for that stroll. Some other essential vitamins for the brain are B1 (Thiamin) and B9 (Folate) which can be gained by the following;

  • Salmon
  • Barley
  • Papaya
  • Oatmeal
  • Green Peas
  • Soft Tofu (Paneer)
  • Soyabean
  • Lentils
  • Broccoli
  • Mangoes
  • Sweet Corn, and
  • Oranges

Analogously, minerals like Magnesium and Zinc work for our brain in the same way as spinach does for Popeye. You can get all you Magnesium and Zinc from:

  • Whole Wheat
  • Dark Chocolate
  • Spinach
  • Almonds, Cashews, and Peanuts
  • Eggs
  • Chickpeas
  • Lamb

Essential Fats

Contrary to the common belief, the complete elimination of fatty foods from your diet will do more harm than good. While “Trans Fat” is the bad guy, your brain still needs “Essential Fatty Acid” as it is technically a big chunk of fat inside our skull. As a matter of fact, an omega-3 fatty acid, DHA, is a major structural part of our brain tissue. Including food rich in Omega-6 (Linoleic Acid) and Omega-3 (Linolenic Acid) in your diet will prove to be the best plan to guard your brain against corrosion. You can get these from:

  • Chia Seeds
  • Walnut
  • Soyabean
  • Flax Seeds
  • Pistachios


Now that you know the entire code to run your brain without any errors, make sure to keep eating light healthy snacks in proper intervals throughout the day, and exercise regularly.

Incorporate all this in your diet slowly, and develop a habit of healthy eating without going too harsh on yourself (you’re always allowed a few cheat days here and there).

And to get an idea as to how these food items are helping you grow your brain and perform better at your tasks, why not jump straight to Coding Ninjas where we offer you a variety of courses for you to select from? You have the best nutrients coupled with the best mentors with you — there’s no stopping you from rising to the top!

Career prospects after a course on Machine Learning

Machine Learning is emerging as one of the most sought after career choices today. It is likely to create 2.3 Mn. ML-related jobs by 2020 — according to a recent report published by Gartner. The Emerging Jobs Report released by LinkedIn shows that there are approximately 10 times more than ML engineers today than five years age. Artificial Intelligence, Data Science, Machine Learning, and all the other related technologies are some of the fastest growing tech employment areas today.

The most in-demand ML jobs require you to research and develop algorithms that are used in adaptive systems — somewhat like Amazon and their recommendation systems. Companies recruit for positions like ML engineer, ML analyst, Data Science Lead, NLP Data Scientist, and ML Scientist.

Irrespective of the location you’re searching for a job in, chances are you’ll definitely find a well paying Machine Learning job in most of them. Their salaries are reasonably good, too. And add that to the benefit of working in the field you love. From smartphones to chatbots, demand for Machine Learning jobs is at an all-time high, so it is just the right time to get in on the ground floor of a growing industry.

That’s precisely our topic for discussion today. Today, we’ll walk you through some of the best Machine Learning jobs out there for you to brag and grow in!

Machine Learning Engineer:

A Machine Learning engineer creates algorithms that helps decipher information from huge chunks of data. ML engineers are supposed to be competent with Python, Java, Scala, C++, and JavaScript. They must be comfortable in building highly-scalable systems that work on distributed networks. They should keep comfortable in working with teams and building personalized applications and algorithms. As a Machine Learning engineer, you’ll be designing and implementing ML algorithms such as clustering, classification, anomaly detection, or prediction — to address the challenge at hand and produce the best output.

Data Engineer/Data Architect:

Data engineer’s have a completely different job role than an ML engineer. As a Data Engineer, you’ll be responsible for working with an organization’s wholesome ecosystem. You’re recommended to have a working knowledge with Hadoop, MapReduce, Hive, MySQL, MongoDB, Data Streaming. If you have a good knowledge of programming, you already have an added advantage in the job. In addition, you should be proficient in R, Ruby, Python, C++, Perl, and more.

If you work as a Data infrastructure engineer, you’ll be working with developing, constructing, testing, and maintaining highly scalable data management systems. You’ll develop custom applications that can perform analytics on heaps of data. You’ll also be responsible for collecting and storing data, doing real-time processing, and using it all to analyses the data via an API.

Data Scientist:

This is easily one of the most in-demand job professions in the tech. world today. Data scientists are, ideally, experts in languages like Python, R, SAS, MatLab, Hive, Pig, and more.

Being proficient in such Big Data technologies and analytical tools is a prerequisite for the job role. Simply because as a data scientist, you’ll be sifting through large amounts of unstructured data in order to derive insights and help come with better future strategies. Other than that, you’ll also be required to clean, manage, and structure large chunks of data from disparate sources. This, too, requires usage of sophisticated Big Data tools and technologies.

Data Analyst:

Data Analysts are persistent and passionate data miners who have a strong background in statistics, mathematics, and basics of coding. The companies expect a data analyst to be familiar with data storing and retrieval systems, data visualization, Hadoop-based analytics, ETL tool for data warehousing, and other business intelligence concepts. The core responsibilities of of a Data Analyst include designing, deploying, and maintaining algorithms, culling information and recognizing risks, extrapolating data using data modelling techniques, and pruning data.

The Future of Machine Learning

What we talked about are just the paths to get you started. And once you’re on it, there’ll just be growth, for the future of Machine Learning is extremely promising. There is, already, an urgent need of professionals who are not only trained well in Machine Learning, but are also well-versed with the most important tools, techniques, and technologies. If you want to be one of those professionals, prepare yourself by diving deeper into machine learning and get your hands dirty. That is the only way you’ll get deeper into what you learn and be able to prepare yourself for the future that lies.

Whether you’re a programmer, a maths graduate, or even a bachelor of Computer Science, you can land yourself any of these jobs with the relevant skills and knowledge.


These are the most sought-after jobs once you’ve successfully completed a course on Machine Learning and feel that you’re ready to face the job market. Reading through the article would’ve helped you narrow down to the field of your interest. Once you’re there — dive deeper into precisely what does that job role entail, and get going!

Here’s why you should consider ruby on rails for your web development projects!


With the rapid growth of the ‘online’ scenario, websites and web apps are the rage now. And why not?

When you can access anything you need with just a click of a button, be it information or be it that super cool product that’s making headlines — you can get anything and everything online!

This is why smart business owners are readily shifting to the online domain to extend their reach to the vast pool of netizens who’re always on the lookout for awesome websites and applications. Now, coming to the important question — do you know which programming language takes the crown for web dev?

It’s Ruby on Rails of course!

What is Ruby on Rails (RoR)?

Ruby is an Object Oriented programming language and a cross-platform web development application built on top of Ruby. One of the best features of RoR is that it is open-source. Also, RoR leverages the Model-View-Controller (MVC) architecture and comes with a rich array of useful libraries. Such features allow programmers and developers to build highly database driven websites.

Why choose Ruby on Rails for web development?

Here are reasons why you should choose Ruby on Rails for your next web dev project!

1. Super easy to learn!

This is perhaps the most commendable features of RoR that makes it extremely beginner-friendly language. With a simple syntax and code generation style, RoR is very easy to learn and understand. It uses simple English and a domain-specific language approach. So, things are never complicated with RoR.

2. It is open-source.

As we mentioned before, RoR is an open-source framework and hence, it is absolutely free of cost. This makes it an excellent choice for startups and emerging businesses that have limited financial resources.

3. Fantastic libraries!

Another feather in the cap of RoR is its rich and extensive library support. These libraries are so useful that they can speed up the process of web development to a great extent. In RoR, libraries are known as gems which can be easily combined with basic functions of the language. Then there are modules that can be used for arranging classes, constants, and so on.

4. It is highly scalable.

It is a known fact that Ruby is a highly scalable and reliable language that allows you to perform a number of tasks seamlessly. For instance, as Ruby supports the caching function, you can check out the fragment caching within an app’s code. Then again you can use its multi-server automation tool that not only helps to automate variants of a new application but also deploy it to a location. The advantage of the Rails framework on top of Ruby is that it allows programmers/developers to leverage the Chef platform — a cloud infrastructure that helps manage the infrastructure dependencies for the development of folder structure.

5. It is all about clean coding!

RoR supports a simple and neat coding syntax. RoR principles like REST (Representational State Transfer), COC (Convention Over Configuration), CRUD (Create, Read, Update, Delete), and KISAP (Keep It Simple As Possible) allow for faster and cleaner code generation, devoid of any redundancy.

Also, RoR supports agile software development wherein tasks are divided into smaller chunks for the ease of execution.

If these aren’t enough, you should know that RoR is the secret sauce behind some of the most successful websites including Shopify, Twitch, GitHub, Airbnb, Hulu, Zendesk, SoundCloud, Yellow Pages, to name a few. To conclude, RoR is a highly efficient and powerful web development tool that has been embraced by millions of developers across the globe.

You too could master Ruby on Rails by enroling in our inclusive course on Web Development with Ruby on Rails! The course will help you get started from ground-zero. By helping you understand coding logic, and inculcating the thinking of a developer, this course will help you create beautiful web applications with ease.

Also, if you’re just starting out with web development and are looking for the best language for you, let’s also tell you a bit about Node.js. Head over to our blogs to read more about Node and the benefits it offers and make an informed choice!

Reasons why beginners struggle with Machine Learning and why you shouldn’t!


Today, everywhere you look around, you’ll see that Machine Learning and Artificial Intelligence are increasingly diffusing into our lives, so much so that these technologies have become an integral part of it. The manifestations of these technologies are not only fantastic but they are also extremely useful. From smart homes and smart robots to self-driving cars, ML and AI are omnipresent.

This increasing drive towards the ML technology has made it an imperative for developers and aspiring data scientists to master the field. Why? Simply because ML skills take the reigning place among the hottest and trending job skills in the industry right now!

But the thing is, acquiring ML skills ain’t a piece of cake. Even though there are numerous training institutes, online platforms and MOOCs that offer courses in ML, developers find it difficult to grasp machine learning concepts.

Let’s dig deeper into the reasons why mastering ML is a struggle for developers!

1. Math is the real deal.

While it’s true that software development doesn’t require you to use your Math skills (thanks to numerous reusable math libraries and functions), this is the exact opposite with ML. If you wish to master ML, having a strong Mathematical base is a must. You should be well-versed with linear algebra, statistics, and probability.

2. Analyzing data is a toughie.

Data analysis is a part-and-parcel of ML. In fact, a significant portion of Data Science and ML deals in data extraction and analysis.

Thus, when working with ML technology, it is crucial to be able to source and analyze data to extract meaningful information from it. And this isn’t easy. Not everyone can juggle with large datasets, cleanse them, and crunch them into valuable patterns. These steps are what makes up data analysis. Furthermore, having the power of data visualization is mandatory.

3. The eternal dilemma — which language to choose?

Developers are often caught in the eternal dilemma of choosing a programming language for developing ML projects. The debate as to whether to choose R or Python or Julia for ML projects seems to be a never-ending one. However, the truth is, the language choice and preference are best solved by your individual needs and project demands.

Beginners in the field should break the ice with one particular programming language (preferably Python or R) instead of trying to concentrate on everything on the plate. Python/R seem to be a good choice for ML models since they come with rich libraries and many open-source tools that are perfect for developing Machine Learning applications.

4. How to choose the right framework?

Choosing the right ML framework is a challenging task for many developers. This is because there are just so many frameworks and libraries to choose from. Take Python, for instance. It has numerous useful modules such as NumPy, Pandas, Seaborn, and Scikit-Learn, to name a few. Then there’s also open-source tools like Microsoft Cognitive Toolkit, Apache MXNet, TensorFlow, PyTorch, Caffe2, and Keras. For beginners, it is recommended that you begin with a beginner-friendly tool such as Scikit-Learn before jumping onto advanced ones like Keras, PyTorch, and Caffe2.

5. There’s a dearth of development and debugging tools.

As we all know, there are plenty of cool IDEs (Integrated Development Environments) that allow developers to dig deep into the business side of problems instead of cracking their head on how to deal with the environment configuration. Eclipse, IntelliJ IDEA, and Microsoft Visual Studio are such IDEs that offer great development and debugging experience. But the thing is, these developer tools are not optimized for ML and developers must learn to work with a completely different set of tools (for example, Jupyter Notebooks) for ML models. And truth be told, debugging an ML model is way difficult as compared to debugging a conventional model.

6. Which course to choose?

This is yet another dilemma that developers face while switching to ML primarily because the number of courses and MOOCs offered are huge! As a result, one is bound to get confused while choosing courses for learning Data Science and ML. Also, since the field is still developing, no course provides complete knowledge. So, our advice? Do not try to gulp everything at once. Choose a good course and complete it before you move on to another one.

While these are the few reasons why developers today struggle to upskill to ML, you shouldn’t be one among them. How so?

Coding Ninjas has specially curated an advanced ML course for you! Taught by one of the best instructors in the field, this course will not only teach you all the core concepts of ML but also the emerging ones including Supervised Learning, Unsupervised Learning, and Deep Learning. Also, while you explore the latest areas of research in ML, you’ll be given hands-on training on how to solve challenging coding projects. So, by the time the course is over, you’ll be ready to take on the industry with your ML skills!

Don’t waste any more time on procrastinating — come be a Ninja!

Happy Coding!

Everything you need to know about Node.JS

That’s right, today we’re going to enlighten you on Node.js.

We’ll get straight to the most basic question — what exactly is this tool that’s rapidly gaining a massive fan following among the developer community?

According to,


Not clear still? We thought so! We’re here to break it down for you.

Node.js, most simply, is a framework that allows you to develop server-side applications using JavaScript as the foundation language. It provides an event-driven and non-blocking I/O.

Because it uses a single thread event loop for handling requests, Node.js can support real-time applications even as they scale. The asynchronous event loop that runs continually makes this possible. Unlike PHP, Node.js is not server load intensive. When you use Node.js, you never have to worry about deadlocks in a process since not a single function of Node.js directly performs Input/Output operations. Hence, the processes always run seamlessly! It is this particular feature that makes Node.js the perfect tool for developing scalable systems.

Node.js: History

Node.js is the brainchild of Ryan Dahl who designed it in the year 2009. Earlier, Apache HTTP servers could not handle multiple concurrent connections. Also, the process in which the code was being generated would either create multiple execution stacks for simultaneous connections or block the process altogether. Dahl wanted a better way out and thus, he developed Node.js. He first demonstrated his creation at European JS Conference that was held on November 8, 2009.

The initial model supported only Linux and Mac OS X. However, in 2011, Microsoft collaborated with Joyent (sponsor of Node.js) to create a native version of Node.js for Windows. In 2012, Dahl decided to pass on the baton to Isaac Schlueter (the creator of npm) who then passed on the management responsibility to Timothy J. Fontaine in 2014. In December 2014, io.js — a fork of Node.js — was created by Fedor Indutny. An internal conflict regarding Joyent’s governance followed this and io.js was made to be an open governance alternative. However, in 2015, the Node.js Foundation came into being and both the Node.js and io.js communities took the decision to function under the same umbrella — the Node.js Foundation.

Features of Node.js

Can run JavaScript externally

One of the many specialities of Node.js is that it can execute a JavaScript code outside of a browser seamlessly! With Node.js, you can use JavaScript for both — writing command line tools and for server-side scripting. So, it runs the scripts server-side to generate a dynamic web page content even before the page is sent to the user’s web browser. In other words, it creates a JavaScript paradigm anywhere, everywhere!

It comes with npm — the largest ecosystem of open-source libraries!

Another awesome feature of Node.js is its Node Package Manager (npm). Essentially, this npm is a storehouse of libraries and other dependencies that have been contributed by the developer community. It is very similar to Ruby Gems. The npm has more than 400k libraries where you can find anything you need to support your Node applications, be it server-side or client-side.

Speedy and efficient

The Node.js framework comprises of smaller modules, with the most prominent ones being Node.JS Core and Node.JS application. You can either use them together or you can use them separately, one without the other — either way, your job will be accomplished fast and without any blocks.


Now that you know the most basic features and perks of Node.js, let’s get to know some of its obvious advantages, shall we?

  • The incorporation of Google Chrome’s V8 JavaScript Engine allows for speedy execution of JavaScript code.
  • The event mechanism feature allows you to write and develop highly scalable applications.
  • Node.js is capable of concurrent request handling, that is, it can handle multiple requests simultaneously — thanks to the asynchronous event loop!
  • The npm not only handles the installation of modules but also updates the reusable modules from its vast online collection of dependencies.
  • You can write code in the same language both on the server-side as well as on the client-side. This saves a lot of time when debugging comes into the scene.
  • It comes loaded with tools that allow you to make your application production ready.

Now, why don’t you give it a try and experience the wonders of Node.js for yourself?

Top programming experts to follow in 2019

Hear, hear, all you programmers and coders out there! 2019 is here already, but have you thought about your new year resolution yet?

Well, let us help you with it. This year, your new year resolution should be to hone your coding and programming skills by taking cues from some of the best in the field! We’re talking about some inspiration guys — connecting with the bigger programming community and learning from the pros.

Here are some of the most influential programming experts whom you should follow in 2019!

1. Jeff Atwood (@codinghorror)

Jeff Atwood, the co-founder of StackOverflow and, is famous for his blog Coding Horror. According to his Twitter bio, he’s an “abyss domain expert” who has no idea what he’s talking about. Despite that, the man has around 250k followers on Twitter and they definitely can vouch for his sanity.

2. John Resig (@jeresig)

John Resig is the creator of jQuery and a renowned JavaScript expert. Till date, he has presented more than 125 talks on JavaScript. Currently, he features as a programmer at Khan Academy.

3. Bryan O’Sullivan (@bos31337)

Bryan O’Sullivan works as an Engineering Director at Facebook. Apart from this, he’s also a successful author who has written Real World Haskell. He has also co-authored Mercurial: The Definitive Guide and The Jini Specification. More so, he also lectures at the Stanford University.

4. Rasmus Lerdorf (@rasmus)

Rasmus Lerdorf is the proud creator of PHP programming language. While he developed the first two versions of the language, he made it a point to remain actively involved with other developers in the development of the later versions as well. He was the former Infrastructure Architect at Yahoo! where he worked for over 7 years before joining Etsy in 2012.

5. K. Scott Allen (@OdeToCode)

K. Scott Allen is an experienced software developer having more than 25 years of experience in commercial software development. He has developed web services for startups as well as Fortune 500 companies. He is also an author on Pluralsight and a host on Herding Code.

6. Daniel Ratcliffe (@dantwohundred)

Daniel Ratcliffe (not the actor, that’s Radcliffe!) is a gaming enthusiast and game developer. In his successful ten year career in the gaming industry, he has worked on a host of projects, from solo indie games to heavy AAA console games. Some of his most popular gaming projects are Elite Dangerous, Jurassic World Evolution, Redirection, and qCraft.

7. Tracy Chou (@triketora)

Tracy Chou is all things versatile. She’s a software engineer, an entrepreneur, an investor, and also a diversity advocate — all rolled in one! She has previously worked as a Tech Lead at Pinterest and a Technical Consultant to the U.S Digital Service.

8. Ashe Dryden (@ashedryden)

Like Tracy, Ashe Dryden is also many things rolled into one. She’s a programmer, an author, a diversity advocate, and a community organizer. For over 14 years, she’s been actively involved in web development. At present, she’s busy writing a book on increasing diversity within IT and Tech companies.

9. Amanda Rosseau (@malwareunicorn)

Amanda Rosseau is an Offensive Security Researcher at Facebook. Her areas of interest and expertise include security, malware, and reverse engineering. She has talked on numerous cyber security conferences around the world. So, if you’re interested in contributing to the field of cybersecurity, be sure to follow this smartie!

10. Lara Hogan (@lara_hogan)

Lara Hogan is the co-founder of Wherewithall. Presently, she’s an is an Engineering Leadership Coach. She has previously worked as the VP of Engineering at Kickstarter and also was the former Engineering Director at Etsy. Not just that, she has also authored books on design and public speaking.

There’s no more time for procrastination guys. Get your game face on and start following these uber cool pioneers of the programming world!

Android interview questions for beginners



Any interview experience is often followed by jitters and nervousness. So, if you’re sitting for an Android interview, allow us to get your nervousness in control by walking you through the 10 most frequently asked Android interview questions for beginners:

  1. What do you mean by Android? Also, explain the main components.

Android is an open-sourced OS that enables the development of mobile applications. It is based on Linux and allows users to create and run applications on mobile with the rich high-end components it has. Android has the following main components:

– Linux Kernel
– Android framework
– Android applications
– Libraries

These components enable the developer to create high-end applications which provide all the facilities in a single application with amazing look and feel.

2. What are the important items in an Android project and explain the importance of XML based layouts?

The most important items of any Android project are as follows:
– Androidmanifest.xml
– Build.xml
– bin/
– src/
– res/
– assets/

The two XML files are helpful in providing a consistent layout. They give developers a standard graphical definition format. Generally, all the layout details are placed in these files and other items are placed in the source files.

3. Briefly explain the files and folders that are created during Android project creation.

Src – It contains the java source code for the newly created project. The code for the application that is to be created is also written in this file. It should be made available under the name of the project.
Assets – This folder contains all the relevant information regarding HTML and text files and databases.

Gen – This folder contains the file. This file is generated by the compiler and references the resources that are found in the project. This should not be modified as it is computer-generated.
Android library – This folder contains an android.jar file. This file contains all the libraries required for creating an Android application.
Bin – It contains the .apk file that is created by ADT during the code build process.
Res – This folder contains all the resource files used by the application. It contains subfolders like drawable, menu, layout, values, etc.


  1. What is ANR? What are the precautions to be taken to avoid ANR in an application?

    ANR is a dialog that Android shows when an application isn’t responding. It’s short for Application Not Responding. Usually, this state is achieved when the application is working on many tasks on the main thread and has been unresponsive for a long period of time.

Take care of the following things to avoid ANR:

  1. Ensure that there are no infinite loops in case of complex calculations.
  2. Define HTTP timeout for all web services and API calls in order to ensure that the server does not stop responding.
    3) Use IntentService ifthere are many background tasks. They should be taken off the main UI thread.
    4) Keep all database and long-running network operations on a different thread.

    5. Write code for a Toast with the message  “Hello, this is a Toast”.

Toast.makeText(getApplicationContext(), “Hello, this is a Toast”,

6. Write code to generate a button dynamically.

protected void onCreate(Bundle newInstanceState) {


Button button = new Button(this);




7. What is AIDL? What are the different data types that AIDL supports?

AIDL is short for Android Interface Definition Language. It is an interface between a client and a service that allows them to communicate using interprocess communication (IPC). It involves breaking the objects into smaller parts that allows Android to understand those objects. This happens because a process cannot access memory of other processes that are running.

Types of data supported by AIDL are:

all data types like int, long, char, Boolean.

8. How would you check for the presence of a Compass sensor on the system using the hasSystemFeature() method?

The sensor framework that forms a part of Android package has Sensor and SensorManager classes. But these classes do not provide the hasSystemFeature() method. So they cannot be used for evaluating a system’s capabilities. The PackageManager class can, in fact, be used to find out information about the application packages available on a given device. One way of checking the presence of a Compass sensor on the system is
PackageManager myCompass = getPackageManger();
If (!myCompass.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS))
// This device lacks a compass, disable the compass feature

9. Name some exceptions in android?
– Inflate Exception- This exception is thrown by an inflator on error conditions.
– Surface.OutOfResourceException – This Exception is thrown when a surface couldn’t be created or resized.
– SurfaceHolder.BadSurfaceTypeException– This exception is thrown from lockCanvas() when called on a Surface whose type is SURFACE_TYPE_PUSH_BUFFERS.
– WindowManager.BadTokenException – This Exception is thrown when trying to add a view whose WindowManager.LayoutParams token is invalid.


  1. What is the difference between Serializable and Parcelable? Which is the best approach in Android?

While developing applications we often need to transfer data from one activity to another. This data needs to be included in a corresponding intent object. Some additional actions are also required to make the data suitable for transfer. For doing that the object should be serializable or parseable. Serializable is a standard Java interface. It is a simple approach where you simply mark a class serializable by implementing the interface and Java automatically serializes it. Reflection is used during the process and a lot of additional objects are created. This leads to a lot of garbage collection and poor performance.
Parcelable interface is a part of Android SDK where you implement the serialization yourself. Reflection is not used during this process and no garbage is created. It is faster because it is optimized for usage on android development, and shows better results.

So, that’s all the basic questions you need to know before sitting for any Android interview. If you stumbled in any of them, we recommend you check out the Android development course offered by Coding Ninjas. It’ll not only clear your basics, but also help you scale beyond.


How to deal with an interview rejection and bounce back stronger?


There’s always an excitement that runs through you every time you get called for an interview. That is followed by nervous energy and then weeks of anticipation. And what if, after all this, all you get is “Thank for you for applying…”?

It feels jerked around – you were given a chance and then it got snatched, just like that. This leads to an array of emotions being set up, ranging from disappointment to despair.

But as much as we’d want to avoid it, it’s a part of our life. And an essential one, if we may. It brings with it an immense potential for your personal and professional growth. So, if you’ve experienced one (and were unable to sanely deal with it) or if you’re going through one – keep the following few things in mind. These will not only stop it from affecting you beyond a limit, but also ensure that you learn from it, and eventually bounce back stronger.

1. It doesn’t define you

Despite knowing that a job rejection shouldn’t be taken personally, it’s often difficult to do so. If the rejection (or the thought of it, for those who’re untouched yet) makes you wonder about your capabilities as a whole, you’ve pretty much let it define you.

And that’s okay. We all have been there.

But, if we put things in perspective employers generally pick the candidate that fits their precise needs. That counts for a lot of things, including your qualification, experience, skills, and many more.

In fact, if there are 10 people sitting for an interview and if they chose just 1, are the other 9 any less?

And to place your entire self-worth in the hands of people is self-sabotaging. When you are turned down for a job, it is not your value that is being rejected; rather, the interviewers may perceive you as not meeting their needs in some way. Perhaps you lack the experience they were seeking, or maybe you were missing some idiosyncratic trait they were looking for. Or just maybe you were off that day and said something goofy. Either way, none of it reflects your self-worth.

2. Knock the job off its pedestal.

No matter how lucrative a job may seem at first, every job has its drawbacks. And if you were turned down for a position you were so eagerly wanting, consider that the job may not be good for you either.

Perhaps there are some skills you need to acquire that the job may not have given you, or there is another position or job that will actually take your career higher. Keep giving other interviews a shot and don’t let any job role/position get to your head. At the end of the day, it’s just a job, and there’s always a learning curve when it comes to interviews.

3. Get good at rejection.

If you’re the one to want to improve your life by putting yourself out there and taking risks, you’re likely to face rejection. Nothing is smooth, and there will be hurdles along the way. Facing rejections is a sign that you’re actually on to something. Of course, this isn’t something that you’ll say to yourself immediately after being rejected – that is the moment of introspection. But, if some time has passed, and the rejection still disturbs you and the only thing it has taught you is sorrow, you need to consider that it’s forcing you to learn to accept it while moving forward.

4. Make the interview process work for you.

When you’re rejected from a job interview, it tends to feel like you put in so many efforts just for them to go in vain. Especially if the whole process was long, gruesome, and drawn out. But, if you really think that you can make the interview work in your favor, you are less inclined to feel like you are left with nothing.

The best way to get the most out of any interview process is to consider that you’ve learned a lot from your experience. Further, you can use that learning to enhance your career pursuits. Just by taking part in the interview process, you are practicing interview skills, and also clearing the concepts required to bag a job. And believe it or not, you’re also building a lot of connections this way. Use all these to make the future interviews work for you.

So, if you’ve ever been rejected, or if you are afraid of rejection – keep the above-discussed points in mind. They will not only help you overcome the rejection, but also ensure that you bounce back stronger, much stronger. Also, if you’re looking to get started with tech interview preparations, Coding Ninjas offers online interview preparation courses where you can get yourself enrolled to cover all bases.  

Four mini-projects for Python beginners


Learning a new programming language is both exciting and humbling. Especially when it’s a language having as varied use cases as python. So, if you’re on your way to learning python, it’s crucial for you to try your hands on some projects. For a fresher, it makes sense to try out some mini projects before you get your hands really dirty.

So, here’s a list of five mini projects for you to improve your Python skills:

  1. Mad Libs Generator

    This project is inspired by Summer Son’s Mad Libs project based on JavaScript. The program first prompts a user for a series of inputs a la Mad Libs. For example, an adjective, a collective noun, etc. Then, when all the information has been inputted, the program takes that data and places them into a story template.

For this, you’ll need to learn how to use prompts for the user input, and print the full story at the end with all the inputs included. This requires a command on the following concepts:




This one’s a pretty fun project that teaches you how to manipulate user-inputted data. As opposed to the prior projects, this is focused more on strings and their concatenations. See what crazy stories you can come up with!

2. Hangman

The actual “hangman” part isn’t really necessary. The main goal here is to create a “guess the word” kind of a game. The user will input letter guesses, you’ll need to limit the number of guesses a user can make.

This means, you’ll randomly grab a word to use for guessing – this can be done from a pre-made list. Then, you’ll need functions to see if the user has entered a singler letter and if that letter is a part of that word. And if it is, then how many times does it appear in the word.

For this, you’ll require the following concepts:

Input and Output

  1. Bootcamp

This will help you dive deeper in your Python programming knowledge. The framework that you’ll need here is the Django framework.

Bootcamp is basically a concept of an enterprise social network. It can be used to help developers or people belonging to one community collaborate and share experiences better. Its motive is to be closed and run inside a company only.

The whole idea will be to have a simple feed, just like Twitter. It will allow users to share links and post their thoughts and also keep track of everyone else in their community. It can also have a QnA section like StackOverflow where developers can post questions related to the business, software, or projects.

Here are a few things that you should definitely include as a part of your Bootcamp project:

Feed App (A Twitter-like microblogging platform)

– Live feed updates

– Comments and likes

– Track comments and activities

Articles App: this can be a collection of resource relevant to the users of the Bootcamp application. It can be a separate section other than the news feed which will contain all the necessary articles.

QnA app (a StackOverflow-like platform)


– Simple async messages

– Tracking of read/unread

Search app: to help users search through their feed.

  1. Machine Learning Gladiator

Machine Learning Gladiator is one of the fastest ways to build practical intuition around ML.

The goal of this project will be to take the out-of-the-box models and apply them on different data sets. This project is completely amazing, especially for beginners, for three main reasons:

First, you’ll get to build intuition for model-to-problem fit. This will help you understand which models are robust to missing data? Which models handle categorical features nicely? Ofcourse you can read through the theory and find the answer, but it’s always better to learn by seeing things in action.

Second, the project will help you acquire the invaluable skill of prototyping models in real-time. When it comes to real-world problems, it’s often difficult to know which model will work best for you without trying it out.

Finally, this project helps you master the workflow of model building. You’ll get to practice:
– Importing data
– Cleaning data
– Splitting it into train/test or cross-validation sets
– Pre-processing
– Transformations
– Feature engineering

Because you’ll use out-of-the-box models, you’ll have the chance to focus on honing these critical steps.

For this project, you can use the following data sources:

UCI Machine Learning Repository – It contains a collection of more than 350 searchable datasets that cover almost every subject matter. You’ll surely find datasets that fit your need.
Kaggle Datasets – This contains more than 100 datasets uploaded byt he kaggle community. There are some really interesting datasets here, including PokemonGo spawn locations.

All of these projects are pretty basic, and can get you up and running in the world of Python programming. Further, if you find yourself stuck anywhere while trying to develop these games, do drop by at Coding Ninjas where there are courses around Python. These courses cover the concepts of Python with data structures, and are good enough to take you from ground zero to the top.

Happy learning!

Career Opportunities after mastering Ruby on Rails


Ruby on Rails (RoR) is a technology which is fresh and gaining fair attention in the market. Ruby on Rails is predominantly a server-side web application framework written in Ruby. Rails offer a default arrangement for a database and web pages. Ruby on Rails is more celebrated these days than it was 5-6 years ago. So, techno-enthusiasts are quite interested and keen to absorb and master this web technology.  

Ruby on Rails was initially released in 2005 which inspired and influenced web application development through its groundbreaking and modern features related to the database.  Ruby on Rails has kits which reliefs the difficult web development tasks. One such feature is, ‘scaffolding’ that can spontaneously build various prototypes required to run an elementary website. Due to its out-of-the-box features, it is making its own unique path and gaining popularity among the developers.

Ruby on Rails has several tools which include less coding and more creativity. Developers will enjoy while experimenting with the tools which will give anchors to new ideas and enhance them. In this framework, there is an independence of using new layouts and therefore it increases the horizon of learning new things along with giving utmost satisfaction in the career.

There is a huge demand and competition in the market for developers who have fluency in trending programming languages. And surprisingly, the developers who have mastered the framework of Ruby on Rails get a bigger package than any other developer. So, it is a good career option for the people who are planning to jump into the application and development field. Ruby on Rails is gradually becoming one of the most popular web app frameworks. At this rate, the demand of RoR developers is going to increase indelibly. Many firms like Scribd, Twitter, EBay etc. have already made the most of this technology and are quite satisfied with the results. Similarly, smaller organizations are preparing to switch and join the RoR fan crowd.

It literally pays to know Ruby on Rails. This can be justified very well because according to Indeed, the average salary for RoR is higher than 86% of the average salaries of other companies. This is pretty impressive for a decade old technology. We can only imagine the number of career options it has opened up for the youth. Developers of RoR get paid more even for entrance level posts. This is also because of the fact that Ruby on Rails’ framework works on an open source dais, the companies don’t have to invest a lot in this technology.  

In a nutshell, there are several Ruby on Rails jobs for the youth who have mastered the art of this framework like, junior programmer, co-developer and high-level jobs such as, Project Lead, Chief Technology Officer and Senior Developer. The requirement for the Ruby on Rails developers has increased by several times in the former years. This skillset can prove to put an extra star on the developer’s resume. This is a type of technology in which the coders and developers can easily jump in without having the fear of growth and finances.