Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Many books teach a programming language. However, knowing a specific language is not the same as knowning application or GUI design nor project layout. So, attempting to make an average application fails after learning a language. It is clear that knowing a language is not enough to make an application.

If you agree with what I have said, why doesn't anyone mention this instead of teaching pure language syntax and features? Why books don't mention how to make a better application ?

share|improve this question
4  
What is an "average application"? That term seems extremely vague to my mind and there are at least a few different interpretations that come to my mind about what that could mean but I suspect you meant something more specific than just random application X. – JB King Dec 15 '10 at 21:58
@JB King: I believe due to poor english the question was not quite clear. I made an attempt to reword it, hope it helps. – Chris Dec 15 '10 at 22:00
2  
Why do you ignore all the books on writing applications that assume you have some knowledge of the language(s) being used? They do exist, you know. – David Thornley Dec 15 '10 at 22:42
1  
@David: I think there is more here than merely where can I find resources on how to design applications. I think OP really does not have a good grasp on the difference between writing code, developing applications and designing applications. Additionally, there is a pretty large gap to leap to go from "hello world" to anything considered close to Enterprise Application which is what I think he means by "average application". I am personally impartial to the question as I feel answering it would help OP better understand development and closing it would satisfy the community. Vote as you may. – Chris Dec 15 '10 at 23:00
1  
You buy a word processor and expect it to teach you how to write a novel? – JeffO Dec 15 '10 at 23:05
show 7 more comments

7 Answers

There are books on algorithms, there are books on design patterns. Many books about a programming language will also provide a step-by-step instruction on how to create a simple real-world application. Books about frameworks will definitely show you how to create applications using those frameworks.

But don't expect that any book can make real-world software development easy.

share|improve this answer

Even knowing every language will not make you a great application developer. Design principles come into play and without experience/familiarity of those you can write all the code in but still struggle to design a application.

This is why at least during my undergraduate years, the Computer Science department teaches little in specific languages and spends a significantly larger portion of time discussing algorithm design and efficiency along with design methodologies.

The end result is you graduate learning the languages you had to code in or chose to code in but you actually know how to teach yourself how to code in any language. The design principles can be applied in any programming environment to some capacity and that is the beauty of Computer Science. Not learning to be a guru, learning how to learn more and knowing you need to learn more to become a guru.

(Apologize for the rant, but questions like this make me realize that my education was worth the financial cost.)

Also, after re-reading your question I wanted to make one last remark. There are plenty of great resources on design which focus less on a specific language and more on design aspects of programming. Code Complete is the first that comes to my mind but there are many others as well.

share|improve this answer
3  
This is what my education was like as well. First semester teaches you enough of a language to not be completely lost, and from then on it's all about "how to develop software" (instead of "how to write VB/C#/Java/OtherLanguageOfTheMonth") – Anon. Dec 15 '10 at 22:06

"Learning how to hammer a nail, does not make a carpenter.."

But just as important, one can not begin to become a a carpenter without first learning how to hammer.

Building applications is about problem solving, you can't teach some-one how to solve problems(*), but you can give the tools to do it.

In a nutshell, learn to program first, then apply that new found knowledge to solve problems.

Write an application, no matter how bad, learn from your mistakes and re-make.

Over time, just like a child that falls over while learning to walk, you will also learn through failures how to make better applications.

Edit: (*) Generalised problems yes, specific problems no.

share|improve this answer

I guess since design patterns are language agnostic, when somebody writes a book for C# (for example) they would only include the meat of C# (or else a lot of it would be skimmed or just skipped by the reader). Now, there are books out there (I'm sure) that cover design patterns in C# but the majority of the people who would buy a book on a language want to learn that language and not the theory behind software engineering.

share|improve this answer

its depend on what application you want to develop.. its nothing harder than learn. if you learn as much you want to develop still there is missing something. so keep learn every time. ALL THE BEST.!

Thanks.

share|improve this answer

Knowledge of the rules for constructing sentences in English, that you learned from a book, can help you with communicating basic information. But will not help you in making your dialect better. Only practice, practice and practice again will make your English perfect.

The same with programming languages. Tutor/book can explain you syntax and language specifics, but only extra workout with the language will force you to learn algorithms, patterns and you will look for more books with such information to grow up ;)

share|improve this answer

This is a good question!

Analogous question would be is learning a human language enough to create average essays? Well, most people are able to write something, but regardless of what "average" means, not nearly all people can write decent essays even in their mother tongue! And someone like, say, Hemingway or Linus is head and shoulders above almost all us mortals. So, while learning programming languages, algorithms, etc. is of course a prerequisite for creating actual applications, it's by no means sufficient.

This is mostly ignored by most schools teaching "Computer Science" to folks who actually want to become programmers. Or maybe the students shouldn't expect to learn programming by studying CS, but the distinction definitely isn't too clear to a layman. I'm not sure if it's clear to CS academics out there either.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.