Согласен практически на 100%. Несколько спорно утверждение об обучении именно башу. Но вполне соглашусь об обучение в shell в принципе. :) А то нынешние программы обучения (школьные, институтские и все курсы в принципе) выглядят как: "нажмите на иконку ворда. Теперь мы научимся делать текст толстым. Для этого выделите его и нажмите вот сюда!" Не, ну пипец! ЭТО обучение???!!! Когда людям говорят "а теперь сохраним наш текст в папочке ТЕКСТ", а человек даже не понимает что такое "папочка"! Я знаю, проходил через это, когда в свое время пришлось решать проблемы в офисе. Сотрудники явно не понимали о чем я говорю, хотя работали уже на компе много лет. Когда же я на пальцах объяснил им что есть комп, диск, папки, файлы и прочее, у них просто настало просветление! Для этого понадобилось пара часов! А пройденные до этого многодневные курсы не дали им по сути НИЧЕГО, кроме тупого знания "на какую кнопку нажать". Только вот если эта кнопка оказалась вдруг не там, или кто-то убрал ее с панели, то все, жопа, человек потерялся. :( Грош цена такой грамотности! Так что поддерживаю!... Жаль только, что это все действительно мало волнует людей, которые будут принимать решения, как у вас, так и у нас. :( Увы, по прежнему "бабло побеждает зло", откат решает все. :(
Quote:Согласен практически на 100%. Несколько спорно утверждение об обучении именно башу. Но вполне соглашусь об обучение в shell в принципе. :)
Агамс. А какую shell по твоему мнению лучше использовать? С этим у меня как раз пробел :)) Тут в меня можно смело взять за пуговицу и напомнить "врачу, исцелися сам" :) Я еще на начальной стадии освоения. То есть из всего перечисленного в программе я слабее всего владею именно шеллом. По объективным причинам :( Работа требует использования MATLAB, поэтому я пока сижу под winXP, правда с прикрученным к ней набором линуксовых утилит перекомпиленных под win32 :))) То есть ls и пр. и пр. моя командная строка понимает и я ими пользуюсь очень часто :))) Посему мысль была простой - раз bash идет почти везде по умолчанию - изучать нужно именно его.
А mathlab под вайном не идет? Надо глянуть... Ну да речь не о том. :) По поводу шела: я работал под разными (sh/bash/csh/tsch/zsh/ksh). В принципе их по симантике можно разделить на два класса: sh-подобные и csh-подобные. Разница есть конечно, но по большому счету все юниксы для свое загрузки и инициализации используют все же sh. То есть это я считаю база. Значит ей и нужно учить. А все тонкости, улучшения и навороты каждого шела юзер уже освоит сам. ;) Просто если сделать изначально акцент например на баш, то будет, как я наблюдал пару раз, когда человек привыкший к башу, садился за солярис (ksh) и пытался в написании скриптов использовать башевский расширенный синтаксис. И очень удивлялся увидив многочисленные ошибки а то и "сюрпризы" полученного скрипта. ;)
Если бы я разрабатывал программу обучения, то сделал бы примерно так: изучения основ шелла, а после освоения часик на "отличия и особенности различных shell". Ну и как вариант факультативно: "продвинутое программирование в bash/zsh/tcsh" (нужное подчеркнуть) ;)
Тут немного другие соображения работают. Шелл на начальном уровне проще, чем C++ и системнее - здесь человек идет от работы с файловой системой вручную к работе теми же командами, но объединенными в скрипты.
Ммм. Кстати. А с чего ты начинал? Всегда было интересно узнать больше о начале твоего творческого пути :)
Именно - на начальном уровне шелл, конечно, проще. А вот ежели открыть какой-нибудь configure-файл от любого исходника, то обнаружится, что этот 300-килобайтный скрипт вручную не пишется, а создается утилитой autoconf на основе относительно вменяемого файла настроек :)
А я в области программирования начинал с книжки по GW BASIC. Еще теоретически знал Pascal. Потом методом тыка освоил диалект BASIC для Спектрума (документации у меня не было). Потом баловался (именно баловался) с Turbo и Borland Pascal, затем с первой версией Delphi и так до Delphi 7. Ассемблер - на начальном уровне. Затем, уже в Linux, изучил Си, сейчас вот уже год как перешел на С++ и считаю его вместе с Си самыми простыми языками программирования. Наверное, это относится к личному удобству. Могу написать программу на Java (вот тюнер для гитары написал), на C#. Писал скрипты на Python и шелл, но к таким языкам у меня душа не лежит, равно как к Lisp, да и к Java тоже.
Вообще думаю, что учить программирования надо без привязки к конкретному языку. Программирование ведь просто такой способ мышления, когда человек продумывает, из чего сделан и как работает та или иная штука. А языки - это уже вторичное. Мне вот технически всё равно, на каком языке программировать - мне хватит часа, чтобы изучить любой новый для меня язык.
Хе. :) Я тоже с синклеровского бейсика начинал, потом его же ассемблер. Вот это было классно! :) Сейчас ИМХО таких программеров нет, да простят меня мои знакомые программисты. :( Это ж сейчас плюс минус 10Мег программы - это нормально. А тогда... 48 КИЛОбайт на все, вместе с видеопамятью (16к)! И в это все люди умудрялись всунуть трехмерный движок, кучу галактик с уникальными(!!!) планетами, строями, экономикой и прочим. :) Да, я знаю как это было решено, но ребята, согласитесь это гениально! Сам помню, писал драйвер для самодельного модема. Как экономили каждый байт: если применить вот эту команду - будет 4 файта, а если 2 вот этих, то эфект тот же, но тратим уже 3 байта, 1 байт выиграша. :) Вот это была школа... Ну да ладно, что было - того не вернуть, но вспомнить приятно. :)
А вот то, что надо учить программированию без привязки к языку - полностью согласен! Ибо у программиста мозги должны быть "вправлены", что бы он мог стать настоящим программистом. Но это опять же, удел профессионалов ИМХО.
Сейчас до сих пор живы и действуют программисты-минималисты :) Речь идет о демо-сцене. Посмотрите на kkrieger (http://www.theprodukkt.com/kkrieger) - игра размером 96 килобайт, которая по графике и звуку подобна 3D-шутерам, занимающим сотни мегабайт! Еще много внимания экономии ресурсов уделяют разработчики программ для мобилок, на Java ME - там особо не разгуляешься. Драйвер для самодельного модема - это здорово. У меня никогда не доходили руки до низкоуровневого программирования, хотя это ведь - как прикоснуться к неким основам материи.
Ну да, современные шедевры минимализма видел конечно. Но есть одно "но"! Тогда это была суровая необходимость, а сейчас больше как "а посмотрите как я могу!" ;) К тому же эти современные программы хоть и являются маленькими, но разворачиваясь в памяти занимают намоооого больше места, чем сам исполняемый файл. :) Так что сравнение не совсем верное... Да и java me нельзя сравнить с тогдашними синклерами: даже у слабенких телефонов нынче памяти порядком больше, чем имел синклер. ;) Да и процессоры пошустрее. :)
Не хочу обидеть вас, уважаемый, но ваше высказывание смахивает на систематические комменты на лоре. :) Я бы совершенно с вами согласился, если бы вы сказали что-то вроде: "Не всегда хорошо программирование на шелл, для меня например легче написать на C++". И я бы с вами согласился абсолютно! А на это ваше высказывание, я могу лишь спросить: вот к примеру, сколько строк кода вам понадобиться, что бы все логи (в том числе и заархивированные) прочесть, выбрать из них все неудачные попытки логина по ssh, выбрать оттуда все ip, и выдать список с уникальным набором ip? А сколько времени надо на отладку? В зависимости от умения программировать на C++ от 15 минут, до... в общем много. :) На шеле мне нужна лишь одна строка:
Не смотря на кажущуюся сложность на ее написание у меня ушло не более 15 секунд (десятипальцевый способ набора, о чем как раз писал автор данного журнала) причем без отладки. :) Хотите проверить работает ли она? Проверьте. :) Выборка идет по "неверно введенному пароль" и "неверному юзеру".
Будет ли обычный пользователь писать такую "одну строку на шелле"? Я не спорю, что шелл - мощное средство, но с точки зрения ясности программирования он ужасен.
Ну может быть не каждый сможет выдать такую строку сходу, но по поводу ясности опять же позвольте с вами не согласиться: шелл скрипт - не что иное, как последовательность команд выполняемых друг за другом, что для начинающего (да и для любого вообще) гораздо понятнее нежли тот же си, с его main, объявлением переменных, структурами и прочим. Я не говорю, что это лучше или хуже, я говорю о том, что это прозрачнее и понятнее начинающему. Ну а управляющие структуры вообще практически такие же как в других языках: if, case, for, while... :)
Quote:А mathlab под вайном не идет? Он на моей машинке и без этого тормозит, а под вайном... надо попробовать вообще... У меня (благодаря леди satinenok :) появились лишние 300Г пространства, так что как только дойдут руки - появится ubuntu и я наконец заживу нормальной половой жизнью в нормальной системе :)))
Reply
Quote:Согласен практически на 100%. Несколько спорно утверждение об обучении именно башу. Но вполне соглашусь об обучение в shell в принципе. :)
Агамс. А какую shell по твоему мнению лучше использовать? С этим у меня как раз пробел :)) Тут в меня можно смело взять за пуговицу и напомнить "врачу, исцелися сам" :) Я еще на начальной стадии освоения. То есть из всего перечисленного в программе я слабее всего владею именно шеллом. По объективным причинам :( Работа требует использования MATLAB, поэтому я пока сижу под winXP, правда с прикрученным к ней набором линуксовых утилит перекомпиленных под win32 :))) То есть ls и пр. и пр. моя командная строка понимает и я ими пользуюсь очень часто :))) Посему мысль была простой - раз bash идет почти везде по умолчанию - изучать нужно именно его.
Reply
По поводу шела: я работал под разными (sh/bash/csh/tsch/zsh/ksh). В принципе их по симантике можно разделить на два класса: sh-подобные и csh-подобные. Разница есть конечно, но по большому счету все юниксы для свое загрузки и инициализации используют все же sh. То есть это я считаю база. Значит ей и нужно учить. А все тонкости, улучшения и навороты каждого шела юзер уже освоит сам. ;) Просто если сделать изначально акцент например на баш, то будет, как я наблюдал пару раз, когда человек привыкший к башу, садился за солярис (ksh) и пытался в написании скриптов использовать башевский расширенный синтаксис. И очень удивлялся увидив многочисленные ошибки а то и "сюрпризы" полученного скрипта. ;)
Reply
Reply
Reply
А кружок должен быть "изучение Vim/Emacs". Причем именно один, иначе в школе начнется напряженность :)))
Reply
Reply
Ммм. Кстати. А с чего ты начинал? Всегда было интересно узнать больше о начале твоего творческого пути :)
Reply
А я в области программирования начинал с книжки по GW BASIC. Еще теоретически знал Pascal. Потом методом тыка освоил диалект BASIC для Спектрума (документации у меня не было). Потом баловался (именно баловался) с Turbo и Borland Pascal, затем с первой версией Delphi и так до Delphi 7. Ассемблер - на начальном уровне. Затем, уже в Linux, изучил Си, сейчас вот уже год как перешел на С++ и считаю его вместе с Си самыми простыми языками программирования. Наверное, это относится к личному удобству. Могу написать программу на Java (вот тюнер для гитары написал), на C#. Писал скрипты на Python и шелл, но к таким языкам у меня душа не лежит, равно как к Lisp, да и к Java тоже.
Вообще думаю, что учить программирования надо без привязки к конкретному языку. Программирование ведь просто такой способ мышления, когда человек продумывает, из чего сделан и как работает та или иная штука. А языки - это уже вторичное. Мне вот технически всё равно, на каком языке программировать - мне хватит часа, чтобы изучить любой новый для меня язык.
Reply
А вот то, что надо учить программированию без привязки к языку - полностью согласен! Ибо у программиста мозги должны быть "вправлены", что бы он мог стать настоящим программистом. Но это опять же, удел профессионалов ИМХО.
Reply
Еще много внимания экономии ресурсов уделяют разработчики программ для мобилок, на Java ME - там особо не разгуляешься.
Драйвер для самодельного модема - это здорово. У меня никогда не доходили руки до низкоуровневого программирования, хотя это ведь - как прикоснуться к неким основам материи.
Reply
Reply
cd /var/log/ && (cat auth.log auth.log.? ; gzip -dc auth.log.?.gz) | grep ssh | egrep -i "(invalid|filed)" | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | sort -n | uniq
Не смотря на кажущуюся сложность на ее написание у меня ушло не более 15 секунд (десятипальцевый способ набора, о чем как раз писал автор данного журнала) причем без отладки. :) Хотите проверить работает ли она? Проверьте. :) Выборка идет по "неверно введенному пароль" и "неверному юзеру".
Reply
Reply
Reply
Quote:А mathlab под вайном не идет?
Он на моей машинке и без этого тормозит, а под вайном... надо попробовать вообще... У меня (благодаря леди satinenok :) появились лишние 300Г пространства, так что как только дойдут руки - появится ubuntu и я наконец заживу нормальной половой жизнью в нормальной системе :)))
Reply
Leave a comment