Difference Between Feature Engineering and Feature Learning

I am playing with features (input data) to improve my model's accuracy.  
If I have a raw time-series dataframe, does feature engineering mean extracting properties or characteristics of my raw data and feed it as input? Or will the algorithm learn these from the time-series itself?
In other words, should I create a column that is comprised of the moving average, or will the algorithm pick up on moving average from the raw data?
Is feature engineering just the munging of independent variables? Or is it extracting features that are dependent on other raw data?
EDIT:
Here's another question: If I have a categorical feature, would it be better to have it as a one-hot vector (say, 5 binary inputs), or to have it as one input with range [0,4]?  
How does one intuitively know the answer to these questions??

Feature engineering refers to creating new information that was not there previously, often by using domain specific knowledge or by creating new features that are transformations of others you already have, such as adding interaction terms or as you state, moving averages. 
A model generally cannot 'pick up' on information it doesn't have, and that is where  finesse and creativity comes into play. 
Whether you should one-hot or leave a feature as categorical depends on the modeling approach. Some, like randomForest will do fine with categorical predictors; others prefer recoding. 
Intuition on these questions comes with practice and experience.  There's no substitute for trying out and comparing toy examples to see how your choices affect outcomes. You should take the time to do that, and intuition will follow.