Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Здравствуйте Гуру программирования, загляните в тему=)

74K
22 августа 2011 года
AbsurD
3 / / 22.08.2011
Мне 15, хочу стать программистом (не веб дизайнером, это скушно). Посоветуйте какой язык выбрать для создания программ и дайте список литературы.
535
23 августа 2011 года
Нездешний
537 / / 17.01.2008
lmgtfy.com
278
23 августа 2011 года
Alexander92
1.1K / / 04.08.2008
Тема 100500 раз поднималась на форуме, причем именно в такой постановке, как у тебя. Поищи хорошенько.
32K
24 августа 2011 года
martynow
30 / / 16.04.2011
Настоящий программист уверенно программирует на всем на чем программировать можно и немножко на том на чем программировать нельзя....

Я серьезно - был бы образец из которого можно таскать примеры - и язык не важен.......
Сперва нужно осваивать простые языки типа Basic или Pascal, чтобы понять суть вопроса, а дальше на чем писать - это все равно.....
Базы данных тоже неплохо бы освоить чтобы не придумывать велосипед для простых задач...
87
25 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: martynow
Настоящий программист уверенно программирует на всем на чем программировать можно и немножко на том на чем программировать нельзя....



Ну, не настоящий, а мифический.

Цитата: martynow
Я серьезно - был бы образец из которого можно таскать примеры - и язык не важен.......



Слишком упрощаете. Примеры, конечно, вещь необходимая, но не достаточная. Делать аппликации из примеров допустимо лишь при создании прототипов программ, к качеству которых не предъявляется особых требований. Иначе надо вдумчиво читать документацию. Такое моё скромное мнение.

2.1K
26 августа 2011 года
Norgat
452 / / 12.08.2009
Цитата: martynow
Сперва нужно осваивать простые языки типа Basic или Pascal, чтобы понять суть вопроса, а дальше на чем писать - это все равно.....



Некий товарищ Дейкстра оч. не рекомендует изучать Basic, как первый язык.

244
26 августа 2011 года
UAS
2.0K / / 19.07.2006
Я, как поклонник прекрасной Java, считаю, что начинать надо с неё, или с C#. Языки довольно-таки в целом хорошие, ООП быстро поймет человек (надеюсь).
Главное не начинать с языков, типа JavaScript и пхпэшечка, иначе это конец пути и полный тупик.
32K
26 августа 2011 года
martynow
30 / / 16.04.2011
Цитата: Kogrom
Слишком упрощаете.


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

Цитата: Kogrom
Делать аппликации из примеров допустимо лишь при создании прототипов программ, к качеству которых не предъявляется особых требований. Иначе надо вдумчиво читать документацию. Такое моё скромное мнение.


Ну чтобы вдумчиво читать документацию - надо иметь опыт, чтобы знать о чем думать, а то ведь филолог читая документацию будет думать о том, "какие они все безграмотные - эти программисты".

Критериев качества имеющий четкие метрики не так уж и много. Возьмем например читаемость кода (ремонтопригодность)... - чистая абстракция. Но в целом это очевидно - доверять ПО с высокими требованиями к надежности или быстродействию новичку все равно ни кто не будет....

87
26 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: UAS
Я, как поклонник прекрасной Java, считаю, что начинать надо с неё, или с C#. Языки довольно-таки в целом хорошие, ООП быстро поймет человек (надеюсь).
Главное не начинать с языков, типа JavaScript и пхпэшечка, иначе это конец пути и полный тупик.



Очень спорно, что для начинающего Java лучше, чем JavaScript. Java обладает слишком избыточным синтаксисом, в ней слишком много "обёрточной бумаги", которая теоретически может быть оправдана при работе в команде.
JavaScript же хорош тем, что начинающему практически нужен только браузер, чтобы начать работать со скриптами. Самый "ленивый" старт.

