Archives for : April2013

Introducing your new profile

Your profile page on Codecademy started as a list of the courses you had taken, but it quickly became overly complex as we expanded the variety of ways to interact with Codecademy and each other.

We’ve recently taken a step back and reworked your profile to better serve its most important purpose – to showcase who you are and what you’ve achieved on Codecademy.

whole_page.jpg846x647

Show who you are

We wanted to make your profile really easy to personalize. You can upload a photo, write about yourself, and share some basic information without leaving the page. To make it easier to share, you can access it at www.codecademy.com/[_your username_].

Show what you’ve accomplished

The old profile, like a report card, emphasized your progress – which courses you still had to do in a track. The new one highlights your accomplishments and contributions. At the moment, completing a track is the biggest accomplishment on Codecademy, so we show the tracks you’ve completed and are working on front and center.

And if you’ve created a course, everybody should know about it, so we spotlight the courses you’ve contributed.

Make it look good!

We’ve cleaned up and streamlined the new profile to make sure that people looking at it are able to get the important information they want. The visual style is also now consistent with the one first introduced in the new learning experience.

How can you get it?

You can opt in now, or wait until Monday at 4:30 PM EST, when we are going to switch it over to everyone. Let us know what you think about it and how we can make the profile best represent all your hard work and learning on Codecademy.

Meet the Moderators!

This is a guest post by our team of moderators. Special thanks to Michael Rochlin, Alex C, Alex J, Nick Edwards, Haley Higgins, Dustin Goodman, Daniel Seymour, boring12345, Giacomo Sorbi and Jacob Andersen. If you see them in the forums, be sure to say hello!

Hello fellow Codecademics!

As you may have noticed, there is a mysterious group of people who frequent the Q&A forums and have a little badge next to their names. We would like to explain who these moderators are and what they do.

cc-mods.png690x544

Back when Codecademy was still in its infancy — before PHP and even before jQuery — we realized that the Q&A forums needed to be managed. Someone needed to be responsible for making sure the community maintained a friendly and helpful atmosphere. Codecademy staff were busy building the amazing site you all know and love, so they reached out to the community for help. The most active, eager, and helpful Codecademics were tasked with making Codecademy even better than it already was, and this small group became “moderators.” The site has since grown, and so has the need for moderators. We are now 20 moderators strong and growing.

So what exactly does a moderator do?

As the name suggests, we moderate the forums. Knowledge-hungry learners post hundreds of new questions and answers every day. It is our job to create a friendly learning environment by removing spam posts and looking out for disruptive users, especially those who use profanity, insults or are just plain mean. We also try to make sure that people are not simply posting working code, because we believe in learning by doing; which is a process that usually involves trial and error. We also sometimes step in to correct people’s posts and show users how to format code snippets.

Moderators are here to provide extra help and answer people’s questions. (In fact, this is what we spend the most time doing.) Each moderator has proven that they can be helpful in answering people’s questions, and we all try our best to provide as much help as we can, to as many people as we can. When you see the “moderator” badge next to our names, you can rely upon that answer to be correct.

Additionally, we are in close contact with the Codecademy staff, especially the Community tag-team of Linda and Karen. We let them know what is going on from a user’s perspective, as well as point out issues that we have noticed across the site. We help to brainstorm on ideas for the future, discuss user reaction to recent changes, and try to provide insight into how Codecademics think.

Here are a few (unofficial) stats about us:

Number: 19 moderators plus Linda, Karen, Eric and Codecademy staff Countries of residence: USA, UK, Belgium, China, Germany, Israel,Italy, Kenya Languages spoken: Chinese, Dutch, American English, Texan English British English, Finnish, French, German, Hebrew, Italian, Russian, Spanish, Swedish Ages: in range(15,99) Programming Experience: Novice to expert

In sum:

We are users passionate about fostering Codecademy’s vivid community.We find it rewarding to contribute and share our knowledge.We enjoy helping fellow users learn how to code – and learning from them.

But most of all, we’re Codecademics just like you!

Building an app? Start here

1. How did you get started learning to code?

I made a ton of failed attempts over a year because I thought “I should” learn to code, but can’t say that I truly wanted to. I was using YouTube videos and even made one attempt on Codecademy previously. GVING was at a point where I absolutely had to learn how to code. I ended up coming back and committing to Codecademy because even on my previous failed attempts I had made the most traction there.

2. What was the most challenging part, and how did you tackle that?

For the first couple of attempts the most challenging part was repetition. I would have days in-between taking classes so I wasn’t able to “really” recall previous lessons.

Being patient, and aware it was going to be hard, was the first step in tackling it. I was also fortunate to have a couple great friends (and CSS/ HTML masters), Andrew Cornett and Dean Pogni, coach me and help me through tricky parts.

3. What resources do you recommend for creating an app (or learning to code)?

Codecademy, Google and (if you are as lucky as me) great, talented friends who are willing to be patient with you.

Also- be prepared to dip into your own greatest resource: time.

4.If someone wants to create an app, what are the first five steps they should take?

I think this depends if they are looking to build something for fun or something they hope can turn into a business.

