Hacker News new | comments | ask | show | jobs | submit login
Evolution of a Web Developer: From PHP Newbie To Python Ninja (hubspot.com)
99 points by GNelsonJ on Apr 13, 2012 | hide | past | web | favorite | 27 comments

This is really good stuff. The roadmap from beginner to expert is generally consistent irregardless of the language or framework.

I always hoped for a "knowledge map" for programming (example: http://www.khanacademy.org/exercisedashboard) that clearly shows knowledge dependancies.

Can this be a step towards developing a comprehensive, collaborative knowledge map which would benefit programmers of all levels?

It's interesting. Reading through the list, it was a lot of "things I learned a long time ago" interspersed with "things I learned fairly recently".

Having started doing web development before Django and jQuery were released, I definitely learned about JavaScript debuggers, POST requests, CAPTCHAs, AJAX (which, by the way, was positively painful before the invention of JSON), XHTML and the validation thereof, fake CAPTCHAs, cookies, passing session IDs in GET requests for people who block cookies, returning dynamically-generated images to an HTTP request... long before I ever learned about web frameworks, ORM, or any of those things.

You're giving the article way too much credit (I'm the writer).

But, I think the notion of creating a Khan Academy style map for web development would be really cool.

Ha, well I was giving credit to where it's due. As a novice coder I find myself always wondering about the bigger picture, and so I can always derive value from a step-by-step process of how someone more experienced than myself has achieved their current status.

Great read, but I'm slightly horrified that it took until #18 to realize "concatenating strings to form SQL queries is a bad idea."

Entirely agree. Sometimes real evolution is slightly horrifying. :)

The order on some of those items is a bit messed up (i.e. it's not quite chronological).

I was uncaffeinated at the time I wrote it, and the order somteimes reflects the order I thought of them in, not the order they happened.

Ruby as a language feels a little strange.  Maybe it was designed for hipsters.  If I had a dog, it would bark at Ruby code.

I'd love to know why. The way this is written makes it feel less like opinion and more an opportunity to take a pop. Ruby seems susceptible to this sort of "hipster" callout in a way other languages aren't. Confusing a language with its comically unfairly defined userbase, perhaps?

Well, Ruby on Rails has as its mantra "Convention over configuration" which naturally lends itself to an experience filled with Rails-isms. I think the language has similar leanings, so you end up with a bunch of Ruby-isms as well. For example methods ending with ! mutate their receiver, and methods ending with ? return booleans. None of this is enforced at a language level but it is still part of standard Ruby practice. You end up with an ecosystem of opinionated software built on an opinionated platform, which makes many people -- myself included -- feel a little bit like an outsider when I read Ruby code that is littered with little idioms.

Nice post. It's even more fun to read and compare to your own experience, there are some things that I had know during the earlier stages that you learned at a later stage and some things I didn't know until the later stages, but you knew at the earlier stages.

Tangent: Shouldn't the python equivalent of a Ninja be a Mongoose?

Some pythons are nocturnal and many mongooses are diurnal. If you've never coded in Python, you could call yourself a "python mongoose" and not be completely disingenuous.

Probably a lumberjack or parrot.

I found this very enjoyable and am finding myself a few steps behind where you currently are in your journey. Nice article.

Good to see how other developers evolve. I wonder if OP would start with PHP today or go straight to Python/Django?

I (the OP) would go straight to Python/Django. Knowing PHP is somewhat useful, but if using it were completely mandatory (because I was building a WordPress plugin or something), I suspect I could figure it out.

If the author reads these posts: please, for the love of all that is true and pure, do not open with an apology. Instead, just edit out whatever you were going to apologize for.

Also: I really like the article.

Sorry about that. :)

Surprisingly enjoyable read. Thanks!

I fail to see why selection of Python over PHP should be an Evolution.


It should be more of a metamorphosis from dung to butterfly, or perhaps an ascension to heaven.

Step 152: "And then I switched to using the Java platform entirely, because there are things I am doing that are much more easily expressible in some of the JVM languages (not Java)."

Great read,:)

"Realized that my friends will forever make fun of me if I stay on PHP"

That was lame.

"Considered Cake as well, but went with CodeIgniter mainly because I had friends that had used it"

Can you see a pattern here?

Yes. It's really easy to learn things when you have a support network turn to for questions and advice.

or a willingness to take your own path and not mind the opinions of others.

>I need someone to hold my hand

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact