Hacker News new | past | comments | ask | show | jobs | submit login

I don't. Having been in the industry since the 1980s, I make little attempt to memorize the intricacies of whatever language my client is using. I know what I want to do and how I want to do it; Google can remember trivial things like syntax.

Seconded. I look up basic syntax all the time of languages I use daily for years. It's been that way since I started coding 25 years ago. At least these days it's easier with Google and such instead of having to lead throughout reference books.

I don't know why I have that mental block, but I do. There have been some particularly notable cases in the reference book days where I could remember what page number to look at but not the syntactic construct on that page.

>There have been some particularly notable cases in the reference book days where I could remember what page number to look at but not the syntactic construct on that page.

This is the "pass by reference" approach :^)

That reminds me of my CS prof. He had been programming forever and said that one of the first languages he learned (Ada? Fortran? Can't Remember.) was a "two knee" language - meaning that you had to have a reference book open on each knee in order to write it!

That's a good term. Of the two, Fortran is relatively simple, while Ada has quite an expressive type system and built-in concurrency constructs, so I'd bet on it being Ada.

I'd like to blame it somewhat in being a heavy polyglot but I was always like this

I guess you don't remember it because you consider it to be trivial and discard it as noise disturbing you from what you are focusing on (eg. algo).

same here, I really have to jump between, c/c++, c++ CLI, c#, javascript, vb.net, vb, SQL (which is not exactly the same on MySQL, MS SQL, MS SQL Azure), python, jade, powershell. it is impossible for my little brain as I know it so far to remember every syntax; I stay focus on the algorithm (to be efficient, O(n), O(nlogn)), on the problem to solve, on code simplicity and maintainability and just go quickly to language syntax documentation as often as I need it. google makes things much easier, there were times when google was faster in finding msdn doc pages then msdn search itself :))))

I'm fully on board with this way of working.

If you only use one language for a long time, though, don't you think you're better served by avoiding breaking for flow as much as possible?

In all seriousness, is there anybody here who can seriously stand up and say that after working with a language for, say, three months, they still have frequent problems with the syntax of the language? I don't mean "I occasionally have to look up an obscure corner case", or "After working with X for three or four days I do need a moment to recall Y's syntax if I switch back", but literally after working with a language for a couple of months they have trouble typing a syntactically correct statement.

I do a lot of Perl programming at work, and even after literally 10 years with it it still does, every once in a while, manage to surprise me. (This is, IMHO, a fairly damning criticism, but that's a well-beaten horse.) But I don't particularly have to think about the simple act of writing a single statement and haven't for a long time.

It seems to me there's a debate here going on about a total non-problem.

Me. I just poste elsewhere in this subthread so will spare the details but I'll stand up and say that.

It's not every simple thing but there are some bits that for whatever reason manage to never stick in my head

Write a lot of code, and you'll remember the things that you happen to be doing whether you're trying or not. The rest, look it up (because you have to after all). For me, with the small brain that I have, trying to learn and remember everything about a language is a waste of time that is better spent building whatever's in front of me.

I think the original question was about exams, which is an unnatural thing, and nothing to optimize a lifetime for. Write as much code as you can, study however is most effective for you, and empty your brain when you lay your pencil/keyboard down.

My somewhat faulty short-term memory retains the information once it's in active use. I reckon it's like some sort of "brain cache with garbage collection". For example, I've been in Ruby for the last 3 years, and I don't have to google syntax as often as I did 2 years ago. Compare that with my last gig, writing pawn software. I used to know pawn laws quite well, now I'd be hard pressed to recall mush of that info.

I sometimes intersperse lines of pseudo-code if I don't already know what the syntax is, then go back and implement it properly when it looks like I've got everything else in place.

You'll just learn the syntax automatically in that case.

That's the Google Effect.

It's really useful to remember some things though like basic server configs to quickly make a site on a hackathon or some libraries for the languages you usually use if you're on a plane with no internet.

While this has more to do with library than actual syntax, I install vim plugins that allow Shift-K to bring up docs for a function or keyword my cursor is over.

I write a lot of go, and it has a relatively easy syntax, but I constantly use my docs key binding to see what a function signature is or what the function even does. There's a lot of meaning behind "read the docs". I don't just do it once, I do it all day.

What is the plugin(s) that you are using? Does it tie into Dash or Devdocs or just using ctags?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact