Guest Author

Author
Guest Author

Blogs
With years spent in HR trenches, Guest is passionate about what makes organizations tick—people. Their writing dives deep into behavioral interviews, talent strategy, and employee experience.
author’s Articles

Insights & Stories by Guest Author

Whether you're building your first team or scaling culture across regions, Guest Author's articles offer human-first insights rooted in real practice.
Clear all
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Filter
Filter

Diversity And Inclusion in 2023: 5 Essentials Rules To Follow

Enough data is in to inform us that diversity and inclusion are not only worthwhile societal imperatives but also make for good practical business sense. D&I still matter in the workplace in 2023.

While knowing what to strive for is great, it’s only half the battle. We have to create and implement strategies that ensure we can effectively reach our objectives.

In this short article, we’ll take a look at what exactly diversity and inclusion in the workplace means, why it’s important, and how we can make the goal a reality.

What is D&I and why is it important?

When we talk about D&I, we’re talking about much more than gender, ethnicity, or sexual orientation. A D&I approach seeks to have the makeup of the company—the employees, spokespersons, and representatives—more accurately reflect the makeup of the customer base and society at large that the company works within. This includes the diversity of thought, worldview, and priorities as well as other characteristics people identify with such as race, gender, age, etc.

Following—or leading—the trend to increase diversity and inclusion in the workplace should not be considered as an act of charity or compliance with yet another regulation on business. Rather, companies should seek to increase the level of diversity and inclusion in the workplace because it increases their market share and improves their bottom line. When D&I in the workplace lead to demonstrable positive results, that’s when we know it has been done right and that it’s sustainable.


Recommended ebook: 10-Step Diversity Hiring Handbook


Diversity and inclusion: 5 rules to follow

1 - Expand the talent pool

It stands to reason that when a company limits the talent pool from which they hire, they stand a much lower chance of getting the best people to fill the positions needed.

If a recruiter notices a lack of diversity in the applications they receive, this should prompt them to reexamine the job description and/or the platforms used to advertise the position.

Diversity and inclusion don’t start at the hiring process. It should be in place well before that: at the conception of the position and the communication of the job being offered.

2 - Expand the perspectives

It makes little sense to strive for diversity and inclusion and not take advantage of the benefits that come with it. A diverse workforce—one where different thought processes and different ways to look at problems or challenges are celebrated and encouraged—can help a company stay innovative and current in a fast-changing economic landscape.

This is one of the main reasons why diversity is not enough. It must come with inclusion. This means that the diversity in a company’s workforce must be empowered to express its diversity.

Companies that are successful in increasing D&I in the workplace are always flexible companies. They do not strive to impose their way of doing things on their employees, but rather they strive to make those processes better and more effective by remaining open to the new perspectives and thought processes that come with having a diverse workforce.

3 - Be a company we can identify with

Today’s consumer is looking for far more than simply purchasing a product or service. Today’s consumer demands an experience. It is no longer enough to simply provide the right product at the right price. Today’s consumer wants to buy from a company they are happy to identify with. Their purchases and the companies they are associated with form an integral part of their identity. Today’s consumer expresses him or herself through their purchases and through brand loyalty.

It is important that your company reflects the values of your customer and that your company can be one that your customer can identify with.

4 - Inclusion happens at the decision-making level

D&I is diversity and inclusion. Inclusion means giving people a voice, giving them a say in defining company strategy, and empowering them to take the right actions to steer the company where it wants to go.

While having a diverse workforce on the ground level is commendable, it does not mean that the company is diverse and that it benefits from inclusion. For D&I to be in effect and in order for the company to reap the rewards of D&I, there must be diversity and inclusion at the upper managerial and decision-making levels.


Recommended read: Embracing DE&I At The Workplace – #1 Back To The Basics


5 - If you’re doing it right, you should see quantifiable results

D&I is good for society, and it’s good for business. Successful implementation of D&I will yield an expanded customer base and an increase in customer loyalty. You will know your company has implemented a successful D&I strategy when you see the positive results.

