Emergence of chatbots

Every active Netizen has interacted with a Chatbot at some point in their life. You must have too! Ever noticed those tiny pop-up windows greeting you with a “Hello, how may I help you today?

These are chatbots that have been designed to communicate with you. You must have heard about Siri. What is Siri? She is a super intelligent chatbot (with loads of mindblowing and quirky answers up her sleeve!)

Are you wondering how did these smart and sophisticated chatbots come to be? We’ll break it down for you!

Chatbots — What are they?

Chatbots are essentially a software designed to communicate with humans in their natural language. And believe it or not, chatbots have been around us longer than you can imagine.

The first chatbot — ELIZA — was developed way back in 1966 by Joseph Weizenbaum. He had programmed ELIZA in a way that it could imitate the language and behaviour of a psychotherapist. The next development in the field came in 1972 with PARRY, another chatbot. These early chatbots could interact only through textual commands and responses. The first voice operated chatbot came to the scene in 1988 — Rollo Carpenter’s Jabberwacky project.

As time passed, more advanced chatbots came into being such as A.L.I.C.E and SmarterChild. Today, we have some of the most exceptional chatbots amidst us — Siri, Alexa, Watson, Cortana, and so much more!

The chatbot drive

The latest stats show that chatbots are becoming popular by the minute. According to a Forrester report, nearly 57% of firms across the globe have either already invested in chatbots or are planning to in the near future.

Companies are rapidly incorporating chatbots within their system and rightly so. Chatbots have displayed an immense potential to enhance the entire customer service scenario by leaps and bounds. While Scripted Chatbots work according to predetermined rules, AI-powered Chatbots are way smarter.

The AI-powered chatbots of today use natural language processing to understand human commands (text and voice) and learn from previous experiences. So, a chatbot first soaks in the information you provide to it and then analyzes it with the help of complex AI algorithms, and finally responds to your query with a written or spoken result. As these chatbots have the capability to ‘learn’ from behaviour and experiences, they can respond to a wide range of queries and new commands.

This ability of chatbots has made them extremely appealing to companies who have an online presence and wish to create a more enhanced customer experience.

In a research conducted by Forrester, it was found that messaging happens to be the №1 customer service channel preferred by consumers in the US, India, South Korea, and Singapore. Unlike humans, chatbots can work 24×7 and hence, they can provide round the clock assistance to customers. Chatbots can take over the mundane tasks of human employees and can perform them much better. Also, chatbots can handle several queries at once, so no more waiting in queue for a response to your query.

Using a chatbot can help companies save a ton of money that would otherwise go into paying human employees for performing the same task. According to Juniper Research, chatbots helped businesses save nearly $20 million.

But that’s not all that chatbots can do.

In May 2016, Google unveiled Allo, a smart messaging app. Allo comes with Google Assistant and can help users perform a wide range of tasks, from finding information on the Internet to making dinner reservations! Then again, many companies have started using Facebook’s Messenger bot service that allows them to create a bot in Facebook Messenger that interacts with consumers without them having to ever leave the platform to access another app or another website.

Chatbots — The future

Satya Nadella, the CEO of Microsoft is quite optimistic about the future of chatbots. At the Build 2016 Conference, he stated:

“As an industry, we are on the cusp of a new frontier that pairs the power of natural human language with advanced machine intelligence.”

Judging by the rapid progress that chatbots are making in the present day, it can be safely assumed that in the near future we will get to see even more sophisticated bots (maybe even more so than Siri and Alexa!). For instance, if chatbots are collated with video service apps like YouTube, we may be able to create a new dimension of e-learning wherein the bots would function as learned instructors. With the right mix of technology, there may emerge many such groundbreaking opportunities.

Top Machine Learning experts to follow in 2019.

 

The technological landscape is rapidly changing. Today, we have concepts, ideas, and realities that were a thing of sci-fi creators’ imagination. We are living in an era where technology is touching (and improving upon) every sphere of our life. Artificial intelligence and machine learning are no more a science fiction concept; these technologies are taking real shape and every day there are advancements in the field. These technologies are revolutionary and can give a new dimension to the way we interact with the machines and the machines interact with us. Several companies have come forward and have invested heavily in AI, RPA, NLP, deep learning, machine learning and AI.

