Learning curve & progress question

Hello,

I need feedback as to my progress as beginner and if i am correctly approaching learning process.

I am total novice. Before starting C++ i only touched some simple (very simple) web development and linux scripting (bash). C++ is first full-blown programming language i have ever tackled and it seems to stay with me, as i definitely enjoy those few hours a day (i keep at it for already a month) when i try to solve another exercise from book.

I am using Stroustup book, "Principles and Practice using C++", currently finishing 4th Chapter (half way thru exercises, drills already done, not skipping anything) and occasional googling. To keep this post short, here are my questions.

Book is very thorough at explaining all of the topics. I like how it's constructed (i.e dissecting all parts of the program line by line), however, it seems that it's not always a rule that what was presented in a chapter will fully cover what is need to finish exercises.

1. Is this book just demanding or i am not a careful reader &&/|| stupid?
2. Is it normal that sometimes i fell very overwhelmed when there is time to use knowledge from a book in exercises?

Which leads to another questions. I was able to finish fully on my own about 30-50% of all drills and exercises. There were maybe one or two exercises where i could not figure out any possible plan for writing code, but mostly for remaining 70-50% i was at least able to come up with some logic - "How would i write it" and then proceed to produce "some code". In such cases i needed to look into already solved problems (thanks github!) and then browse thru already working code (which did not always worked as asked in book). It was not mindless copying and pasting, more of a "reverse-engineering" and then proceeding to finish on my own (well, few times i needed to directly copy-paste, and there is one instance where i honestly could not figure out why it is suppose to be written like this).

3. Am i failing at my learning because i often need to look into solved exercise?
4. Is this good way of learning C++? Should i continue to bash my head against problem until i will not fully solve it on my own? (Avoid available solutions)
5. Is it normal (at the novice level) that i am able to think of logic of a program which i am suppose to write, write some statements, functions, loops etc. however do not produce fully working code without additional help of already solved problem?
6. If anybody owns book - Can, for a month of learning, being able to solve at least some of exercises presented be treated as "progress" or am i cheating myself that i will manage to learn it? :)

As reference for those which will be kind enough to answer, but cannot relate to my question because they did not saw Stroustup book, here are two most problematic exercises so far for me, which i already solved, using above method and was able to figure out "How the hell i will write it" before helping myself.


 
Write a program to play a number guessing game. User gives number between 1 and 100 and program ask questions to figure out this number in no more than 7 steps.


 
Write a mini calculator (this was easy, finished it 100% on my own) for basic math operations. Then modify it so it would accept spelled out digits up to 9 (this part i needed to look up).


Thanks for any feedback.
One common problem that most books have is that they teach you mainly the language but not how to analyse and solve problems. I came across very few (e)books that teach problem solving skills but they are in German so probably no use for you.

Have a look at this remark about the book:
http://www.cplusplus.com/forum/general/221303/2/#CH_i1017139

Maybe you should consider taking a course. A friend of mine recommended this free one:
https://www.edx.org/course/introduction-c-microsoft-dev210x-6
You don't have to pay for the certificate.
Or maybe this one: https://isocpp.org/blog/2013/11/learn-how-to-program...-with-c-kate-gregory
> 1. Is this book just demanding or i am not a careful reader &&/|| stupid?

It is a demanding book.
Particularly because, as its name suggests, it teaches programming (using C++ as the programming language.)

From the preface to the book:
This is not the easiest book on beginning programming; it is not meant to be. I just aim for it to be the easiest book from which you can learn the basics of real-world programming. That’s quite an ambitious goal because much modern software relies on techniques considered advanced just a few years ago.

My fundamental assumption is that you want to write programs for the use of others, and to do so responsibly, providing a decent level of system quality; that is, I assume that you want to achieve a level of professionalism. Consequently, I chose the topics for this book to cover what is needed to get started with real-world programming, not just what is easy to teach and learn.

...

Most students — especially thoughtful good students — face times when they wonder whether their hard work is worthwhile. When (not if) this happens to you, take a break, reread this Preface, and look at Chapter 1 (“Computers, People, and Programming”) and Chapter 22 (“Ideals and History”).



> 2. Is it normal that sometimes i fell very overwhelmed when there is time to use knowledge from a book in exercises?

Yes.

> 3. Am i failing at my learning because i often need to look into solved exercise?

No, if after understanding the solved exercise, you can solve it on your own, starting from scratch.

In fact, even if you have done an exercise on your own, it is a good idea to see and understand how some one else has solved the same exercise. It's only 'career teachers' who believe that nothing can be learnt from studying good code written by some one else.


> 4. Is this good way of learning C++? Should i continue to bash my head against problem
> until i will not fully solve it on my own? (Avoid available solutions)

Yes. Make a genuine effort to solve it on your own first.



> 5. Is it normal (at the novice level) that i am able to think of logic of a program which i am suppose to write,
> write some statements, functions, loops etc.
> however do not produce fully working code without additional help of already solved problem?

> 6. If anybody owns book - Can, for a month of learning, being able to solve at least some of exercises presented be treated as "progress" or am i cheating myself that i will manage to learn it? :)

Yes, and yes. That is definite progress, particularly since you have never done any programming earlier.

With C++, the learning curve tends to be steep at first; things get easier and easier as you make progress.

Again, from the preface:
This book is for someone who has never programmed before but is willing to work hard to learn. ... How long will that take? As part of a first-year university course, you can work through this book in a semester (assuming that you have a workload of four courses of average difficulty). If you work by yourself, don’t expect to spend less time than that (maybe 15 hours a week for 14 weeks).

Three months may seem a long time, but there’s a lot to learn ... Also, all learning is gradual: each chapter introduces new useful concepts and illustrates them with examples inspired by real-world uses. Your ability to express ideas in code — getting a computer to do what you want it to do — gradually and steadily increases as you go along.


You are doing quite well; just keep at it. And take a break when the going seems to be getting too heavy; it helps.
Thanks. Both answers are very helpful.

JLBorges answer is also very motivating.

One common problem that most books have is that they teach you mainly the language but not how to analyse and solve problems. I came across very few (e)books that teach problem solving skills but they are in German so probably no use for you.


I've found one in English. "Think like a programer" by V. Anton Spraul (No Starch Press). I did not have a time to read thru it yet, beyond 1st chapter, but it uses C++ as example.

As for video courses. I know plurarsight courses from different topic. I also tried Lynda course. However, video courses seem to lack enforcement of routine in learning and they do not necessarily stimulate students to pick up topic on their own. It's one of biggest advantages of Stroustup book for me. Being able to pick up knowledge from chapter and then use it in some (more or less real cases). But thank You for suggestion, i will check Microsoft course.
Topic archived. No new replies allowed.