Логично для начала почитать что такое Linux: 1 2
Дальше уже само программирование и языки:
Чарльз Петцольд Код
Стивен Прата C / C++
Марк Саммерфилд Qt / Python
Еще можно смотреть в сторону Ruby, Perl и других кросс-платформенных языков, но с ними я не знаком и поэтому ничего посоветовать не могу.
Если есть знания по Pascal, то можно Lazarus.
А что Вы пытаетесь своей функцией сделать? Вы в курсе, что toogle, начиная с версии 1.8, переключает отображение элемента, а не переключается между двумя функциями?
Почему Вы запускаете toggle при загрузке страницы, в чем смысл?
Для Ваших целей скорее всего подойдет функция toggleClass.
Корректно, но он приводит к расходу лишней памяти. В варианте 1 у каждого экземпляра будет свой метод (т.е. в памяти это будут разные функции). В варианте 2 метод будет один на всех.
Вариант 1 обычно применяется если нужно захватить в замыкание переменные и действительно создавать разные функции. Если такой необходимости нет, следует использовать вариант 2.
Есть ещё вариант 3:
function sayGreet() {return "Hello, " + this.greeting;};
...
sayGreet.apply(greeter);
Если делать это в замыкании (например require) то получится private метод.
Рекомендую прочесть javascript: good parts. Недавно прочёл по совету коллег,очень многое разложилось по полочкам в голове, хотя до этого писал на js прилично.