I ran across this question that someone posted a while back (actually, almost a year ago). I responded to the question, however my response was more in general toward people who want to learn programming and trying to understand where to start. I read it again recently and felt like it was a pretty good thought so I wanted to repost it here.
Relate it to being a carpenter (I’m not a carpenter but my father was so I know some basics). Anyone can learn to use tools (ex. saw and hammer) to build a house. However, let’s say you didn’t learn (or know) the concepts of weight distribution and making sure things are level and square. You build a two story, 2000 sq ft house. When you’re done the house is livable (at least for some amount of time). It might be leaning and there is a terrible draft that makes it impossible to keep warm (we’re building a house in a cold climate 🙂 ).
In the same way you can learn the tools (any given language) to build an application. However, in the end your application might be a security risk or have a terrible memory leak that you can’t fix except to re-write a large chunk of it.
So you see, you can learn any given language and build an application but that is not to say that it will be build on good concepts. However, unlike a house, for many a poorly written application can be difficult to detect.
So what do you think? Agree or disagree with me?