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, and even 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.

Monday, September 15, 2014

Student Spotlight: Programming for a Non-Tech Job

Meet Andrew!
Meet Andrew, a recent graduate from Intro to Computer Science who started learning programming from scratch with Udacity. Andrew works in marketing and plans to use his new skills at work to automate tasks, dive into data, and make suggestions to traditional practices based on what he finds.

Below, Andrew shares key takeaways and advice for other programming students:

Use What You Learn

Currently, I work in marketing for a vending service company (or in fast moving consumer goods (FMCG)). My role is a very traditional one and does not contain many tasks that revolve around data or a great deal of digital technology.

As I expand my skill set I hope to spend a greater number of hours analysing data and implementing changes based on that data. There does seem to be a lot of routine tasks that could be automated and a lot of data that just doesn't get analysed. Ultimately, the courses I have taken so far have made me a little more confident in suggesting changes to traditional practices.

Think Computationally

Over the past few months I have definitely learnt about the foundations of Computer Science and how to think computationally. Programming encourages you to solve a task by reducing things into smaller problems and then go through them in a logical manner. This is different to the intuitive and sometimes messy thinking that I use in everyday life.

Ask for Help

These courses have taught me to persevere and to not be stubborn and ask for help. I found the forums on Udacity really helpful and there were plenty of Udacians willing to share their thoughts, ideas, and mistakes. On occasions where other Udacians could not answer a query (right away) I would turn to the Udacity Coaches.

Take Advantage of Coaching

I would encourage all prospective Udacians to enroll in the full course experience where you have access to Coaches during each lesson and your own personal Coach assigned to you. I have always found them to be helpful and knowledgeable and they have a very positive way of helping you to realize how close you are to figuring things out.

Coaches will never tell you the answer but they can always talk you through the code you have written and ask you questions about it. This way you always get the satisfaction of knowing that you solved things by yourself with a little bit of guidance.

Whether you want to start a career in tech, or use programming in a non-tech career, check out Intro to Computer Science!

Friday, September 12, 2014

2 Steps to Land a Job as a Software Developer

Software development jobs are on the rise
Software developer jobs are quickly on the rise and we all want to know how to land a job that pays $93,350 a year on average1. The good news is that whether you are an aspiring or self-taught software developer, a recent college graduate, or looking to switch careers, there is enough room for everyone. Here are two quick steps you can take to not only get your foot in the door but also position yourself as a competitive candidate:
STEP 1 | Work backwards: Target job first
With the abundance of online courses, the toughest call is often in making the right choices that will lead to the dream career. What courses do I take and in what order? When the eye is on the prize – the job – working backwards from available positions to interview preparation to demonstrating and mastering skills can help chart a path. Identifying a reliable source of information and learning that is approved by industry experts would be the ideal way to build towards your desired job. Who can better prepare you for the job than employers themselves? Produced in collaboration with AT&T, Udacity’s industry recognized nanodegrees explore job requirements with hiring managers first, and then guides candidates through the creation of projects.  Current nanodegree offerings include front-end web development with more to come.
STEP 2 | Create a portfolio: Tell your story
“Building a portfolio allowed me to tell stories about how I applied my learning, the experiences I gained, and how I brought an idea to life. I didn’t just list off a series of courses I took during my interviews,” remarks Caroline Sun, an associate business analyst in the IT department at Oliver Wyman. The projects Caroline built during an internship and in her computer science classes provided examples to draw upon when answering behavioral questions during an interview. If you have created a project or are simply working on one now, show it off on Github or add it to the Projects section of your LinkedIn profile.

Equipped with these two guiding principles in your job search toolkit, you can now tackle the challenges that lie ahead for a software developer trying to land a job:
Recent vs. Experienced college graduates
In my years of experience as a career counselor, I have often heard recent college graduates’ woes of not being able to compete against experienced candidates. While unemployment rate for recent computer science college graduates does indeed drop from 8.7% to 4.7% in experienced graduates2, the differentiation lies in more than just years of work experience. You can demonstrate to potential employers that you can do the job. By creating a portfolio of projects that showcase your skills, you can move from recent graduate to the experienced category, improving your chances of landing a job.
Lack of confidence: The impostor syndrome
Without a vetted process to learning, the self-taught software developers often experience the impostor syndrome and are hesitant to acknowledge their skills. A validated source like the nanodegree and formal approach helps provide guidance as well as builds confidence in your learning while providing trust in the material.

While you stay on target to gain necessary skills and demonstrate what you can do, the job outlook for software developers remains very promising. Opportunities in the computer systems design and related services industry are projected to keep increasing at 4% annually compared to 1% for all other industries3. A strong commitment to learning, and a guided path to mastering the necessary skills are what you need to present to potential employers that you can and will do the job.

