|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
scott wrote:
> But his reasoning always seems to be based on using some ancient
> compiler for 5 minutes 20 years ago.
1. It was 10 years ago, not 20.
2. It was 6 months, not 5 minutes.
3. I think this horse is now well and truly dead. ;-)
> I really don't believe that if he
> sat down for an hour with a "learn C" book, he couldn't pick it up.
When I was a lad, I was always hearing about how C was this "ultimate
programming language" and how it was the "most powerful" language and
how BASIC and Pascal were mere toys for amatures. Anyway, when I heard
that next semester we'd be doing C, I took it upon myself to borrow a
book about it from the college library.
Frankly I lost interest when I learned that C doesn't even distinguish
Booleans from integers - but they don't let you pass a module just
because you've lost interest. So when the semester actually started, I
made an effort to learn.
I did eventually get a moderately complex program to work. But basically
every time my program didn't work, I'd replace the implementation with
an equivilent but differently worded one until the program actually
worked. (Presumably my idea of "equivilent" doesn't agree with C's.)
Fortunately, my program involved no string manipulation of any kind. In
fact, about all it did involve was doing calculations and writing pixels
to the screen using Borland's proprietry video API.
> Not given the number of other more complex languages he's picked up.
You are seriously claiming that there are languages which are "more
complex" than C?
> The
> mistakes that he always cites (like printf crashing the machine with
> beeps etc) are common newbie mistakes, but nothing that won't be caught
> by a modern OS/compiler and fixed with a 1 minute lesson.
I gather C++ fixes this anyway.
Given that C++ is supposed to be "like C but better" (or more exactly,
"like C but object-oriented"), this is also a language I took a look at.
My dad has a "learn C++ in 21 days" book. (Given my dad's inumerable
misunderstandings about computer technology, this is quite amusing.) So
one day I sat down and had a look.
The first few chapters look almost exactly like a C tutorial. There's no
printf(), but everything else seems exactly the same. Only much later in
the book does it even start to talk about features I haven't seen
before. It strikes me that this is very probably the wrong way to go
about learning C++.
Anyway, again when I learned that dynamic binding is an extra feature
that you have to manually tern on, I kind of lost interest. (Plus my
head was spinning by the time I'd finished reading about the inner
complexities of pointers vs references, copy constructors, etc.) I'm not
sure if C++ really is this hard or whether the book was just badly
written, but it sure did an efficient job of putting me off.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Anyway, again when I learned that dynamic binding is an extra feature that
> you have to manually tern on, I kind of lost interest. (Plus my head was
> spinning by the time I'd finished reading about the inner complexities of
> pointers vs references, copy constructors, etc.) I'm not sure if C++
> really is this hard or whether the book was just badly written, but it
> sure did an efficient job of putting me off.
Sounds like it tried to cram in too much too soon, something is wrong if you
find yourself wondering about dynamic binding before you understand what
while(*a++=*b++); does! YOu can get a very long way without ever needing to
know about dynamic binding or the detail of how copy constructors work.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
scott wrote:
>> Anyway, again when I learned that dynamic binding is an extra feature
>> that you have to manually tern on, I kind of lost interest. (Plus my
>> head was spinning by the time I'd finished reading about the inner
>> complexities of pointers vs references, copy constructors, etc.) I'm
>> not sure if C++ really is this hard or whether the book was just badly
>> written, but it sure did an efficient job of putting me off.
>
> Sounds like it tried to cram in too much too soon
Well, it *is* named "learn C++ in 21 days". ;-)
> something is wrong if
> you find yourself wondering about dynamic binding before you understand
> what while(*a++=*b++); does! YOu can get a very long way without ever
> needing to know about dynamic binding or the detail of how copy
> constructors work.
It did seem complex and unecessary. I kept asking myself "why the hell
do I need to care about such things?" At the time, I assumed it was
because C++ is badly designed. From what Warp has said, maybe it was
just that the book was badly designed. It presented the information as
being stuff that every beginner C++ programmer absolutely must know.
From the sound of it, that's not actually the case.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible <voi### [at] devnull> wrote:
> 3. I think this horse is now well and truly dead. ;-)
That's probably true. You have decided that you have, and will always
have, a strong prejudice against C and C++, and absolutely nothing will
ever convince you otherwise.
> Anyway, again when I learned that dynamic binding is an extra feature
> that you have to manually tern on, I kind of lost interest.
This I simply cannot comprehend.
--
- Warp
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
> My dad has a "learn C++ in 21 days" book. (Given my dad's inumerable
> misunderstandings about computer technology, this is quite amusing.) So
> one day I sat down and had a look.
http://norvig.com/21-days.html
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> I did eventually get a moderately complex program to work. But basically
> every time my program didn't work, I'd replace the implementation with an
> equivilent but differently worded one until the program actually worked.
This is the sort of thing I was referring to when I said you need to know
what you don't know about your code. You can't just guess your way to an
understanding; you must first learn why your original code is broken. This
isn't always possible but it's a good goal. You learn a lot more that way.
> 1. It was 10 years ago, not 20.
Surely the things you've learned about programming in the last 10 years
would be helpful. Personally, I failed to learn C++ the first time I tried
but succeeded the second time after years of working with other languages.
Anyway, if you're not interested in learning C++, that's cool. I had thought
you were interested. I just see a pattern in your posts where there are
things you want (in this case a programming job), and when people encourage
you to get them, you list reasons why you're not able to, or why it's
difficult. You need to learn to ignore or deal with the hurdles and push
yourself until you get where you want to be.
- Slime
[ http://www.slimeland.com/ ]
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Warp wrote:
> Invisible <voi### [at] devnull> wrote:
>> 3. I think this horse is now well and truly dead. ;-)
>
> That's probably true. You have decided that you have, and will always
> have, a strong prejudice against C and C++, and absolutely nothing will
> ever convince you otherwise.
What, you mean... a bit like you and every programming language that
isn't C++? :-P
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Slime wrote:
>> I did eventually get a moderately complex program to work. But basically
>> every time my program didn't work, I'd replace the implementation with an
>> equivilent but differently worded one until the program actually worked.
>
> This is the sort of thing I was referring to when I said you need to know
> what you don't know about your code. You can't just guess your way to an
> understanding; you must first learn why your original code is broken. This
> isn't always possible but it's a good goal. You learn a lot more that way.
I guess the problem was not having anybody to ask nor any documentation
to look at. My mental model of what the code should be doing was clearly
broken, or the code would have done what I intended. But without any way
to figure out why... there's not a lot you can do.
>> 1. It was 10 years ago, not 20.
>
> Surely the things you've learned about programming in the last 10 years
> would be helpful.
I somewhat doubt that knowing Smalltalk, Java, Tcl, PostScript and
Haskell is going to be of any help in learning either C or C++.
> Anyway, if you're not interested in learning C++, that's cool. I had thought
> you were interested. I just see a pattern in your posts where there are
> things you want (in this case a programming job), and when people encourage
> you to get them, you list reasons why you're not able to, or why it's
> difficult. You need to learn to ignore or deal with the hurdles and push
> yourself until you get where you want to be.
It's just very difficult to find motivation when
1. all your endevours fail
2. nobody except you actually gives a damn anyway
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> I somewhat doubt that knowing Smalltalk, Java, Tcl, PostScript and Haskell
> is going to be of any help in learning either C or C++.
I think they will. Not in specific ways, just in that you've learned to wrap
your mind around a lot of different types of languages. But I guess we've
already discussed this. =)
> It's just very difficult to find motivation when
>
> 1. all your endevours fail
Learn to recognize the things you *are* good at and build some confidence in
yourself. Don't spend all your time focusing on the things you can't do yet;
look at what you've done that other people wouldn't even bother to try. When
you fail, make a conscious effort to learn from your mistakes.
> 2. nobody except you actually gives a damn anyway
Sometimes you only need to please yourself!
- Slime
[ http://www.slimeland.com/ ]
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Slime wrote:
>> 1. all your endevours fail
>
> Learn to recognize the things you *are* good at and build some confidence in
> yourself. Don't spend all your time focusing on the things you can't do yet;
> look at what you've done that other people wouldn't even bother to try. When
> you fail, make a conscious effort to learn from your mistakes.
>
>> 2. nobody except you actually gives a damn anyway
>
> Sometimes you only need to please yourself!
It just feels like my life is like Groundhog Day, you know? If I do
something well, nobody comes up to me and says "Hey Andrew, you did that
really well." If I have a bad day, nobody comes up to me and says "Don't
worry Andrew, it'll be better next time." Basically no matter what I do,
the outcome is always the same: nobody comes up to me and says anything.
You say I should have more confidence in my abilities, but when nobody
ever tells you you've done something well, you start to wonder whether
you really have, or whether you're just overestimating your achievements.
It's just really hard to find motivation when no matter what, whether
you did really well or really badly, the outcome is always exactly the
same. You start to wonder why you're bothering...
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|