IndyWatch Education Feed Archiver

Go Back:30 Days | 7 Days | 2 Days | 1 Day

IndyWatch Education Feed Today.

Go Forward:1 Day | 2 Days | 7 Days | 30 Days

IndyWatch Education Feed was generated at Community Resources IndyWatch.

Wednesday, 23 August


How To Score A Design Job Youll Actually Love "IndyWatch Feed Education"

8 Things I Wish Someone Told Me About Interviewing

Having been a full-time designer for a few years (plus some time doing freelancing) and after conversing with many fellow designers, I now fully grasp what it takes to land a design job. My experience with finding a job was not perfect. Now I know some of the mistakes I made are more common that I thought.

Its funny how when life isnt going your way, you feel you must be the only one struggling with it. But if you step outside of your bubble, youll realize that your situation is a lot more common than you think.

Design work is competitive. Nobody really talks about how hard it is to get a job, because, frankly, it can be embarrassing to talk about being unemployed or rejected. I have learned from my mistakes. I think you can too. So, let me set up this story for you.

Youre almost done with school. Youre starry-eyed, excited, and probably not prepared for the reality of landing your first design job. You chose graphic design (or something related) as your major because youre creative and its fun! Its way more fun than crunching numbers like your friends who majored in finance or biology. So, its time to start the job search.

And then you experience a rude awakening.

If you are anything like me, you are excited to finish school and motivated to get hired for your first job. At school, they taught you about the fun and exciting things you can do with design. Now youre ready to put your new-found skills to the test!

Then that excitement and motivation slowly wanes as you go through your job search. Countless applications are filed, interviews are had, and then the waiting game starts. Now you are waiting for your hard work to pay off. I went through this, and many other designers have too. Theres always a few that get lucky with an internship that turns into a full-time job or score a job through connection. But for this article, we will forget about those lucky people.

Or maybe you were one of those lucky people. But the job didnt pan out, and now youre back at square one, six months later. You dont have enough experience, so youre in the same boat as the new grads looking for work.

Receiving a rejection for a jobor worse, not hearing back from the company after an interviewcan be soul crushing. When I was at my wits end, after I had filled out over 200 applications, I wish someone gave me the advice that I am giving you: brighten your spirits and bring your expectations back down to earth. Here goes:

1. Confidence. is. key.

The interviewing process is very intimidating. I dont care if you are the...


Leadership Skills for the Future of Work "IndyWatch Feed Education"

Coursera for Business is hosting a webinar, Leadership Skills for the Future of Work, on Thursday, September 7th at 10 am PST.

The world of work is rapidly changing due to technology, globalization, and a new generation of workers. In this changing landscape, the ability to identify and develop capable leaders will be key to business success. However, companies are struggling to see what lies ahead and to help potential leaders develop the skills they will need.

In this webinar, we will discuss:

  • What are soft skills, and which ones are in demand for future leaders
  • Where can L&D leaders find corporate learning programs for leadership development
  • How to measure the ROI of soft skills training


Register here to learn about the latest trends in leadership skills.
If youre interested in Coursera for Business, please contact us.



The post Leadership Skills for the Future of Work appeared first on Coursera Blog.


Get Sheet Done using Google Spreadsheets as your data backend "IndyWatch Feed Education"

If you want to rapidly prototype your next web apps, try using Google Spreadsheets as your data backend.

With a small library I created called get-sheet-done, you can have a free cloud database with GUI editor up and running in less than 5 minutes.

The story behind Get Sheet Done

A while back, I needed to quickly prototype a web app that could display structured data. The catch was that these data had to be frequently edited by a non-technical person.

Since this was a prototype, I was looking for a solution that would give me the most bang for the buck, when taking into account development time and maintenance costs.

I considered several solutions, including using a full backend-as-a-service approach that stored the data as a file in Dropbox. Then I chose a somewhat non-orthodox solution: I stored the data in a Google spreadsheet.

When is a spreadsheet-based database a suitable solution?

