I'm a novice programmer. I study languages such as C, C++, Python and Java (mainly focusing on C++). I'm what you'd call young and inexperienced and I admit that because I can't claim otherwise. As a student, I have many other problems besides programming. I practice programming as often as I can, and especially because my teacher gives me a lot more exercises than the rest of the class (it's a very low level), so oftentimes I spend weeks doing something else such as school projects or sports, or traveling, anything besides programming.Don't get me wrong though, I love programming. I love to build functional code, to watch as a program comes alive at the push of a button, and to learn as much as I can. The thing is, I simply don't have much time for it.Straight to the question, now: does your programming knowledge decrease as time passes and you don't practice? You may ask how much time do you mean?. I don't mean a specific amount of time, but for reference you could take a month-two or even a year as an example. By knowledge I mean anything from syntax to language functionality.
Does your programming knowledge decrease if you don't practice?
programming languages;programming practices;knowledge management
Obviously, programming is something you learn to do, not a set of facts or information.  That said, it's more like riding a bike or speaking a language. There are theories too, but it's more about putting them to practice.Even so, like anything, if you don't use it your brain will start to drop the information. Your brain is like a muscle that way. After a period of time you'll most likely remember broad concepts but not specifics about syntax and lesser-used functions. For example, you may want to do a for loop or iterate over a list and know that it's something like while List.hasNext() or for item in list or for index, item of list but not writing it very confidently.The good thing is, you'll know what you want to do. You just need to look it up. So I wouldn't be too worried about it. It'll come back to you. The important thing is to learn how to solve problems with programs. All programming languages are usually capable of doing the same things, but most of the time in different ways. You might forget that Ruby or Python have comprehensions and write too many for loops instead, but you'll get the job done.As for how much you'll forget or remember, I think that kind of depends on how active your mind is and how old you are. I don't think I developed a fully functional brain until I was 19. At that point memorizing anything for me was a snap. Everyone is different.In sum: details always fade, the rate they fade depends on you, all languages are trying to make it easy to solve the same problems, so maybe it's more important to learn how to solve problems. :)