Megan Taylor

front-end dev, volunteacher, news & data junkie, bibliophile, Flyers fan, sci-fi geek and kitteh servant

“I finished Codecademy, now what?”

I really like Codecademy about 80% of the time. It’s a good way to learn the syntax and keywords and concepts of a language. But it’s buggy and once you complete a course, there are few pathways to the next level.

I see this question asked on Reddit all the time, in various programming subreddits. The responses are not always kind, and there are  a lot of vague “Build something!” responses.  But I thought it would be helpful to compile the best ideas here.

PYTHON

Enkaybee: I always recommend Project Euler because it’s free and it presents some real challenges without any guidance. You have to think logically on top of knowing syntax. You have to write efficient code for many of them. Codecademy is the training wheels, Project Euler takes them off.

RojaB: Don’t you even feel prepared to contribute to open source projects like www.whatcanidoformozilla.com? Have you done API things (dunno what those are yet) for Python at codecademey?

AluGeris: I also have recently finished codeacademy’s python track. Completed ‘Rice university’s An Introduction to Interactive Programming in Python’ with flying colors. Now I’m into CheckIO challenges. They don’t have a learning course per say, but when I complete a challenge with my weak skills I am able to view other peoples solutions, which gives me an insight on how much easier I could have done something.

FletcherHeisler: See if the practical topics in the 2nd half of my course at RealPython.com might be of interest to you – maybe a good first step toward some of the scientific applications! For crypto and game dev I definitely recommend Sweigart’s two books respectively. For mobile dev (in Python!) you might want to take a look at Kivy. Definitely focus on one, maybe two courses at a time to make sure you’re making progress instead of just distracting yourself, but start with whatever interests you most at the moment!

monoglot: A new intro to Python course is starting this week on Coursera. Focuses on simple game design. https://class.coursera.org/interactivepython-002

johnflim: I heard about this site from a friend. i only just looked at it now, and the second puzzle deals with a cipher. PythonChallenge

eriiccc: Check out udacity.com. They have a bunch of python classes. I’m currently working on building a blog site with python and google App Engine. The guy teaching the class is one of the Reddit cofounders. They also have a class that goes over algorithms taught by Peter Nordvig. Both classes have been great so far.

R3TR0: Edx.org 6.00x. Seriously.

Mtn_Wolf: I say you should go to the DailyProgrammer. Here you can try out tons of different coding challenges. Rule #1 of Coding: Practice Practice Practice. Also! Keep all your programs you make. You will notice that you pick bits and pieces from previous works to build more complicated projects. Happy Coding!

wumsdi: Where do you want to go with programming? As a general advice I’d say: Learn more about data and computer science: Take a look at courses at Udacity.com, for example; read more about python http://pythonbooks.revolunet.com/) – and practice a lot (sites like http://codingbat.com/python are good for repeating – although the python part here is a bit short). Have fun!

303me: “Head First Programming.” It uses Python as the language and introduces you to basic concepts in programming, making a GUI, using libraries, etc. NOT to be confused with “Head First Python,” which isn’t as good of a book.

Cfattie: Well, if you’re into coding games, I would suggest “Invent Your Own Computer Games With Python”. I’m not sure how much of it is overlap from Codeacademy, but I guess you could skip the stuff you don’t know. I started with Learn Python the Hard Way but I switched to this because it tells you most everything you need to know to understand the program, and then gives you the program to copy and learn from.

kgleeson: Check out http://code.google.com/edu/languages/google-python-class/ Its a pretty basic course, but it gets you to do a lot of interesting things.

Jon-Targaryen: I’d recommend that you switch right away to the latest version of Python, Python 3. You should be able to pick up on the differences very quickly (as far as usage goes, it’s mostly just minor syntax). Non-Programmer’s Tutorial for Python 3 is a good wikibook tutorial.

cheifing: As someone who is also learning python, I would recommend: http://www.learnpythonthehardway.org/ Since you already know a bit about python, you’ll go through the beginning chapters very fast, but the later ones get interesting. The author also checks the comments very often, answering any questions you may have. If that seems to advanced for you, or if it gets too hard, I would recommend this book. This book is great if python is your first language, and goes through everything in detail. It also teaches you some of the general programming lingo.

herefortheawws: I would try the flask (flaskr) or django tutorial, or another framework. That way you will actually move to putting things online, and it will gradually make more and more sense, and it will be easier to transition to making your own web apps (if that’s something you want to do). IMHO, there’s only so long coding practice is useful until you need to learn how to put it all together.

IronPhysco: The other comments suggesting that you should tackle a personal project are good, and I definitely suggest you do that as well to become more familiar with using python in practical applications. It’s difficult to find tutorials for practical code exercises outside of academia, so if you can think of some small utilities like:

  • grab a webpage from a given url and download all images
  • write an image-to-ascii program (and the corresponding ascii-to-image converter)

or possibly a game (and smart AI) such as

  • tic-tac-toe
  • connect-4
  • a program that can play battleship against you or itself (and can draw the board on the terminal)

you’ll learn a lot from analyzing the task itself, and from getting stuck on a certain function and looking up ways to improve your approach.

However, you do mention not knowing much about intermediate subjects of programming. If you wish to take a deeper approach to learning the why-does-this-work side of programming via Python, I suggest you dive through this text written by my CS professor. The Art and Craft of Programming: Python Edition. He starts from the basics and works his way up to data structures (something I don’t think was covered in your linked text) and operations on 2D arrays (matrices). You’ll learn a lot from the data structure sections, specifically why some structures are better than others in certain cases, and when you should use them.

I would also recommend looking into “Big O Notation” for more advanced theory into algorithm complexity, something which I cannot stress enough how useful an understanding of this is for writing quick and efficient code. A good summary/example for beginners can be found here: A Beginner’s Guide to Big O Notation. Using this knowledge with an understanding of different data structures can keep your future programs from stalling unnecessarily when operating on a collection of data.

JAVASCRIPT

pandu13: Try learning JQUERY. A javascript framework.

d0gsbody: The sidebar here has a pretty great list of resources, especially if you check the Mozilla link. (As you quest forward, google, stackoverflow, and mozilla dev network will become your best friends).

Start working your way through Eloquent JavaScript. When you can’t understand 3 paragraphs in a row, start googling for answers.

Get the tampermonkey (chrome) or greasemonkey (firefox) plugins for your browser. Start writing Greasemonkey scripts for your favorite webpages. Post them to userscripts.org.

Start using developer tools. Use the console in your browser. Set up a github account and start pushing your better code to it (like your greasemonkey scripts). If you’re not already using a text editor, download Sublime Text 2.

I know you said you don’t want to do a bunch text, but, just so you understand how your jQuery actually works and are equipped going forward: Go to projecteuler.net. Start solving these (this will force you to learn a lot of syntax and to thing algorithmically, which pays off in spades). Write pseudo-code solutions and then actually code them up in JavaScript. Push these to GitHub.

Be active in this community and others. Learn from collective intelligence. Post your questions!

Most importantly, just don’t stop coding. Your knowledge will snowball.

EvanHahn: I made JSTypes and Fiesta.js to learn JavaScript in depth. In order to learn Ruby on Rails, I’m currently working on a site that allows you to meet up with other Super Smash Brothers players in your area. I’ve a bunch more things I’ve made on my website, if you’re curious, and most of them were terribly educational.

IncipLTN : I hear The Definitive Guide is more of a reference book and not as good for beginners. I’d instead suggest Javascript: The Good Parts, but my first suggestion would definitely be Professional Javascript for Web Developers. Eloquent Javascript is another very good option, but it doesn’t go quite as in depth as those two books. I personally did a whole mishmash between the three and somehow came out okay, but I’d definitely suggest sticking with Professional Javascript. But really, your next step should be making something. Anything that interests you. Node.js piqued my interest, so I picked up Smashing Node and I’ve now built a decent IRC Client and I’m half way through building an IRC server.

d0gsbody: Join my study group: http://www.reddit.com/r/learnjavascript/comments/1bombd/announcing_the_how_to_learn_js_properly_study/

If you just finished Codecademy, make sure you do the Discover DevTools course in the next week (it’s linked in my study group post). It’s OK if you don’t understand the whole video, just try to burn through it and know how to open the console that codecademy never taught you about, though you used console commands quite a bit (“console.log”). The study group is going to incorporate a decent amount of jQuery.

PHP

krues8dr: Time to learn a framework or two. Picking up Symfony or Laravel will help you out dramatically from here.

April 17, 2013 | Comments Off on “I finished Codecademy, now what?” | Categories: Posts | Permalink

Comments are closed.

%d bloggers like this: