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.


Tim-and-Eric-Space-Explosions.gif


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.

Thursday, September 25, 2014

4 Tips to Ace Your Online Course

Meet Nick Gustafson, a Udacity data scientist. Nick has combed through all of our data on student behavior in the classroom and student outcomes, and has culled his findings into four simple takeaways to help you finish your course.



Study for an hour every day.

This one is simple. Students who graduate spend about an hour per day, three or four times per week in the classroom. 


Use the mobile app to study wherever you are.

About half of Udacity graduates use Udacity’s mobile app to study on the go. Taking advantage of small moments in the day to catch up on study time makes it easier to stay involved in class. 


Take Quizzes seriously!

Students who graduate Udacity courses tend to spend about the same amount of time working on quizzes as they do watching videos. Practice makes perfect! These graduates are reinforcing the concepts they’ve just learned! 


Try hard, try often, and you’ll succeed!

If you get a quiz wrong the first time around, don’t sweat it. Students who graduated from Udacity’s Intro to Hadoop and MapReduce course pressed the test button on programming quizzes an average of 11 times, and the submit button an average of 2.5 times. With each time you test or submit an answer, you have the opportunity to learn from your mistakes and become a better programmer.

Wednesday, September 24, 2014

Nanodegrees and Beyond

Udacity's mission is democratizing education
At Udacity, our mission is to democratize education, making it accessible and affordable to anyone who wants to get a new job or advance a career. 

The world demand for computing skills is increasing at a historically unprecedented rate with supply unable to keep up, regardless of the best efforts by academia, companies and governments. This phenomenon is not limited to Silicon Valley alone. Technology is transforming every industry, be it food, retail, healthcare or transportation. Companies from Columbus to Cologne and Sao Paolo to Sapporo are hungry for technical talent.

In our effort to bring education to a greater number of professionals, we are excited to have closed a financing round of $35 million with investors from around the globe. The lead investor in this financing is Drive Capital, a fund with a large presence in the American Heartland. Mark Kvamme, founder of Drive Capital, will join our board. We are fortunate to have Bertelsmann in Germany; Recruit in Japan and Valor Capital in Brazil join us to further expand our presence for students around the globe. Cox Enterprises is also participating in this financing. Our partners from the start, technology stalwarts Andreessen Horowitz and Charles River Ventures with Peter Levine and George Zachary complete the round.  

The new investment will mainly be used to double down on our work with nanodegrees, a new type of credential for students to gain skills recognized by employers around the world. In fact, today we are opening our first nanodegree, built with AT&T, to an initial group of students. In time, the program will be open to everyone.

We currently have close to three million enrollments from 119 countries for our classes that
are built with industry leaders like Google, Facebook, AT&T, Cloudera and MongoDB among
others. These classes, available on any device anywhere, come with personalized coaching
and a project to demonstrate mastery of skills -- something no other company does today. We often say at Udacity, we are built by industry for industry.

In many ways, we are still at the start of our journey. With the strong interest and passion for learning we are seeing from students and partners, we are fully committed to bring education to millions of people to help them get jobs and advance their lifelong learning. When a store clerk goes from shelving cans to getting a job in technology, raising his standard of living, because of a Udacity class, we know we are on the right path. As we march towards more of these, we want to thank the Udacity team, our partners, investors and most importantly, our students, for joining us on this audacious journey.



Vish Makhijani
COO

5 New Web Development Courses Open!

We’ve been working hard to build the Front-End Web Developer Nanodegree, and are proud to open five courses for you to build your front-end developer skills!

Front-end developer create the interactive experiences that users love on the web; and fix the ones they don’t. As the bar for creating great user experiences rises, front-end development skills are increasingly in demand. If you’re interested in web development as a career, check out these resources.  

Intro to HTML and CSS

Intro to HTML and CSS - New!

Learn HTML and CSS, the markup languages that are the building blocks of the web, and build your own responsive portfolio site.





