Stories
Slash Boxes
Comments

SoylentNews is people

posted by janrinok on Monday April 07 2014, @02:51PM   Printer-friendly
from the I-forget-more-than-I-remember dept.

I've historically always tried to stick to one or two big languages, because as soon as I start deviating even for a week, I go back to my primaries and find that I, humiliatingly, have forgotten things that anyone else would be completely incapable of forgetting. Now, I'm going to be learning assembly, since that kind of thing falls in line with my interests, and I'm concerned about forgetting big chunks of C while I learn. I already often have the standard open in a tab constantly despite using C since 2012, so my question is, how do you guys who are fluent in multiple languages manage to remember them? Have you been using both for almost forever? Are you all just mediocre in multiple languages rather than pro in one or two?

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 1) by DNied on Monday April 07 2014, @03:21PM

    by DNied (3409) on Monday April 07 2014, @03:21PM (#27560)

    Not with assembler, that is. It's so different that it won't clash with C (or other high-level languages) inside your brain.

    In my experience, confusion usually arises between languages whose syntaxes present similarities. Like C and PHP, for example.

    Background info: I'm mediocre in several languages, used to program in 6502 assembler in my early teens.

  • (Score: 3, Interesting) by NCommander on Monday April 07 2014, @03:28PM

    by NCommander (2) Subscriber Badge <michael@casadevall.pro> on Monday April 07 2014, @03:28PM (#27567) Homepage Journal

    Depends how many different architectures you work with; I work with ARM, AArch64 and x86 related, and I still occassionally get my opcodes crossed.

    --
    Still always moving
    • (Score: 1) by GmanTerry on Monday April 07 2014, @11:43PM

      by GmanTerry (829) on Monday April 07 2014, @11:43PM (#27855)

      I used to get Z80 and 6502 mixed up. Ahh, the good old days.

      --
      Since when is "public safety" the root password to the Constitution?
  • (Score: 1) by moondoctor on Monday April 07 2014, @03:48PM

    by moondoctor (2963) on Monday April 07 2014, @03:48PM (#27575)

    'mediocre in several languages, used to program in 6502 assembler in my early teens'

    same for me.

    i totally agree, assembly is so different it doesn't really make a difference to me.

    java and c? yeah, bit like the romance language thing. can be confusing when getting up to speed on both at once. i had latin class following french when i was little and it caught me out a few times standing in front of the class babbling the wrong words.

    as others have said, 2 years is not that long. if at this point it's taking you a week to completely switch gears and get your mind spewing one language over another that's not too bad.

    in my experience it's things you use/do on a daily basis for a long time that become second nature. i'd wager if you used 2 languages extnsively every day for many years, you'd be master of both and also very likely have some interesting insight on programming that people versed in one or the other might not.

  • (Score: 2) by threedigits on Tuesday April 08 2014, @07:22AM

    by threedigits (607) on Tuesday April 08 2014, @07:22AM (#28016)

    It's so different that it won't clash with C

    Au contraire my friend. "C" is basically an enhanced version of Assembly. You can think of it as a little coat of syntactic suggar. Learning Assembly will actualy improve his C skills.

    • (Score: 0) by Anonymous Coward on Tuesday April 08 2014, @01:09PM

      by Anonymous Coward on Tuesday April 08 2014, @01:09PM (#28117)

      This may be true for early (K&R) C. But for modern C (with type based aliasing rules and all that), thinking too low level may actually cause you to write erroneous programs. For example, the following code is not guaranteed to give you the result you'd expect from knowing your low-level stuff:

      #include <stdio.h>
       
      int main()
      {
        int value = 13;
        short* ptr = (short*)&value;
        *ptr = 5;
        printf("%i\n", value);
      }

      The C standard allows this program to print 13. And some compilers may actually produce code that does.