LINUX.ORG.RU

Как лучше организовать процесс изучения компьютерных технологий?


1

1

Раньше, когда я был на Windows, то был твердо уверен, что моих знаний более чем достаточно. Но после того, как я перешел на Linux, то понял всю свою наивность. Плюс к этому, у меня есть желание стать специалистом по безопасности Linux(ну или просто Linux-программистом, на худой конец).

Короче, мой уровень знаний надо повышать. Однако, у меня возникли вопросы насчет того, как организовать процесс самообучения. Не секрет, что большинство областей знаний пересекается друг с другом. Так например, если я буду изучать ассемблер, то мне просто необходимо знать как работает процессор. Если я буду в подробностях изучать строение Unix/Linux, то мне может понадобиться знание языка программирования Си. А если я буду изучать программирование, то мне могут понадобится некоторые знания из области математики(а с этим у меня проблемы, кстати). Если я буду изучать работу компьтерного железа(например, чтобы заняться оверклокингом), то мне могут понадобиться знания из области физики(с которой у меня тоже дела обстоят неважно).

Короче, одно с другим связанно с другим. Это мне напоминает зависимости в системе пакетов. Просто голова идет кругом, если хорошенько так обо всем подумать. Даже не знаешь, что делать. Встает вопрос: как разрешить такие «зависимости»?


Это в корне неверный, и очень наивный подход. Нельзя объять необъятное, познание бесконечности требует бесконечного времени.

Бессмысленно учить что то просто так, надо решать конкретные задачи. Пишите хеллоуворды, лучше берите насущные (для себя) задачи, и со временем станете специалистом.

AIv ★★★★★
()
Ответ на: комментарий от x3al

И да, Кнута читают как справочник, имея какую-то задачу, или забрасывают навсегда. Не осилив.

не суди исключительно по себе - если ты искал там какой-то алгоритм и не осилил - это твоя проблема. Алгоритм ты не там искал, ибо там нет алгоритмов. Никаких, кроме самых примитивных. IRL применяют более сложные, чем у Кнута.

drBatty ★★
()
Ответ на: комментарий от i-rinat

Про неочевидную сложность я бы, пожалуй, вспомнил такую особенность Си, как возможность перехода по меткам switch() внутрь цикла. Да, из свитча, который стоит снаружи цикла. Это используется, например, в protothreads - реализации многопоточности исключительно средствами чистого Си.

prischeyadro ★★★☆☆
()
Последнее исправление: prischeyadro (всего исправлений: 1)
Ответ на: комментарий от drBatty

Повторяю, прочитай ОП-пост. ОП — не кодер сейчас. Осилить Кнута тут нереально. Перечитать позже можно, сейчас — смысла мало.

x3al ★★★★★
()
Ответ на: комментарий от drBatty

В том-то и дело, что у него слишком нормально. Так бывает, когда человек много книг читает.

За то, если ты со мной месяц поработаешь

а ты в этом кусочке неправильно написал «зато» и поставил лишнюю запятую. Придержал бы ты свои выпады по поводу языка.

i-rinat ★★★★★
()
Ответ на: комментарий от drBatty

тут нет ничего сложного. Это всё очень просто

прямо мантра какая-то. Вместо того, чтобы решить задачку, ты о ней рассуждаешь.

i-rinat ★★★★★
()
Ответ на: комментарий от x3al

Повторяю, прочитай ОП-пост. ОП — не кодер сейчас.

ну тогда не знаю... Что значит «не кодер»? Ну пусть осилит школьный курс информатики тогда, там учебных часов ЕМНИП совсем мало.

Осилить Кнута тут нереально.

ну значит надо учить таблицу умножения, неправильные дроби, и т.п..

drBatty ★★
()
Ответ на: комментарий от i-rinat

В том-то и дело, что у него слишком нормально. Так бывает, когда человек много книг читает.

не похоже.

а ты в этом кусочке неправильно написал «зато» и поставил лишнюю запятую. Придержал бы ты свои выпады по поводу языка.

я всё правильно написал, ты просто смысла фразы не понял. Покажи её своей учительнице, и попроси разъяснить.

drBatty ★★
()
Ответ на: комментарий от i-rinat

тут нет ничего сложного. Это всё очень просто

прямо мантра какая-то. Вместо того, чтобы решить задачку, ты о ней рассуждаешь.

где задача-то? просто нагромождение разных звёздочек и плюсов. Запиши это одной строкой и без пробелов - будет ещё уродливее. Если тебе что-то тут неясно - спроси ЧТО именно, или тебе каждый символ разжевать? Мне лень. Хотя и всё ясно.

Открою тебе один маленький секрет C/C++: дело всё в том, что * это на самом деле _операция_, а ты её походу дела воспринимаешь как некий префикс. Задумайся об этом, и для тебя эта «жуткая» запись будет простой и понятной. И да, operator[] в C это просто синтаксический сахар над операцией * и операцией +, а вовсе никакой НЕ массив. Как я уже писал, в C вообще нет такого понятия «массив», в общепринятом смысле этого слова. ++ это тоже такая _операция_, которая является синтаксическим сахаром над одной из важных операций в PDP-11, правда понять это невозможно, если ты никогда не писал для PDP-11.

drBatty ★★
()
Ответ на: комментарий от x3al

Емнип, Кнут сам писал, что книга для написавших 4+ программы. Во вступлении.

память тебе не изменяет, достал с полки первый том, там написано, что «читатель должен иметь опыт написания и отладки по меньшей мере 4х программ».

Однако, ЕМНИП лет 25 назад в школьный курс это УЖЕ входило, сейчас отменили? Тогда да, нужно какое-то пособие, для совсем неграмотных ГСМ.

drBatty ★★
()
Ответ на: комментарий от drBatty

не похоже.

Не похоже на что? Глянь сюда: http://dic.academic.ru/dic.nsf/dic_synonims/93122/непохоже

я всё правильно написал, ты просто смысла фразы не понял.

Да ну? Хорошо, тогда фраза не станет корявой, если «то» заменить на объект? Попробуем слово «печенье»: «За печенье, если ты со мной месяц поработаешь, будешь класть не хуже меня.»

Покажи её своей учительнице, и попроси разъяснить.

Давай лучше с корпусом русского языка сверимся?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Давай лучше с корпусом русского языка сверимся?

что ты этим хочешь доказать? да, я ещё не утруждаю себя начинать предложения с БОЛЬШОЙ буквы. И что?

Кстати, не надо уходить с темы, изучение русского языка вовсе не ограничивается правилами правописания. Скажу больше, я вообще не о них. Кстати, количество прочитанных книжек и правописание, коррелирует весьма слабо...

drBatty ★★
()
Ответ на: комментарий от drBatty

где задача-то?

А что, непонятно? Как обычно, «что напечатает программа».

Открою тебе один маленький секрет

Спасибо, о великий сенсе.

++ это тоже такая _операция_, которая является синтаксическим сахаром над одной из важных операций в PDP-11, правда понять это невозможно, если ты никогда не писал для PDP-11.

Знаешь, книги это конечно хорошо, но в какой-то момент стоит оторваться от них и начать-таки писать код. Опять эти песни про великолепную ISA у PDP-11. У неё есть недостаток, перевешивающий все достоинства. И как ты любишь говорить, догадайся какой.

i-rinat ★★★★★
()
Ответ на: комментарий от drBatty

что ты этим хочешь доказать?

Этим я хочу доказать то, что ты совершил ошибку. И пытаешься выгородиться, заявив, что ошибся я. Некрасиво.

Кстати, не надо уходить с темы, изучение русского языка вовсе не ограничивается правилами правописания.

А я и не ухожу. Язык, среди прочего, определяется ещё и корпусом. Сверься с ним.

i-rinat ★★★★★
()
Ответ на: комментарий от nanoolinux

не за печенье волка бьют что сер, а за печенье, что овцу съел.

Да, коряво. Ну я не знаю тогда, как объяснить. Как объяснить разницу между «за то» и «зато»?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

А что, непонятно? Как обычно, «что напечатает программа».

это неинтересная задача. Интереснее задача «почему она напечатает именно это?». Ответ для меня очевиден, но в нём слишком много букв. Вот тебе пример попроще:

int y = x-- - --x;
код для ввода x не интересен, достаточно того, что ввели 17.

А твою программу можешь сам собрать и запустить, если тебя так волнует ЧТО она напечатает, но не волнует ПОЧЕМУ.

Спасибо, о великий сенсе.

не за что. Но всё же задумайся...

Знаешь, книги это конечно хорошо, но в какой-то момент стоит оторваться от них и начать-таки писать код. Опять эти песни про великолепную ISA у PDP-11. У неё есть недостаток, перевешивающий все достоинства. И как ты любишь говорить, догадайся какой.

Опять ты меня с кем-то путаешь: где я говорил про «великолепность»? Дело совсем не в том, что PDP-11 чем-то лучшая, а в том, что операции стали именно такими из-за этой PDP-11, которая наложила на них свой отпечаток. А на PDP-11 свой отпечаток наложили вполне определённые алгоритмы. История - штука тонкая, её знать _нужно_, хотя-бы для того, что-бы не изобретать велосипеды с квадратными колёсами.

drBatty ★★
()
Ответ на: комментарий от i-rinat

Этим я хочу доказать то, что ты совершил ошибку. И пытаешься выгородиться, заявив, что ошибся я. Некрасиво.

выискивать мелкие пунктуационные ошибки - ещё более некрасивое правило демагога.

А я и не ухожу. Язык, среди прочего, определяется ещё и корпусом. Сверься с ним.

лениво. Мало-ли чем является язык? Для нашего спора важнее, что язык (в том числе и русский) тоже является языком программирования, и на нём можно выразить _любой_ алгоритм. Потому, любой носитель русского языка в состоянии составить программу, которую можно записать/прочитать/выполнить. А следовательно, любой носитель является программистом. Потому знать родной язык необходимо. Прежде всего.

drBatty ★★
()
Ответ на: комментарий от i-rinat

Да, коряво. Ну я не знаю тогда, как объяснить. Как объяснить разницу между «за то» и «зато»?

тут нет такого жёсткого правила. «За То» потому и написано именно так, в качестве специального «смыслового ударения». Если для тебя это так уж недопустимо - извиняй, мне фраза нравится.

drBatty ★★
()
Ответ на: комментарий от drBatty

Вот тебе пример попроще

undefined behavior

Ответ для меня очевиден

Ферма тоже так написал.

а в том, что операции стали именно такими из-за этой PDP-11

А ты инкременты с доступом к памяти по адресу и смещению не путаешь? И вообще, язык C появился скорее вопреки PDP, а не благодаря.

i-rinat ★★★★★
()
Ответ на: комментарий от drBatty

выискивать мелкие пунктуационные ошибки - ещё более некрасивое правило демагога.

Посылать собеседника «к учительнице», а потом, когда речь зашла о реальной сверке с корпусом, пытаться замести следы, ещё более некрасиво. Да и просто бессмысленно. Сообщения-то записаны. К чему вообще эти твои попытки унизить собеседника?

лениво

Потому знать родной язык необходимо. Прежде всего.

Ага.

А следовательно, любой носитель является программистом.

Тут логическая цепочка перестала быть логической. Вот это и есть демагогия.

i-rinat ★★★★★
()
Ответ на: комментарий от drBatty

тут нет такого жёсткого правила

Ещё раз предлагаю открыть книги и найти там похожий пример употребления.

мне фраза нравится.

От этого она не перестаёт быть ошибочной. Ты ещё начни писать лЕсЕнКоЙ и объяснять это тем, что тебе так нравится.

Не нравится язык, хочется поменять? Форкни! :-)

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

undefined behavior

это не ответ. Я спросил ПОЧЕМУ, и ЧТО получится?

Ферма тоже так написал.

совсем не так.

А ты инкременты с доступом к памяти по адресу и смещению не путаешь?

не, не путаю. Фишка в том, что идиома x[y++] когда-то транслировалась всего в одну команду PDP-11. Но это уже давно не так... А вот идиома таки осталась, и ИМХО, сегодняшнему школьнику будет сложно понять, что это такое, и зачем это надо, и почему твой код работает именно так, а не иначе.

И вообще, язык C появился скорее вопреки PDP, а не благодаря.

язык C появился потому, что всем стало ясно, что PDP не вечно, и что будет жалко выкидывать код для этой PDP.

drBatty ★★
()

aaz893

Плюс к этому, у меня есть желание стать специалистом по безопасности Linux(ну или просто Linux-программистом, на худой конец).

  • Настрой защищенный сервер на основе GNU/Linux и попроси ЛОРовцев протестировать его безопасность
  • Напиши для GNU/Linux простую программу на языке Си
Deleted
()
Ответ на: комментарий от i-rinat

Посылать собеседника «к учительнице», а потом, когда речь зашла о реальной сверке с корпусом, пытаться замести следы, ещё более некрасиво. Да и просто бессмысленно. Сообщения-то записаны. К чему вообще эти твои попытки унизить собеседника?

ну извини, не хотел тебя унизить... Я только не понимаю, что ты меня к корпусу-то отсылаешь? Разве не понимаешь, что речь не про то совсем? Скорее делаешь вид, что не понимаешь.

Для нашего спора важнее, что язык (в том числе и русский) тоже является языком программирования, и на нём можно выразить _любой_ алгоритм. Потому, любой носитель русского языка в состоянии составить программу, которую можно записать/прочитать/выполнить. А следовательно, любой носитель является программистом.

Тут логическая цепочка перестала быть логической. Вот это и есть демагогия.

где ошибка?

drBatty ★★
()
Ответ на: комментарий от i-rinat

Ещё раз предлагаю открыть книги и найти там похожий пример употребления.

Не нравится язык, хочется поменять? Форкни! :-)

уже. Только-что понял? Я расставляю акценты именно так, как считаю нужным. Да, для этого приходится немного отходить от догмата. Впрочем, ИМХО любой русский человек осилит понять, что я имел ввиду. ;)

drBatty ★★
()
Ответ на: комментарий от drBatty

это не ответ. Я спросил ПОЧЕМУ, и ЧТО получится?

Получится 42, потому что undefined behavior.

Но это уже давно не так...

Открой для себя ARM.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Ты ещё начни писать лЕсЕнКоЙ и объяснять это тем, что тебе так нравится.

не буду. Причина проста: сЛоЖнО ВоСпРиНиМаЕтСя ТакОй ТеКсТ. И писать долго, но это уже мелочь.

drBatty ★★
()
Ответ на: комментарий от drBatty

уже. Только-что понял? Я расставляю акценты именно так, как считаю нужным.

Ну тогда ты не имеешь права оценивать знание другими русского языка. Ты уже не его носитель, ты носитель своего языка. А насколько некто знает твой форк, мало кого волнует.

i-rinat ★★★★★
()
Ответ на: комментарий от drBatty

Причина проста: сЛоЖнО ВоСпРиНиМаЕтСя ТакОй ТеКсТ

Всё ограничивается лично твоим восприятием, или удобство восприятия другими имеет значение?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Получится 42, потому что undefined behavior.

а ты проверь. Не бойся, не умрёшь. И 42 не получится. Обычно получается 0. На самом деле, _должно_ получится 0.

Открой для себя ARM.

там «одной командой» можно вообще очень многое сделать, потому-что это на самом деле не одна команда, а набор инструкций для конвейера.

drBatty ★★
()
Ответ на: комментарий от i-rinat

Ну тогда ты не имеешь права оценивать знание другими русского языка. Ты уже не его носитель, ты носитель своего языка. А насколько некто знает твой форк, мало кого волнует.

ну-ну.. По твоему - русский язык, это такая жёстко фиксированная догма?

drBatty ★★
()
Ответ на: комментарий от i-rinat

Всё ограничивается лично твоим восприятием, или удобство восприятия другими имеет значение?

очевидно другими. Я же не для себя пишу.

drBatty ★★
()
Ответ на: комментарий от drBatty

А что у него не так с языком?

всё нормально с языком. Для дворника - на отлично.

Для дворника - на отлично.

Ох, лол. В таком случае твой уровень знания языка даже для дворника будет неприемлем.

theNamelessOne ★★★★★
()
Ответ на: комментарий от aaz893

да. если вы туп в науках, то к комп. безопасности я бы не пустил. и вообще, на практике очень много юозают матана. да хоть то же перемножение чисел(если мне не изменяет память)

foroneq
()
Ответ на: комментарий от foroneq

да хоть то же перемножение чисел(если мне не изменяет память)

умножение это ерунда. Вот с делением веселее. Да и факторизация тоже смешная...

drBatty ★★
()
Ответ на: комментарий от foroneq

ну это просто на самом деле. В безопасность лезть без серьёзного матана попросту глупо - нам нужно учесть ВСЕ варианты, а врагу достаточно найти ОДНУ уязвимость. И всё, безопасность рассыпалась как карточный домик. При этом, злоумышленник вправе вводить ЛЮБЫЕ данные, что IRL жутко весело - вот простейший пример: регулярное выражение .* совпадает с любым количеством любых символов. ВНЕЗАПНО оно не совпадает с любой строкой. Есть строки, которые не совпадают с этим RE. Математика - великая вещь, но её недостаточно знать, её нужно чувствовать, ибо математик просто пошлёт вас на йух, если попросить его поделить на ноль, но программист _обязан_ уметь это делать. По той просто причине, что если он не знает, КАК его код делит на ноль, то злоумышленник вполне может и узнать, и поделить, и получить нужный ЕМУ результат. И никакие проверки тут не помогут, всего предусмотреть невозможно, а тем более всё протестировать. Очевидно, деление на ноль выходит далеко за рамки школьной программы, но это не является оправданием быдлокодера.

drBatty ★★
()
Ответ на: комментарий от swwwfactory

а на винде таких проблем не возникало?

нет конечно:

правило №1: надо купить венду, купить антивирус, купить остальные костыли. Если этого не сделать - виновата ваша (юзеров) жадность.

правило №2: если правило №1 выполнено, то нужно делать всё по инструкции, читать все таблички и BSODы, и (не)делать как написано. Иначе виноват юзер, ибо тупой ламер, не знающий где кнопка any key.

правило №3: если правило №2 выполнено, то виновата венда. Не бывает идеальных программ, M$ не несёт ответственности за свой код.

В Linux правило №1 не актуально, ибо покупать ничего не надо. Правило №2 тоже не актуально, ибо система почти никогда у _пользователя_ ничего не спрашивает. Правило №3 тоже не актуально, ибо код - вот он, если там ошибка - исправь её. Ты же её нашёл! Найти место в коде, которое ведёт себя неправильно - не слишком сложно. Получается, виноват только администратор системы - нельзя съёхать ни на жадность, ни на юзеров, ни на систему.

drBatty ★★
()
Ответ на: комментарий от drBatty

без серьёзного матана

пиздец. Ты где работаешь, что для программирования тебе нужен русский язык а для секьюрити матан?

nokachi
()
Ответ на: комментарий от drBatty

Обычно получается 0. На самом деле, _должно_ получится 0.

Хватит позориться. Это неопределённое поведение, так что компилятор может сделать что угодно. И его поведение будет соответствовать стандарту. Наличие одной такой конструкции в одном месте программы может аукнуться в любом другом. Ищи по ключевым словам undefined behavior и sequence points.

потому-что это на самом деле не одна команда, а набор инструкций для конвейера.

У тебя в голове каша. Ты демонстрируешь полное непонимание принципов устройства процессоров.

i-rinat ★★★★★
()
Ответ на: комментарий от drBatty

очевидно другими. Я же не для себя пишу.

Несогласованные предложения за твоим авторством коробят, как минимум, меня. Если для тебя важно удобство восприятия другими, пользуйся устоявшимися нормами, а не изобретай своих.

i-rinat ★★★★★
()

чтобы заняться оверклокингом

Нужны деньги, только и всего
И вообще это только для понтов в основном

anonymous_sama ★★★★★
()
Ответ на: комментарий от drBatty

Юзать винду с антивирусом бред. От антивируса только тормоза.
Всегда удаляю антивирусы и фаерволы перед использованием винды.

Int0l ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.