Getting Started with Game Development



To a game fanatic with a soft spot for everything technical, the mere idea of coding a game might seem like nirvana.

No wonder developers – especially the younger ones – are jumping career paths to get into game development. Game development is a rewarding and fulfilling career choice if you have an eye for the extraordinary, and the brain of a coder. However, like everything else, these skills also can be acquired by practice. The only thing you need to start off right is a creative bent of mind. With that settled, everything else will eventually fall into place.

In this article, we’ll be talking about everything you need to know before you get started with game development.

  1. Start Small:

We cannot stress this point enough. If you’ve just begun venturing this field, you should always start with small and achievable goals.

The best way is to start building simple 2D games before you move to the more hardcore 3D games. You might feel that 2D games are outdated and there’s no point in learning how to develop them. You’re not completely wrong in thinking this, but let us tell you that the basics of game development stay the same for both 2D as well as 3D games. The only difference is that you’re using much more sophisticated tools and methods while developing 3D games. However, if you want to become a proficient game developer, it’s best to start by developing simple games like Flappy Birds, Tetris, or Match-3. Developing these basic games will not only give you ample confidence, but also set your base right.

2. Choose your platform:

The basics of programming will come in very handy during your journey of game development. However, there are tonnes of drag and drop tools having a WYSIWYG editor which eliminate most of the complexities of game development.

Before you proceed, decide on a game development platform and language. Are you comfortable with hardcore programming? If not, do you wish to learn? Or, do you want to master some drag and drop tools to build your games?

Let’s have a look at what options do you have:

  • Drag and Drop tools: Construct, Stencyl, GameMaker, etc. are names of tools that provide a drag-and-drop interface for you to build your game quickly. Mainly, if you’re using these tools, you’re performing “visual programming.” These tools allow you to completely forget the syntactic aspect and instead focus on the gameplay features. It is okay for lesser complex games, but when the complexity increases and you want some freedom, these tools are sorely lacking.
    • Classic Approach: Classic game development approach means developing games using C/C++, OpenGL/SDL. It is one of the most challenging routes but provides a lot of freedom and customizability as you write the code from scratch. However, there’s a significant plus point in taking this route – after this, you’ll be able to take any other approach heads-on and create quality games.
    • “Managed” approach: Learning C# is easier than learning C or C++ as you don’t have to worry about memory management. Using C# with Tao, SL, or XNA is a managed approach. However, for more complex games, you’ll have to solve memory optimization problems yourself later on. There are some excellent 2D libraries for game development following this route – XNA and MonoGame are some of them.
    • “Middleware” approach: Middleware approach uses tools like Unity3D, Shiva, DarkBASIC, etc. This is one of the faster ways of getting started with game development. Unity3D uses c# and has extensive support regarding documentation, plugins, and examples. DarkBasic, on the other hand, uses a variant of the BASIC language and is even more straightforward to learn that Unity3D.
    • “Specialized” game development: Tools like FPS creator, RPG maker, etc. allow you to create one specific type of games. However, with ingenuity and mods, you can customize them to some extent. Though, without control of the source code, this approach is much weaker than the others in terms of customizability and flexibility.
    • HTML5 and JavaScript engines: JavaScript gaming libraries like ImpactJS, PhaserJS, LimeJS, etc. are gaining popularity these days. The major reason for this is that these libraries are extremely easy to get and implement, and the only prerequisite to using them is knowing JavaScript.
    • Mobile games: The tools like Unity3D, Stencyl, and HTML5/JS solutions allow seamless cross-platform deployment. However, if you want to deploy native iOS games,, you may choose to learn either Cocos2D or Sparrow (for iOS). 

3. Introspect a bit:

Now that you have an idea of what tools you can use depending on your requirements, you need to introspect. Formulate your approach, and ask questions like – “what sort of games do I want to make?”, and “what is my commitment level?”

If you feel you are fully committed to facing any hurdle that falls your way, then game development is for you. Pick out any one tool from the above list and go crazy!

4. Go, make a game:

Now that you’ve picked your tool, introspected thoroughly, and formulated a plan, it’s time to get going! There are extensive tutorials for any of the tools you pick. Go through them sincerely. Learn enough to develop simple games like Tetris or Match-3. Be it Unity, C, C++, or JavaScript, the knowledge you gain by making these basic games will be very helpful when you build more complex games.

With this, the world of game development is open to you. Now, you have enough knowledge to take your first steps towards developing a kick-ass game!

How Soon Is Too Soon? The Right Age To Begin Coding

Living in the Digital Age, we can no longer undermine the importance of programming and coding for kids. Technology drives almost everything in today’s world, and undoubtedly, it will continue to dominate every field in the future as well. Software has become a universal language of the world.

