Tuesday, October 28, 2014

Everything you need to know about workforce education, you learned in Kindergarten

Working in education technology, I hear a lot of lingo and theories in the industry. Popular adjectives for learning currently include: project-based, applied, adaptive, personalized, blended, mastery, competency… I’m guilty of using those terms all the time as well. But what strikes me is that none of this is new. In fact, so much of what we know about learning, early childhood educators have known for years. 
6 things you learned in Kindergarten will take you farther than you think at work!

And education really can no longer end early in our lives in college. As technologies rapidly change, careers change apace. We can’t afford to forget about workforce education and to not embrace lifelong learning. So with the school year in full swing, a quick top 6 reminders that all we need to know about lifelong adult learning, we learned in Kindergarten.

1) Storytime!

There’s a reason why stories are so popular and so powerful in classrooms. They allow children to learn language and concepts within contexts that excite their imagination and matter. Just an early reminder of why applied learning, context, and the power of stories remains just as important when it comes to corporate training. It’s why case studies are used in business schools. And when it came to coding, why I got pulled in by Udacity’s CS101 course where you build your first mini-Google (search engine).

2) I don’t know how to do that...yet

We talk about failing forward, trying new things, and taking risks. Of always being open to learning. With children you can see this innate hunger for learning. It’s their innate “growth mindset.” The baby who will try to grasp an object again and again. My youngest who is learning to walk and starting to pick up language. He doesn’t care that he doesn’t know how, it’s just a matter of keeping at it and when. There is so much that they don’t know how to do…yet. Their innate curiosity keeps them going. And with the right encouragement, we can all tap into our innate curiosity.

2) “But why?"

My son, for a while, drove me crazy with that question as one explanation led to another question. He genuinely was curious. Let’s always strive to nurture curiosity. So much of workforce education focuses on the “how” and that’s limiting. As one student recently reflected"One thing I love about Udacity classes is that they focus as much on the big picture of why to do something, as on how to technically execute something. When you focus only on the HOW, your knowledge is fragile.”

4) We learn; we are not taught 

This was something that really struck me about the amazing Kindergarten teachers we’ve been lucky to have over the years. They are important as “Teachers," but not in the way we think of teachers. They guide, they mentor, they play alongside. They involve other students in co-teaching. They learn and demonstrate learning from the children. 

In and out of the classroom, they take many shapes and sizes. If we only learn from people who have teacher in their title, life would be so limiting! In my career to date, I have been lucky to part of teams from whom I could learn. Most of the true learning in my career has not been when I’ve been overtly taught. 

5) We are all artists (and scientists/writers/engineers/firefighters…)

My daughter is going to grow up to be an inventor/artist/singer/doctor. She does not understand why there are right-brained or left-brained professions — after all, we need our full brain! And as adults, we should remind ourselves that we should not buy into that old canon. Tom Kelley from IDEO has a great story on what it means for innovation. The gist: let’s aspire for our workforce to be smart creatives and allow them to “just try stuff."

6) Playing is learning by doing

Note this is not about just fun. It’s not about finding your passion or purely happiness. Sometimes it’s hard and play can be frustrating. When the block of towers falls, when you can’t get the pipes to line up, it’s good to sweat it out. But play is fundamentally about doing something active. It’s not enough to just watch videos or read a textbook when you want to learn how to code, to just take a tech example. It’s much more effective to play with some code and build your first mobile app to gain those skills. So, why should workforce training be associated with libraries of videos? Let’s get some projects and hands-on-playing-with-play-doh-and-sand-and-paint type of learning going! As professionals, we should remember to play.

Curious to see what employers who worry about talent, or thought leaders in workforce education, would add to this list. Or what any fellow parents with young children have observed at school and at home and at work. To take a cue from my kids, I want to learn more! Comment below or tweet @shen_ed.

Monday, October 27, 2014

Dog Puns and Web Dev Fundamentals

Truly great websites can change the world wide web, and the people outside it. 

Recently, a Front-End Web Developer trailblazer single-handedly sparked a dog pun epidemic in our Mountain View offices with his first nanodegree project, a puppy-specialized website mockup.

Im-paws-ibly cute, no? But enough about BarkMind, PawLocker, Pawstumes and other amazing puppy-oriented products. Who is the man behind the puns? 

Haopei is a self-taught freelance web developer and web entrepreneur hailing from Guyana. When Haopei got his first computer in 2002, he was “amazed at the extended possibilities made available by the internet,” and began teaching himself how websites work. 

He “built some embarrassing stuff along the way,” but stuck with it and eventually taught himself to build sites including SpaceSeek Guyana and SkilledGuyanese. Haopei shares, “SkilledGuyanese, a much needed job website here in Guyana, is built on Google App Engine and with Python, which I learned in Steve Huffman’s Web Development course.” 

Why teach himself? Haopei describes a classic access challenge: “I decided not to attend the (only) university in my country, since I found that the web components being taught were outdated. It’s challenging for any university to keep up its curriculum with the pace of changing web standards, after all. I decided to continue learning online.”

Haopei knows that despite learning web development on his own, he has gaps in his knowledge. He says, “I think most self-taught web dev people, like myself, learn by sporadically searching the web for tutorials, and along the way, we miss out on some important parts.” 

With Udacity, Haopei’s “been able to pick up useful foundational information, regardless of how basic the course or project seems to be” and is “making breakthroughs.” Go Haopei! 

Haopei’s dream job is to be part of a team that builds “useful, value-adding, socially-impactful, world-changing things. Incredible things can happen when skilled, passionate people collaborate on a vision.” 

We cannot wait to see what you do next in the nanodegree and beyond, Haopei!

Tuesday, October 21, 2014

Luca: Designer, Developer, Nanodegree Pioneer

As we get to know our first Front-End Web Developer nanodegree class, we are absolutely inspired by our amazing students, and we can't wait to introduce them to the community

Today, we’d like you to meet Luca!

Luca is a freelance interaction designer based in Milano, Italy, who is “not really interested in becoming a web developer!” 

Instead, Luca enrolled in the nanodegree to learn to prototype his own designs.

Web Dev for Design Prototyping

Luca's sketches and wireframes for a coffee machine
As an interaction designer, Luca says, “I believe that it's impossible to design great products without prototyping and using them to see what doesn't work.” 

While he “used to use software to make mockups and wireframes,” Luca prefers to code simple, responsive prototypes. He finds that the nanodegree is “perfect for [his] goals” because adding HTML, CSS, Git and JavaScript to his skill set will allow him to code interactive prototypes that will give his users better experiences.

Luca’s Rule #1: Write Code Every Day  

We are super impressed with Luca’s projects, and when we asked for the secret to his success, he told us: “I have a new rule: try to do a little every day.” 

Luca recommends reading John Resig’s blog post, “Write Code Every Day,” as well as the Udacity data team’s findings on successful student behavior, if you need a little extra inspiration to make your own daily resolution.

Luca’s Rule #2: Real Life Projects

For Rule #2, Luca draws on advice from Ruby on Rails and Basecamp creator David Heinemeier Hansson. In his blog post, “How Do I Learn to Program?” David shares how he finally *really* learned to program after twenty-plus years of programming.
Check out Luca's first nanodegree project, his own portfolio!
The answer? Learning by doing things he truly cared about, by “programming because I gave a damn about what I was writing and I wanted it done sooner rather than later.” 

Luca echoes, “I apply what I’m learning on my real life projects because when I care about what I do, I put more effort into it.”

Biggest Nanodegree Surprise: The “Why” of Learning

Luca’s biggest nanodegree surprise - so far! - is learning how to learn. 

He says, “I am improving my skills and my knowledge; this I expected. I didn't expect to learn how to learn. In How to use Git and GitHub, Sarah and Caroline use conceptual maps and reflection as learning tools.” 

He adds, “One thing I love about Udacity classes is that they focus as much on the big picture of why to do something, as on how to technically execute something. When you focus only on the HOW, your knowledge is fragile.”

Monday, October 20, 2014

What Are Frameworks and How Do Developers Work with Them?

Front-end developers can work within frameworks or build their own.
Front-end developers can work within frameworks or build their own.
There are multiple solutions for every problem in web development. Do you develop your own solution or do you try to implement someone else’s? Or should you do a bit of both? 

In fact, the field of front-end web development is rife with frameworks, or code toolsets that solve commonly faced problems. 

Frameworks make your life easier by simplifying complex problems so you can focus on finishing your project. Simply import a framework and take advantage of your new tools! Let’s take a look at similarities and differences between front-end developers who primarily build with frameworks and those who build frameworks.

Building within Frameworks

As the web is such a large, complicated and competitive space, there are literally hundreds of different tools and technologies you can use to build websites.

Looking at front-end job postings, you’ll find cryptic lists of frameworks and technologies on top of which websites are built. People build with JavaScript frameworks like AngularJS and BackboneJS. Some websites are built with CSS frameworks like Twitter’s Bootstrap (like Udacity), while others use Zurb’s Foundation 4. Some websites are built with pure CSS, while others rely on CSS preprocessors like SASS and LESS. Some people prefer writing JavaScript but others enjoy the syntactic sugar of CoffeeScript. The list goes on and on.

