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.

 Eminence

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. 

 Eminence

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.

Pre-requisites:

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!!

 

Tips and tricks to gear up for this placement season

It’s interview season and it’s crunch time! With the placement season a month away, the panic mode is on and a lot of you will be sitting for your placement and for internships this time.

Most companies look for students having past experience in various internships and building projects. The kind of exposure that gives is difficult to attain inside a classroom. If you don’t have that, don’t fret too much! Campus interviews can be intimidating and you’d be sitting for the first time so don’t let the anxiety get the better out of you. Here are some tips and tricks to stay ahead of the pack and crack your tech interviews!

1.Ace that written exam:

Most companies start with a minor written exam or programming test before moving on to the interview part. Though this part is underestimated but needs a whole lot of attention from you. Start getting a headstart at this by practising a whole lot of questions. Take mocks for the aptitude and logical section, speed is a hurdle which can only be overcome by practice.

2. Build your communication skills

Even if you’re going for the role of a software developer, you can’t slack on roles of being personable and responsible. You should be able to express what you think to the recruiter. Show your enthusiasm and passion about the company. Practice with your peers for common interview questions to get an edge at group discussion. All in all, get comfortable with public speaking, this will help you deal with slippery situations. Try building your vocabulary and yes, please do read the newspaper.

 The tech interview

You will be required to solve a couple of questions. Try practising on a whiteboard, you can be so used to the compiler that you might just forget the syntax of initializing a variable when writing a code outside. Study your data structures and algorithms, read books, solve questions and use other resources.

Know your project

Your project is something that you must have put your heart and soul into. So, naturally, the recruiter expects you to know the nitty-gritty of it. Explain your project nicely, the hurdles you got caught into and how you overcame them while making it.

Think of the bigger picture

When solving a coding problem, even if you make a minor mistake, don’t panic, keep your calm and stay focused on the problem. Take a deep breath, you still have the rest of the interview to go through. The recruiter will most probably ignore the minor error, he’s there to check your problem-solving skills.

Be Honest

The recruiters must have a long experience of interviewing a lot of candidates so they are surely masters in this. Try to make your resume glitch free. Be honest with your answers, if you don’t know the answers, just say it, it’s not a college viva that you’ll get away with saying any bullshit. The interviewers already know the answer before they ask the question.

Ask Questions

Be vocal with your doubts. If you have any doubts, regarding the questions such as edge cases, etc, ask them and how they need to be treated. Avoid making any assumptions. Even if you think it’s pretty safe to assume something, try asking the interviewer first.

Give mocks and learn something new

Trap someone you know into taking your mocks. JK, take their mocks too. Get feedback regularly, and try overcoming minor glitches during the mocks.

Interviews are also a learning experience, and with every interview, you would definitely learn something. Instead of getting anxious over it, try treating it as a goal to learn something, have fun, treat your interviewer as a colleague you’d like to build an amazing app with, this would exude your passion about coding that got you in it at the first place!

Also, I may sound like your mother, but please get a good night’s rest before the D-day. It would double your efficiency!

To prep up with our help, sign up for our Interview Preparation courses here and avail your free trial for our online course NOW!!

Kotlin: A beginner’s guide

If you’ve not heard about it before then hear it now! 

From Google I/O 17, Kotlin has been added as the official programming language for Android development!

Hearing the word “Kotlin” for the first time?

Kotlin is a super new and a super cool programming language. Developed by JetBrains which also developed the JetBrains IDE that Android Studio- Google’s official developer tool is based on. (Woah??!1!)

If you’re too scared thinking that it would replace Java for Android? Fret not! Java is not going anywhere and it will stay here.

Also, if the thought of learning a new language scares you, then there’s good news because Kotlin is very similar to your best friend Java; object-orientedstatically typed and designed for similar problems.

So, Why Kotlin?

Some features include:-

1.Kotlin tools will be included with Android Studio 3.0, so you don’t need to worry about downloading anything.

2.Google and Jetbrains, both pledge to support the language wholeheartedly

3.It is very compatible with Java. This means you can mix and match both Kotlin and Java into your project.

4. It is a concise language so IT drastically reduces the size of your code

5. Hate when you see Null Pointer Exception as an error? Well, Kotlin is here to solve it for you.

On top of all this, Kotlin has already been accepted by major developers like Pinterest, Expedia, Square and others for their production apps. It’s a clean, concise language.

Start making your first app in Kotlin by joining our Android Courses!

Happy Developing 🙂

BE THE NINJA AMBASSADOR IN YOUR CAMPUS!

Do you have the panache in you that sets yourself different from your peers?

Are you good at organising events in college(mass bunk also counts)?

Are you well connected and spend most of your times juggling societies and clubs in college?

Does your social game make your friends insecure?

Do you wish to get those extra points on your resume and that too in a fun-filled way?

