From owner-freebsd-questions@FreeBSD.ORG Tue Nov 11 20:06:06 2003 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 67DF416A4CE for ; Tue, 11 Nov 2003 20:06:06 -0800 (PST) Received: from mail.blarg.net (zoot.blarg.net [206.124.128.9]) by mx1.FreeBSD.org (Postfix) with ESMTP id AC60A43FDD for ; Tue, 11 Nov 2003 20:06:05 -0800 (PST) (envelope-from abowhill@blarg.net) Received: from localhost (guysmiley.blarg.net [206.124.128.3]) by mail.blarg.net (Postfix) with ESMTP id 6A9DA341E9 for ; Tue, 11 Nov 2003 20:02:40 -0800 (PST) MIME-Version: 1.0 From: "abowhill" Date: Tue, 11 Nov 2003 20:02:40 -0800 To: X-Mailer: Blarg's Communications Control Center v4.0.5 X-Mailer-Info: http://www.blarg.net/ X-CCCUser: abowhill Message-Id: <20031112040240.6A9DA341E9@mail.blarg.net> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.1 Subject: Re: Another Newbie Question: C or C++ X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Nov 2003 04:06:06 -0000 >>I need to buy a book on C or C++ to help me in FreeBSD. Which would be >> better to buy? >>I first thought a book on C would be best, because the OS is written in >> C. But, now I'm not sure because I read that gcc can compile C++ too >> (so, I'm assuming C++ must get used too). >I can recommend "Who's afraid of C++?" by Steve Heller. It's good as the >very >first programming book to read, very easy to understand. I would recommend not trying to learn C or C++ by yourself from a book. The fastest (and best way) to learn the right stuff is to take coursework from a university or community college. If the courses are any good, you'll get feedback, and you'll be paced and challenged with projects designed to help you learn. Going it alone in an unguided environment will only familiarize you the lesser aspects of a language, if you last that long. The difficult and most important aspects of the language (like pointers, virtual functions, references) will become almost insurmountable trial-and-error obstacles if you try to teach yourself. For example, pointers, found both in C and C++ are a very hard thing to learn the first time around. You msy find yourself buying book after book, looking for explanations when you really should be learning in a guided environment where you clarify things with other people. If you try to teach yourself, you won't get proper exposure to good programming practices and the software development process, such as planning and documentation, modularization, good interface design, commenting code, using the debugger, writing good tests, etc. This knowlege is more important to effective programming than learning the mechanics, and distinguish professionals from cheap hacks. Take coursework!! --Allan