Hacker News new | ask | show | jobs
by IsaacL 4929 days ago
I do think Wordpress, big hairy pile of PHP that it is, is actually a much better way to learn to code than CodeAcademy or equivalent. In fact, it's because working with WP involves so much hacking and kludges that it's such a good way to learn.

CodeAcademy seems to follow the Dijkstra school of CS teaching... start people off with the fundamental principles. Sounds like the logical way to learn, but maybe it's not the most effective.

There seems to be a gulf between "I know how for loops and functions work" and "I know how to use HTML, CSS, PHP and an FTP account to get a website working". People also complain that CodeAcademy spoonfeeds you too much - those of us who had to claw our coding knowledge out of shitty w3schools and tizag tutorials might actually have been more fortunate.

That's why I like Wordpress, or similar platforms. I've known a few people who accidentally taught themselves to code this way: they install Wordpress, then install a theme, then decide they want to tweak the theme and end up accidentally learning HTML and CSS. Then they start installing plugins, decide they want to tweak the plugins and accidentally learn Javascript and PHP.

3 comments

I don't think the two ways are mutually exclusive... in fact I'd say both are needed. I started out trying to throw up a quick website in Wordpress and Drupal, and found out I couldn't set it up the way I liked. So I taught myself to code with resources including CodeAcademy. Now I can build a site pretty much from scratch, hosted on my own server or GAE.

Without my struggles with CMS or frameworks, I wouldn't have known what to code. But without the likes of Udacity and CA, I wouldn't have known how to code it. But, I can now write a functioning webapp after half a year, while working full time. I doubt that would have happened with just books/tutorials or even a university course.

For what it is, these are great learning tools. I can't fault them for not being designed to make you into a full stack developer, yet.

Though I still couldn't have done it without StackOverflow :)

I could not agree with you more.

I think it is absolutely crucial that you have a real world project to work on - something that makes you actually write some code and solve some problems in a production environment. That being said, supplemental education that focuses on fundamentals can drastically speed up the learning process.

It's almost like practicing a sport. There are drills you need to run in order to improve specific skills, but without taking those skills and applying them in a real game situation you never actually connect all the dots that lead to self improvement. On the flip side, its not enough to just play games - sometimes it helps to go the batting cages and practice on a specific skill set. I treat my learning the same way.

The first money I made in programming was hacking at hairy piece of PHP called the Coppermine gallery back in '06.

Later, reading software design books made sense. I knew why you shouldn't do X or Y, because if you neglected using those techniques you'd end up being Coppermine---powerful, well loved by some, but barely maintainable and extendible only through immense effort and careful reading.

I like to think that I worked my way up the open source software ladder, learning techniques from each piece of software till I was able to make my own from scratch.

I don't personally think this is a great way to learn programming at all. Sure you might eventual play around with a little Javascript and some PHP but it's at such a surface and it's a long slog. Figuring out how to signup for an FTP account is actually much simpler than learn fundamental programming concepts and languages. I mean I guess it depends on what your goals are but it's just a such strange way to me, I'd have a hard time calling this programming, to just be honest about it.