1

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?

BЈовић
  • 13,981
  • 8
  • 61
  • 81
user2424160
  • 201
  • 1
  • 3
  • It's weird - I had this kind of problem with French/Spanish back in high school. Now, I'm programming various things in PHP, JavaScript, Perl, Python, and I just don't have the same issues - the only reason I can offer is I'm more thoughtful about what I'm doing, and I care more about it. – HorusKol Jul 24 '13 at 02:16
  • I think my issue may be that if i work on one language then i colpletely leave the other language for months and then i forgot – user2424160 Jul 24 '13 at 02:21

2 Answers2

7

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.

Telastyn
  • 108,850
  • 29
  • 239
  • 365
  • Its not about concept , i mean i for the things about frameworks like symfony , joomla , dripa, django. If i don't touch them for few months then the new version has already come out. i mix the things between frameworks – user2424160 Jul 24 '13 at 02:38
  • You can still have the concepts all down and still occasionally struggle to keep it straight whether its len() vs length() vs size() vs count() vs length(array) vs array.length() etc for each different language. – whatsisname Jul 24 '13 at 03:26
  • 1
    @whatsisname - True, that's what autocomplete is for. – Excrubulent Jul 24 '13 at 03:43
0

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.

Reactgular
  • 13,040
  • 4
  • 48
  • 81