How do you manage the ever changing landscape of front-end web development tools? Try them out yourself! Follow sites like Hacker News and Tales from the Front-End to stay on top of the latest developments and give them a try! Read documentation, write code and, most importantly, learn, learn, learn.

Contributing to Frameworks

While there are tons of solutions available for you to build almost any kind of website you can think of, sometimes you need to build something that doesn’t exist yet. And for that, you’ll need to create a library of code yourself.

Many front-end developers contribute to open source libraries in order to support the entire community of developers. For instance, developers at Google build AngularJS and Polymer, both of which are freely available to all Front-End developers. Many developers support the front-end community by contributing to open source libraries as well. jQuery, one of the most popular front-end scripting tools, was created by former Mozilla engineer John Resig as an open source project.

Front-End web developers building custom solutions need to be well-rounded in HTML, CSS and JavaScript. Single page web apps especially rely on custom JavaScript solutions to bring an idea to life.

Interestingly enough, while JavaScript is primarily a front-end language, many developers are transferring their skills to back-end proficiency with the rise of JavaScript based servers like NodeJS.

Best Practices for Front-End Developers

Whatever Front-End route you choose, the most effective way to boost your career is to keep up-to-date with new technologies. Experiment! Try any and all front-end technologies! Read documentation, build experiments, learn what works best for your projects and stay ahead in the rapidly evolving landscape of front-end web development!

To build your front end web development skills, check out our Front-End Web Developer nanodegree, where you’ll learn by doing as you build a portfolio recognized by industry employers.

Tuesday, October 14, 2014

Behind the Scenes: Making Courses at Udacity

Students First - that's our motto at Udacity. 

It's the first thing you'll see, painted over an entire wall, as you enter the office. It's the first you'll hear when we debate what we should teach and how we should teach it. It's what drives our passion for crafting your learning experience, and it's what makes our team so special. 

It is a great experience being on a team that truly values the student learning experience and is always trying to learn and expand our pedagogy expertise. This passion we all share shines through in our course development process.

So you may ask, “What goes into a Udacity course?” Here are the four main chapters:


Starting with our first brainstorm for course topics, we keep students first by considering what skills they will need to land or advance their dream job. We develop an outline and discuss the best ways to teach our students the particular topic and how to get them involved through interactions.


We script each lesson as if we were talking directly to the student complete with visual ideas and all!  We collaborate with other course developers and potential students to insure we are on the right track with what students want in how we’re planning the course.


We film the course. We might not get every take just right, but it’s the bloopers that make recording so much fun!


We get the course ready for the site which can include programing feedback or quizzes or preparing a project so our students can have an interactive experience.

This entire process from start to finish is filled with creativity, teamwork, research, and quite a few laughs along the way. After all, if we don’t have fun creating the course, why should we expect our students to enjoy taking the course?

Thursday, October 9, 2014

Sneak Peek: Front-End Web Development Newsletter

With our inaugural class of Front-End Web Developer nanodegree students in the starting blocks, we’re developing extra content to guide and inspire aspiring web developers. We are thrilled to channel some of this extra content into a new monthly Front-End newsletter, which includes front-end best practices, resources, and more!

Check out these resources from our first newsletter, let us know what you’d like to see in future editions, and sign up to receive Front-End newsletters here!

It’s Moving, OMG!
Some of the things you can do with CSS and JavaScript are downright CRAZY! Check out some of these fantastic animations and demos and see if you can decipher some of the quirks and tricks they make use of.

It’s Time to Talk About <time>
HTML5 has added a variety of new tags to give us ways of presenting our content semantically. Check out this approachable guide to HTML5’s time element, and make your visually rich content also semantically rich.

Wait, I Can Do THAT?
Learning JavaScript isn’t just about learning to write code. You also need to be able to read other people’s code. Check out these 5 Common JavaScript Tricks!
Squashing Personal Bubbles
When using inline-block elements, you often want them to be presented right beside each other, but the browser seems to do everything it can to prevent that. Learn to fight whitespace between inline block elements.

Got any tips, tricks or inspiration to share? What do YOU want to see in this newsletter? Tweet us @Udacity with the #frontend hashtag, or just comment to let us know what you think!

We hope to see you for our next issue of this newsletter. If you want in, don’t forget to sign up!

Monday, September 29, 2014

5 Questions Good Web Developers Ask Themselves