In my opinion:1. Get something on paper, make your ideas feel more concrete even if its just wire frames. It’s fun, and is the best place to start.2. Talking to people you trust and respect, getting feedback is a great thing- can also help shape and prioritize build3. Find the right players to build with you- you cant do it alone.4. Ship something simple- keep it simple.5. Mentally prepare yourself its going to be hard- but amazing. So stay light hearted and have fun.

5. What advice do you have for someone who wants to create an app (or learn to code)?

Jump in and do it. It can be a bit intimidating to try and build something yourself, but nothing feels more satisfying.

Read more about GVING and app builders learning to code in the Wall Street Journal.. To get started yourself, head to Codecademy’s JavaScript track.

Better, Faster, Stronger

After releasing our new coding interface, a number of users have had difficulty running code and loading exercises over the past week. I apologize for this. These issues are not related to the new interface, but instead are deeper issues with how we evaluate code submissions. I wanted to share the background of what is happening and what we are doing to build a stronger code evaluation platform going forward.

Background

It is possible, but not at all easy to run languages like Ruby, Python, and PHP directly in the browser. In fact we used to do this by serving an interpreter for each language, compiled to JavaScript, to your browser!

We ultimately found this approach to be too fragile to use in production, and last summer we launched the Python language track on top of a server-side code evaluation service that we call Codex. Codex was originally designed to run Python code in a secure environment. As we added new language tracks like Ruby and PHP, we began to push it to its limit.

When we designed the new interface, we built it to be more responsive. Unfortunately this strained Codex in ways it wasn’t intended to be used, resulting in spotty performance. Making Codex more robust will let the new interface deliver on its promise.

What we’re doing about it

Codex has gone through some significant growing pains as we’ve rapidly expanded both our user base and the ways we use the service.

We pushed a series of fixes to take it off life-support and are doubling down our investment in it as the backbone of our coding experience. We are refactoring core aspects of the service to handle much larger loads and adding support for multi-process environments (i.e. running mongodb, node.js, and redis together in a single app).

This will ensure that Codex is prepared to grow with users as they tackle an ever increasing variety of topics and technologies. Thank you for your patience, and we’re excited to see what you build!

If you are experiencing these issues, please see our support article here.

Study the human mind – with Python

How does a cognitive science researcher end up using Python?

In cognitive science we often create experiments that put participants through a specific sequence of events. Then we look at how they respond to these events and draw conclusions about the thought process.

For example in my current research project I am looking at how hue color memory changes over time. To do this I need to precisely control the amount of time between when an image is shown to the participant and when memory for it is tested. I also want to randomize when particular images are shown in the experiment. This is where programming comes in handy.

What do you mean? Couldn’t you just use an existing software to do this?

Yes. Experiment building software allows me to do simple control/randomizing tests, but for more complicated tests it isn’t very helpful.

Python allowed me to create complex, randomized lists of tasks to suit my own experiments and needs.

Why use Codecademy to learn Python?

In order to use Python I needed to learn the data structures and understand how the basics of the language work.

Taking a traditional computer science course focuses too much on how a language works under the hood for my purposes. I just need to know enough to program a solution to my current problem, not to find the most efficient solution. Codecademy helped me to internalize the data structures and logic of Python so I could sit down and create what my research project needed to be scientifically rigorous quickly.

What are the first steps you’d recommend for a researcher who’s interested in learning to apply programming in their work?

As far as I can tell the best way to use programming in research is to just get started.

Don’t wait for a formal class to get started next semester. Picking up theory and best practices as you go along is helpful but not necessary to get started: in research we often need our programs to work, not to work most efficiently.

One ‘best practice’ to keep in mind is commenting: you are going to want to be able to understand what your program is doing at some point down the road when you are expanding your work or writing it up and need to put details to paper. Don’t skimp on commenting!

How have others in your workplace reacted to you coding up your own experiments?

The reaction to learning to code is overwhelmingly positive. The faculty in my program are all proponents of harnessing technology to study the human mind effectively; coding opens up many new avenues to accomplish that goal. My program has a grad course where the main mission was to expose us to many languages and techniques quickly so we know what tools are out there and would help make our research better.

In my case, it meant investing time in learning Python to have full control over my experiment flow. I not only have an experiment that does exactly what I want but I also have a very versatile tool in my toolbox which will allow me to be more productive in the future by investing the time now.

Additionally, with the current movement toward open science (open access, open source, etc.), I will have non-proprietary experiment scripts to share with other researchers. This is a movement that my peers and I all support.

I already have some basic skills in R an open source statistical programming language and can share my data analysis scripts. Now I will be able to make even more of my scientific process transparent.

What are your own plans next with regards to Python?

I plan to continue to program my experiments in PsychoPy. As for expansions, I will see where the science takes me.

Down the road I plan to make a computer model of the cognitive processes I am investigating experimentally. Programming will allow me to make simulations to predict how a proposed cognitive mechanism behaves formalizing my scientific theory and suggesting new experiments to conduct with human participants. I will use whatever programming language is most suited, but my work with Python has allowed me to wrap my mind around the programming process, taking me one step closer to the modeling goal.

My next Python project will be to extract a corpus of text from the internet to bring with me to an exploratory data mining course I am taking this summer. By automating the process I will be able to collect large quantities of data for mining.

I also don’t plan to just stop at Python! I have heard great things about HTML5 and I plan on tackling the basics of HTML next.

Ready to try out Python? Get started. Or if you have a story to share, let us know.