Codecademy Goes to Back to School

alt text

It's that time of the year again. The air is crisper, lattes are spiced with pumpkin-flavor extract, and Codecademy is coming to a campus near you!

Codecademy is taking to the road for a whirl-wind college tour up and down the eastern seaboard. We've had a great time sharing stores from our college fellowship program and spilling the technical details on how we evaluate up to 5,000 code submissions a second (over 25 million a day!)

alt text

So far, we've had a turnout at Brown that would scare any fire marshall and we've stayed up all night to hack with the best and brightest at MIT's blow-out HackMIT event. But we're just getting started, so come join us if we're visiting a campus near you!

Hope to see you soon!


MIT tech talk
10/8 at 7pm
Bldg 5, Room 233

Olin tech talk
10/9 at 7pm
Academic Center 126

Princeton talk
10/11 at 9pm
Code@Night

MIT On campus interviews
10/25
Apply on careerbridge, if interested

Codecademy at HackMIT

A few of us at Codecademy spent the weekend at MIT for HackMIT - a hackathon involving over 1000 college students from around the world. It's been an awesome experience seeing so many coders in one location hacking away at amazing projects.

The atmosphere inspired us to start hacking ourselves. For our hack, we decided to programmatically find the most active Codecademy users at HackMIT and give them some love and swag.

By querying our database for all of the emails of attendees at HackMIT, we were able to find all the Codecademy users in attendance. We then sorted the list of users by points and achievements to find the top 3 most active Codecademy users at HackMIT.

Here is a photo of us with our top HackMIT user - spiltpeasoup!

We were surprised to find out that over 25% of hackers at HackMIT have a Codecademy account! If you are at HackMIT this weekend, stop by and say hi!

Codecademy Site Downtime Friday 9/13

As some of you may have realized, Friday morning at about 10:00am, our site was not operable for 2 hours. We apologize for the inconvenience and wanted to explain to you why this happened.

Our hosting provider, Amazon Web Services (AWS), was having networking issues. This affected our app servers, app load balancer, and redis boxes. Some of you may have noticed a 503 error, which was thrown by our CDN (content delivery network). During these two hours, we are able to restore the site, but because of the networking issues, the site was very slow. At 12:07 Amazon Web Services restored the issue, and the site was back up and running as normal. Because this was a networking issue, no content or progress was lost.

Again we apologize for any inconvenience caused by this downtime. Unfortunately this particular issue was out of our control. We're investigating ways we can add greater redundancy to Codecademy to help ensure we're protected from similar issues in the future.

See what we posted on twitter Friday morning.

Glossary Redesign

We're always asking ourselves how we can help users when they get stuck while working through our courses. I had an idea at a company hackathon that turned into a big project.

For the past few weeks we've been running my idea as an experiment: when certain users write code that returns a common syntax error, we show them a snippet of code from the glossary that's an example of what they were trying to do.

The idea was that people need to see examples of good code before they can learn how to write good code.

In order to do this we had to redo the internals of the glossary to be more dynamic. With that done, another great result has been that we were able to hand over editing privileges to our moderators, who have been thrilled to take ownership of this part of the site and improve the content. They've been doing a good job of cleaning it up and adding to it, and this will be an on-going thing.

The best part of this is that as the moderators improve our glossary, the code suggestion feature will get smarter and show more examples! They come right from the glossary.

The overhaul was also aesthetic; the glossary is now much prettier and easier to read. The typography improved thanks to some expertise from our designer Jason and the code samples now match the color of our code editor.

Go take a look!

codecademy.com/glossary/javascript
codecademy.com/glossary/python
codecademy.com/glossary/ruby
codecademy.com/glossary/html
codecademy.com/glossary/css

Learn Page Redesign

We’ve recently launched our new Learn Page. In case you haven’t noticed, please see it in detail here.

alt text

This redesign was long overdue and we’ve collected many tips and ideas from our community over the past few months. The goals of the new layout were the following:

  • Provide a clearer order and grouping of content, divided between individual languages and goal-driven paths (Web Projects and APIs for now).
  • Suggest a clear starting point for newcomers (Web Fundamentals) placed at the very top of the page.
  • Deliver an indication of progress on all initiated tracks. Notice how the “Explore” button changes into a “Continue” button with corresponding completion percentage on all ongoing courses.
  • Offer a redesign more in line with our brand and existing color scheme.

We hope you like it, and as always please let us know if you have any thoughts or suggestions.

Five Things We're Reading This Week

Education never exists in a vacuum. Here's what we've been reading this week.

Andrew McAffee: What will future jobs look like?

image

"In this TED talk an economist outlines trends in the global job market,
particularly the growing divide between middle class workers who have
and do not have the skills to fully engage in a technology-dominated
future."

Brett, product manager

Don't Blame the Work Force

"This controversial editorial from the New York Times suggests that the skills gap isn't so real, it's that companies simply don't want to pay skilled workers what they are worth."

Douglas, code literacy evangelist

How Caffeine Can Cramp Creativity

coffee

Fascinating read on coffee's relationship to creativity. "I thought I was hardcore, but Balzac takes the cake: 'He pulverized coffee beans into a fine dust and ingested the dry powder on an empty stomach. He described the approach as 'horrible, rather brutal,' to be tried only by men of 'excessive vigor.'”

Zach, co-founder

In Head-Hunting, Big Data May Not Be Such a Big Deal

"Takeaways:

  • Brainteasers are useless
  • GPAs are worthless
  • Consistency == good leadership"

Amjad, lead engineer

Apple: Making a difference, one app at a time

"This new marketing video focuses on people creating apps to solve meaningful problems like remote healthcare and helping children who can't communicate in traditional ways. It underlines the "I'm not a programmer - I just wanted to solve this problem" message that gets to the core of learning to code."

— Brett, product manager

What Language Do You Need to Know?

This is a post by Eric Weinstein, creator of many Codecademy courses and a current student at Hacker School.

There's a lot to learn when it comes to coding. How do you know where to start? Should you learn HTML or JavaScript? What's the difference between Python and Ruby? What are "client-side" and "server-side" languages, "front end" and "back end" and how are they different? Hopefully this quick post will help you choose the language best suited for what you want to do.

To edit webpages

If you're interested in creating a static website or a single webpage, you should start with Web Fundamentals of HTML and CSS. HTML stands for Hyper Text Markup Language and describes the structure of webpages. CSS stands for Cascading Style Sheets, and controls their appearance — for example, the font color or the position of text on the page.

To make them interactive

If you want to give your website behavior—think automatic Twitter updates, your Facebook notifications, or the ability to drag and drop elements of your LinkedIn profile—then you'll want to learn JavaScript and jQuery. JavaScript is a frontend, or "client-side" language which means it runs on the web browser of the person visiting your site. jQuery is a library of specific JavaScript tools designed to make website interaction more awesome.

To store user information

If you want to develop a full-blown web app that lets users log in and saves information for them (such as tweets, Facebook posts, or Codecademy badges), you'll want to learn a backend, or "server-side" language like PHP, Python, Ruby or JavaScript (it's ambidextrous). These languages run on the computer where the website code lives, also called the server. You can accomplish the same things and build the same kinds of projects with each of them, so go ahead and pick your favorite!

Which language will you start with?

Floor Drees: How to Learn by Teaching

This is a guest post from Floor Drees, who is organizing a beginner's course in Python in Vienna, Austria on July 20th.

Floor

Who are you and what are you about?

My name is Floor (yes, really) Drees, and I'm originally from The Netherlands. Currently I work as a tech reporter and developer evangelist in Austria, and make time to organize and coach at Rails Girls events, and co-organize the vienna.rb meetups and PyLadies events on the side.

After learning Rails, why did you decide to pick up Python?

For me, learning doesn't stop when you kind of understand one language. If anything, I learned a lot from looking at Rails and Java code at the same time! The similarities and differences help you get the hang of it.

You're just starting out with this language yourself — why teach it to others?

I'm somewhat confident with HTML, CSS and Rails and I like to share my experience when it comes to learning and teaching programming. I genuinely believe that teaching skyrockets your own learning curve and would encourage everyone to start coaching beginners, even if you feel you are still a beginner.

How did you start organizing coding events?

I tend to challenge myself and my ability to learn quite a bit — when I first thought about tackling Python I soon found myself starting my own PyLadies chapter in Vienna. PyLadies is this great worldwide network that empowers female coders in the Python community.

python

I boldly decided to list a beginners workshop on Meetup.com and then of course needed to come up with a program. After going through the Python track on Codecademy I decided I wasn't going to come up with something more fun to do — with such a great resource around, why not use it?

