This chapter introduces the basic concepts of programming with Webots. Webots controllers can be written in C/C++, Java, Python or MATLABTM. Besides their syntactic differences all these languages share the same low-level implementation. As long as the sequence of function/method calls does not vary, every programming language will yield exactly the same simulation results. Hence, the concepts explained here with C examples also apply to C++, Java, Python and MATLAB.