Salwa Nur Muhammad is the Student Services Manager at Udacity. She works on a team to provide quality coaching support for Udacity students taking online courses and prepares them to enter the workforce in the technology industry. Previously, as a Program Director at the Center for Work and Service at Wellesley College, she provided career counseling to students and recent graduates. Salwa received a master’s degree in Technology, Innovation and Education from Harvard University.

Tuesday, September 9, 2014

Should I Learn Swift instead of Objective C?

Develop for the new Apple Watch with Swift

It's no longer a secret. At today’s media extravaganza, Apple announced new iPhones and Apple Watches.

Three months ago, Apple announced a mammoth release of new beta tools for developers: a new version of its iOS mobile operating system, and a brand new programming language called Swift.

Swift had come as a big surprise. Swift is Apple's first new programming language in decades and is designed to replace the old language, Objective-C.

Why is Swift better than Objective-C? Apple explains it succinctly: "Swift makes it easier than ever for developers to create incredible apps." Furthermore, anything you can do in Objective-C, you can do in Swift. The future of iPhone, iPad, and even Apple Watch app development is clear: Swift.

Udacity is hard at work creating an iOS Developer Nanodegree, and Swift will be taught and used extensively throughout. 

Sign up for updates on the nanodegree and we'll keep you posted on how you can take your Swift and iOS development skills to the next level.

Monday, September 8, 2014

Not Just for Noobs: Refresh Your Programming Skills with Intro to Computer Science

Meet Pack!
Meet Pack Heng, an Executive Search Consultant and a recent Udacity graduate from Intro to Computer Science.
Pack has a Masters degree in Engineering in Electronics and Computer Science, as well as a Postdoc in the Architecture of Digital Systems. In his own words, Pack has had “an international journey as engineer, project manager and business development manager from France, the Netherlands to Australia.”
Pack wanted a refresher on his computer programming skills and took Intro to Computer Science, where his final project impressed the Udacity Coaches so much that we want to share more of his story and study tips:

Study Tip: Use Stack Overflow & Forums

I would suggest that you first find your own way to solve all quizzes and problems. Be curious about how you can improve your code to find an efficient solution - sites such as Stack Overflow come in handy. Discussion forums in the Udacity classroom are active and you should participate in them; you can learn a lot there as well.

Apply Your Skills at Work

What I’ve learned at Udacity allows me to better understand and articulate my clients' needs when they want to hire people with computer science skills.

Find the Resource that Works for Your Learning Needs

What suits me about Udacity is the ability to learn at my own pace. I really like that I can learn skills that are relevant to the job market at an affordable cost. The video lectures are taught by experts and are lively, not boring!
If you need to refresh your basic programming skills, check out Intro to Computer Science, where you’ll learn by doing as you build a web search engine and a social network using Python.

Thursday, September 4, 2014

Why Should You Learn Artificial Intelligence?

What’s the first thing that comes to mind when you think of the term “artificial intelligence?” If you’re a sci-fi junkie like me, you might immediately jump to thoughts of Cyberdyne Technologies or Marvin, the paranoid Android. But in reality, artificial intelligence already plays an active role in our everyday lives.

You may have already recognized it in phone assistants like Siri or Google Now. Or you may have identified AI when playing Chess against a virtual opponent, or when playing more sophisticated motion-tracking games with the Kinect™. But did you know that artificial intelligence is also present in Google Translate and spam blockers?

Studying artificial intelligence opens a world of opportunities. At a basic level, you’ll better understand the systems and tools that you interact with on a daily basis. And if you stick with the subject and study more, you can help create cutting edge AI applications, like the Google Self Driving Car, or IBM’s Watson.

Self-driving cars are just one example of artificial intelligence. 
In the field of artificial intelligence, the possibilities are truly endless. It seems the news is frequently filled with stories like Google’s plan to build quantum processors or crowd-funding efforts for robotic assistants like Jibo.

Studying AI now can prepare you for a job as a software engineer researching neural networks, human-machine interfaces, and quantum artificial intelligence. Or you could work as a software engineer in industry working for companies like Amazon to shopping list recommendation engines or Facebook analyzing and processing big data. You could also work as a hardware engineer developing electronic parking assistants or home assistant robots.

And the truly exciting thing is that the jobs for these types of projects didn’t exist 10 years ago! AI is a field that keeps growing and changing, and the jobs you’re studying for now may evolve into something beyond your imagination by the time to begin work in the field.

So don't wait! You can get started with Intro to Artificial Intelligence, an introductory course taught by artificial intelligence legends Sebastian Thrun and Peter Norvig.