Regarding the hassle with default and named instances: This distinction is a bit arbitrary. Also the "default" instance has a name, it is "MSSQLSERVER". This is the default when installing e.g. a standard edition SQL Server. When installing an Express edition, the default name is "SQLEXPRESS". You can choose a different name for an express edition, or make it the "default" instance. You can also make a non-express edition a named instance during setup.
The other difference is that the server TCP properties for a "named" instance are usually set up differently from a "default" instance. For "named" instances, usually TCP Dynamic Ports are enabled (in the TCP/IP properties, the "TCP Dynamic Ports" setting has to be set to 0, which is a bit ... curious. The "TCP Port" setting is left blank). Connecting such an instance requires a running Browser service (and the corresponding firewall exemption). To connect, you specify "HOSTNAME\INSTANCENAME". The client will connect the browser service first and ask for the current, dynamic port of the instance.
For a "default" instance, usually a static port is specified, as described in the article (and yes, the default port is 1433, not 1434). If the port is different from 1433, you have to specify the port to connect: "HOSTNAME,PORT".
After enabling dynamic ports for a "default" instance, you can connect with "HOSTNAME\MSSQLSERVER" (active browser service required).
After specifying a static port for a "named" instance, you can connect with just "HOSTNAME" or "HOSTNAME,PORT".
Thus, the distinction between "default" and "named" instances is merely a question of network protocol setup.