There are two main types of IoT standards: downward-facing standards that establish device connectivity and upward-facing standards that provide common application interfaces. Software standards need a balance between generalization to cover different areas while also making implementation convenient for developers. Popular programming approaches for IoT include mashups using data from multiple sources, microservices architectures, and event-driven dynamic languages like JavaScript. Educational programs should cover topics like sensing, networking, security, data integration, processing and applications.