whatyouneedtoknowaboutprogramming