You posed three separate questions:
Do you think everyone should be able to build a computer form [sic] components
Most people who use computers should at least be vaguely familiar with the inside of theirs. They don't necessarily have to be able to build one from scratch, but they should at least be able to add some memory to it. In this same way, I think that anybody who owns a car ought to be able to change their oil or put on a spare tire, even if they inevitably get somebody else to do it. It's about understanding the tools you use everyday.
Do you think everyone should be able to ... write a simple program
Yes. At the very least, people should be able to create a simple web script. In many ways, it goes a long way to understanding what's actually happening when they use the web, and can often make them significantly more savvy, secure and successful on the web. Keep in mind that back in the day (the 80s), most computer users were at the very least familiar with the programming environments.
Do you think everyone should be able to ... debug a make files
No. The minutiae of refining programs or build processes is too esoteric. That would be analogous to me trying to fix odd wind resistance patters in my car. Debugging make files simply isn't essential to understanding the computer and why it runs.
It wouldn't take me long in looking at your life to find something you are not literate at. Being a Linux geek type, I'd look at cooking first
Of course, there are things about which I am not literate. However, I try to understand the tools and processes that I count on every day. Because of this, I maintain that people should know how to cook. I do. My engineer friends all do. In fact, some of the best cooks I know are engineers. As with cars and computers, people should feel free to end up not doing it (get married to somebody who likes it more, or just eat at restaurants). However, all people should understand the basics of cooking because we all eat.
Most people are good at the areas they need to be, and the areas that interest them.
Yes, but people need to be good at using the tools on which they rely everyday. If you go out looking for a home, it is insufficient to say "I'll leave the process to the experts" (assuming the home is a major expense for you, as it is for the overwhelming majority). Rather, you need to go out and make a budget (a good one). You need to research home prices, interest rates, financing options, escrow accounts, tax incentives (or lack thereof) and you might even need to talk to your boss and make sure that there isn't a large round of layoffs about to hit in 3 months. You simply have to know things, whether those things interest you or not.
For instance, I bought a house in the recent past. During the process, I researched everything so thoroughly that I could run all the numbers myself and didn't really need to rely on either my real estate agent or mortgage broker for any information whatsoever. Now, in the course of helping me get my house, they probably performed a lot of tasks that I was neither certified nor qualified nor capable to perform. However, when I finished, I thoroughly understood all the fundamentals of the process.