In a nutshell

Diversity and inclusion are not only important for the betterment of society as a whole, but it’s simply a fact of good business sense. By successfully diversifying your workforce at all levels of the organization, you will be taking an important step towards improving the quality of your workforce, building lasting relationships with your customers, and preparing for changes and fluctuations in the market and in the economic landscape.


This post has been contributed by the team at Lensa.

Diversity and Inclusion: 5 Essential Rules to Follow

Enough data is in to inform us that diversity and inclusion are not only worthwhile societal imperatives but also make for good practical business sense. D&I still matter in the workplace in 2023.

While knowing what to strive for is great, it’s only half the battle. We have to create and implement strategies that ensure we can effectively reach our objectives.

In this short article, we’ll take a look at what exactly diversity and inclusion in the workplace means, why it’s important, and how we can make the goal a reality.

What is D&I and why is it important?

When we talk about D&I, we’re talking about much more than gender, ethnicity, or sexual orientation. A D&I approach seeks to have the makeup of the company - the employees, spokespersons, and representatives - more accurately reflect the makeup of the customer base and society at large that the company works within. This includes the diversity of thought, worldview, and priorities as well as other characteristics people identify with such as race, gender, age, etc.

Following - or leading - the trend to increase diversity and inclusion in the workplace should not be considered as an act of charity or compliance with yet another regulation on business. Rather, companies should seek to increase the level of diversity and inclusion in the workplace because it increases their market share and improves their bottom line. When D&I in the workplace lead to demonstrable positive results, that’s when we know it has been done right and that it’s sustainable.
Recommended ebook: 10-Step Diversity Hiring Handbook
Diversity and inclusion: 5 rules to follow

1 - Expand the talent pool

It stands to reason that when a company limits the talent pool from which they hire, they stand a much lower chance of getting the best people to fill the positions needed.

If a recruiter notices a lack of diversity in the applications they receive, this should prompt them to reexamine the job description and/or the platforms used to advertise the position.

Diversity and inclusion don’t start at the hiring process. It should be in place well before that: at the conception of the position and the communication of the job being offered.

2 - Expand the perspectives

It makes little sense to strive for diversity and inclusion and not take advantage of the benefits that come with it. A diverse workforce - one where different thought processes and different ways to look at problems or challenges are celebrated and encouraged - can help a company stay innovative and current in a fast-changing economic landscape.

This is one of the main reasons why diversity is not enough. It must come with inclusion. This means that the diversity in a company’s workforce must be empowered to express its diversity.

Companies that are successful in increasing D&I in the workplace are always flexible companies. They do not strive to impose their way of doing things on their employees, but rather they strive to make those processes better and more effective by remaining open to the new perspectives and thought processes that come with having a diverse workforce.

3 - Be a company we can identify with

Today’s consumer is looking for far more than simply purchasing a product or service. Today’s consumer demands an experience. It is no longer enough to simply provide the right product at the right price. Today’s consumer wants to buy from a company they are happy to identify with. Their purchases and the companies they are associated with form an integral part of their identity. Today’s consumer expresses him or herself through their purchases and through brand loyalty.

It is important that your company reflects the values of your customer and that your company can be one that your customer can identify with.

4 - Inclusion happens at the decision-making level

D&I is diversity and inclusion. Inclusion means giving people a voice, giving them a say in defining company strategy, and empowering them to take the right actions to steer the company where it wants to go.

While having a diverse workforce on the ground level is commendable, it does not mean that the company is diverse and that it benefits from inclusion. For D&I to be in effect and in order for the company to reap the rewards of D&I, there must be diversity and inclusion at the upper managerial and decision-making levels.

Recommended read: Embracing DE&I At The Workplace – #1 Back To The Basics


5 - If you’re doing it right, you should see quantifiable results

D&I is good for society, and it’s good for business. Successful implementation of D&I will yield an expanded customer base and an increase in customer loyalty. You will know your company has implemented a successful D&I strategy when you see the positive results.

In a nutshell

Diversity and inclusion are not only important for the betterment of society as a whole, but it’s simply a fact of good business sense. By successfully diversifying your workforce at all levels of the organization, you will be taking an important step towards improving the quality of your workforce, building lasting relationships with your customers, and preparing for changes and fluctuations in the market and in the economic landscape.
This post has been contributed by the team at Lensa.

Hackathon Survival Guide: What You Need To Know Going Into A Hackathon

There’s nothing quite like walking into a campus cafeteria, a large conference room, or endless halls stacked together for a weekend-long hackathon. Developers of all skill levels, with various backgrounds in countless programming languages and areas of expertise, all coming together for one purpose: to build something new. This is exactly what we talked about in Episode 3 of the Tech Stack Playbook, Are Hackathons Just for the Pros?

In a world of constant innovation, hackathons are a breath of fresh air for those who dare to create what hasn’t been created, to try something new and different, and to break out of one’s shell and push the envelope of one’s skills. Events like these are so important for developers, whether you are a beginner or an advanced software engineer, hackathons are the great equalizer and skill democratizer.

You can form a team with developers who have different skills than you, who have worked or are working at companies you might want to work at one day, or who may have expertise in the areas you hope to have. You might end up learning more from the competition in the span of 48 hours than a boot camp, course, or year of schooling. The lessons you gain, both in software development, entrepreneurship, and in working as a team will pay dividends down the road.

When you’re able to learn cyclically — try, learn, fail, learn, succeed, learn, repeat — over and over again, you expose yourself to the gamut of what technology enables: a willingness to try first and learn each step of the way.

Things to know going into a hackathon

There can be quite a lot to think about going to a hackathon…some of the questions that can be racing through your head could be…

  • Who are the judges?
  • Who are the partners?
  • What are the time limits?
  • What are the restraints/limitations/constraints/requirements?
  • Where is the hackathon?
  • What type of hackathon will I be participating in?
  • How do I form a team?

And on and on…

There is an endless amount of questions that can be swirling through our heads, but the main questions to ask ourselves is, will I be attending a Development-Focused Hackathon or a Proof-of-Concept Hackathon. Each comes with its specific requirements, needs, and processes, which are vital to know how to crush each type of hackathon.

What we at HackerEarth learnt by conducting 200 remote hackathons in 2020! Read here…

While this is not an inclusive list of everything you will need to know for a hackathon, it is hopefully a helpful guide on what to know going into both types of hackathons so you can crush it and make an impact!

Top 3 languages to know for a development-focused hackathon

I define product-focused hackathons as ones where you will have to build something technically unique with code that will be evaluated by various merits, from how accurate the data model is, how advanced the computation is, or how novel the use-case is. This is when you will be building a full-stack application that must accomplish a specific goal or set of goals and be presentable for the judges to review and possibly use. You will want to put on your creative developer hats and consider what could X industry benefit from ABC partners’ technology or what use-case could I implement ABC partners’ technology for? Take time in the beginning to build up an exciting, important, and relevant technology system that you can show off.

Languages for development-focused hackathons

So what would be helpful to know for a hackathon like this?

#1. Git & GitHub — these skills, whether you are working with a team in real-time or working virtually, will help you and your team stay in sync across all changes to the repository and help you collaborate more efficiently, quickly, and accurately.

If you’re working with a global team at a virtual hackathon, how will you be able to keep up with code changes throughout the event, especially if you and your team are in different parts of the world and in different time zones? GitHub will be your best friend, linking your teammates together as if you were in the same room. You don’t need to be a git expert, but knowing how to do pull requests, branch your code, and code reviews, will be crucial.

#2. A front-end framework like React, Angular, Vue — knowing how to build a fully-packaged application where everything is packaged and compiled for you is key. React, for example, is amazing for this because you’re able to run code from a startup script, build a package and deploy that on the cloud, like AWS, and there are so many benefits from knowing React.

Knowing this front-end framework because now you can operationalize your code, you don’t have to have different repositories and codebases connected together in pieces. React will let you put all of your code together and bundle it up seamlessly, which is pretty incredible as an advancement of progressive web applications and making software for the web.

There is also an immense amount of documentation around front-end frameworks like React, as well as YouTube videos, Medium blog posts, and StackOverflow forum posts about React as well. You will never run out of resources to pull from, and having a very well-documented front-end framework like React that most developers will be knowledgeable about will help to make the hackathon experience as seamless across your team as possible. There are also so many great resources, like TeamTreehouse, that provide quick and efficient trainings to help you jump start your React/front-end development skills in no time.

#3. A back-end language like AWS (cloud services), Node.JS or TypeScript (local server), Python (algorithmic code) — will allow you to work with data, endpoints, and build the logic backbone of your software application.

Perhaps you want to be able to predict data in the future or visualize some sort of information as it comes in. Your back-end language or back-end services will be vital for helping support the front-end build of the site.

SUBSCRIBE to the HackerEarth blog and enrich your monthly reading with our free e-newsletter – Fresh, insightful and awesome articles straight into your inbox from around the tech recruiting world!

Top 3 tools to know for a proof-of-concept hackathon

This type of hackathon is a bit different than a development-focused one because here, the goal is to mission and vision your way to success.

#1. A design tool like Figma, Sketch, or Adobe XD — knowing how to wireframe and build out the UI/UX (user interface/experience) of the user journey throughout the software is a powerful skill. Even more powerful is being able to build out app wireframe examples in a hackathon with a limited amount of time and resources to build.

By creating mockups, this is critical for sharing this with the judges who want to see what you have visioned and where you want to go. Mockups help to make the software real and sell your vision to an external audience. Design skill sets are so helpful in places like this.

Tools needed for a proof-of-concept hackathon

#2. Knowing a presentation software like Google Slides, PowerPoint, or Keynote — having pretty savvy presentation skills will help to sell your mission and vision even more. Google Slides is often the default for sharing presentations, especially with judges.

#3. A front-end framework like React, Angular, Vue — at least being able to build out a front-end mockup will help to impress them with your vision of what you have built so far and where you can scale this idea. Judges are also making judgments about your ability to carry this forward, so you’ll want to make sure you can show some development skills, even if it isn’t required, because it will add credibility to your vision, beyond stand-out designs and visuals.

All it takes is one, or two, solid steps forward…

Everything is achievable with the right plan. It just takes the right steps and some courage to push past the imposter syndrome, the self-doubt you might be feeling, or the uneasiness of “not being good enough just yet.”

Sometimes being thrown into the thick of it is how we end up learning the most, and this is what makes technology and programming so special — everyone is still trying to figure out the answer too. If everyone had all of the answers, software engineering wouldn’t be a career because everything would be built already.

What if you could be the key to unlocking the solution to a big industry-wide problem? What if you could be the needed ingredients to a team that wants to help the world with a specific use case?

The only way to find out what’s out there is to sign up for a hackathon and get started testing the limits of your personal innovation engine. The future is there for those who dare to believe, dream, and build. I hope you take those first steps and go on to build transformative tech for your communities and the world!

Let’s digitize the future!

Check out the full list of upcoming hackathons at HackerEarth here!

Brian Hough, Airblock

This post has been contributed by Brian Hough, Chief Technology Officer and Co-Founder of Airblock Technologies, AWSCommunity Builder, Host of Tech Stack Playbook, and five-time Global Hackathon Winner.

As someone who’s very active on the hackathon scene, Brian knows a thing or two about the arsenal of tools and tricks developers need in order to win one. Hope you find his tips handy!

Pros And Cons Of Hiring Full-Stack Developers Over Front Or Back-End Developers

Experienced front-end, back-end, or a full-stack software engineer are in high demand. According to stats from the US Bureau of Labor Statistics, by 2029, software engineers’ employment will surge by 22%.

Today, 54% of the companies claim that they are short of relevant talent, as reported by ManPower in ‘What Workers Want.’ This gap may take a while to narrow down. In the meanwhile, the demand and prices for developers have gone up.