JavaScript Basics

JavaScript Basics - New!

Learn JavaScript, the programming language of the web that will allow you to create interactive content. You’ll practice what you learn by building your own interactive resume.





object oriented JavaScript

Object-Oriented JavaScript - New!

Take your JavaScript skills to the next level with object-oriented programming, and write reusable and maintainable code libraries that will make your life easier.





How to use Git and GitHub

How to Use Git and GitHub - New!

Learn version control, a crucial skill for developers, in this course on Git and GitHub. You’ll get set up in GitHub, publish a repository and submit a pull request to a collaborative Create-Your-Own-Adventure story.




Website Performance Optimization

Website Performance Optimization - Upgraded!

Optimize your site for speed in this course by Google, where you’ll learn the details of how mobile and desktop browsers render pages.





See you in class!

Tuesday, September 23, 2014

Changing Careers: Lifelong Learning is Not a Straight Path

Meet Erin!
“It’s rough going from being one of the smartest cocktail waitresses to feeling like the dumbest engineer,” Erin begins. 

My college lab partner, Erin Keller, is remarkable for many reasons. She has shown tremendous courage and determination in switching career tracks from a non-tech field to Electrical and Computer Engineering. Erin’s story is inspiring because it proves to me that while it is not easy to walk away from old dreams to find new pursuits, it is okay to do so. 

Erin originally studied Fashion Design after high school (“I liked to sew,” she explains, “I made some of my own clothes and wanted to have my own label”). After a stint in Long Beach, California, Erin was saving up to become a landlord when she was introduced to KOOP Austin, a non-profit radio station. 

After an unfortunate incident burned down the station, Erin joined the team as a volunteer to help build a new station. “We got new equipment, so we learned to set it up and use it together. I learned about the air chain that all the data goes through before it is sound on the air. I spent time crawling through insulation across rafters running cables through the building. It was very satisfying.” This project and her interactions with the project leader, an engineer, convinced Erin that she wanted to give engineering a shot.  

It was not easy. “I graduated high school seven years before I went back to college. My design degree didn’t use any real math, so I was very rusty,” she says. “I bought a High School Algebra book at Goodwill and worked every problem just to get back in the groove.” 

After many classes at a community college, she was admitted into the prestigious Electrical and Computer Engineering program at the University of Texas. “School makes me feel old a lot of the time,” Erin says. “Programming was especially hard because so many of the youngest students learned it in high school. That just wasn’t offered when I was a teenager. I also don’t have the stamina that I did when I was younger. At eighteen, I could get by on three hours of sleep when I had to, but I can’t think straight without at least six now.” 

We all know that engineering isn’t easy. Having to restart in it is probably even harder. Erin says she persisted through the program because she thought of how many people don’t get the opportunity to start again. “Although it is difficult, at first, to give up on former dreams,” Erin says, “they never really go away.” She joined the university’s women’s chorus and made amazing Halloween costumes every fall. “You will always be you,” she adds, “but your priorities and needs are probably going to change throughout your life. It’s not a betrayal of self to admit that you want to try something new.” 

Erin has interned at Emerson and AMD, two of the world’s largest semiconductor companies and will be working full-time after she graduates this fall. 

I am so proud to work at Udacity because I feel online education has the potential to make career changes and the pursuit for new skills much easier and more readily accessible. If you want to start something new and don’t know how, browse our courses or check out our upcoming nanodegrees. 

Comment below and let us know if you need any advice on how to get started. We’re here to help.

Siya Raj Purohit
Udacity Project Manager

Friday, September 19, 2014

Making Courses: Recording Transparent Hands

Tablet Recording Studio Set Up
A common question we receive from students is about the ‘transparent hand’ in our videos.  When you see someone drawing or coding on the screen but their hand is not obscuring the drawing or text, you are witnessing our patent-pending recording and editing process.

This process was developed to solve a few problems faced when we first started recording courses. 