Movies like Tron, Robocop, I Robot, Blade Runner etc. have shown enough how machine interaction takes place and now the time has come when this concept is advancing forward to take some concrete steps in the real world. The world has seen robots like Sophia which was one of the most advanced machines in the world. Machine learning is not only used in the field of technology, but it is being worked upon to be adopted in medicine & healthcare, in the field of biotechnology, education, transportation, travel, media, finance, retail etc.

For all the machine learning enthusiasts, this year is going to be very exciting. In order for you to stay updated with everything that’s happening in the field of Machine Learning, here’s a list of top Machine Learning experts that you should follow:

  1. Andrew Y Ng — The name which probably every machine learning & AI enthusiast knows, Andrew is a computer scientist and entrepreneur. Being the co — founder of Google Brain and chief scientist of Baidu, his contributions have given a new shape to machine learning. He co –founded Coursera. He was a keynote speaker at AI Frontiers Conference in November 2017. His areas of research include deep learning and machine learning. He authored a book Machine Learning Yearning.
  2. Rachel Thomas — Forbes has listed her in “20 Women Advancing AI Research.” She has co — founded fast.ai and teaches data science program at University of San Francisco Data Institute. Hacker News has six times placed her writings on the front page. Her works have been translated into Portuguese, Español and Chinese.
  3. Fei — Fei Li — Li is a computer science professor at Stanford University. She cofounded AI4ALL, an NPO which works in the area of AI. Li specialises in the field of cognitive neuroscience, computational neuroscience, deep learning, machine learning, computer vision and artificial intelligence. She is also the co — director of Stanford Vision & Learning Lab.
  4. Andrej Karpthy — Andrej has expertise in image recognition and deep learning. He did his graduation from University of Toronto and PhD from Stanford University. In 2016, he became a part of OpenAI, an AI group as a research scientist. He became the director of artificial intelligence at Tesla in June 2017.
  5. Yann LeCun — A computer scientist from France, Yann’s work area include computational neuroscience, mobile robotics, machine learning and computer vision. In the world of AI and machine learning, Yann is famous for his works on OCR (Optical Character Recognition). He also founded Convolutional Nets. He together with Leon Bottou and Patrick Haffner, created DjVu.
  6. Pedro Domingos — A professor at University of Washington, Pedro is a famous researcher scientist of machine learning. His areas of expertise are data science, machine learning and artificial intelligence. He is known for his The Master Algorithm and markov logic network. For his remarkable works in machine learning domain, Pedro was elected an AAAI (Association for the Advancement of Artificial Intelligence).
  7. Zachary Lipton — Zachary works as assistant professor at Carnegie Mellon University. He has worked with Microsoft Research Redmond, Amazon Core Machine Learning, and Microsoft Research Bangalore. His areas of interest include core machine learning, applications of machine learning and theoretical foundations.
  8. Ankush Singla — An ex-software engineer at Facebook, Ankush is a Stanford University graduate in Computer Science. Having an experience with Amazon other than Facebook, Ankush has got in- depth deep knowledge about Machine Learning and the concepts that revolve around it.

However, the list doesn’t end here but these are some of the experts who are known for their significant contributions in their respective field of research. The dream of making a machine parse any given word is soon coming true. This year, the world is waiting for such advancements in the field of artificial intelligence and machine learning. We are going to witness more breakthroughs in the field of artificial intelligence, machine learning and NLP.

If knowing about these experts makes you want to be like them, don’t waste a second. If you feel Machine Learning is your calling, jump straight to Coding Ninjas. We offer you online courses on Machine Learning that’ll help you get the push you need.

Placement talk with Saurabh Kumar!

Be a Ninja Coder with Coding Ninjas!

Saurabh_Kumar

His amazing experience and what he loved!

Coding Ninjas really helped me prepare for the interview and brush up the essential concepts during my placements. The lectures are excellent, and the webinars helped a lot. I was in Canada when the course started, and the online lectures were very convenient.

Interview experience