Using Google spreadsheets as a database for web applications in not a mainstream solution, and it may or may not be suitable for your next project.

To help you decide whether this is a good option, Ive put together the following list of considerations.

Remember: were talking about a spreadsheet, which works great for structured, tabular data. But doesnt work well for a document / object store.

Other than that, here are some pros and cons to consider:


  • Its free
  • Very easy to set upno need for API keys or complicated SDKs
  • Zero maintenance
  • You get a data editing GUI for free
  • You get write access management for free
  • Can include internal calculations using spreadsheet functions
  • The app that uses the data can be easily upgraded in a later phase to use a real database, as data is exposed as standard JSON
  • Some level of automation can be achieved by using apps-scripts in combination with time-driven triggers
  • It can be combined with Google Forms for data collection


  • No server-side filtering logic to talk about
  • All the data you want to access has to be publicly accessible
  • The entire database is manually-editable, so a human error may break the application. For example, if someone accidentally changes the label of some field, it wont be avail...


How Machines Learn: A Practical Guide "IndyWatch Feed Education"

You may have heard about machine learning from interesting applications like spam filtering, optical character recognition, and computer vision.

Getting started with machine learning is long process that involves going through several resources. There are books for newbies, academic papers, guided exercises, and standalone projects. Its easy to lose track of what you need to learn among all these options.

So in todays post, Ill list seven steps (and 50+ resources) that can help you get started in this exciting field of Computer Science, and ramp up toward becoming a machine learning hero.

Note that this list of resources is not exhaustive and is meant to get you started. There are many more resources around.

1. Get the necessary background knowledge

You might remember from DataCamps Learn Data Science infographic that mathematics and statistics are key to starting machine learning (ML). The foundations might seem quite easy because its just three topics. But dont forget that these are in fact three broad topics.

There are two things that are very important to keep in mind here:

  • First, youll definitely want some further guidance on what exactly you need to cover to get started.
  • Second, these are the foundations of your further learning. Dont be scared to take your time. Get the knowledge on which youll build everything.

The first point is simple: its a good idea to cover linear algebra and statistics. These two are the bare minimum that one should understand. But while youre at it, you should also try to cover topics such as optimization and advanced calculus. They will come in handy when youre getting deeper into ML.

Here are some pointers on where to get started if you are starting from zero:

Statistics is one of the keys to learning ML

If youre more into books, conside...


Is Vanilla JavaScript worth learning? Absolutely. "IndyWatch Feed Education"

The purpose of this post is to emphasize the importance of JavaScript fundamentals for every front-end developer. Im going to tell you why you should have a good knowledge of pure (Vanilla) JavaScript. This means JavaScript without any additional frameworks or libraries.

Ill also mention a couple of resources that helped me to learn these basics.

Another reason behind this post is that many aspiring web developers tend to skip learning core JavaScript concepts such as hoisting, closures, or prototypes. They go straight to the hottest frameworks such as React or Angular 2. Ill show you why this approach is not the most convenient one.

Everybody wants developers with knowledge of ${addTheHotFramework}

So, is there any reason why you should bother learning Vanilla JavaScript?

Its hard to become a strong developer without knowledge of the core of the language itself. Just as you need to understand fundamental principles of the law before you can jump into a particular field of law. This comparison is purely accidental.

I understand that the majority of aspiring web developers want to get hired as soon as possible. I wanted this as well.

It seems much easier to do a crash course on JavaScript basics, jump into some fancy framework, make a ToDo list (let a puppy die), upload it to GitHub, then start looking for a job.

but investing time in Vanilla JavaScript will pay off in the long run

Dont get me wrong here. I am not biased against JavaScript frameworks in any way. Its exactly the opposite. Many of them help you to write more readable and maintainable code. They let you write more abstract code that is often easier to debug.

But the JavaScript ecosystem is evolving pretty fast. New frameworks are being created. New functionalities are being added to the existing ones. And most important, many of todays hottest frameworks will eventually be replaced, such as Angular 1.

