The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
I don't like blindly relying on an API to just work.
Then I think you are missing the entire point of APIs, IMHO.
Advice? -- Keep plugging away at it; if you are a true developer/programmer/engineer, your passion for the craft will take you to great places and you will get more proficient and feel less "stupid", as you put it. If you are not, then you will fail miserably and be depressed, and look for work elsewhere.
I plan on keeping at it. Programming is just a hobby for me, fortunately, so I have plenty of time to slam my head against it till I've learned it. I don't actually plan on making a career of programming. I don't think I could sit in a cubicle all day, I prefer being physically active when I work.
But plugging away at code keeps my brain just as active as my body, even if it does cause me a fair amount of frustration.
Try something simpler, like Knockout (as suggested) or even Backbone. Both have source which is fairly easy to wrap one's head around.
It's a mess, and the only way that I've figured out how to deal with it is to simplify, simplify, simplify.
«There is a spectrum, from "clearly desirable behaviour," to "possibly dodgy behavior that still makes some sense," to "clearly undesirable behavior." We try to make the latter into warnings or, better, errors. But stuff that is in the middle category you don’t want to restrict unless there is a clear way to work around it.» Eric Lippert, May 14, 2008
Anything that is unrelated to elephants is irrelephant Anonymous - The problem with quotes on the internet is that you can never tell if they're genuine Winston Churchill, 1944 - I'd just like a chance to prove that money can't make me happy. Me, all the time
You are right, what is good? The whole question is loaded by the viewpoint. The coder sees good as bug free, the team leader wants it understandable and easy to maintain, operations want a solution they can support, the users needs it to deliver functionality and the bosses want to maximise ROI.
Pick any viewpoint and 'good software' is a very different beast.
It goes without saying that good software at least solves the customer's problem given the available resources (mostly time and money)
If the software does everything the customer asked for within time and budget it's acceptable.
If, for some reason, that's no do-able, a new state of acceptable should be discussed.
But given that the software is acceptable the code should be as easy as possible.
What "as easy as possible" is depends on your knowledge and experience. Assuming that's plenty software should be good if you keep it as simple as possible
Easiest for who? As a case in point, all these lovely single-page-scrolly-animatronic-doodah-websites may be easy to use for someone, but not for others and they certainly aren't the easiest to implement or support.
There's a lovely theory in systems practice [nothing to do with computing] about what is the best solution. It does not necessarily delivery what was requested, but it provides the greatest transition to the required situation with all stakeholders benefitting the most they possibly can. Now put that into your software solution. If it's peas easy to use but a dog's breakfast to support, the solution is less than optimum. How about delivering slightly less functionality in a bid to build up the infrastructure to help ops, this is more evenly balanced and both users and operations benefit. But gad! What about the cost? If it costs too much the bean-counters will be sad and no-one likes sad beanies. So maybe we have to curb some of the costs while pushing use and ops. We could throw in some more stakeholders, marketing or owners, and see how the solution morphs the more we consider different viewpoints.
It sucks to look at things from another persons perspective.
To me, a solution is an answer to a problem taking into account all variables like time, cost, usability, etc.
From a programming perspective the code should be as easy as possible, but still support the requested features in the allotted time and in the given budget.
If the customer requests a single-page-scrolly-animatronic-doodah-website than implement it in the easiest way possible.
If that seems to be impossible, again, go for the easiest solution, whether that's stretching the budget, deadline, getting more programmers, or dropping features.
As long as each step is the easiest step possible towards getting to the required goal using the available resources.
Unfortunately, most of the time, everybody but the programmer agrees that making "quick and dirty" code is the easiest solution.
We all know it's probably fast and cheap in the short run, but slow, expensive, and frustrating in the long run