Hardcore Programming For Mechanical Engineers : Build Engineering Applications from Scratch