"Jones, Tom" wrote:
>
> Hi everyone,
>
> I am looking for a little bit of advice in what will surely be a contentious
> subject...
>
> I want to learn a programming language, and am wondering what language to
> choose...
> I still remember a little bit of the C that I took in school, and I am
> fairly confident that I could whip off a "Hello World!" program in under an
> hour. I have also played a bit with Perl, and that it shouldn't take me much
> longer to write hello world in perl than it did in C. I do not have any real
> skill in either so I could just drop both of them in favour of something
> new.
>
> I want to get more serious than just playing around with it, I want to start
> developing my own applications to meet the needs I have. So to the crux of
> the matter, which to choose?
>
> Well to me the first step is to determine what type of language I want to
> learn: Compiled or Interpreted?
> Now for Interpreted languages, the choice really comes down to the 2 big
> boys for me anyway,
> Perl and Python.
>
> Which is easier to learn, and ultimately use?
>
> For compiled languages, I am looking at C/C++
>
> Problem there is I have heard that you should not look at them combined but
> as separate entities. Some books I have looked at have said that if you are
> a beginner, and want to learn C++ it is best that you don't know C so you
> can start fresh in OOP, and not have to unlearn concepts from C. Others have
> said that you should have a strong basis in C before you learn C++.
>
> So I am having a little trouble figuring out where to start and was hoping
> the list could help me out.
>
> Anybody know of some good books on these languages? Thanks in advance for
> any advice.
>
> Regards,
>
> Tom Jones
>
IMHO, start with simplified C++/C programming.
Learn the difference between putting the interface in a header file, and
the implementation in the .C/.c/.cpp file, for both C and C++.
Try some visual tools like glade (GUI builder) and ddd (visual
debugger). Learn how to hook up callbacks for the visual components in
the GUI to the methods in your C/cpp files.
Concentrate on issues like black box programming -- the methods that
apply to an object (as defined in a .h file) shouldn't wind up in some
other class as an afterthought. Prefer lots of small files that
implement simpler objects to a small number of huge files that have
"kitchen sink" objects. When the number of lines in a implementation get
over 100, for example, start wondering if something could be broken out
in another class.
Learn the differences between C and C++ -- how arrays, the static
keyword, structs and objects differ between the two. If you plan on
making system calls, you will need to be able to write some C code, and
have a feeling for how to do things with the OS. If this is the case,
you would want to get a couple of the classic UNIX systems programming
books and learn a bit more C.
At some point, after you've worked through these basics, start spending
some time with issues like polymorphism, inheritance, design patterns,
and object coupling.
There are many books on these subjects. I'm partial to the books by
Scott Meyers and Bruce Eckel. Much of their material is available
online, too. Do a search through www.google.com for these names, and
also the keywords "Introduction C++ programming" or some such.
Have fun,
John
_______________________________________________
Stormlinux-users-list mailing list
[EMAIL PROTECTED]
http://www.stormix.com/community/lists/listinfo/stormlinux-users-list