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.
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.
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.
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.
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.
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)."
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?