LINUX.ORG.RU

товарищ посоветовал «изучи C, а лучше Python» и я задумался...

 


2

2

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

собсна, кроме саморазвития еще может быть какая-нибудь практическая польза?

думаю таки взяться за C, ибо романтик, а на нем хакеры пишут эксплоиты. :)

сейчас я знаю mSL (mIRC Scripting Language), PHP и Bash.

mIRC - второй родной, как говорится. на нем я познавал протоколы, писав собственные реализации ftp сервера, http сервера (с поддержкой CGI для Perl, PHP, Python, Ruby, TCL и так же BitTorrent Tracker), irc сервер, радио-вещатель (стрим mp3 файлов), ковырял заголовки файлов с целью вытащить из них инфу.. да чего я только не делал. пытался даже dns сервер, но не осилил.. а клиент а-ля nslookup таки написал. и многое, многое другое..
так или иначе, тыкни пальцем в любой популярный протокол, - я его ковырял и/или реализовывал, гы.
пруфы конечно могу предоставить, за давностью лет ничего локально не сохранилось (с переходом на линукс, а мирк - проприетарный чятик для офттопа). но все это я выкладывал на сайтах mircscripts.org, hawkee.com и других..

PHP/PostgreSQL - наговнодил бложик.

на Bash с целью его изучения писал пакетный менеджер.

но вернемся к C. нужно ли? с учетом того, что есть один LFS которому бы не помешала рука C-программиста чтобы его допиливать и/или патчить софт.

а к высокоуровнему Python'у душа не лежит, ибо зачем, если есть куча других альтернатив (PHP, который уже знаю).

дабы не разводить флейм, посоветуйте, стоит ли _в свое удовольствие_ браться за изучение C, и если да, то пульните какой-нибудь вводной документацией объясняющей зачем нужны еще какие-то autoconf, automake и прочие, а не достаточно обойтись одним gcc и баш-скриптом автоматизирующим сборку? и ткните в какую-нибудь онлайн-книженцию для ньюфага. :3

★★★★★

Ответ на: комментарий от makeB

Вполне нормально, адресная арифметика пойдёт как по маслу. Да и с другим кодом будет понятнее что во что превращается.

GAMer ★★★★★
()

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

trex6 ★★★★★
()

стоит ли _в свое удовольствие_ браться за изучение C

Нет. Си нужен тогда, когда на диалекте высшего языка (php/perl/python/ruby) ты не можешь получить: а) скорости б) избежать утечек памяти в) избежать сверх высокого потребления памяти г) тебе нужен функционал, которого нет в высшем ЯП, но есть в готовой либе. В остальных случаях Си не нужен. ИЛИ. Наоборот, что ты будешь писать только на си самый лучший код. А все другие скриптовые языки будут чисто для прикола и чаще использоваться как однострочники.

Есть АЛЬТЕРНАТИВА: haskell, lisp, erlang, java (scala/groovy).

gh0stwizard ★★★★★
()

Советую изучить C по книге Кернигана и Ритчи. Затем, вместо Python, советую изучить Ruby (но перед этим рекомендую освоить C++).

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

Си нужен тогда, когда на диалекте высшего языка (php/perl/python/ruby) ты не можешь получить

Это если в голове мозгов нет.

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

Т.е. динамический язык он возьмет тогда, когда у него будет потребность в динамике. А, например, язык с нормальным GC(питон к ним не относится) он возьмет тогда, когда у него будут алгоритмы, которые хорошо работают при наличии GC и плохо работают без оного. Да-да. А не потому, что память лень чистить.

Все эти холивары языков бессмысленны. Язык - инструмент. Чем больше их в вашем арсенале, тем лучше. А дальше уже исходим из задачи, требований, выбранных алгоритмов и т.д.

Так что учите и си, и питон. А так же C++, Scala, Ruby, Clojure, Haskell, etc.

anonymous
()

думаю таки взяться за C, ибо романтик, а на нем хакеры пишут эксплоиты. :)

Учи асм:
-креки
-ОС которые помещаются на дискету
-реверс-инжиниринг проприетарного софта

TDrive ★★★★★
()
Последнее исправление: TDrive (всего исправлений: 1)

так или иначе, тыкни пальцем в любой популярный протокол, - я его ковырял и/или реализовывал, гы.

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

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

Советую изучить C по книге Кернигана и Ритчи. Затем, вместо Python, советую изучить Ruby (но перед этим рекомендую освоить C++).

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

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

Все эти холивары музыкальных инструментов бессмысленны. Музыкальный инструмент, это, мля, - инструмент. Чем больше их в вашем арсенале, тем лучше. А дальше уже исходим из задачи, требований, выбранных партитур и т. д.

Так что учите и фортепьяно, и балалайку. А так же саксофон, барабан, кастаньеты, вокальное искусство, etc.

И конечно, в любой оркестр возьмут такого неземного профессионала. А фигли, ноты везде одинаковые, звуковые волны - тоже имеют одну природу. Оторвут с ногами.

anonymous
()

Там учить-то нечего. Час на C, 15 минут на Python.

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

Знаю человеков, которым мешают оба или любой ЯП/инструмент, которым они пользуются :) Обычная реакция при столкновении с незнакомой проблемой «какие дебилы разрабатывали этот язык/как простому человеку догадаться что X -> Y/нихрена в этом вашем X не работает/идиотизм делать X, когда в Y уже есть Z » (только Y, например, прибит гвоздями к оффтопику, но это детали :)) Страшно если они возьмут в руки молоток или бензопилу... И стеклянный Х им давать нельзя. Они его себе в Z засунут и там сломают.

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

Как только осознаешь разницу между музыкантом и исполнителем, перечитай.

Хотя сравнение в любом случае некорректное. Музыканты задачи не решают.

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

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

Как только осознаешь разницу между музыкантом и исполнителем, перечитай.

Музыкант - это слишком расплывчато. Если это клоун, который на ярмарке играет «в лесу родилась ёлочка» на 10 инструментах, то ему, безусловно, нужно освоить максимальный ассортимент пищалок.

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

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

Императивный подход - в школе на Паскале или С, потом изучить раздельно ФП, метапрограммирование и ООП на лиспе (или другом языке общего назначения, который эти парадигмы поддерживает). Нужно ознакомиться с SQL и Прологом для расширения кругозора.

Потом хорошо изучить один актуальный язык общего назначения и работать на нём.

Время от времени знакомиться с интересными концепциями, впечатляюще реализованными в новых языках тоже не помешает. Но учить 25 языков, как предлагается выше, не нужно. Лучше потратить время на предметку или алгоритмы.

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

для людей с уровнем развития ниже среднего, вроде тебя.

Аргументы вход пошли=)

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

Это вообще-то подразумевалось. В теме же про языки речь. Вернее про выбор. Так вот выбирать язык нужно исходя уже из задачи, выбранных алгоритмов, парадигм и т.д. А из этого, как ни странно, следует, что нужно уметь владеть многими инструментами(языками в данном случае), хотя бы для того, чтобы выбор был наиболее объективен, а выбранные инструменты в наибольшей степени соответствовали задаче.

Ты вот и сам языки указываешь:

Императивный подход - в школе на Паскале или С, потом изучить раздельно ФП, метапрограммирование и ООП на лиспе (или другом языке общего назначения, который эти парадигмы поддерживает). Нужно ознакомиться с SQL и Прологом для расширения кругозора.

И это нормально. Вот только паскаль и лисп не нужны на практике, а те же парадигмы можно изучить на примере более практичных инструментов без какого-либо ущерба. Вот на счет пролога, пожалуй, соглашусь - выбора особого нет. На Mercury или, скажем, акторный пролог лучше после классического смотреть.

Время от времени знакомиться с интересными концепциями, впечатляюще реализованными в новых языках тоже не помешает. Но учить 25 языков, как предлагается выше, не нужно. Лучше потратить время на предметку или алгоритмы.

25 языков никто не предлагал. И да, алгоритмы и парадигмы важнее языков. О чем, собственно, и речь.

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

Вот только паскаль и лисп не нужны на практике

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

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

В целом согласен. Мне не понравилось следующее:

Так что учите и си, и питон. А так же C++, Scala, Ruby, Clojure, Haskell, etc.

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

Изучать функциональное программирование на С, метапрограммирование или ООП на С++, конечно, кхм, можно, но я бы не сказал что без ущерба.

А Скалка, Кожура, Хацкель, Смолтолк, Окалм и прочее - это такая же маргинальщина и «нинужна!!!11!1» как и Комон Лисп.

Конечно, если ты пишешь на плюсах 5 - 10 лет, то ознакомиться с каким-нибудь Хацкелем будет однозначно полезно. Но ТС - это школьник или студент, но, как я понял, не профессионал. Ему лучше не забивать голову лишними сущностями, а изучить парадигмы на минимально возможном подмножестве языков, лучше вообще на одном. Я думаю можно начать с Питона. На нём же можно и работать далее. Упор нужно сделать не на изучение языка и библиотек, а на исследование подходов к разработке.

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

Просто на лоре, много детей, которые неправильно ориентированы.

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

Дети! Изучите что-нибудь одно, но очень хорошо!

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

Проложег - прошлый век. Надо учить Kanren.

anonymous
()

Начни изучать Си и Лисп(желательно Common Lisp) параллельно, а то так и будет бардак в голове

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