Cara, na programação é normal esquecer as coisas de vez em quando ou quase sempre kkkkkk, até por que não saberemos tudo sacou? É uma parada de demanda, por exemplo, caso eu esteja fazendo uma aplicação (seja real ou para estudo) e eu preciso de algo que nunca ouvi falar na vida pra resolver meu problema, eu vou lá e procuro como resolver com este algo, é algo sobre demanda. Então não decore as paradas, claro, você tem que saber pra que serve, em que momento usar, mas isso tudo vem com teoria + prática e muita pesquisa.
Obs: Não vou falar sobre funções, até por que nos comentários já tem muito boas explicações, é mais um simples texto do por que não decorar, sacou?