But before hiring a software engineer to build your product, you should clearly understand which tech specialists you need for your project. Let’s start with the basics.

The Three Main Layers of Software Development

Before looking for an engineer for your project, you should understand a common structure of the software development process. There are three layers of software development overlap. And here is a brief explanation of each:

Front-end

The front-end is where the users interact with the site or app. A good front-end means that a website or an app is easy to navigate and has a user-friendly and appealing design. That is why companies pay special attention to this lawyer, as it directly influences customer experience and product success.

The colors, graphics, and optimizations are vital for user experience. The front-end, in a way, represents your brand and communicates to the audience. Successful communication would build trust among users and boost the retention rate.

Back-end

The back-end is the server-side of a website, mobile app, or web app. Back-end developers are responsible for developing web services and APIs.

You can compare the back-end to the ‘behind-the-scenes’ crew of a movie, as back-end developers do the work that no one can see on the website or an app, but they write a code that makes your project alive.

Suggested Reading: The Difference Between Back-End, Front-End, and Full-Stack Developers

Database layer

The third layer is the database layer. The developers for this make sure that the DBMS can manage a vast amount of data. The database programmers look over the modification and editing of databases, design and develop new databases, and troubleshoot the existing database issues.

As you can see, to build a digital product, you need an entire software development team. However, some companies prefer having a full-stack developer who can build both front-end and back-end layers. But is having one specialist for all technical tasks the best option?

Here are some pros and cons of hiring full-stackdevelopers we explain to our clients.

Pros and cons of hiring full-stack developers

It is an obvious decision for many organizations to save costs and hire one experienced developer for front-end and back-end tasks. But others prefer having separate specialists responsible for different layers. Before choosing the right model for your business, learn more about the advantages and disadvantages of hiring a full-stack developer instead of two engineers.

Pros

Why do companies hire full-stack developers?

Talented developers can easily manage the entire stack and create your product from scratch. They can handle it from a 360-degree perspective if they take a holistic approach.

  • Cost-effectiveness

Full-stack developers are easy on your budget. Instead of looking for many developers, you can hire one good full-stack developer to shape your project. That is especially beneficial if you’re starting your project and are tight on the budget. Moreover, if you hire a software engineer from a country with a lower living costs than yours, you can save even more money.

  • Flexibility

Full-stack developers are more flexible. They can deal with the whole design structure, work at any level of the project, and deliver quality results. Full-stack developers also optimize and maintain existing systems. They see the bigger picture and are well-versed with what users want.

Most of the full-stack engineers are acquainted with the latest advancements and technologies. They can craft the best responsive website and input smart features and enhanced user experience.

  • Wide range of technology skills

Full-stack developers are more likely to deliver long-term solutions that ensure the optimal functioning of your project. They are familiar with all software development layers and can identify and troubleshoot all the problems efficiently.

While front-end developers create the final picture that users can interact with, and back-end developers code the website and link it to the content management systems, full-stack engineers can handle both processes.

Full-stack engineers can also work with the existing project, add new features and improve your code. This flexibility of different tech skills is highly beneficial for any tech project.

  • Management skills

An experienced full-stack developer can effectively lead a team of developers (not always, but as usual). If you already have some junior software engineers, you can hire a full-stack developer to help them and control all the processes.

  • Less professional burnout

A full-stack developer has more than one responsibility and a wide variety of different tasks. This variation serves as a relief from daily routine. Since they handle the entire project, they can schedule the tasks simultaneously and switch between different processes to avoid burning out.

Cons

While it might be a tempting thought just to hire a full-stack developer to do it all, it comes with its own set of cons.

  • Slower development process

A full-stack developer is still a one-person, no matter how many different tasks this specialist can cover. You cannot expect a single person to carry out all the processes with the same speed as two different developers work. If you hire a full-stack engineer, the list of tasks may keep increasing, leading to slower development progress.

  • Limitation to a certain tech stack