Цитата: martynow
Ну чтобы вдумчиво читать документацию - надо иметь опыт, чтобы знать о чем думать, а то ведь филолог читая документацию будет думать о том, "какие они все безграмотные - эти программисты".



Для неопытного лучше начинать с учебника, в котором объяснено что и как, и почему.

Цитата: martynow
Критериев качества имеющий четкие метрики не так уж и много. Возьмем например читаемость кода (ремонтопригодность)... - чистая абстракция.



При использовании "аппликаций" будет много проблем. Как правильно "склеить" примеры, зная минимум об используемом языке? Как оптимизировать код примера, если потребуется? Или даже не оптимизировать, а изменить?

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

244
26 августа 2011 года
UAS
2.0K / / 19.07.2006
Цитата:
Очень спорно, что для начинающего Java лучше, чем JavaScript. Java обладает слишком избыточным синтаксисом, в ней слишком много "обёрточной бумаги", которая теоретически может быть оправдана при работе в команде.
JavaScript же хорош тем, что начинающему практически нужен только браузер, чтобы начать работать со скриптами. Самый "ленивый" старт.


Это естественно, такие языки как php и js имеют достаточно низкий порог вхождения, потому мы по сей день и видим столько ужасных поделок на них и "мега-php-кодеров", коих развелось на каждом углу.
Я просто подхожу к вопросу со стороны знаний. Я считаю, что сев за яву, пусть и нагроможденную кучей оберток, голова быстрее поймет что к чему и знания появятся более сложным, но более верным путём.

Я, сам просидев 6 лет на веб-программировании, понял, насколько тупиковые эти языки в плане саморазвития человека. Можно научится составлять какие-то алгоритмы, писать команды и делать кучу прочей работы, но не больше. Только когда я перелез на нормальный язык - я наконец стал действительно разбираться во всех тонкостях, начал понимать как правильно организовывать взаимодействие, строить грамотную архитектуру и прочее. После изучения нормального языка тот же JS и PHP дадутся человеку за пару дней, а вот слезть веб-прогеру на Java, C# и подобные популярные будет очень сложно.

Ну и, ява не так плоха, я же не советую человеку начинать с ассемблера, лиспа, немерле и прочих ужастей :))

87
26 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: UAS
После изучения нормального языка тот же JS и PHP дадутся человеку за пару дней, а вот слезть веб-прогеру на Java, C# и подобные популярные будет очень сложно.



Про PHP не знаю. Никогда на нём не программировал.
Но программируя на JS можно ознакомиться с некоторыми азами: с циклами, переменными и т.д. Затем уже и на более "трудные" языки можно переходить. Образно говоря, вначале гантели, затем штанга. Понятно, что штангист легко поднимет гантелю, но начинают обычно с малого.

Хотя лучше вначале Python, а затем Python %)

2.1K
26 августа 2011 года
Norgat
452 / / 12.08.2009
Цитата: UAS
Ну и, ява не так плоха, я же не советую человеку начинать с ассемблера, лиспа, немерле и прочих ужастей :))



Лиспы не сложные, они просто кажутся сложными после обычных ЯП. На самом деле они просты, как пять копеек(в плане вхождения в синтаксис). А вот Haskell и ко - это да, порог вхождения высок(одна из серьёзных проблем - перегруженность синтаксиса).

п.с. согласен с Когромом, сейчас лучше начинать с python.

244
26 августа 2011 года
UAS
2.0K / / 19.07.2006
Цитата:
Образно говоря, вначале гантели, затем штанга.

А я серьезно спорт начал как раз со штанги))

Цитата:
Лиспы не сложные, они просто кажутся сложными после обычных ЯП.

Ну, так-то да, я не спорю. Тут дело в парадигме больше. Если всю жизнь сидишь и мыслишь ООП, то функциональная парадигма поначалу кажется вырвиглазной, но после определённых разбирательств видны все преимущества такого подхода. С другой стороны, просто новичкам легче понять императивную парадигму (или она просто уже дефолтом навязывается, потому я считаю её более простой).

