Software Programming Fundamentals: Software Security Best Practices