I have a dataset of say 1 million observations. As a silly example, say we want to predict if a person can become a data scientist or not (0/1). I have variables that have a lot of missing values but there is an explanation : people weren’t asked the question. A person can be asked if they ever had a Machine Learning course during their studies. This creates a yes/no column with no missing values. But then we only ask people that had such a course, when was the last time you had a ML course ? So all the people that answered no to the first question (a lot of people) will have missing values, while the information in this second column is probably relevant, so cannot be deleted.
In such a context, my first thought was to fill the missing values with $0$. In some cases, this can be fine. However, in the example I gave above, looking just at this 2nd column, a $0$ would indicate that a person had a ML course very recently. Should I set it to a very big number then ? To $\infty$ ?
My second question is: now that we have fixed the issue of the missing values in the 2nd column. Should we delete the first one? Its information is somehow encoded in the 2nd one. Should we keep both and include an interaction term?
Finally, I am afraid that multicollinearity might happen. If we have a 3rd column, with something like "Did you enjoy your ML course ?" $(-1,1)$ and we filled missing values with $0$. Then columns 2 and 3 might look very similar.
I know there is no exact rule to follow but wanted to hear opinions.