Many inexperienced company leaders or people without a tech background think about a full-stack developer as a person who knows everything and can deal with any tech problem. But in fact, full-stack engineers are those who know some technologies from the front-end and some from the back-end. Not necessarily their tech stack matches the project needs in full.

  • Not always in sync with the latest technologies

Software development is a field where you have to be in touch with the latest technology trends. As full-stack engineers specialize in several areas and different skills, it is hard to keep up with innovations and changes in the IT world. Not all developers might be aware of all the new tools and advancements in the market.

  • Lack of clear responsibility zone

Full-stack developers’ tasks often overlap. Even if you have an entire tech team, a full-stack developer must take on much of the workload and often switch between different processes. Sometimes they are confused about their exact role in a project.

  • Motivational challenges

This sad lesson we learned from our own experience. For a period of time, we had only one full-stack developer in our team. It was enough to cover our needs at that moment and it was a cost-effective decision. What we didn’t realize back then was that even developers are social creatures. 🙂 We lost our developer simply because he missed having a team around with whom he could discuss work-related questions and solve challenging tasks, missed the feeling of competition and professional growth which is easier to notice when comparing your success to others.

A checklist for hiring a software developer

If you have analyzed all the pros and cons above and decided to look for a full-stack engineer, here is a list of tips that can help you in your hiring process.

The right developer will possess relevant skill sets for the job. Here is what you need to look for.

  • Experience

Often, graduates lack relevant skills. You cannot expect inexperienced candidates to deliver excellent work. In-house talent is not always trained up to the mark. That is why companies have to look far beyond getting the software coders, engineers, and other professionals.

  • Technical skills

As full-stack developers work on the front-end and back-end, they must be well-versed with the basics. So, they must have good commands over front-end languages like HTML, CSS, JavaScript, and back-end ones like Node, PHP, .NET, and more.

Full-stacks must know the basics of database structure too. It involves knowledge of MySQL, MariaDB, MongoDB, and more.

The list of technologies can vary depending on a particular stack. Some main of them are MEAN (MongoDB-ExpressJS-AngularJS-NodeJS), MERN (MongoDB-ExpressJS-ReactJS-NodeJS), LAMP (Linux, Apache, MySQL, PHP), LEMP (Linux, Nginx, MySQL, PHP), and others.


The Challenges In Hiring Full-Stack Developers
It would be helpful to choose a suitable technology for your project first and then look for a developer with the required skills. The developer does not have to be an expert in all three layers, but they must be familiar with them to help you choose the right technology stack for your product.
  • Salary
As we discussed, there is a shortage of software engineers and tech talent all over the world. And it’s getting more and more challenging to hire experts on such competitive markets as the US, UK, most of the countries of Western Europe, especially Netherlands and Germany.Due to this, the value of the offer is quite expensive and has crossed far beyond $100,000. Established companies can afford to hire the top developers, but startups and small businesses simply do not have that kind of budget. The best option for them is to look for offshore programmer and cut down the costs with the outsourcing model.

Summary

If you decide on hiring full-stack developers, make sure you count all pros and cons and clearly understand your project needs. Take your time researching leading technologies on the market and searching for a skilled specialist with the required skills. An experienced full-stack software engineer will take on your product and deliver excellent results.
This insightful article has been contributed by Nikita Voloshin, Co-Founder and Chief Technology Officer at YouTeam Inc. - a YCombinator backed platform which makes it safe for startups to hire offshore vendors and fulfill their short-term hiring needs.

Hiring the right talent to develop a tech project can seem easy, but it's often more complicated than we might think. The folks at YouTeam know about this from both sides as a tech platform that as any product requires constant development, and as a marketplace for hiring developers dealing with client’s requests for engineering talent.

Building your own Lisp Parser Part II

You might remember the Lisp parser we created in the article (Building Your Own Lisp Parser Part I), which is a pre-requisite for this post. You will now see how the buffered input class (UngettableInput in the previous post) can be improved.

The Problems

Although the UngettableInput class works for our Lisp parser, it is highly specific and could break when used in other programs. In this section, I will talk about the problems with the UngettableInput class.1. There's no method for emptying the input buffer.

