|
Prev: looking for design patterns of interacting state machine
Next: Passing a lot of parameters in constructor?
From: arnuld on 11 Feb 2007 10:16 hai all, 1st of all, thanks for the replies, to my earlier post, and now with your help (the comp.object folks :-) the confusion has gone, i am very clear on my goals but still i have some difficulties. i will be brief: i do understand the meaning of variables,objects,function as i have done some Lisp, so i can say i am not a complete newbie. yes, i have written some trivial programes too and i can understand books written for programmers (like Programming Ruby) but cannot understand books written for for much experienced programmers (like Stroustrup's TC++PL 3/e). since i have never done any professional coding at some company so i consider myself a beginner.i want to go directly to OOD (without learning any anything else like procedural paradigm or algorithms). Is this right way? i will be looking for a job using C++ but searching the archives of this newsgroup tells me that is not a good idea. hence, is it OK to go to through path: OOA-D -> OOP using Eiffel/Ruby -> C++ ? thanks
From: Daniel T. on 11 Feb 2007 13:08 In article <1171206968.805646.45650(a)s48g2000cws.googlegroups.com>, "arnuld" <geek.arnuld(a)gmail.com> wrote: > hai all, > > 1st of all, thanks for the replies, to my earlier post, and now with > your help (the comp.object folks :-) the confusion has gone, i am > very clear on my goals but still i have some difficulties. i will be > brief: > > i do understand the meaning of variables,objects,function as i have > done some Lisp, so i can say i am not a complete newbie. yes, i have > written some trivial programes too and i can understand books written > for programmers (like Programming Ruby) but cannot understand books > written for for much experienced programmers (like Stroustrup's TC++PL > 3/e). since i have never done any professional coding at some company > so i consider myself a beginner.i want to go directly to OOD (without > learning any anything else like procedural paradigm or algorithms). > > Is this right way? > > i will be looking for a job using C++ but searching the archives of > this newsgroup tells me that is not a good idea. hence, is it OK to > go to through path: > > OOA-D -> OOP using Eiffel/Ruby -> C++ > > ? http://www.parashift.com/c++-faq-lite/how-to-learn-cpp.html#faq-28.3
From: arnuld on 11 Feb 2007 13:48 > http://www.parashift.com/c++-faq-lite/how-to-learn-cpp.html#faq-28.3 Daniel, i read that and that is not working for me :-( [OT] i am trying to learn C++ since Nov, 2006. it has been 3 months since then and i am not even able to understand the Desk calculator programme in chapter 6. i discussed it at "comp.lang.c++" and that did not work for me. when i tried to understand "Structures" in section 5.7, i hit with "pointers to char", totally out of my head :-(, and i have only tried to learn the procedural aspect of C++, the "class concept" never made any sense to me, so i always avoided it in C++. i think one can not learn C++ directly, one needs to understand "pointers" (may be "structures" too) & "OOD" before he jumps to C++. [/OT] BTW, it was quite a good moment when i saw the "C++ FAQ" link. you are still trying to help, nice Daniel T :-)
From: Daniel T. on 11 Feb 2007 15:32 "arnuld" <geek.arnuld(a)gmail.com> wrote: > > http://www.parashift.com/c++-faq-lite/how-to-learn-cpp.html#faq-28.3 > > > Daniel, i read that and that is not working for me :-( > > [OT] > i am trying to learn C++ since Nov, 2006. it has been 3 months since > then and i am not even able to understand the Desk calculator > programme in chapter 6. i discussed it at "comp.lang.c++" and that did > not work for me. when i tried to understand "Structures" in section > 5.7, i hit with "pointers to char", totally out of my head :-(, and i > have only tried to learn the procedural aspect of C++, the "class > concept" never made any sense to me, so i always avoided it in C++. i > think one can not learn C++ directly, one needs to understand > "pointers" (may be "structures" too) & "OOD" before he jumps to C++. > [/OT] Please understand, the concept of pointers are almost unique to C and C++, all other languages hide them behind some sort of abstraction. So the very thing you are having the most trouble with is the thing that has nothing to do with OOD. When I first started learning C++, I already knew C (thus I understood pointers and structures.) Despite that fact, it still took me 3 months of solid study before I could even begin to understand OO Design. It's a huge complex topic. I believe that you will find it impossible to learn OO Design unless you have a solid understanding of a particular language to express designs in. If your goal is to learn C++, then that is the language you should work on. If your goal is to learn OO Design, then you can certainly learn any of several languages, but your designs will come out different than they would in C++, and as the FAQ says, there will be must to unlearn. BTW, I would not call Stroustrup's book "advanced" but it is succinct. I wouldn't recommend it for someone trying to learn the language without a tutor or mentor of some sort. I have often tutored people through email and IM. If you would like, send me an email and maybe I can help you work through the book. If you do send me an email, be sure to put the word "sheltie" in the subject or my spam filter will trash it.
From: Daniel T. on 11 Feb 2007 22:45
ram(a)zedat.fu-berlin.de (Stefan Ram) wrote: > "Daniel T." <daniel_t(a)earthlink.net> writes: > > > the concept of pointers are almost unique to C and C++, > > Java also has a concept of pointers. > > �(...) reference values (...) are pointers� > JLS3, 4.3.1. > > http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.3.1 Given that structures are gone, and arrays and strings are objects, the need for pointers to these constructs goes away. Thus, Java has no pointer data types. http://java.sun.com/docs/white/langenv/Simple.doc2.html There is no need to argue the point though. All OO languages have something resembling C++ pointers though they generally wrap them in some sort of abstraction. As you say, I could argue that only C/C++ have C/C++ pointers and frankly I will. I suspect the OP doesn't, or wouldn't, have a problem with Java references to the extent that he has with C++ pointers because, frankly, Java references aren't as powerful/dangerous (depending on your perspective) as C++ pointers. That being as it may, The rest of my post still holds. The OP needs some way to translate his designs into working code so he can test his understanding of the concepts. That means he must first learn a language (or one of the translation systems HS espouses) before he has any change of learning OO design. The OP's proposed path to learning C++ will cause him problems because there are many things that he will have to un-learn before he can take the final step. |