tags:

views:

316

answers:

6

Hello,thanks for all the support,anyway,I'm actually a newbie in learning programming,and I always have a so call difficulty,that is I always tend to forgot the thing(syntax,rules,name,definition or anyting) of a programming language I've learn.And I personally do feel that the way I learn it is wrong.Here is my method.Everyday I will spend approximately 1 or 2 hours on a programming e-book.I just follow the syllabus and teaching inside the books,of course I have try to code myself,alter the code inside the book,and did the exercises available.But everytime right after I finish a chapter and advanced myself to third or fourth chapter,I will forgot some I learn in first chapter.Is it the method i use wrong??Does learning through reading and coding not enough?Do I need to everytime make a small note(mind map for example) of things I've learn by hand writing?Or do I sometime need to try coding using a pencil and a book but not a computer??THANK YOU

A: 

It is to be expected.

You need to practice along with reading. Read a few first chapters first so that you have an idea of the language and its possibilities. Then you go along and code some project. As you advance and feel the need for more features, you read more chapters (probably selectively) and grow further.

I thing for many people it is not possible to remember everything about a language. The brain capacity is limited. In fact, the little details are stored in the cache and pushed away by newly obtained information. Normally, you know the general stuff about the language you use and remember in details the last stuff you've been working with.

It also helps to keep track of sources of useful information. Where to find helps and advice and so on. Also bookmark articles you find of value so that you can get back to them when the time is right. It works this way.

This being true however is not seen as such by many job interviewers. People love to ask candidates about the tiniest little details you simply forget about a couple of weeks of no-use. How they expect to filter out candidates by the current state of their memory cache, is a mystery to me.

Developer Art
+2  A: 

Almost no one remembers a programming language completely; don't be afraid to refer to a book for the darker bits of a language.

Ignacio Vazquez-Abrams
+3  A: 

Write, write, write.

While you're practicing use a text editor, not an development environment until you can write a basic program (function, conditional and loop syntax) without reference. Otherwise it's very easy to let the program add the boiler plate and then realise 4 months later you don't know why it's adding what it is...

Edit:

Once you can write a basic program, move straight on up to a real IDE though. Code completion is a wonderful thing for exploring a language, it just hampers learning it.

mavnn
I remember better stuff I coded in basic editor (only syntax coloration) when I was at university than my today's code crafted im my IDE. IDE make your life easier, but your brain lazier :) (at least for method/class names, location, ...)
Guillaume
+1  A: 

Actually coding is the best way. Reading books is fine, but unless you have a photographic memory (or read everything 37 times) you won't (and can't be expected to) remember everything. It all comes with practice, the more you do something, the more you remember so don't worry about it.

I don't remember everything - connection strings is a classic example. I can never quite remember the exact format of a database connection string. But the thing is, you don't need to. With very common code, you tend to write it once and reuse many times so you don't need to remember every little thing.

You'll naturally sponge more and more things up over time.

AdaTheDev
A: 

Relax a bit. It's quite hard to learn to program naturally if you are stressed out. Do a few things that you find fun with the language. Try to guess what will happen if you change the code. Try to break the language (make it do something unusual).

wisty
A: 

well..I'm also learning c++ as my second programming language. As c++, it's hard to master everything all at once(where maybe you can when you learn Python or Ruby).So write some program and then try to refactor it and at the same time learning the language, which helps you understand more.

You have to know that, the thing you want the program( written in your learning language) to do is most important. The language you learning is helping you acchieve the purpose. Don't put so much engergy to the languge itself.Focus on the problem you have to solve!

iBacchus