Children need to be introduced to the coding and programming world in the early stages of their life itself. It is a known fact that children under the age of seven have enhanced learning skills and can rapidly grasp new concepts, such as new languages. So, why not encourage them to learn the languages of the technology world?


The idea here is not to create a generation of software engineers, but to promote computational thinking – a creative process of the mind that helps find solutions to big problems through a combination of maths, algorithms, and logic. Stimulating this kind of thought process will prepare children for both the present and the future. Computational thinking will lay the base for a better understanding of algorithms, recursion, and heuristic techniques in kids. In fact, educational experts are calling coding ‘the new literacy,’ – understanding and learning its basics are just as essential as learning alphabets.  

In 2016, former President of the United States, Barack Obama launched the “Computer Science For All” initiative, with the aim to empower all American students with the basic knowledge of computer science and computational skills. He explained:

“We live in a time of extraordinary change, change that’s affecting the way we live and the way we work. New technology replaces any job where work can be automated.  Workers need more skills to get ahead. These changes aren’t new, and they’re only going to accelerate. So the question we have to ask ourselves is, ‘How can we make sure everyone has a fair shot at success in this new economy?’”

The answer is simple: Computer Science.

Here are a few reasons why we should encourage children to learn the language of programming and coding.

  1. It boosts creativity

As mentioned earlier, coding is essentially a creative process that engages the mind in thinking and deliberating on plausible ideas. When the boundless imagination of children is complemented by coding, an instrument holding immense possibilities, one can only expect astounding results. Through experimentation with their unique ideas, kids can keep their brain engaged – and in the process, polish their creative skills.

  1. It helps improve cognitive skills

In the course of coding and programming, children begin to visualize abstract concepts, sharpen their mathematical, written, and verbal skills. With every mistake and challenge, they learn to figure out new and possible solutions for a particular problem. With time, kids develop enhanced concentration and organizational power.

  1. It prepares children to be smart individuals of the Smart Age

As kids will learn the language of programming, they will also learn more about technology, its advantages, and disadvantages. Kids aren’t strangers to smart devices such as smartphones, iPads, or the Xbox. As they begin to understand these technologies, they can better evaluate the pros and cons of a specific technology and use it to their benefit.

  1. Increasing demand for coders and software engineers

As our world continues to become increasingly software integrated, the demand for coders and programmers is on the rise. So, learning to master the art of coding isn’t at all a bad idea after all!

Many universities and educational institutions in the West have already warmed up to this idea and have developed children-friendly softwares that help them learn the language of programming in a fun and engaging way. For instance, Blockly by Google and Scratch by MIT are paving the way for the coders of tomorrow. While Blockly allows kids to create computer games through a drag-and-drop technique, Scratch is a visual programming language that introduces them to basic programming concepts through the creation of games, videos, and music.

Coding is no longer the stereotyped cup-of-tea of the nerds – rather, it is one of the coolest language one can learn today. It is a stepping stone to creating solutions that can go a long way to solve the pressing problems of the world. So, guiding our children on this path and preparing them for the times to come seems like the right way to go!

You can kickstart your junior champ’s coding skills with Coding Ninjas’ Junior Courses.

A step-by-step walk through of your first HTML page

HTML is short for HyperText Markup Language.Basically, it’s the “code” behind every webpage – even this one. If you’re just beginning to learn HTML, let us tell you that it’s a fairly easy task. HTML, without styling, can’t do anything more than setting a layout, drawing a table, or creating frames – but it is handy as it helps you structure the content correctly, which is important when you sit down to add style to your HTML.

However simple this might seem, it is a mighty useful tool when it comes to full-fledged web development. Various tools easily eliminate the HTML coding from your work process – but if you want to be in full control of your web-page, you’ll need to have some command over HTML.

Through this article, we aim to give you the essential HTML building blocks that’ll help you get up and running. Reading this, you’ll be able to understand an HTML source code and even modify it for your own good!

Step One – Tags

Image result for html angular brackets


Tags are what you’ll see the most when you look at any HTML source code. A tag can ideally be seen as a wrapper to any item on your HTML document. Tags tell what magic is to be done on the content enclosed by them.

Let’s look at two types of tags:

  1. <tag-example-1>I need a closing tag </tag-example-1>
  2. <tag-example-2>I don’t need a closing tag.

In the first example, the sentence is wrapped by two tags. The first one is called the opening tag and the second one is called the closing tag. Everything in between is affected by the properties of the tag. Very commonly used examples of such tags are <html>, <head>, <body>, <strong>, etc.

The second example tags about loner tags – as in, they don’t need a closing tag to function. Although it’s not required, these type of tags are often written as <tag /> to make the debugging of code easier. Common examples of such tags are <hr> – used for horizontal line, <br> – to break the line, etc.

