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