QoS and traffic management can help you cope with a bottleneck and still get some important traffic through. But it can only work by choosing which traffic to drop. Who should decide what traffic is most important? What if your customers start using a new high bandwidth service? Why do you get to decide that this traffic is unimportant and should be dropped?
There is only one equitable solution to this problem. Upgrade the network so that the choke point no longer exists and no traffic needs to be dropped at all. This may mean laying more fiber, upgrading routers, or striking a deal with the biggest producers of data so they can completely bypass the choke point.
But there are often at least two companies involved in the negotiations, (Netflix, Comcast, Cogent, Verizon,
That is the fundamental argument.
"Nobody really buys hammers anymore.
http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12&
Oh, and point 1.5 should have been; Source control!.
When you get something working, commit it. It's like the scientific method, if you can't reproduce something it doesn't exist. Source control gives you confidence to experiment, knowing that you can easily undo everything without losing something that you know works.
Other people have suggested how to learn the basics of a language, so I'll ignore that problem.
Designing and writing good code is an art form. There are many anti-patterns you may fall into that could doom your project that a more experienced developer can help you avoid.
A couple hours a week spent explaining your design before you start writing code, or helping to track down why your code doesn't work as expected, or reviewing the code you believe is finished, will save you days of wasted effort.
Structure your code so that you can write automated tests to cover *everything*. It will seem like a pain to start with. But once your project picks up speed, it will be invaluable to ensure you never break something that you know already works. Tracking down bugs in old code is painful.
If you do this right, you will get into the habit of writing the tests first, or along side the code you are writing. You will find that you rarely run the code as a user would, because that just wastes time. And when you do finally run the code as a user, it just works.
Pascal is not a high-level language. -- Steven Feiner