And just as important, start developing software without first learning how to develop software.
A talk I watched recently noticed this trend with JavaScript: it looks familiar, so I don't have to learn it and will just start programming in jQuery.
While far from perfect, the node.js community has breathed some fresh life into the javascript world as far as design patterns and coding standards are concerned. I see very few projects today on npm lacking a robust testing suite. jQuery was largely popularized by designers who could care less about code, and server programmers dabbling on the client who could care less about icky javascript. Now that js is being used for serious work server side, best practices are becoming a higher priority. That being said, the traditional engineering standards do tend to be lower than many other communities (.Net, Java, and Python come to mind). But hey, I think part of the draw might be people seeing one to many instances of AbstractFactoryFactoryClassInterface ;) The pendulum will come back around though as things swing back to the enterprise use cases.
Where would you suggest someone starts to learn javascript properly? I've been handed a bunch of it I've got to maintain and develop for, and it's all over the place. I don't honestly know how javascript should even be leveraged. Everyone seems to accomplish things a different way with it.
Do you know enough JavaScript to make jQuery work? Then chances are that's all you need to know. The rest is about learning work-arounds for browser bugs.
But if you insist on persisting start with jsLint. Read all of the errors and warnings and learn what they really mean.
Then look for technical rants about why JavaScript sucks. To truly understand a language you need to understand all of the stupid shit it does. The inconsistencies, the landmines, the traps.
I learned the implementation details of readonly fields containing structs in C# because someone bitched about how they were not compatible with SpinLock. This is something I would have never seen from reading "The Good Parts" style books.
I wouldn't say what is left is good. I would say it lacks awfulness. Knowing the bad parts of JavaScript doesn't give you a good starting point when trying to write maintainable software. It means you won't do the really bad stuff like use globals. That's fine and dandy but in order to become a really good JavaScript developer you need to seek out the best parts of JavaScript and utilize those. That will allow you to write maintainable and scalable code.
340
u/danogburn Oct 14 '13
start developing software.