HN user

ze_dude

10 karma
Posts0
Comments11
View on HN
No posts found.

(Given your mention of a career, I'm going to assume he is at the stage where he can write programs to do stuff, but wants to move to the next level.)

To get better at programming, you need to do more than learn to program (languages, semantics, frameworks, etc.): you need to learn to think link a programmer. In this, there aren't many shortcuts: it requires study and practice.

Here are some great subjects to look into to get him started:

- design patterns (http://en.wikipedia.org/wiki/Design_Patterns)

- functional programming (although this is language agnostic, I personally would suggest working through "Scala by example" http://www.scala-lang.org/sites/default/files/linuxsoft_arch...)

- meta-programming (here are some videos--with free samples--on metaprogramming in Ruby http://pragprog.com/screencasts/v-dtrubyom/the-ruby-object-m...)

- algorithms

- compilers ("the dragon book" http://www.amazon.com/dp/0321486811/?tag=stackoverfl08-20)

- testing (unit, functional, integration, etc.)

One thing that will probably help him advance a LOT is learning a language that does things completely differently than the one he's using. If he'd like to try that, this book looks good (haven't used it myself but the choice of languages is pretty good): http://pragprog.com/titles/btlang/seven-languages-in-seven-w...

Also, there are some great books on this list: http://stackoverflow.com/questions/1711/what-is-the-single-m...

I'm sure there's a lot more to be said on the subject, but that's a start off the top of my head. What he should start looking into really depends on his specific weaknesses and/or preferences.

[dead] 16 years ago

"What's wrong, honey? They had fresh eggs!"

However, Facebook uses HipHop (http://developers.facebook.com/blog/post/358) to make PHP faster (so it's not the plain-vanilla PHP).

From the linked article:

HipHop programmatically transforms your PHP source code into highly optimized C++ and then uses g++ to compile it. HipHop executes the source code in a semantically equivalent manner and sacrifices some rarely used features such as eval() in exchange for improved performance. HipHop includes a code transformer, a reimplementation of PHP's runtime system, and a rewrite of many common PHP Extensions to take advantage of these performance optimizations.

This says it much better than I can: How to Build a Web Site from Scratch with No Experience (http://lifehacker.com/5336113/how-to-build-a-web-site-from-s...)

It details how the author built mixtape.me starting with basically zero experience, and is quite worth your while.

The advice below uses Rails as the framework, but will work whichever one you choose. The steps stay the same: build a basic app with help (from a book, tutorial, etc.) to understand the framework/language, start building what you want to create and learn at the same time.

What I'd suggest is to obtain a copy of "Agile Web Development with Rails (4th edition)" (http://pragprog.com/titles/rails4/agile-web-development-with...). Side note: it's not published yet, so make sure you get the beta version (an e-book version, and you'll be notified of updates as content is modified/added).

Then read through the book while building the example application in the book (a basic shopping website). This approach is great, because you learn by doing and you also get to glance at agile methodologies.

Once you've gone through the toy app and understood it, you'll be quite proud of yourself and will be able to build simple things already.

At this point, you should start to work on your own idea, it's much more motivating and you'll always learn the most when working on a "real" project.

To be noted: the Rails book does assume you have passing familiarity with Ruby (or at least a programing language), HTML, etc. If you need/want to learn programming first, you should probably also get an appropriate book on the subject, such as "Learn to Program (2nd edition)" (http://pragprog.com/titles/ltp2/learn-to-program) or, if you're more advanced, the Pickaxe (http://pragprog.com/titles/ruby3/programming-ruby-1-9).

Oh, and the reason I mention PragProg books isn't because I'm affiliated with them (I'm not), but because I have yet to get one of their books that doesn't live up to my expectations.

I've been using a Dell XPS 1530 with an SSD, and couldn't be happier.

All the stuff I've tried worked out of the box (built-in wireless, webcam, sound, graphics card w/ NVidia driver, etc).

It's a great laptop and the SSD and 4 Ggis of RAM make coding much more enjoyable.

As a side note, it takes 5-10 seconds to boot into Kubuntu from a complete shutdown (i.e. not suspend-to-disk), whereas it takes over 45 seconds to get into Vista (on the same laptop)... And Windows isn't starting up database and web servers.

So if you want to get a PC, definitely look into the XPS 1530.