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 fadrian on Monday April 07 2014, @05:18PM

    by fadrian (3194) on Monday April 07 2014, @05:18PM (#27627) Homepage

    Just the vocabulary and syntax has changed. Plus the stupid idioms of whatever framework pidgin you happen to be trying to absorb this week.

    Anyone who's learned a couple dozen computer languages can do it. Just be happy you're not living in the early eighties, when PL research wasn't yet conflated with type theory and new programming languages (and new constructs) came out in about every journal. Not to mention UNIX being hoarded and each workstation vendor having its own OS, editors, languages, and (if you weren't lucky) UI.

    When I was in grad school, I not only had different systems for my classes, but for the teaching and research assistantships I held. And that didn't count the three other systems I had to use to do my thesis research - one for running the simulations (big iron, that), another for everyday use and getting jobs ready to submit to the big iron, and the final one for actually editing/formatting the thesis. I counted - one semester I was using ten different computers with ten different OS'es and twelve different editors (think TOPS-10 with TVEd, HP 1000, HP 300 with the Amigo OS), a Burroughs 5700, CDC Cyber 175, two flavors of IBM and associated systems, DEC PDP-11's (one with RSX-11M, one with RT-11), and a couple of VAXen, one using VMS and one running UNIX. And even if I forgot one or two, it's not counting things I used infrequently like the decrepit Bendix G-20 kept by the EE department that I got to run SPICE on (along with the IBM 026 keypunch I got to use to prepare input for the same).

    I'll tell you, the world of computing has become much less interesting these days with the convergence of platforms and hardware. Various languages? FORTAN, PL\I, Algol, Pascal, SNOBOL, COBOL, ICON, tons of assemblers (and you haven't seen weird until you saw the CDC computers' assembly - thanks, Seymour), PASCAL, BASIC, Smalltalk, PROLOG, various rule-based and chaining languages, Simula, Objective C, C++, etc., etc., etc.) But that's over 30+ years in the industry.

    So, how do you keep it straight? Learn the fundamentals so you can think in the dominant praradigms without the language involved - event-driven, OO, procedural functional, logic. Be prepared to write (or find) other code that supports the proper paradigm(s) that best support the code you're writing. Google and Stack Overflow are your friends. Do that and you can pick up everything pretty quickly. You'll still need to read code in the language you're going to be writing in to pick up stuff like which language idioms lead to elegance of expression, but at least you'll have your architecture and logic chops to fall back on. Plus, do code reviews - lot's and lot's of them.

    But keeping them straight? It's just a lot easier to relearn syntax and libraries when you switch back.

    --
    That is all.