Step Two – HTML, HEAD, and BODY: The three pillars of your document


These tags are essential for any HTML document. They parcel out the significant parts of your HTML code.

  • <HTML></HTML> wraps your entire code. Everything else in your HTML document needs to come inside these tags.
  • <HEAD></HEAD> includes things like title, styles, and scripts. Head is usually present at the top (hah!), just inside the <HTML> tag.
  • <BODY></BODY> is placed below your <HEAD> tag, and everything that you want to be displayed on your screen comes under this tag. Text, images, links, and pretty much anything you can see in your browser live inside this tag.

Step three – A few tags that’ll make your page pretty

Now that you know how to set up the skeleton of your document, let’s proceed with the things that will go inside your <BODY> tag and do some magic!

Some basic text formatting tags:

  • <b></b> makes your text look bold
  • <i></i> makes you write in cursive
  • <u></u> underlines what you just wrote

For example, this piece of code




       <i> I am italics! </i><br>

       <b>I am bold!</b><br>

       <u>And me, well, I’m underlined!</u><br>




Should produce something like this on your browser: Don’t fret too much about the <br>. It’s just for breaking the line so that you can start from the next line. Enter key does little when it comes to changing lines in your HTML document.

Tags to help you structure your content:

  • <br> breaks the line, making you continue to the next line
  • <p> stands for paragraph. It divides your content into paragraphs

Note: you need to use these tags as space and enter keys do very little when it comes to formatting content inside an HTML document.

Heading Tags:

HTML provides you with six tags, from <H1></H1> to <H6></H6> to help you create different sized headers quickly.



Inserting an Image:

All that’s good, but what fun without images on the webpage? Don’t worry, <IMG /> to the rescue! The image tag has a mandatory attribute called “source”. Basically, it tells the browser where it should look for the image. The syntax goes something like:

<img src = “path_to_your_image” />

Furthermore, it also has attributes like height and width that let you specify the height and width you want your image to take.


HTML has two types of lists – ordered and unordered. Each item of your list has to be enclosed in a <li> tag. The syntax for creating a list is fairly simple.

Suppose you want to create a list like:

  • Item 1
  • Item 2
  • Item 3

The following code will easily do the job for you:


<li> Item 1 </li>

<li> Item 2 </li>

<li> Item 3 </li>



This, by the way, was an example of an unordered list. For an ordered list, all you need to do is replace <ul> with <ol> and </ul> with </ol>.

Let’s see what the following code does:





        <li>I am unordered list’s item 1</li>

        <li>I am unordered list’s item 2</li>

        <li>I am unordered list’s item 3</li>

        <li>I am unordered list’s item 4</li>



        <li>I am ordered list’s item 1</li>

        <li>I am ordered list’s item 2</li>

        <li>I am ordered list’s item 3</li>

        <li>I am ordered list’s item 4</li>




Yes, you’ve guessed it right. It’ll produce two lists – one unordered and one ordered. Quite like the screenshot below:

All of these tags, when arranged coherently, will provide you with a simple webpage consisting of images, headings, and lists. Further, there are various tags that HTML supports, and we thoroughly recommend you to check them out and play with them!

In Conclusion

You now know enough to skim through and understand any part of an HTML code. We request you to go ahead and try skimming through the source code of any website (you’ll find some tags you don’t know, but that’s how you learn!). Oh, and welcome to the world of web development. With HTML under your belt, your next stop should be making your page look beautiful using CSS.

Let us know if you had any problems in the article, and don’t forget to have a look at a source code or two!


Popular Programming Languages Leading the List For Beginners

We hear so many people saying that it’s necessary for everyone to learn the basics of coding. They’re saying it for a good reason! If you understand coding, you can figure out how technology is shaping the world around us. Modern life revolves around digital empowerment, so having a grasp of programming concepts is always a good idea.

Understanding the development process is also a plus point for anyone owning a business – it makes understanding your site or tech product a lot clearer. But outshining all these advantages is the most obvious one – being a programmer is a great career opportunity. The demand for good computer programmers is at an unprecedented high, and we can safely assume that this is not going to change for the next few decades. Because the supply of coders (again, good coders!) does not equal the demand for them, pay packages for coders are attractive. A career in programming is an excellent decision because it’s well-paying and fulfilling. Courses in programming are the way to go for the millennial trying to build an awesome career for themselves!

There are, however, many programming languages for the eager learner to get his hands on. There are so many low level and high level languages because they are all written for different purposes – some are used to write desktop software, while some are used to solve complex scientific problems. While there are hundreds of important languages, let us isolate five of the most popular programming languages and take a closer look at them to understand more about them.



