How to program microcontroller
For program firmware of this microcontroller must be installed esptools. All pin of ESP8266 must be connected in the correct way. This will allow you to flash memory of Chip via uart, related guide on github explain all details.
Develop with comfortable hardware
Exist many different PCB create for develop purpose. I'm sure that is the best way for develop with this chip. Usually, write software for microcontroller is just complex and bad PCB could beacome really difficult debug, and work with ESP8266
Choose good language, and related SDK
ESP8266 support many languages and interpreter:
- NodeMCU: LUA
- Arduino: Firmware for Arduino
- MicroPython: python
- https://github.com/SuperHouse/esp-open-rtos RTOS
Lua in interpreter, with manage memory, low foot print. ESP8266 got LUA interpreter.
ESP8266 got porting for Arduino environment, It could be programmed with Adruino IDE.
I'm never try Arduino with ESP8266. I don't suggest it, if you want Arduino use Arduino.
Is a python interpreter, allow to write in python, is lot very low, but it work well, for small project could be solution.
It a small, Real-Time operation system wried completely in C.
I think that is the best framework for work with this microcontroller. It allow to use all ESP8266 resources, at best.
It perfect for medium, and big project. Support scheduling of many task with priority. It allow sync between task, with mutex, semaphore.
Many people in github has adapt standard embedded library for communication TCP/IP UDP/IP LWIP. It very light,and so many examples are just done, for some different use.
It implement related Global-C-StandardLibrary that allow manage memory, peripherals, interrupt, and all bus.
It's the solution that i adopt for all my project with this microcontroller.
If you want choose this way consider that you must know a bit of C.
If you are a professional developer consider, use only this solution. It could also be insert in your CV.
All tutorial about ESP8266 are recap https://crazylinux.it/en/category/esp8266-en/