5 ms·
Evolution of a Web Developer: From PHP Newbie To Python Ninja
- killnine 14y agoSurprisingly enjoyable read. Thanks!
- movingahead 14y agoGood to see how other developers evolve. I wonder if OP would start with PHP today or go straight to Python/Django?
- dshah 14y agoI (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.
- quanticle 14y agoGreat read, but I'm slightly horrified that it took until #18 to realize "concatenating strings to form SQL queries is a bad idea."
- dshah 14y agoThe 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.
- rocktronica 14y agoEntirely agree. Sometimes real evolution is slightly horrifying. :)
- n00shie 14y agoThis 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 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?
- dshah 14y agoYou'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.
- n00shie 14y agoHa, 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.
- Zarel 14y agoIt'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.
- 10098 14y agoNice 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.
- sophacles 14y agoTangent: Shouldn't the python equivalent of a Ninja be a Mongoose?
- nhebb 14y agoSome 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.
- maxerickson 14y agoProbably a lumberjack or parrot.
- fourstar 14y agoI found this very enjoyable and am finding myself a few steps behind where you currently are in your journey. Nice article.
- petercooper 14y agoRuby 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?
- sirclueless 14y agoWell, 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.
- Jebus 14y ago"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?
- sopooneo 14y agoIf 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.
- dshah 14y agoSorry about that. :)
- niels 14y agoStep 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)."
- krishnamenon 14y agoGreat read,:)
- NameNickHN 14y agoI fail to see why selection of Python over PHP should be an Evolution.
- ngokevin 14y agoSeriously. It should be more of a metamorphosis from dung to butterfly, or perhaps an ascension to heaven.
- eurohacker 14y agodid not quite understand - did the author make any working site with php before switching to python, or he basicly jumped to python early on as an absolute beginner