It always happen to me that if I leave the stuff for 1-2 months I forget the stuff.
5 months back I had symfony project and I did that. At that time I was very much confident that I can do any project in symfony2.
Then we got one Python project in django and I worked full time on that for few months.
But now when I had to fix the error in symfony2, I completely forgot the structure and I keep mixing python stuff with php symfony.
I want to know that how people work with different languages at same time.
Should I need to keep studying all languages at same time so that I don’t forget?
I am confused what should I do. Or whenever I do some project then I keep notes of each and every step so that I can follow that later on how I did it?
2
You only need to keep studying another language should you be required not to adjust your thinking when switching to that language. If you don’t need to work in language X next week, then why waste time reading about it? Focus on what you’re doing in the now.
For example;
I have to work on two projects constantly. One is in C#
and the other is in PHP
. These two projects communicate with each other. So I’m often programming in one or the other. As a result, there is no start up time required to program in either language. I can just sit down and start writing code.
In this same project there is a command line tool developed in native C++
. I only perform maintenance on this project once a year. I try to allow a back log of issues to build up before starting work on it. This ensure that I can commit myself to working in C++
for a fixed period to complete multiple tasks. Part of my estimating to work on things includes time required to start up
again in C++
. I have to force my brain to think in C++
again and that sometimes takes a few days to fully kick in. I start with simple tasks and progress to harder ones.
What I can not do, and have sometimes been forced too. Is constantly switch languages. This creates extra fatigue in my head. Each language has it’s own does and don’ts. It’s own flavor of approaches and sticky catches if you don’t fully know the language. If I constantly switch languages then I run the risk of not really knowing that language well.
The best advice I can give is not to mix purpose. Use each language for what it’s good for. Otherwise you become frustrated because one method is quicker/easier done in the other. This becomes a distraction and opens the door to second guessing an implementation.
If you forget after only 1-2 months, you didn’t really know it.
As a programmer progresses, you start learning less about syntax, and more about concepts. Even if you switch languages, you’re often using the same sort of concepts. Since you’re constantly using the concepts, they’re harder to forget. Since the syntax is less important, it becomes easier to pick up new syntaxes and far easier to remember syntaxes you once knew.
3