If you answered most of these questions with a straight YES then what we have for you is exactly what you need. 😀 Coding Ninjas has launched their Campus Ambassador program for students ready to hone their Marketing and Leadership skills. Let’s add more Ninjas to your community!No automatic alt text available.

Eligibilty Criteria?

You need to be in a college, duh!

What we need?

  • All we need is for you to organise hackathons and talks(pre-placement) which are to be conducted on your campus.
  • Promote us on the college campus through posters(Offline), and Social media marketing(Online).
  • Maintain a database of your peers of all batches
  • Promote and associate us in cultural and departmental fests
  • Encourage your peers to use our very own CodeZen as a programming platform in your college

What you get?

  • Free merch!!
  • Extra points on your resume because we’ll provide you with a certificate on completion of your term
  • Linkedin recommendation to all eligible candidates!
  • special bonus to the Campus Ambassador of the month
  • An exposure of working with a start-up
  • A wonderful opportunity to become a part of Ninjas(Internship/TAship)
  • Interaction with experts professionals and get guided personally
  • Meet targets, and get our online courses absolutely FREE

Not only this, but also

If you write blogs for us, we’ll feature you on our website.

An out of the box idea will get a big SURPRISE from us.

Apart from this, you’ll get an amazing opportunity to expose yourself in the startup world, interact with expert professionals and communicate with other College Ambassadors to experience the life and culture of other campuses.

Come make the best of this opportunity and the join the wonderful Campus Ambassador Community to polish your marketing and Leadership skills!

Register here!

Why Coding should be taken as a skill rather than a subject?

skill_blog

A night before the data structures exam, I’m biting my nails and cursing why did I have to choose engineering, planning a strategy on what topics to leave and what to study, just enough so that I pass this semester without a back. I’m sure I’m not the only one who does this. All-nighters are the only way we know how to study in college, cramming the subject just the night before the exam.

Most people literally cram entire codes to topics a night before the exam. Guys, you are legends! But the fact is in the long run, this won’t help you. The more you cram, the less you’ll remember what it was about. Also, in the next semester, when a bigger version of the subject appears, you’ll start again with the same old cycle of cursing the subject, your decision of taking the course, the education system and so on.

Programming, instead of rote learning it as a theoretical subject, should instead be approached more practically. It should be understood and the codes should be practised instead of cramming. The concept of syntax, dealing with a problem through a particular method, and the “logic” should be understood. If you’ve done this bit, I bet you don’t even need to open the book before the exam(but please do).

Before I enrolled in the course at Ninjas, I didn’t even know that there was an actual code for Hashing ( I possibly must have left the entire chapter then :p) possibly because I thought it did not carry enough weightage for the exam. But I was so wrong.

Coding Ninjas not only teaches you a language, they teach you how to study. They start with absolute basics so that even newbies who don’t  know “hello world” can relate to the subject. The classes are loaded with brain teasers to kick start your brains, short teaching sessions and more questions to practice so that you focus on problem-solving instead of cramming. They don’t focus on the language or syntax but most importantly on how to approach the problem so that you can do the same for any other language. All of this, not only fascinates you but makes you fall in love with the world of programming.

Subjects which used to be complicated and scared you till death will now look like a piece of cake. Not only this, imagine actually creating something from scratch. Now imagine, a lot of people actually using “that” something which you made. Sounds like magic? Well, it is! This is what programming does for you. Your favourite app or the website that you love to browse are all things essentially based on programming.

To quote Ankush sir, the most empowering moment of his career was when he and his team launched the Facebook timeline and more than a 100 million people used it on the very day it was launched!

Get inspired. Start programming today to build something amazing for tomorrow!

PS: The weightage of hashing? Well, it’s supposedly one of the most frequent questions asked by Amazon. Don’t make the same mistake. :3

How to master a language inside out?

If you’re a newbie coder and slightly struggling with programming, don’t fret too much! Coding can be slightly taxing at first, especially when you are new to it. But once you make sure that you give it enough time and work, you’ll love it!

So, let’s face it, you want to learn a language, and there are so many ways you can do that, but the question is how can you really master a language? “Master” is a heavy word, but today all those bigwigs are actually looking for expertise coders. Besides, programming can be really stressful if you don’t approach it with a right mindset and attitude.

So, here are 7 ways to master a language inside out:-

1. DON’T DO IT IN ONE NIGHT

The idea of learning a skill overnight is exhilarating, yes! and being so used to those “all nighters” for college examinations can make us think that that’s the only way to study, but NO, trying to cram programming overnight can be a big mistake.

One needs to take it one session at a time, giving every session ample amount of time and using it more practically than mugging up the theory.

2. ENROLL IN A COURSE

Of course! What’s better than enrolling yourself in a course where you have amazing mentors to guide you, newbies like yourself to get along with, and TA’s to assist you through every step. An environment of healthy competition and learning in a group will not only keep you highly motivated, but you’ll also learn at your own pace.