Image result for java


Java is one of the most popular programming languages we have today, and there are more than 9 million developers worldwide. However, it is considered to be a complex language, and its syntax (derived syntax from C and C++) is also long and verbose. Java was designed for portability, which means it runs exactly the same on systems with completely different specifications! This makes porting easier – but interpreting bytecode into machine instruction means that Java programs are normally slower than C++. However, Just-In-Time compilers, other language features, and other optimizations in the Java virtual machine have improved the execution speed of Java programs.

Java is one of the most secure language due to it’s strongly-typed form, and ends up being used for a variety of use-cases, such as:

  • E-commerce websites
  • android apps
  • electronic trading systems
  • games, and more.

There is no limit to the number of job opportunities that proficiency in Java brings – and it is widely acknowledged that Java is the most important thing to have happened to the IT industry since C ++.

Ruby on Rails

Image result for ruby on rails


Ruby is the equivalent of Java and C++, and keeps the needs of coders in mind. Consequently, it is easy to learn and has a lot of supporting codebases. It has become popular throughout the web through the Ruby on Rails framework. Ruby on Rails (or simply Rails) is a framework that helps with web development.  RoR promotes the use of web standards like JSON or XML for data transfer and HTML for UI. It is a model-view-controller framework to organize application programming. Web applications can be built very easily using RoR, and all companies (from startups to larger MNCs are understanding its benefits. Examples of some top companies using Ruby on Rails are:

  • Shopify
  • Bloomberg
  • Groupon
  • Soundcloud.


Image result for c++


C++ is an intermediate-level language that is gaining popularity, and it incorporates both high-level and low-level language features. C++ is a good language for a beginner because it helps with concept-building. Because it is possible to write C++ in ‘C-style’, it is also a good example of a hybrid language. Medical industries and engineering industries regularly use C++. Other areas of real world C++ application are:

  • Web browsers
  • Compilers
  • GUI-based applications like
    • Photoshop
    • Adobe Premier
    • Adobe Illustrator
    • Image Ready



Python is one of the fastest-growing major programming languages. The main reason for a number of developers switching full-time to python is the incredible readability and flexibility it offers. Written in simple English-like statements, Python allows the developers to exercise their logical skills while focusing the least on the syntax (which is pretty much non-existent in case of Python). There are a wide range of libraries and frameworks written in Python which makes it an undeniable asset in the programming world today. Some of the real world applications of Python are:

  • Web Development
  • Machine learning – for visualizing complex data
  • Text editors:
    • Sublime text
    • Koding
    • NetBeans
    • PyCharm
  • Video Game development
  • GUI-based applications
    • OpenShot video editor
    • BitTorrent
  • Web crawling



Go, short for Golang, is unlike Python, Java, or C++ in terms that it doesn’t follow object-oriented programming approach. In that manner, it comes closest to the good-old C. Most of the modern programming languages find their roots in the ’90s single-threaded environment. Because of that, performing real problems like concurrent execution, thread-locking, race conditions and deadlocks, etc., require a multi-threaded environment. Go was created in 2009 when multi-core processors were being extensively used. That is why, Go is built keeping concurrency in mind. Here are some applications of the Go language:

  • Handling concurrent web requests
  • Developing automation and command-line tools
  • Producing maintainable code


Proficiency in any one of these languages goes a long way in ensuring a great career. They require concentration, focus, and time – but ultimately are very rewarding. Part of the reason is that there is not ONE industry that does not require coding at the moment; finance, manufacturing, and health care are three examples of areas where coding skills are highly valued. For the future coding expert, we can only welcome you to a world of unbelievable opportunities!


Improve your productivity using these life-hacks


Some days, do you feel like you could’ve done more?

Maybe written a few more lines of code. Added a couple of new features. Completed more tasks. Or simply just done more work.

All these questions leave you feeling a little…incomplete? Almost like you’ve wasted the time you had?

…Sounds familiar?

Well, if it does, rest assured – it doesn’t have to be this way. Just a little tweaking of your work-habits will allow you to leave work feeling satisfied with what you’ve accomplished in the day!

Let’s see what all you can inculcate in your daily routine to make your life smoother.

  1. Avoid multiple tabs

You might not acknowledge this fact, but keeping multiple tabs open is one of the biggest thieves of your time. You often find an interesting article that ends up staying in your browser’s tab for months. As a result of this, you end up having 50+ tabs open across five different browser windows.

Always keep in mind that your browser is not a place to manage your reading backlogs – especially if your work requires you to access the browser multiple times. To catch up with your favorite articles that you’ve kept open, you can use special applications or tools that can help take care of all the articles, podcasts, or videos. Also, there’s a special feature in your browser, not sure if you’re aware of it – it’s called the BOOKMARK.

Yes, bookmark all the things you “might want to read” in the future, but don’t keep them open in the browser. Especially if your work requires you to practically live on the browser, make sure you don’t have more than 8-10 tabs open in front of you at any particular moment.

  1. Allocate time for daily and weekly planning

Ideally, you should plan your workload at least one week ahead. Try focusing only on your top goals and priorities and then break them down into further smaller tasks.

Then, for each task, estimate the priority. This way, you will get the most important things sorted first – this will leave no scope for you missing out on valuable items. Also, while planning, remember to leave a few slots empty so that you can update your plans in case a new task springs up.

  1. Design a plan for learning and development

For a programmer, it’s essential to stay up to date with the changes in technology (at least the one you’re working on). This demands continuous learning – which is vital for your professional growth. Regardless of experience, there’s always something new you can learn to step up your game. However, there’s one problem – the sheer abundance of things you can learn and digest.

For this, ideally, you should prepare ahead of time. Defining your learning goals and revising them at least once a month will help you strategize and prioritize better. Schedule what to learn when, and avoid jumping from one thing to the other.

  1. Start with the hardest task

This hack is probably the most heard of – yet the least followed. If you want to have a relaxed and a productive workday, always start with your biggest, hardest, and the most critical task.

You often have those mornings where you find yourself drinking coffee and checking emails before you tune in to the work state. As a result, the enthusiasm vanishes, along with some of the valuable time that you could’ve spent getting some stuff done. Instead, do the following –

  • Create a to-do list for the day.
  • Choose the three most important tasks from this list.
  • Pick out the toughest job out of those three, and try to wrap it up the first thing in the day.
  1. Minimise distractions

Again, this goes without saying. To be more productive, you’ll need to learn how to avoid the daily distractions like Facebook notifications, WhatsApp messages, or any such thing. Context switching always takes time(as you’ll learn in our classes!), and when it’s for something as trivial as checking your Facebook notification, it’s not even worth the time. If you look at every email you receive while working, you will be significantly less productive.

Instead, create special filters for high-priority and emergency situations. To add to this, try avoiding Facebook (or any social media, for that matter) entirely while at work – unless necessary. Also, don’t be afraid to reject the people who come to your desk unless it ranks high enough on your work-priority.

  1. Create batches of everyday tasks

Some tasks need to be performed daily but take up a lot of time – like, sending emails. Of course, responding to client emails is necessary. However, if you pause some important work you’re doing to respond to a mail, you’ll have broken up your flow – and eventually, your productivity will decline.

Batch all the repetitive activities. For example, dedicate 30 minutes of your day to deal with emails and/or other communications.

  1. Limit meetings

At meetings, the team members wait for their turn to update the project status. And, when the others talk, they either plan what to say or daydream about the upcoming weekend.

If you decide to have a meeting, make sure there’s a fixed agenda, and all participants are on the same page before the meeting. This will save a lot of time during the session. Also, a good practice would be to instruct your team against carrying their cellphones to the meetings. There’s no point to it – slows down the progress of a meeting (and is invariably quite rude).

  1. Review your coding habits

If you feel you are not following some standard coding practices that might ease up your work, it’s a great idea to ask some senior developer from your workplace to have a look at your coding habits. You might receive helpful advice that can make you a lot more efficient.

  1. Don’t forget to follow up

Some of the projects might get blocked if the person you’ve assigned them to doesn’t receive a revert from you. Always remember to follow up at the end of the day – to check if everything is under control, and if the day’s agenda is sorted or not.

You should keep following up with your client too, if you have any open queries, and not just with your employees. If you’ve followed up and they haven’t replied, wait for a while and follow up again.

  1. Take a break

Yes. REST is not just for APIs – it’s for you as well. Development is a mental exercise – one that requires your utmost time, effort, and focus.

If you keep working for a long duration without taking breaks, the quality of your work will be compromised. It’s a better idea to work in small batches, take a break, and then start work refreshed. Otherwise, you might feel overloaded with anxiety which will directly hamper your work. Also, because you spend practically the entire day in front of a screen, it’s recommended you get a good night’s sleep. Any compromise on this will adversely affect your productivity the next day.

In Conclusion…

If you’re one of those who strives to be more productive each day – these tricks will not only make you more productive, but will also make you more disciplined in your work. Go ahead, try these out, and let us know your experience. Do you have some awesome life hacks to share? Drop them in the comments below!

Dodging the “Tell me more about yourself” interview question

Everything’s prepared: the clothes have been chosen, washed, and pressed, you have memorized the route to the venue, and you’ve also taken a fresh batch of printouts of your resume because the older ones did not look impressive enough. You are reasonably confident when you are called to enter the big room. Let us assume that you are greeted warmly, before being asked the question you knew you were going to face the moment you received an email inviting you to this job interview.


Q: “Tell us something more about yourself.”

A: “Uh, I am Adam. I have two pet dogs and I like gardening.”


Something about that answer just did not sound quite in place, yet you had practiced answering this more than fifty times into the mirror. So what exactly went wrong, and what goes wrong every time someone tries to answer this question that is common to job interviews worldwide? It might not be phrased this way all the time, but any interviewee is bound to come up against variations of this question.

  • Introduce yourself
  • What’s the one thing that differentiates you from other interviewees?
  • Describe yourself in one word

Before discussing how to correctly respond to this tricky question, we should try to understand what the interviewer really wants to know when he/she asks this question. Chances are, you are not the first person being interviewed for the position; at least five others will be grilled before a decision is made. It makes sense for the recruiters to know key points about you – by which they can measure how good a fit you’ll be for the vacant position. In short, they are looking for honesty and brevity. If these can be packaged interestingly, half your job is done and your interview is off to a great start.


There are quite a few things that your answer should never be. Don’t recite your resume by heart, because the interviewer has already gone through it; they are looking for information beyond what has already been provided. Make sure you do not sound like you are talking all about your greatest achievements either (because, frankly, would you like listening to a braggart?) If there is one professional achievement you feel must be mentioned, go ahead. But as with everything else in life, balance is key here.


Appear super-confident (even if that’s not how you feel!)

This one goes without saying. Fumbling does not make a good first impression, so it’s very important to appear calm, collected, and in complete charge of the situation. If ‘tell me more about yourself’ puts you out of your comfort zone, then recovering from that initial setback can be difficult. One major faux pas is beginning with ‘My name is…’ Mentioning your name serves no purpose at all. You convey a sense of trying-to-buy-time, and that reflects badly on you.


Trust your instincts.

If you really wish to share your passion for collecting butterflies with the suits on the other side of the desk, go ahead. As long as you are not blurting it out of context, or hesitating, it is fine to speak about any special hobbies or pastimes you may have. You can also begin with snippets of info like these, and then speak about more serious aspects of your character. Mentioning what your likes and dislikes are is an acceptable way of responding to the question. However, it is imperative to not get carried away and end up reciting a small Ode to World Peace. Keep it short, sweet, and strictly about yourself.


Sell your professional skills.

If you’ve got it, flaunt it by all means. It’s a mistake to look like you are all play and no work, but it’s also a mistake (and a bigger one) to pass over your skills in certain professional areas to focus on your innermost thoughts. We have only one target here: looking like a well-qualified, suitable candidate. To get the wheels moving in your favour, it’s always a good idea to mention your experience in the relevant area and your interest in it.


Anything you say can and will be used against you

Think before you speak

This is not a speech, and you’re expected to give a complete answer in about a minute. Speak about aspects of yourself you find most interesting and substantial, and interviewers will take your cue and ask you about them. Answer in short, direct, simple sentences. Do not empty a bucket of facts on your interviewers. Topics like politics (even if it is YOUR view) and religion are to be avoided, as are opinionated comments and/or deeply personal experiences. Sharing an intriguing or relevant story from your past is fine, as long as your run it through a mental censor board first.


Always be professional

The shock value of certain answers cannot be denied. Answering “Where do you see yourself in five years?” with “I’ll be your boss by then” is not only arrogant; it is downright unprofessional. Granted, we all have heard of miracle interviews where some similar show of defiance earned the braveheart a win, but we should always keep in mind that our interviewers, by chance, might not be as flexible as that.


Above all, make it fun.

Make it fun – for them and for yourself. A witty, honest answer always counts. Even if humour is not your forte, be as straightforward and confident as possible. After all, you’re an educated, well-spoken, skilled young person – it should be fun to talk about yourself to a group of senior professionals and try to understand their reactions.


Is it really this simple? Don’t circumstances nearly always complicate interviews? What if you’re faced with this question coming from a grumpy interviewer? Sure enough, some things are always going to be beyond our control.

The best way to deal with the unexpected is to be extra prepared. Check out Coding Ninjas Interview Preparation Course, and give yourself that extra edge!

Tips to beat procrastination woes

You have an assignment deadline right on top your head, you should complete it ASAP. But still, what do you prefer to do? You switch to Facebook, surfing the web, videos on YouTube and then are caught in the spiral of Youtube videos and end up watching a video where a python swallows a goat, say whaaaaat? Procrastination is something which affects us all somewhere in our lives.

I think somewhere all of us are at a crossroad where we can either complete the task or say, “Chhodo, kal karengey”(Leave it, we’ll look at it tomorrow). Especially in college, I realized that if I could complete an assignment in two hours, I would rather complete it at night, which got postponed to the morning and in the end I completed it in the class itself.

Does that make you any efficient? A BIG NO. It doesn’t. Last minute panic might lead you to a state of nervous breakdown and you just might ruin your assignment/projects, etc. You never achieve your full potential and end up regretting and self loathing.Also, the procrastination playground is a place where leisure activities happen at times when leisure activities are not supposed to be happening so it basically makes you a potato.

Here are some tips which might help you deal with procrastination so you don’t have to face the panic monster again:-

1. Planning:

Procrastinators love planning because it provides them with a feeling that they’re doing something, when they’re actually not. So I would suggest effective planning. Jot down a list of easy tasks which are easy to complete before jotting down more. A big list of daunting tasks would rather encourage you to not to start at all. Check each task once you’ve completed it. Remind yourself with the help of reminders, post its and To-do lists.For example, if you need to complete various assignments, jot down a particular number of questions to be completed in one day and work upon that.

2. Actually Doing

Well, this is the hard part. Take a deep breath and start with your job. If you think rewarding helps then reward yourself once you’ve completed certain tasks. Treat yourself to an ice cream or an episode(ONE EPISODE) of your favourite TV show after completing a couple of questions of your assignment. You try doing the entire assignment in one go and you get stuck at one test case which just doesn’t seem to budge? A wiser thing would be NOT completing the entire job in one go, and that too at the last moment. Take short breaks between tasks, this will not only refresh your mind but also give a newer perspective at tackling the problem.

3. Break down your tasks

So you think that programming is the skill of the century and teaching yourself to code is the ultimate priority, right? You have “Learn how to code” as your top priority, but every time you look at it, you coincidentally decide to clean your cupboard or your email.It’ll never end up this way. Go for slow steady progress. Novels are written one page at a time.

Break down this big daunting task into simple tasks: Research on how to work upon it:

Daunting task
Easy steps to success

4. Turn off those notifications

Every time you sit down to write codes for your assignments and those sneaky little Facebook Notifications pop up ?Someone sent you a candy crush request and you think the world would collapse if you don’t check your FB page to check it? Anything which distracts you when you’re working is like opening a door to procrastination. To stay focused on your tasks, block anything which even mildly divides your attention. Meanwhile to block notifications on chrome, follow this link –> Block notifications.

I hope these tips help you beat your procrastination woes. To be honest, this post took me more than a while because I was caught in a spiral of Tastemade videos when the truth is I don’t even live in the vicinity of a kitchen. Teehee.

Coding Ninja launches Competitive Programming Online Course

Coding Ninja has raised its bars to yet another course, we’ll be launching Eminence the online competitive programming course from 1st October. Registrations are open, the early bird discount lasts till 20th September. Grab it now!

Why is Competitive programming important? Competitive programming is one of the hottest topics right now. It not just helps build your skill set for your future internships/jobs but it will also help you in creating efficient programs, appreciate algorithms and build proficiency in a language.

If you are thinking that spending hours on algorithms and techniques which you might never use in real life programming is worth it, then think again. Competitive programming will enhance your skills to an adept level. If you need self-assessment and motivation, this is the best platforms to start with. It will provide a competitive environment for your neat codes, and who doesn’t like competition?

Once you start spending time on algorithms, programming and advanced concepts will come easily to you. When you’ll code intensively, you won’t take a lot of time grasping new concepts in future. Competitive programming will bring a solid base of computer science knowledge which will reap you great benefits in future and learning a new concept will come to you relatively easier.

By continually moving to cover what companies require in an engineering talent, Coding Ninjas intends to create an environment where students feel confident what they learn. It is very excited to announce the newest online course, Eminence which will help hone programming skills. A number of algorithms including complete search, divide/reduce/transform and conquer, greedy, dynamic programming will be covered in detail. Programming language libraries will also be covered. Besides this, domain specific techniques like graph, mathematics related and computational geometry will be taught. Other topics include number theory, advanced data structures and bitmasking. For complete topic wise class breakup, refer to lecture breakdown here.

The course instructors will be Ankush Singla, a code enthusiast from IIT Delhi and Stanford, and Parikh Jain the “ninja” of competitive coding from DTU.


Code your way through Competitive programming!

If you’re wondering how to be an ace programmer, then one of the best ways to do so is through competitive programming. Topcoder, Hackerearth, SPOJ, etc all must ring a bell, these are sites that provide high-quality problems to you that are a little difficult to crack. Competitive programming needs a slightly different approach than regular programming.

How is competitive programming different from normal programming?

I got this excerpt from a popular Quora answer which could answer it best:

Answer for: How is competitive programming different from normal programming?

This basically tells us that in developmental programming, we need to write an efficient code. However, competitive programming requires a code which “just works” with the given conditions.

So, what exactly do you need to “kill the lion” in 2 minutes?

  • You need to know the basics of a language, pick any, C++ or Java, whichever you’re comfortable with.
  • Pick an online judge. Some popular ones are: topcoderSPOJcodechef and hackerearth.
  • Start with simple problems such as Div 2, 250
  • Practice these problems thoroughly such that you earn around 240 points a day.

Sounds easy? Well, for those of you who have tried a hand at it must know that TERMS like TLE(Time limit exceed), MLE(memory level exceed) and WA(Wrong answer)  are so good at giving NIGHTMARES!

How to be a Ninja Competitive programmer?

To gain crazy ninja skills at competitive programming, one needs to have a grasp of a few specific topics.

Topics mostly covered in contests are:

  1. Graph algorithms: Breadth first search (BFS), Depth first search(DFS), Strongly connected components (SCC), Dijkstra, Floyd-Warshall, Minimum spanning tree(MST), and Topological sort.
  2. Dynamic programming: Standard dynamic programming problems such as Rod Cutting, Knapsack, Matrix chain multiplication, etc
  3. Number theory: Modular arithmetic, Fermat’s theorem, Chinese remainder theorem(CRT), Euclidean method for GCD, Logarithmic Exponentiation, Sieve of Eratosthenes, and Euler’s totient function
  4. Greedy: Standard problems such as Activity selection
  5. Search techniques: Binary search, Ternary search, and Meet in the middle
  6. Data structures (Advanced): Trie, Segment trees, Fenwick tree or Binary indexed tree(BIT)
  7. Bitmasking
  8. Game theory: Basic principles of Nim game, Grundy numbers, and Sprague-Grundy theorem

Our newest online course Eminence indulges in all of these so-called tricky topics just so that can ace that programming contest in just three months.  Eminence will be taken up by Ankush Singla who has a Bachelor’s degree in CS from IIT Delhi and Masters in Computer Science from Stanford University; and Parikh Jain, the “ninja” of competitive coding who holds a degree in CS from Delhi Technological University (DTU). Register now to book yourself a seat in a course that will brush up your competitive skills to a whole new level. 


Adventures with Android

Ever look at all those fascinating apps on the play store and wonder if you could ever have your name beside one? The key to all those apps is Android development. Let’s get a better idea about Android app development and how it is perfect for you and your skill sets.

Android is basically an open source platform which connects over millions of devices around the world.  For a developer, this basically means that you have access to the source code of the platform. With the source code, you can understand how the interface works for the app. Also, if you’re lucky enough you can find a bug and report it.

The industry wide support is humongous and the Android community is super friendly and helpful. Using Android, you have the power to build wonderful games, books, movies, music, and apps of course and share it openly. 

Why Android?

The growing trends of 2017 suggest that Android has definitely overpowered iOS, reasons it being economical and open source.

If you are looking for something where you won’t have to spend a lot of money in the development, then brace yourselves. Android has almost zero developmental costs. The development tools are free and easily available, and Google only charges a minimal fee to launch applications on the Android market.

You have the freedom to innovate. Besides developing an application, you have the full fledged freedom to extend or contribute it further.

Android developers have the freedom to collaborate. The developers are encouraged to share their source code between each other. They do not sign an NDA(Non-disclosure Agreement).

Android has an open distribution model, which simply means that not only developers are encouraged to share their source code with each other but you can do so via other distribution channels also. The development can be done in any hardware devices be it Mac, Linux or the good old Windows.


To develop in Android, you just need to know the basic data structures, OOPs concepts  and programming.(Join our Foundation courses to do so by registering here).  

Image result for Android studio

Why our courses?

Our Android Development courses are amongst the best. This course will gradually guide you through the process of turning your breakthrough app idea into reality.Say goodbye to old school learning because we are here to provide hands on learning to you, develop apps in every class. Our courses are extremely interactive, you will start working on your app from the very initial classes. Exciting Hackathons will take place from time to time to keep your skills up to the mark. Not only this, everyone will get to work on super exciting projects!

 By the end of this course, you’ll be able to:
  • Make apps not only in Java but also Kotlin
  • Learn to build a brilliant UI
  • Use animations and sensors to make your apps top notch
  • Use backend services like Firebase Cloud Messaging
  • Link third party sites such as Facebook, Gmail to your apps
  • Last but not the least, launch your app on Play Store and make it available to millions of users worldwide

Build your expertise by making apps, games and so many cool projects. Enter the world of play store with us, new batches of Envision(Android App development) are commencing soon. Register here!!