"By the time we get to school, we have been speaking a few years."

This sentence is from a text in reply to a question: "What do native English speakers learn at school in the English Language classes."

I can understand what the sentence means, but I understand it from the context. It means "When we start school, we find ourselves in a situation in which we have been speaking English for a few years."

However, the structure of the sentence seemed unusual to me, because as far as I know "By the time+simple present, requires the main clause in future tense, or in a future tense or future perfect tense".

For instance this sentence makes sense; "By the time you get back, I will have washed the dishes".

However in this sentence "By the time" is in simple present tense, and the main clause is not in a Future Tense but it is in "Present perfect continuous tense".

So, shortly, is this sentence grammatically correct?


  • Have you omitted the word "for" in "for a few years".
    – James K
    Jan 16, 2022 at 21:26

2 Answers 2


This type of sentence, when speaking of something yet to happen, would employ the future perfect - By the time I finish my work, the rest of the staff will have gone home.

However, where we are speaking of something which habitually takes place, and which has always been happening ie. it does not necessarily refer to something yet to occur, the simple perfect is alright. By the time we can walk, we have already learned a few words. Hence By the time we get to school we have been speaking for a few years.

Sometimes people will employ the future perfect in such cases - perhaps to achieve emphasis - even though it has already happened By the time we get to school, we will have been speaking for a few years. It achieves a slightly different nuance.

NB Personally I would put the preposition "for" in front of "a few years"


The word "for" is needed, and "start school" is clearer than "get to"

By the time we start school, we have been speaking for a few years.

The difference is that this is talking about a general truth, rather than a specific future event. A mother might say about her baby: "By the time she starts school, she will have been speaking for a few years" That is a specific prediction about that baby.

But in this general case, the speaker isn't making a forecast about their groups ability to speak, but is talking in general. It's correct to use this combination of tenses. Here's another example:

By the time we get home, most people have commuted for over an hour.

  • I agree that it's the vocabulary, not the tense, that is the problem. When I first read the sentence, I thought of children talking on their way to school - then 'a few years'?? Jan 17, 2022 at 9:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .