, а Вы всерьёз решили углубиться в программирование? Если да, то вероятно Вам следует смотреть в сторону Python (он в ubuntu как и многое иное нативно присутствует, и возможности у него весьма богатые).
Книг конкретных не посоветую, - ибо не программист. Когда школу заканчивал, у меня информатика была только в 10 и 11 классах. Первый год нас мучали системами счисления (в сущности, мне нравилось), второй год мы "изучали" ШАЛ (школьный алгоритмический язык). Что это такое - я так толком и не понял, ибо никакого практического применения тем сведениям и по сей день не нахожу. Комп нам показывали только издалека, ибо "дорогая штука, - сломаете ещё"... В ВУЗе показали типовые алгоритмические структуры и VisualBasic. Понравилось и то и то. По сей день пользую VBA на работе, - здорово упрощает жизнь (работа по большей части офисная, иногда приходится через веб-формы базы забивать, - вот я и отрываюсь). Пересев на Ubuntu дома как-то озадачился парсированием информации из сети (было любопытно как тут, ибо в форточках через vba я это освоил и пользую). Гуглением наткнулся на python с его beautiful soup (или как там это правильно называется), - принципиально подход от того же vba не сильно отличается, однако python явно помощнее и поизящнее будет. Сам все хочу его изучить, но что-то всё некогда...
А вообще, Вам абсолютно верно подсказал уважаемый EvangelionDeath, - сперва алгоритмы в типовом варианте, абстрагированно от языка как такового. После - понять, что хотим творить. И после уже - выбор языка, в котором это не только возможно, но и наименее затратно.
Что же касается linux вообще - книг конечно много, однако лучший способ что-то понимать - это практическое применение. Берем тот же модем, втыкаем, создаем через GUI соединение, - работает... Гуглим, - смотрим как именно оно работает. Прикидываем, как бы можно было из консоли (без графического интерфейса) добиться того же - чтоб работало. Экспериментируем, добиваемся. Плюс в карму и новые знания (ноша, которая не тянет) обеспечены. посмотрите по форуму темы из серии "не запускается ...", посмотрите что именно людям помогло и в какой ситуации. Это полезная энциклопедия в примерах. Многие рутинные задачи через ту же консоль решать на поверку легче и быстрее (скажем, 300 разнородных документов в одном каталоге в какой-нибудь единый pdf перевести, - мне эта прелесть по работе попадалась; штатными средствами на рабочей машине, где помимо MS Office'07 и конвертировать-то нечем, я б это делал всю ночную смену; запустив ubuntu с флешки я решил задачу менее чем за 5 минут - погуглите как, это тоже может быть полезным).