Question: I know you can ALTER the column order in MySQL with FIRST and AFTER, but why would you want to bother? Since good queries explicitly name columns when inserting data, is there really any reason to care what order your columns are in in the table?

Answer: 
Beyond the obvious performance tuning, I just ran into a corner case where reordering columns caused a (previously functional) sql script to fail. 

From the documentation "TIMESTAMP and DATETIME columns have no automatic properties unless they are specified explicitly, with this exception: By default, the first TIMESTAMP column has both DEFAULT CURRENT\_TIMESTAMP and ON UPDATE CURRENT\_TIMESTAMP if neither is specified explicitly" <https://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html>

So, a command `ALTER TABLE table_name MODIFY field_name timestamp(6) NOT NULL;` will work if that field is the first timestamp (or datetime) in a table, but not otherwise. 

Obviously, you can correct that alter command to include a default value, but the fact that a query that worked stopped working due to a column reordering made my head hurt.
The only time you'll need to worry about column order is if your software specifically relies on that order. Typically this is due to the fact that the developer got lazy and did a `select *` and then referred to the columns by index rather than by name in their result.