What can beginners do to get better at coding?

One fun way to better your programming skills is CheckiO, a web-based game where you need to code Python to get to the next level. This startup from the Ukraine lets you to challenge yourself and your friends to write more elegant code in a fun way.

Learning on your own tends to get lonely, so I'd advise anyone to look for user groups in their city. The Python community is very friendly and it shouldn't be a problem to find a mentor who is willing to answer your questions when you need.

Any parting words?

If you happen to be in Vienna next month, stop by our Pyladies event! Contrary to the name, anyone can apply to attend. We invite experienced Python developers to help you out, along with great sponsors and coaches for lightning talks. There will be cookies. And Codecademy stickers. ;)

The NSA, Code Literacy, and You

Whatever we might think of Edward Snowden’s release of classified documents detailing the NSA’s snooping on America’s - well, everyone’s - communications, at least we all now know what’s going on.

Sure, most of us on the coding side of the screen already knew the deal. I haven’t found a programmer who was surprised by the news that our emails, text messages, and phone calls are being logged and stored. If anything, most of them are surprised that the general public seems so shocked. What were people thinking? That Google just gives us services like Gmail for free? We pay for this stuff - not with cash, but with our data.

None of our data may be so interesting in itself, but when it’s combined with everyone else’s it reveals a whole lot of information about us. Using factor analysis and other statistical techniques, big data can identify members of a population who might be about to purchase a new car, trying to have a baby, or even about to change political affiliations. No logic is required; the people and machines analyzing big data sets don’t care about why one set of data points might indicate some other data point; they only care that it does.

As long as corporations from Facebook to Twitter are collecting and using this data, why shouldn’t government get in on the act? Instead of looking for potential car buyers or new mothers, however, government is looking for potential terrorists. Or at least that’s what they say. In reality, the sample size of known terrorists is so small that it’s essentially impossible to draw statistical conclusions about their data. The only way to know what they’re saying is to listen to what they’re saying. Luckily (or terrifyingly, depending on your perspective) voice calls can be scanned for keywords as easily as a text document. The conversation can then be parsed by humans to determine whether there’s a threat.

The big news here, if any, is that now this stuff is public knowledge. Most of my friends and colleagues knew about government surveillance of digital communications, already. Some former students had even told me about installing switches at cell phone companies to be used for government snooping. Others helped write the database architecture for facilities that store voicemail long after it has been “deleted” by its recipients. Most of them were relieved that the information they were afraid to leak themselves is finally out.

But they aren’t the only ones who had foreknowledge of this recent leak. Pretty much anybody who knows how code works was prepared for this sort of revelation. Because becoming code fluent is about more than simply knowing enough javascript to get a job. It’s a way to become familiar with the operating system on which the human drama is playing itself out.

Moreover, the better you understand the programs and platforms you use - and the permanence of almost everything you do online - the better equipped you will be to choose what the data watchers know about you, and what they don’t.

May the digitally illiterate proceed at their own risk. Once again, you have been warned.

Three Ways Coding Kickstarts Your Career

Whether it's moving up in your job or getting a new one entirely, there's always a way to put code to work for you. Here are three ways users have applied their new skillset to take them where they want to go.

1. Find a new job

Liz was laid off from her administrative position this past November, and at 55 — without a college degree — she needed a way to make her resume stand a chance. Key web coding skills such as JavaScript, jQuery, Ruby, HTML/CSS, and Python helped shoot her to the head of the queue. What else? "My daily hard work on Codecademy gave me a feeling of competence, which helped me to be confident and knowledgeable in my interviews."

Find out how she did it

2. Land a promotion

Tim's office at the University of York uses Google Forms to automate housing transfer requests from thousands of students. After a few lessons he used JavaScript to write a Google Apps Script that sends a confirmation email as well, and that project slowly grew into building an entire dashboard to manage the transfer process from start to finish. The result? A nice promotion to the Data Analysis team, and a big boost of confidence.

Read his story

3. Become a developer

While working in the music industry, Jennifer started dabbling in web development and noticed that the hours seemed to pass quicker than before. She decided to move from a full-time position in music to working as an intern and studying in the evenings — but, she says, "this really accelerated my learning. During the day, I continued to improve my HTML and CSS skills while I worked on the Codecademy JavaScript and jQuery coursework in the evenings." Slowly but surely she became a full-time staff developer and now works at a SaaS startup.

Get her tips