Register for our courses  here!

For all those who are too lazy to get out from their houses(it’s the heat, we don’t blame you!) or people who live too far from our center, we have this awesome option for you, ONLINE COURSES! with amazing features like adaptive learning, individual TA support, and lots more! (A little bit of promotion never killed anyone!)

3. PRACTICE! PRACTICE! PRACTICE!

Well, who doesn’t get a hard time from the semicolon and the brackets?! If you don’t have any prior coding experience, the number of syntax rules in any coding language can make your head go for a spin. The best approach to this is practice, one needs to practice a lot of questions and over a period of time, those silly syntax rules will come naturally to you.

One needs to take practice seriously, solving a lot of questions will definitely build your expertise in the field and your approach to solving questions will develop, turning you into a Code Genin.

4. IF YOU CAN’T EXPLAIN IT, YOU SIMPLY DON’T UNDERSTAND WELL ENOUGH

A very interesting approach to learning anything is the Feynman approach, based on the great physicist Richard Feynman who believed that the best way to grasp something is by breaking it into simpler concepts and teaching it to someone.

Explaining things to someone else will help you analyse your weak areas and will definitely solidify the concepts in your mind. It will help diagnose the weaker niches and compel you to learn things better from a newer angle.

5. JOIN COMPETITIVE PROGRAMMING

One sure wants that edge when they’re learning the language, don’t they?  To get that extra panache in your coding realms, one must start with competitive programming. Competitive programming is a mind sport taking place in particular forum involving participants to program according to provided specifications.

Competitive programming will allow you to code under tight specifications. This will strain you brain to think under constraints, increasing your skills exponentially! Also, coding in an environment of healthy competition will keep you glued to it.

Join the world of competitive programming at CodeZen, Stand out in the leaderboard and win amazing cash prizes!

6. PLAY WITH PROJECTS

Once you’re comfortable with the language, syntax and the concept, it’s time to put those skills in to use! For absolute newbies, think of  a simple game like Tic-Tac-Toe, Othello, to head start with your skills. Building even a small project will not only build your confidence but you’ll know exactly how to apply your newly acquired knowledge actively.

Be creative! Code something that interests you or what you’d actually want to use. Projects will help you retain a lot better and will interest you at a very personal level.

7. DON’T PANIC!

Relax! It’s not you, it’s programming.

Programming can be a little intimidating and it’s okay to struggle with it. The important thing is to keep yourself on track and keep trying. Ask help when you need it, try different resources and keep recalling previous concepts. Give it a little time, and it will surely come your way.

Embrace your bugs and errors. Learn how to debug and avoid them in future. Practicing can help you build confidence, and that will keep you away from stress.

Recursion (The Good, the Bad and the not so Ugly)

Recursion is a topic most beginner programmers fear and when you get the hang of it, it works like magic (Congrats! Not a noob anymore). When someone introduces recursion, they say it’s basically a function which calls back itself, and your brain goes like WHAAAAAT??

So here’s this GIF which not only gives you a complete mindfuck but also a visual description of what recursion is. Too scary huh? Well, not really. Once, you get an idea of how recursion works and  which base case to work with, it runs smooth as ice. Sometimes, you won’t even be able to fathom how your code worked when it did.
Well, the mantra for recursion is ” Let recursion do the work for you”.

THE GOOD

1. For all those people who want to make their code look pretty as a picture, recursion is the best way to do that. Recursion makes a code more compact, readable and so very elegant.
2. If you can master recursion, it can turn out to be your best friend. Solutions using recursion are easier to strike and code. It also avoids redundancy of code, and your codes are easier to read and maintain.
stackbuddies

3. Three magic words: tail call optimization: Some functional languages implement this wizardry. So basically, what happens is, if a function’s return expression is a result of a function call, the stack frame is reused instead of pushing a new stack frame in the call stack. Sadly, only a few imperative languages have this wizardry.

 

The secret magic of tail call

THE BAD

A lot of programmers avoid using recursion and believe that it is less efficient than it’s iterative counterparts.

 1. Recursion can lead to the perils of stack overflow. To understand better, let’s look at the steps for functions call:-
  •  space is carved out on the stack for function arguments and variables.
  •  arguments are copied into this new space
  • control jumps to the function
  • function code runs
  • function results are copied into the new value
  • stack rewounds to its previous position
  • control jumps back to the caller
Mostly, all of these steps consume more time than their iterative counterparts. Therefore, recursive methods are relatively less efficient in those cases.
recursionagain
2. More importantly, when most programs start, they allocate a single chunk of memory to the stack, if that memory is used, the entire program crashes due to stack overflow.
3. Each function call eats up a lot of space. That amount of space isn’t recovered until the function returns. Iterative methods do not suffer from such problems.
r_219071_tbWYT