In such circumstances, do you still think that knowledge of a particular JavaScript framework is sufficient for a web developer?

Or is it better to understand how the language which all these libraries and frameworks are based on works under the hood?


Tuesday, 22 August


How Recursion Works explained with flowcharts and a video "IndyWatch Feed Education"

Illustration (and all in this article) by Adit Bhargava

In order to understand recursion, one must first understand recursion.

Recursion can be tough to understandespecially for new programmers. In its simplest form, a recursive function is one that calls itself. Let me try to explain with an example.

Imagine you go to open your bedroom door and its locked. Your three-year-old son pops in from around the corner and lets you know he hid the only key in a box. (Just like him, you think.) You're late for work and your really need to get in the room to get your shirt.

You open the box only to find more boxes. Boxes inside of boxes. And you dont know which one has the key! You need to get that shirt soon, so you have to think of a good algorithm to find that key.

There are two main approaches to create an algorithm for this problem: iterative and recursive. Here are both approaches as flow charts:

Which approach seems easier to you?

The first approach uses a while loop. While the pile isnt empty, grab a box and look through it. Heres some JavaScript-inspired pseudocode that shows what is happening. (Pseudocode is written like code, but meant to be more like human speech.)

function look_for_key(main_box) {
let pile = main_box.make_a_pile_to_look_through();
while (pile is not empty) {
box = pile.grab_a_box();
for (item in box) {
if (item.is_a_box()) {
} else if (item.is_a_key()) {
console.log("found the key!")

The second way uses recursion. Remember, recursion is where a function calls itself. Heres the second way in pseudocode.

function look_for_key(box) {
for (item in box) {
if (item.is_a_box()) {
} else if (item.is_a_key()) {
console.log("found the key!")

Both approaches accomplish the same thing. The main purpose for using the recursive approach is that once you understand it, it can be clearer to read. There is actually no performance benefit to using recursion. The iterative approach with loops can sometimes be faster. But many the simplicity of recursion is sometimes preferred.

Also, since a lot of algorithms use recursion, its important to understand how it works....


Best hack to Transform Lives Through Learning "IndyWatch Feed Education"

By Betty Tsan, Director of Talent, Coursera 

Coursera had the unique opportunity to sponsor a hackathon geared towards breaking down the barriers to education for refugee girls. CHIMEHACK 4, which was hosted by CHIME FOR CHANGE, together with Gucci, Facebook, Global Citizen, and Kleiner Perkins Caufield Byers, took place in early June. The hackathon is one of the largest women-focused events of its kind and aims to create tech-driven solutions to gender inequality. More than a dozen Coursera employees participated in the event as issue experts and mentors to the nearly 250 participating hackers.

Coursera employees from around the company volunteering at the hackathon earlier this summer.

This event was especially meaningful to Coursera and our mission; just last year, we set out to provide online education at no cost to refugees around the world through Coursera for Refugees. To date, weve enabled more than 5,000 refugees to have access to quality education, and were just getting started.



High Performance Apps: Multiplexing, Debouncing, System Fonts, and other tricks "IndyWatch Feed Education"

Here are some performance tips for your client-side application that you can start using immediately.

These will boost your apps perceived performance significantly. And most of them only require quick tweaks to your app.

Preload your resources

rel="preload" is a way of letting your browser know that a specific resource is important. This way, your browser will fetch the resource as quickly as possible. Then it will store it locally until it finds the expected reference in the DOM.

Here are some examples of using a link with this attribute:

The as attribute is mandatory here, because it tells the browser what filetype that it is fetching. This way it can interpret the request and add the proper headers. Otherwise, your request would have the incorrect mime/type so your browser wouldnt be able to parse it.

By the way, mime/type is the file type declaration that developers use on the web. This is similar to the file extensions on your desktop operating system. If you have the incorrect mime/type, the browser wont know how to parse the file.

Font files are a bit trickier to preload. Here are some things to keep in mind:

  • crossorigin The W3C requires that font fetches be anonymous. In a nutshell, this means even when the request is coming from the same domain, it will be treated as a cross-origin request.
  • typeThis specifies which format the browser should use when fetching the font.

Also, be sure to only add the first format to your font-face declaration. Preloading multiple font formats is against best practices, is bad UX, and wastes your users bandwidth.

You can read more about preloading here.

Use Operating System-specific fonts

By using system fonts, its possible to emulate your users Operational Systems look and feel. This way, your application has a better chance of looking like a native one, while saving your user the trouble of downloading more resources.

Let's analyze more closely each of these declarations:

  • apple-system: as the name suggests, these target OSX/iOS-related sy...


Social impact through soccer? "IndyWatch Feed Education"

By Leidy Klotz, Associate Professor Of Architecture, Associate Professor Of Civil And Environmental Engineering at the University of Virginia

My course, Sustainability through Soccer Systems Thinking in Action, is a response to a question posed by Socrates:

What if we could one day direct this enthusiasm that we have for soccer towards positive causes for humanity?

Wait, what? No, the ancient Greek philosopher Socrates did not play soccerat least as far as we know. The Socrates who posed our question was Socrates Brasileiro Sampaio de Souza Vieira de Oliveira, the legendary Brazilian soccer player.

The first answer to Socrates question is that we can use soccer stories to align passion for the game with the quest for social impact, tapping into the passion for soccer shared all over the world and channeling it toward social change. Soccer is played and watched in every corner of the world, and therefore affects hundreds of millions of lives. Soccer has caused (Google Honduras Soccer War) and paused (Google Pele Nigeria war) wars. Soccer can certainly help connect us in our quest for social impact.

The second answer to Socrates question is that we can use the system of a soccer game, and the interdependencies within it, as a framework to understand complex social systems and the interdependencies between all of our social impact efforts.

In other words, social impact requires a systems view, and so does soccer. Soccer is a holistic sport; a slight change in one play can affect what follows in unexpected and dramatic ways. Appreciating soccer requires us to go beyond simply analyzing specific moves or plays. Sure Lionel Messi and Cristiano Ronaldo score a lot of goals, but they score even more when they have good teammates and coaches. We must also expand our perspective to appreciate how all of the moves and plays in soccer are strongly interdependent.

As I hope you will see in this course, rea...


Why Arrow Functions and bind in Reacts Render are Problematic "IndyWatch Feed Education"

(Hint: It makes shouldComponentUpdate and PureComponent cranky)

Watch for arrows

In a previous post, I explained how to extract React child components to avoid using bind or arrow functions in render. But I didnt provide a clear demo to show why this is useful.

Heres a quick example.

In this example, Im using an arrow function in render to bind the relevant user ID to each delete button.

On line 35, Im using an arrow function to pass a value to the deleteUser function. Thats a problem.

To see why, check out User.js (click the hamburger icon on the top left to select different files in the example). Im logging to the console each time render is called. Ive declared User as a PureComponent. So User should only re-render when props or state change. But when you click on delete for a user, note that render is called for all User instances.

Heres why: The parent component is passing down an arrow function on props. Arrow functions are reallocated on every render (same story with using bind). So although Ive declared User.js as a PureComponent, the arrow function in Users parent causes the User component to see a new function being sent in on props for all users. So every user re-renders when any delete button is clicked. 


Avoid arrow functions and binds in render. It breaks performance optimizations like shouldComponentUpdate and PureComponent.

What Should I Do Instead?

For contrast, heres an example that doesnt use an arrow function in render.


IndyWatch Education Feed Archiver

Go Back:30 Days | 7 Days | 2 Days | 1 Day

IndyWatch Education Feed Today.

Go Forward:1 Day | 2 Days | 7 Days | 30 Days

IndyWatch Education Feed was generated at Community Resources IndyWatch.

Resource generated at IndyWatch using aliasfeed and rawdog