260
26 августа 2011 года
Ramon
1.1K / / 16.08.2003
Какой плодотворный вброс...

PS: Реальные пацаны пишут на APL'е и начинают с него же.
87
26 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: UAS
С другой стороны, просто новичкам легче понять императивную парадигму (или она просто уже дефолтом навязывается, потому я считаю её более простой).



Кстати, не могу вспомнить чисто "императивных" языков, кроме ассемблера. То есть, чтобы были только процедуры, но не функции, которые могут вернуть значение. Да и запись "a = b + c" уже не совсем императивна. Надо что-то типа : a += c; a += b; ...

Ну да ладно, это уже совсем оффтоп.

87
26 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: Ramon
Какой плодотворный вброс...



Вброс, который не провоцирует перехода на личности и матерной брани за вброс не считается :)

2.1K
26 августа 2011 года
Norgat
452 / / 12.08.2009
Цитата: UAS
Ну, так-то да, я не спорю. Тут дело в парадигме больше. Если всю жизнь сидишь и мыслишь ООП, то функциональная парадигма поначалу кажется вырвиглазной, но после определённых разбирательств видны все преимущества такого подхода. С другой стороны, просто новичкам легче понять императивную парадигму (или она просто уже дефолтом навязывается, потому я считаю её более простой).



Имхо, лиспы, по большей части, императивны до немогу. Функциональщина это к Haskell и ML как раз.

244
26 августа 2011 года
UAS
2.0K / / 19.07.2006
Да, буду вынужден признать, что наговорил лишнего относительно Лиспа и императивности. Пойду освежу матчасть
5
27 августа 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom
Кстати, не могу вспомнить чисто "императивных" языков, кроме ассемблера.


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

Цитата: Kogrom
То есть, чтобы были только процедуры, но не функции, которые могут вернуть значение.


Понятие "функции" элементарно сводится к понятию процедуры, впрочим обратное также верно (но не очевидно).

Цитата: Kogrom
Да и запись "a = b + c" уже не совсем императивна. Надо что-то типа : a += c; a += b;

Существуют ассемблеры где a += c можно выразить лишь цепочкой инструкций (в MSIL это будет 4 инструкции). А также есть и такие, где a = b + c будет одной.

5
27 августа 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Norgat
Имхо, лиспы, по большей части, императивны до немогу. Функциональщина это к Haskell и ML как раз.


Тоже самое (про императивность) можно сказать и про ML. ;)

87
27 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
Императивность это способ организации вычисления, при котором мы выполняем явное изменение состояния. Так что твое выражение бессмыленно.



Ну и? Ты утверждаешь что на C или C++, например, нельзя написать код, в котором не будет явного изменения состояния?

Цитата: hardcase
Понятие "функции" элементарно сводится к понятию процедуры, впрочим обратное также верно (но не очевидно).



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

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

Цитата: hardcase
Существуют ассемблеры где a += c можно выразить лишь цепочкой инструкций (в MSIL это будет 4 инструкции). А также есть и такие, где a = b + c будет одной.



MSIL - это не ассемблер, а язык, синтаксис которого похож на ассемблер. Но я не утверждаю, что нет исключений. У меня речь была про то, что a = b + c может не изменять состояния программы, ибо все 3 объекта могут быть неизменяемыми (даже в том же C++).

341
27 августа 2011 года
Der Meister
874 / / 21.12.2007
Цитата: Kogrom
Про PHP не знаю. Никогда на нём не программировал.
Но программируя на JS можно ознакомиться с некоторыми азами: с циклами, переменными и т.д. Затем уже и на более "трудные" языки можно переходить. Образно говоря, вначале гантели, затем штанга. Понятно, что штангист легко поднимет гантелю, но начинают обычно с малого.

Хотя лучше вначале Python, а затем Python %)

