Abstract-Wireless sensor networks (WSNs) have gained a lot of considerations in recent years and have significant impacts on different application areas. Wireless sensors have been successfully deployed in different computing environments to measure, gather and process the raw information in the sensing area to the observers. Sensor networks provide infinite opportunities, but at the same time pose rough challenges due to the sensors' characteristics and the operating conditions of these sensors. This paper provides an extensive study of the current state-of-art in programming wireless sensor network, presenting a classification of programming levels in the field and highlighting some likely programming challenges and research future directions.