Implementing a method to empty the buffer was trivial but we didn't need it in the Lisp parser we created earlier so we left it out. We will accomplish this in this post as an ideal input class should provide one.

2. Getting input of a particular kind is not possible.UngettableInput knows only character and word; getting a number via UngettableInput is not possible. As a result, if the user types (+1 2), our program won't work. The reason is there's no space between “(“ and “+” or “1” and “)”.

The Solutions:

This section lists possible solutions to the problems presented above. The code comes in the next section.1. There's no method for emptying the buffer

The solution is really simple; assign an empty string to the buffer. But in the code section, you will notice a different implementation.

Although both work, a good programmer should think out of the box. What happens to the previous buffer content if we just assign an empty string to the buffer? We just lose it. What if the programmer would need it? The solution to this particular problem is simple but it takes a good programmer to even recognize that there is a problem. We have taken this into account in this post and implemented a method to empty the buffer while also returning the previous content.

2. Getting input of a particular kind is not possibleIn other words, there's only getc (for a single character) and getword (group of characters without any whitespace in between). We should implement a method to get an integer and a float at least. You can later try to write methods to parse for other numeric types.

The Code

Try figuring out how to solve these problems before looking at the following BufferedInput class. You could even write some pseudocode.https://gist.github.com/HackerEarthBlog/ed8269f4f12c02c398910e3b54808fb3

Explanation

The code itself is simple, but there is at least one edge case we have taken care of in an ugly way (See the Homework section). The method-by-method explanation follows.getc()

There isn't any change in the logic but we have used a helper method fill_buffer(). fill_buffer() reads more character from stdin if the buffer is empty.

getword()

getword() repeatedly gets a single character and appends it to “w” unless the character returned by getc() is whitespace. Note that the while loop should break only after encountering atleast one character.

In other words, getwords() gets a continuous group of characters delimited by whitespace.

getint()

getint() first skips whitespace. Then a character is read, which serves as the sign (+ or -). In case the sign is not one of + and -, we unget it.

Then we get the first digit of the number. The reason for doing this is that we want to make sure that the word following is a valid number.

Once confirmed, we read characters continuously and append it to num as long as the digit read is a valid digit (in the range 0 to 9). The read num, which is currently a str of digits, is converted to int using the built-in in function.

getfloat()getfloat() works in three steps corresponding to the integer before the decimal point, the decimal point itself, and the digits after the decimal point. All these are concatenated and converted to float using the built-in function.Note that our implementation of getfloat accurately handles x.y, x., x.Please look at the rest of the code and if at any point some part of it is not understandable please let us know in the comments below.

Homework

Now our code is general enough to be called a general purpose buffered input library! Or is it not? No, it's not. There are obvious flaws. Fortunately, they are easy to fix and will be homework for the reader.Our class works only with stdin. Modify it to handle files as well.Sometimes we need to check what the next character in the buffer is, and then unget it depending on what we are trying to do. A better idea is to have a peek method which returns the next character in the buffer without actually reading it.Modify getfloat to handle numbers of the form .x (such as .5, .1, etc.)

Challenge

The getint and getfloat methods get digits and strings, append them, and generate a number which is returned. This is fine but it is slow. As a challenge, implement a version of getint and getfloat such that they generate the number as the user types in the expression. The answer will change as more characters come in. That will be way cooler.!!!

Getting started with Virtual Reality

“There are two kinds of people in this world: Those who think VR will change the world. And, those who haven’t tried VR."

I read this quote somewhere not so long ago. And even while conservatively looking at the scope and scale of the technology, one can easily say that the Virtual Reality experience is exciting to say the least, whether you use a $10 Google Cardboard or a more expensive Oculus Rift or HTC Vive.

Every advancement in computing allows new form factors to emerge which allows us to use the power of computation to create new applications and experiences never seen or felt before. And Virtual Reality is one new form factor which stretches the boundaries of creativity for developers and storytellers.

