Преимущества - для любой ОС есть транслятор. То есть, язык мультиплатформенный. Модный, достаточно универсальный.
Недостаток - не умеет компилировать программу в бинарный код.
заходишь на любой программерский форум. Находишь там раздел JS. Читаешь тысячи задач от студентов (там же есть ответы).
Программирование на JS чем-то в корне отличается от программирования на паскале/плюсах/жабе/питоне/... ? - если нет - то ищи просто задачник. Опять же, на форумах можно найти. Можно на каком-нибудь acmp.ru олимпиадные задачи порешать (там же есть теория и анализы решений).
По законам рынка самый дорогой Ruby с примочкой On Rails. Вообще руби клёвый язык, он проще, чем ц++, расширяемый до невозможности, хотя медленнее яваскрипта. Им можно писать что угодно и как угодно. На статистике яндекса по работам - это самый оплачиваемый язык. Выучите его, остальные пойдут, как по накатанной. Это золотая середина. Только в РФ программерам плотют очень меньше, чем за бугром (у нас 90-150к руб., там $5-20к). Поэтому, для современного программиста, мастхэв английская грамматика! Развивайтесь, изучайте, стремитесь! Материалов - завались
Дело в том, что под этим понятием можно понимать ряд разных вещей. Они похожи между собой идеей.
1) Подключение заголовочного файла.
#include <stdio.h>
#include "myfile.h"
В заголовочных файлах чаще всего хранятся прототипы различных функций и некоторые константы. Это нужно, чтобы компилятор знал описание функций, которые вы используете, если они описаны не вами.
2) Подключение lib-файла.
Обычно делается в настройках проекта или коммандой #pragma comment(lib, "mylib.lib")
Таким образом мы можем использовать код, хранящийся, например в dll, без ручной загрузки.
3) Загрузка dll.
Делается через вызов функции LoadLibrary и последующими GetProcAddress - это ручная загрузка функций из библиотеки.
Все это предназначено для того, чтобы вы могли использовать сторонний код (будь то стандартные средства языка или код написанный просто другими программистами).
Первый язык программирования, как бы он не назывался, по своей сути был чисто машинным языком. Т.е. программы писалась на языке, понятном процессору, что исключало транслятор. Где-то 1820-е годы. Черльз Бэббидж и Ада Лавлейс.
А уж далее пошли различные автокоды 1:1, т.е. те же самые машинные языки, только их команды в кодах заменялись для удобства использования человеком символьными командами. Вот тут уже стали вовсю использоваться трансляторы с автокода в машинный язык, хотя на первых порах вполне себе хватало трансляторов-интерпр<wbr />етаторов.