Our first course, Intro to Artificial Intelligence, was handwritten on a piece of paper. While we liked the personal feel the handwritten videos created, there were a few drawbacks to recording videos in this way for the post-production process. One major issue we ran into was that the writing was often obscured unknowingly by the instructors hand, making the visuals difficult to follow for students.  

When we began developing our second course, Intro to Computer Science with a left-handed instructor Dave Evans who couldn’t help but cover all of his writing while writing, we began looking for a solution.  

Our solution is to record on a tablet rather than paper. By doing this the video team has much more control over the visuals because everything is captured in two ways. First, we record with an overhead camera which is optimized to capture the hand interacting with the tablet.


Only Showing Camera Video
Next, we record with a screencapture of the tablet, which is then overlayed on top of the cameras recording. This allows us to have better control of lighting, graphics, and making sure the students can see everything the instructors write.


Only tablet 1.png
Only Showing Tablet Video
Once the instructor completes recording our editing team takes the two video files and overlays them. We take the screen capture video of the tablet, make the background transparent, then overlay it on top of the camera video. This gives the illusion that the hand is transparent when in actuality we are simply overlaying the tablet screen recording over the instructors’ hand.  


Final Product

Now that you have a better understanding of what happens behind the scene of tablet recording, check out one of our classes and see it in action!

Thursday, September 18, 2014

Front-End Web Development: Freelancing vs. Full Time

front-end developers can work as freelancers or on full time teams
Front-end developers can work as freelancers or on full time teams
Front-end web developers build the user-facing side of websites. Dedicated front-end developers work in a relatively new specialization within web development. Before a few years ago, there were simply web developers. With the rise of the influence of the web, web developers have had to split into two distinct categories: front-end developers who work create user experiences, and back-end developers who build and maintain the servers responsible for serving web content and storing data.

Today, front-end developers work with web designers to create the sublime, interactive experiences that make the web the addictive playground we know and (usually!) love. As the size and influence of the web has expanded, so has the importance of ensuring a website offers users an unforgettable experience.

Like most creative fields, some front-end developers find themselves freelancing - working independently and searching for contract work - while others find themselves working at large companies. Let’s take a look at similarities and differences between them.


Freelance Front-End Developers



Freelance Front-End developers often work with small businesses and individuals who need to create new websites or update the look of existing websites. Job boards like gun.io, elance.com and even craigslist.com are fantastic resources to connect you to clients and secure new work.

With your independence as a freelancer, you’ll also have the opportunity to use whatever fun, new tool or technology you want. Try out the latest and greatest technologies and expand your front-end toolset!

The flip side of freedom is being your own manager, administrative assistant, sales team and accounting department. In addition to developing, you'll put in time managing client relationships and bringing in new work.

As a freelance front-end developer, it is critical that you maintain a detailed portfolio of work. There’s no better way to explain to potential clients that you’re perfect for the job than by showing them what you’re capable of creating. Build a beautiful portfolio and fill it up with websites that you’re proud to share!


Front-End Developers within a Company



Front-end developers who work within companies build great websites together in teams. In order to be successful, team members need excellent communication and organizational skills. You and your team will be using version control software like Git to maintain and organize your code, which means your code will need to follow company standards to make sure other teammates can use it as well.

As part of a company, you’ll be building products that help fulfill your company’s mission. Finding a company with a mission you support will make work more gratifying and fun. You’ll gain intimate knowledge of your product as you shape its future.

Being a part of a large team means that you might need to specialize your web development skills. If you’re working for a company that develops web apps for instance, you’ll find front-end web developers who primarily work with JavaScript. In the same way, some web developers specialize in HTML and CSS because they spend their time focused on laying out and styling websites.

Landing a front-end development job within a company requires building the same kind of portfolio as a freelancer. Build a portfolio, fill it up with your websites and show off your skills!


How to Get Hired



Whatever route you choose, getting hired means keeping 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!

If you want 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.