Within some time any existing game developer can quickly start building applications for VR and for those who haven’t tried their hand on game development or come from non-technical background can learn to develop for VR in no time as well.

What does one need to know to start building for VR?

The Stack:Developing for VR is not much different from game development. Apart from the fact that some additional hardware and software dependencies are required, the basic tools for development do not vary much.Most VR, and even AR, applications require a gaming engine for development, such as Unity3d or Unreal Engine:While these are new tools to learn for developers who do not have much experience in game development, the learning curve is relatively steep for you to start getting comfortable and start building your first application for VR. Many free resources are now also available online to learn.*Quick Tip: Start with Unity3d as it is less complex and a lot of open source knowledge base and resources are available easily.You will also require an appropriate SDK (Software Development Kit) depending on what device you want to build for:Hardware:Although there is a necessary hardware dependency for a VR application, you don’t necessarily need to purchase an expensive device straightaway. When you’re just getting started, a cheaper Google Cardboard can do the job just fine, but it restricts your movement to just 3 DOF (Degrees of Freedom) as opposed to a 6 DOF HTC Vive or Oculus Rift, which allows an immersive room-scale experience.3 DOF means that although you will be able to see in X, Y, Z directions by the motion of your head mounted display (HMD) in the Virtual environment, you wouldn’t be able to move or touch anything. However,, 6 DOF allows for a room-scale experience. While a 6 DOF looks good on the face of it, there are downsides as well. Room-scale VR requires high computation performance with a high-end graphic card and RAM that you probably won’t get from your standard laptops and will require a desktop computer with optimal performance and also at least 6ft × 6ft free space as opposed to 3 DOF that requires just a standard smart phone with an inbuilt gyro (which is inbuilt in most modern smart phones that cost about ₹15,000 or more).Some common devices available in the market today are

Tutorials and Courses:

It can sound a little intimidating in the beginning but actually learning to develop for VR is not all that hard. Once you get a hang of the game engine, one can quickly catch on and there are multiple avenues to explore if you want to learn how to create your VR application:YouTube Tutorials

Here are a few channels that provide good “Getting Started” tutorials for VR:

NurFACEGAMES

MatthewHallberg

Fuseman

Online CoursesA lot of MOOC (massive open online course) courses have come out in the last few months, making it easier to learn and some of them are even free!Most of these courses are short (typically 2–4 weeks). Here are a few of them:
  1. Introduction to Virtual Reality | Udacity (Free)
  2. VR Scenes and Objects | Udacity (Free)
  3. VR Software Development | Udacity (Free)
  4. https://www.coursera.org/learn/augmented-reality/home (Free)
  5. Make Mobile VR Games in Unity with C# for Google Cardboard ($95, there are some discounts available reducing the price to $20–$40)
  6. Cinematic VR Crash Course - Produce Virtual Reality Films (Free)
  7. VR Developer Nanodegree | Udacity (₹9,800/month)

Additional Resources:

And these should be enough to get you started.But if you get stuck, here are some cool applications to follow if you are looking for some inspiration or just want to explore the diversity of the content being generated for VR:SUPERHOT VR

Within

Discovery VR

Job Simulator: the 2050 Archives

Roller Coaster VR attraction - Android Apps on Google Play

Cardboard - Android Apps on Google Play

Google Earth VR

Tilt Brush by Google

Jaunt - Cinematic Virtual Reality - 360° VR video

Pee World VR

To be updated with the space, there are a few media platforms that cover Mixed Reality (VR/AR) exclusively, such as

VR News, Events, and Talent | UploadVR

Road to VR - Virtual Reality News

Inside VR & AR

http://vrtalk.com/forum/

So get started and make some exciting applications.

Register at the UnitedByHCl hackathon
Happy Mixing Reality!!

Happy mixing reality!!

Author:
Pratham Sehgal
Mixed Reality Enthusiast
Previously CoFounder - Trustio Acquired by Slicepay (Exclusive: Student micro-financing startup SlicePay acquires P2P lender Trustio)