I don't always ask myself questions, but when I do, I ask these five.
Front-end web developers have a heck of a job to do. It’s their job to make the internet awesome.

Seriously, you know all of the amazing things that you can do online? Things like upvoting pictures of cute puppies, sharing jealousy-inspiring vacation pictures with all of your friends, changing the world in 140 characters or less, becoming an internet sensation in your underwear or learning how to program a self-driving car could not possibly happen if it weren’t for incredible teams of front-end web developers who make the internet the most awesomest place on Earth (or space!).

But what do those front-end developers do all do all day? What questions do they ask themselves as they shape the landscape of the World Wide Web?

1. Is this going to break?

OK, the internet lies to you. You know how online tutorials and lessons (including Udacity’s) make coding look so easy? You see us type, type, type on screen (no typos, of course), press enter and voila! the code works perfectly. That’s because we’re using video editing technology to skip the part where everything is broken and ohmygod why is this $%^)@*$ script not working now!? (Udacity blooper reels might or might not exist. And they might or might not be filled with words the FCC wouldn’t approve…)

Everything breaks. All the time. Good front-end developers are constantly, constantly, constantly testing their code to make sure everything is working the way it should. Errors and bugs are especially a problem for front-end developers because client-side JavaScript often fails silently, meaning there is no nice, clear error message and the only way you know something went wrong is because, well, something doesn’t look right. HTML and CSS bugs almost never produce errors either. Instead, the page just looks weird and it’s your job to hack and slash your way through the HTML and CSS jungle to find the source of the issue.

Front-end developers save themselves time and frustration by testing their code as often as possible.

2. How can I do this better?

Front-end devs encounter lots of speed bumps as they develop websites with features previously thought impossible. Speed bumps represent unnecessary steps or pauses in workflow. You want to go as fast as possible from point A to point B, but for some silly reason there’s a speed bump in the middle of the road despite the fact that there aren’t any children or other cars within hundreds of miles. So what should you do? Flatten speed bumps.

Front-end engineers frequently work with new technology and custom tools. Unlike the streamlined, polished workflows that they create for users, the process of building websites often involves clunky interfaces and repetitive operations. Write code. Save code. Restart server. Open browser. Navigate to site. Open DevTools. Paste script. Type command. See results. Refresh page. Rinse and repeat thirty times a day. Speed bumps aren’t just frustrating, they lead to lots of wasted time.

Good front-end developers think carefully about their workflows and try to smooth out speed bumps whenever they can. They recognize that a few extra minutes spent automating their work or removing unnecessary steps saves a lot of time and frustration in the long run.

3. How will people use this?

All front-end developers create products specifically made to be consumed by people. Other software engineers, who might find themselves building interfaces between application layers or writing kernal code running in the background, deal with perfectly logical computer interfaces. The interface between human and website offers a unique set of challenges.

As such, front-end developers must constantly ask themselves how people will react to their work. Sure, the button you may have just developed represents the pinnacle of well-written HTML, but will a person want to click on it? That’s a completely different challenge.

As front-end developers make websites come to life, they are forced to step back to consider how people, temperamental and impatient as they are, will react and flow through their work. Human focused fields of study like psychology, behavioral sciences, and design theory come into play as front-end developers try to shape and perfect website experiences.

4. What can I do with this?

There’s a massive landscape of front-end development technologies available. You’ve got AngularJS and BackboneJS if you want your websites to follow an MVC model. You can dive into web components if you want to introduce object-oriented principles to your visual components. CSS frameworks like Bootstrap and Foundation provide much, much more than just grid systems. And of course there’s the mighty jQuery, which makes DOM manipulation easy.

Once they decide to implement a technology for a project, front-end developers experiment, pore through documentation and get in touch with other developers using the technology in order to eke as much as they can out of it. Building a deep understanding of their technology allows front-end developers to not only build awesome sites but also push the limits of what front-end technology can accomplish.

5. What is this new thing?

Technology changes quickly. WHOA! Whoa! I know. Your mind is blown.


The tools behind the web are evolving just as quickly as the websites built with them. Front-end developers have to stay on top of the latest and greatest technology or risk falling behind.

There are many reasons to learn new tech. There’s a good chance it’ll lead to performance boosts for your websites. You may find tools that let you probe into your sites in ways you hadn’t imagined before. You may find tech that simplifies your codebase or your workflow. Or it might open up new opportunities to simply make better websites.

Constantly experimenting with new technologies is the only way to stay current. The good news is that the internet is filled with free resources to help you learn new front-end tools (**cough**Udacity!**cough**). Hear about something cool? Give it a shot because you never know how it may help your career.