А вот объясните мне, надалёкому: какая разница с какого языка начинать программировать? В смысле, учиться программировать одно через другое?
Почему мне в детстве никто не предлагал начать говорить с какого-нибудь бурятского? Почему в автошколе мне не предлагали начать с экскаватора? Почему мне никто не сказал, что занятия тяжёлой атлетикой лучше предварять работой грузчиком?

244
27 августа 2011 года
UAS
2.0K / / 19.07.2006
Цитата:
Почему в автошколе мне не предлагали начать с экскаватора?

Ну, наверно потому, что PHP и JS сравнимы с машиной-картингом, в то время как автомобиль попахивает Паскалем и Бэйсиком. А вот экскаватор - это уже что-то из разряда специфичных языков.
Научится можно на всём. Картинг быстрый, простой и понятный, но понять устройство автомобиля и принципов работы по нему будет узнать довольно сложно. Автомобиль как база. А вот чтобы обслуживать и работать на экскаваторе - тут надо и базу знать в целом, и специфичность понимать.

87
27 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: Der Meister
А вот объясните мне, надалёкому



Я всегда говорил, что Der Meister - гений. Так что не надо про недалёкого.

Цитата: Der Meister
какая разница с какого языка начинать программировать? В смысле, учиться программировать одно через другое?



Была тут похожая тема. Говорили про то, что язык должен зацепить, позволить быстро почувствовать обратную связь. Это дают скриптовые языки, типа Python. На Java же придётся набрать здоровую портянку для хелловорлда.

Вот, например, зачем новичку до запуска первой программы вникать во все эти модификаторы доступа, исключения, да и вообще в ООП? Это для него - ненужный мусор. И он не станет вникать, и какое-то время для него это останется заклинанием, запускающим программу. Мне такое не нравится.

Цитата: Der Meister
Почему мне в детстве никто не предлагал начать говорить с какого-нибудь бурятского? Почему в автошколе мне не предлагали начать с экскаватора? Почему мне никто не сказал, что занятия тяжёлой атлетикой лучше предварять работой грузчиком?



Я не думаю, что сравнения удачны.

341
27 августа 2011 года
Der Meister
874 / / 21.12.2007
Цитата: Kogrom
Я не думаю, что сравнения удачны.

В них суть. Цель какая у студента? Выучить какое-то сферическое программирование в сильно разреженном газе? Или язык выучить?
А то это самое абстрактное "программирование" сродни "вождению", "речи" и "физкультуре" - это может быть всё что угодно, от форта до рефала, какой в нём смысл? А если нужно выучить один язык, зачем начинать с другого?
На практике с "заклинаниями" вроде всё в порядке: студент делает как сказали и желание вникать у него появляется уже позже, когда он более-менее освоится, так что он обычно и не парится.

10
27 августа 2011 года
Freeman
3.2K / / 06.03.2004
Цитата: Der Meister
Выучить какое-то сферическое программирование в сильно разреженном газе?


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

260
27 августа 2011 года
Ramon
1.1K / / 16.08.2003
Авторам подобных вопросов с такой легкостью удается развести на три стены соплей, что становится грустно и страшно одновременно.
87
27 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: Der Meister
В них суть. Цель какая у студента? Выучить какое-то сферическое программирование в сильно разреженном газе? Или язык выучить? А то это самое абстрактное "программирование" сродни "вождению", "речи" и "физкультуре" - это может быть всё что угодно, от форта до рефала, какой в нём смысл? А если нужно выучить один язык, зачем начинать с другого?



Нет, не надо говорить "один язык", надо говорить - Java. Некоторые языки просто не подходят для того чтобы быть первыми. Например, разработчики D честно говорят:

Цитата:
As a first programming language - Basic or Java is more suitable for beginners. D makes an excellent second language for intermediate to advanced programmers.



Но я думаю, что с Java они погорячились.

Цитата: Der Meister
На практике с "заклинаниями" вроде всё в порядке: студент делает как сказали и желание вникать у него появляется уже позже, когда он более-менее освоится, так что он обычно и не парится.