It consisted of 2 rounds where they focused on the Basics of OOPS, DS and the projects I’ve mentioned on my resume.

Advice to Current Students!

Please try to be through with basics and practice coding every day.

How will you introduce Coding Ninjas to your friends?

If you want to become a ninja coder, Coding Ninjas can definitely help you.

Thank you for constant support and guidance!

Best open-source sites to find CSS snippets for web developers

 

If you’re a web developer, a large part of your brain power is spent in coding the basic layout of the front-end. It’s only after that that you’ll be working on the backend functionalities of it. Often, coding front-end items from scratch is a bad idea, especially because there are tonnes of tools available online where you can easily find code snippets pertaining to your need. This is often a time saver for many web developers. But, this can also get extremely tricky if you don’t know where to look.

So, for the same reason, let’s look at some free-resources where you can find readymade code snippets for many front-end elements that will make your work smoother.

1. Web Code Tools

Web Code Tools is one of the best resources for CSS snippets. This site offers custom CSS code generators that help you save time when building gradients, filters, and CSS-based animations.

Another thing about this tool is that it has a massive resource for all frontend development languages. You can find generators and snippets for HTML elements, open graph snippets, and microdata.

2. CodePen

This is clearly the most versatile repository to browse through for code snippets. It comes with a free IDE where you can tweak and play with the code and adjust it as per your liking. It also has a showcase of cool dev projects made by developers worldwide.

The quality on this site is simply amazing and you’ll be able to find almost anything that you want to, on Codepen. You can see the pens that are trending and gaining traction to see what the developers around the globe or up to. Whether it’s for CSS or both CSS and JS, CodePen definitely has you covered.

3. CSS Flow

This tool curates UI kits and design resources. It has a snippets area that contains free hand-crafted code snippets that are mostly geared towards UI elements. These snippets are mostly coded in HTML and CSS/SASS.

You’ll find elements like CTA buttons, toggle switches, signup forms, and even todo lists. You can view all the snippets on your browser before you decide on downloading it.

4. Code My UI

This is a perfectly curated resource to find CSS snippets. All the posts are hand-picked and organized in the order of most recent snippets found all over the internet. You’ll easily fin typography, designs, button styles, custom layouts, and basically everything you need for your website’s frontend to look neat and pleasant.

5. Codepad

The best thing about this tool is that everything on the front page is voted by the users. You can create a new playground if you wish to submit your own code. It gives an online IDE for HTML/CSS/JSS code.

The free CSS snippets vary from simple items like buttons, layouts to more diverse and extensively-designed elements. It also has a collection of beautiful CSS-based loaders for your website.

The sites we’ve discussed in this post are all beautiful and experience them to find your favorite off the list. All of them have sufficient items/elements to help you design a beautiful frontend for your website. Whether it’s forms, loaders, buttons, or whatever you can think of — chances are, you’ll find some of the best-coded elements on one of these sites. Simply tweak it as per your need and you have the website you always wanted!

But that’s just about the frontend. Now comes the fun part — the backend working of the website. What have you chosen for it? Ruby on Rails? Node.JS? Why don’t you check us out at CodingNinjas where we’ll help you not only decide the language for your project but also on your journey towards developing the backend for your website. We cover all the concepts, starting from level 0 — so that there’s nothing you miss!

Python for Machine Learning

 

Machine Learning — a term you’ve probably heard of unless you were living under a rock since the past 2–3 years. But what exactly is it? To put it in simple terms, whenever you shop from amazon for a mobile phone, it suggests you a case or a screen protector for that mobile phone. Or when you buy a t-shirt online it also suggests you jeans and shoes. It predicts your future by analysing your browsing history and time spent on a single product before buying it. There are 3 types of learning algorithms which make it so powerful. Supervised, Unsupervised, and Semi-Supervised Learning. We won’t dive into the specifics of it but basically supervised learning is the data which you give to differentiate between two objects while unsupervised learning is data that hasn’t been labelled by the user. Semi-Supervised learning, on the other hand, is the data which is half-fed for example a large amount with a small amount of labelled data.

Machine Learning has become extremely important in almost every spheres. So much so that it can predict, with certain assurity, when are you likely to have a heart attack based on your electrocardiogram tests. Fascinating, right? Tech CEOs have praised Machine Learning and almost bet that it’s going to be a big deal in the next 10–20 years. Sundar Pichai, the chief executive officer of Alphabet’s Google said he sees a “huge opportunity” in ML. While Jeff Bezos, the richest man on the planet and also CEO of Amazon said, “It’s really early but I think we’re on the edge of a golden era. It’s going to be so exciting to see what happens.”

You can see Machine Learning at work in almost all parts of your life, for example: Google Assistant- the voice recognition assistant uses Machine Learning to differentiate between voices and accents. Amazon Alexa, Amazon dot com use Machine Learning to improve your experience throughout the amazon ecosystem. If you have Face ID on your iPhone X or later, it uses Machine Learning to calculate the number of dots on your face and unlock the phone- all under the span of 10 milliseconds. Cool, huh? It uses what is called Deep Neural Networks to create a mathematical model of your face.It is expected to solve problems that were merely a science fiction back then.

Using Python for Machine Learning

Python is mainly a scripting language that is very easy to learn compared to other programming languages like C++ and JavaScript. It doesn’t require a lot of programming expertise, and if you’re able to think logically, half your work is done — because Python doesn’t rely a lot on syntax.

Python has a larger user base compared to many other programming languages which means more people would be able to understand and participate in your work which makes it easier to work on new technologies from scratch. Developers can find tutorials and tips in the development process. Unlike other languages, Python maintains clean and concise code throughout the project which helps in writing complex algorithms and maintaining them. Python user community has developed many modules to help programmers implement machine learning such as SciKit and Theano. These modules are well-documented to help you step-by-step on your first project. The development is fast and stable which speeds up the process by a lot when fixing bugs.

Advantages of using Python

  • Ease of Use- Python is very easy to use and developers can quickly start adapting to the language.
  • Speed- There is less work required in a code as compared to other languages which saves time.
  • Reliability- The Modules are well documented which makes the experience a bit easier.
  • User base- Thanks to the huge user base Python has to offer, more people can get involved in your project and help iron out the bugs.
  • Huge Library- Already built libraries such as SciKit and Theano makes for a good start for a beginner.
  • Integration through all operating systems- It can run on all modern operating systems through the same code. So for example you could build a project in MacOS, Test it in Linux and upload it through Windows.

Conclusion

In the end, it’s all about personal preference, some people prefer other programming languages for their projects, some people prefer Python. C++/Java can also be used for Machine Learning but it’s the simplicity of Python that makes it the most popular language for Machine Learning.The integration, huge number of libraries and an active community are a huge plus if you’re a beginner trying to get into Machine Learning, Python is a great programming language to kick start and explore the vast capabilities Machine Learning has to offer. It is an extremely accessible language to learn and begin scripting in, important for people coming from non-software backgrounds.

Now that you’re well versed with the benefits that Python offers, it’s time you get yourself started with it. Why not come by and check out the Python courses offered by Coding Ninjas?  We also offer courses on Machine Learning to ensure you’re on the correct path right from the start.

Everything you need to know about website personalization



 

Everyone likes things curated ‘exclusively’ to your website’s users liking is what website personalization is. It denotes the process of creating, curating, and delivering tailor-made experiences for your customers/visitors. So, instead of creating an all-encompassing experience for your entire customer base, you’ll be creating a unique experience for each of your user segment, based on their unique tastes and preferences.

The benefit?

Your customers will feel like you care for them and their individual needs. Not only will their satisfaction quotient increase but you will also gain their loyalty. Also, it will boost your customer engagement to a great extent.

But what are the different types of web personalization?

There are primarily three different kinds of web personalization:

Navigational personalization –

Navigational personalization is a method that leverages a consumer’s browsing behaviour and purchase history. So, by understanding these two patterns, you can easily customize the online experience for your consumers, more precisely, how they navigate around in your website. For instance, you host an online shopping website, and a certain potential customer is eying a particular dress but due to some reason, he/she leaves the platform without buying it. Now that you know that the customer likes that dress, maybe you can minimize its price or provide some discount offer on the dress and prioritize the dress in the recommendation engine in a way that it appears on the forefront. So, the next time the customer visits your site, the chances of him/her buying that dress will increase.

Predictive recommendation –

While shopping on an online portal, you must have come across lines such as “If you like this you might also like this…” or “Customers who brought this…”. Such tags are extremely common on online platforms nowadays. While browsing such lines persuade you to check out similar items on a particular platform so you know you have numerous choices. This is your personalized recommendation engine that predicts your preference pattern and curates specific buying suggestions for you.

Contextual messaging –

Contextual messaging is a method where marketers customize messages for their customers/potential customers based on an array of factors including location, preference pattern, buying behaviour, opening behaviour, to name a few. This allows them to create such messages and emails that capture their consumers’ interests and address their pain points with much higher relevance.

Now that you know the tidbits of web personalization, let’s look at the ways you can create an awesome web personalization strategy!

1. Extract behavioural data and put it to good use!

It is a really frustrating experience for consumers when they find nothing suiting their interests and needs on an online platform. However, you can prevent this from happening by tracking the consumer browsing behaviour, their search history, their preference patterns, and so on. These little cues will not only help you understand your customer segments but they will also help you create the perfect ads and marketing campaigns to best suit their needs. Amazon’s recommendation engine is an excellent example of leveraging behavioural data.

2. Location-based personalization is the way to go.

Another very important way of curating a personalized experience for your niche audience/consumers is through location-based personalization. This is because the needs of consumers vary from location to location. For instance, a consumer residing in a cold country will not be looking for a pair of shorts but rather a warm jacket. Similarly, a resident of sunny California will not be looking for a jacket but rather a pair of cool shorts. You get the drift right? So, your ad campaigns and marketing techniques must be well thought of according to the location of your consumers.

3. Personalized recommendation lists are a hit!

You know what’d attract your potential consumers/audience the most? If you created a website that spoke to them at an individual level and not on a general line. To create personalized recommendation lists, it is first essential to identify your buyer personas. Once you do that, you can develop highly curated and customized online experience for your customers, so much so that it might even transform visiting customers into buying customers!

By implementing these tactics, you can offer a great online experience to your consumers. After all, a satisfied customer is a happy customer. If you go to various lengths to show your customers that you care for them, they will always be back for more. Smart move to grow your business, right?

Don’t wait, start working on it!

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

 

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

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

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

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

1. Math is the real deal.

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

2. Analyzing data is a toughie.

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

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

3. The eternal dilemma — which language to choose?

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

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

4. How to choose the right framework?

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

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

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

6. Which course to choose?

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

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

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

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

Happy Coding!

Everything you need to know about Node.JS

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

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

According to node.js.org,

Source

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

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

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

Node.js: History

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

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

Features of Node.js

Can run JavaScript externally

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

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

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

Speedy and efficient

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

Advantages

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

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

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

Top programming experts to follow in 2019

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

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

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

1. Jeff Atwood (@codinghorror)

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

2. John Resig (@jeresig)

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

3. Bryan O’Sullivan (@bos31337)

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

4. Rasmus Lerdorf (@rasmus)

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

5. K. Scott Allen (@OdeToCode)

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

6. Daniel Ratcliffe (@dantwohundred)

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

7. Tracy Chou (@triketora)

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

8. Ashe Dryden (@ashedryden)

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

9. Amanda Rosseau (@malwareunicorn)

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

10. Lara Hogan (@lara_hogan)

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

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

Android interview questions for beginners

 

banner

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

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

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

– Linux Kernel
– Android framework
– Android applications
– Libraries

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

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

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

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

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

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

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

 

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

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

Take care of the following things to avoid ANR:

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

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

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

6. Write code to generate a button dynamically.

protected void onCreate(Bundle newInstanceState) {

super.onCreate(newInstanceState);

Button button = new Button(this);

button.setText(“Button”);

setContentView(button);

});

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

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

Types of data supported by AIDL are:

Map
String
List
charSequence
all data types like int, long, char, Boolean.


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

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

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

 

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

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

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