Да он и дальше не парится во многих случаях. Зачем вникать, если "заклинания" работают?

В общем, я предпочитаю понимать свой код. Кого устраивает другое - дерзайте.

341
27 августа 2011 года
Der Meister
874 / / 21.12.2007
Цитата: Kogrom
Некоторые языки просто не подходят для того чтобы быть первыми.

Потому что не столь увлекательно?

Цитата: Kogrom
Да он и дальше не парится во многих случаях. Зачем вникать, если "заклинания" работают?

Запросто, но едва ли это зависит от языка - тут, похоже, просто натура такая.

87
27 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: Der Meister
Потому что не столь увлекательно?



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

С другой стороны, если есть какой-то хороший стимул, типа обещания устройства на конкретную хорошую работу, то найдётся энергия перепрыгнуть ступеньку.

74K
28 августа 2011 года
AbsurD
3 / / 22.08.2011
Так давайте без ваших научных "матов")
74K
28 августа 2011 года
AbsurD
3 / / 22.08.2011
Посоветуйте самоучитель для языка С++ (автор + название книги, по возможности ссылку на скачку)
87
28 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: AbsurD
Посоветуйте самоучитель для языка С++ (автор + название книги, по возможности ссылку на скачку)



Бери из Герберта Шилдта что понравится. Я начинал с такой книжонки:
http://www.ozon.ru/context/detail/id/1498452/

Шилдт - товарищ простой, без научных "матов". Для новичков пойдёт. Но для нормального понимания потом надо будет ещё Страуструпа, Саттера и т.д читать. Вот тут у нас список есть:
http://forum.codenet.ru/threads/50085-Книги-которые-стоит-прочитать

5
29 августа 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom
Но я думаю, что с Java они погорячились.


Чем тебе Java не угодила? Не осилил что ли? trollface.jpg

87
29 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
Чем тебе Java не угодила? Не осилил что ли?



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

List<String> myList = new List<String>();

если можно как-то так, например:

def myList = List();

Переняли без всякой надобности дефекты синтаксиса C++. Но в последнем такой синтаксис исторически сложился, да и new там имеет смысл.

297
30 августа 2011 года
koodeer
1.2K / / 02.05.2009
Цитата: Kogrom
Зачем писать так:

List<String> myList = new List<String>();

если можно как-то так, например:

def myList = List();


Согласен! Nemerle! :)
Обратите внимание: сохраняется строгая статическая типизация!

297
30 августа 2011 года
koodeer
1.2K / / 02.05.2009
Опять хочу заметить, что сперва начинающий программист должен определиться с направлением, в котором хочет подвизаться:
  1. веб
  2. прикладное
  3. системное
  4. администрирование
А уже затем, исходя из этого, выбирать язык.
2.1K
30 августа 2011 года
Norgat
452 / / 12.08.2009
Цитата: koodeer
Согласен! Nemerle! :)
Обратите внимание: сохраняется строгая статическая типизация!



Там ещё пилить, пилить и пилить, причём я говорю не об языке, а о таких вещах как документация(ссылки из wiki на код в svn изобилующий закоменченными секциями и TODO выглядят странновато), IDE(что-то кроме подсветки синтаксиса уже появилось?) и учебные материалы(быстрая пробежка по гуглу дала только 1 книгу на английском языке за $85, дата публикации - 2010 год).

87
30 августа 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: koodeer
Согласен! Nemerle! :)
Обратите внимание: сохраняется строгая статическая типизация!



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

Эх, была небольшая вероятность, что hardcase по невнимательности начнёт доказывать, что Java лучше Nemerle, но ты всё испортил :)

5
31 августа 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom
В теме я привожу аргументы против того, что она должна быть первым языком. Лично же мне не нравится синтаксис. Зачем писать так:

List<String> myList = new List<String>();


Кстати, в новом стандарте Java они слегка уменьшили дублирование кода (dimond-нотация):

 
Код:
List<String> myList = new List<>();
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог