Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Голосование

Какой ЯП Вы бы рекомендовали в качестве первого изучаемого?

Assembler
17 (14.5%)
BASIC
8 (6.8%)
C
19 (16.2%)
C++
21 (17.9%)
C#
3 (2.6%)
Delphi
5 (4.3%)
Java
6 (5.1%)
Pascal
21 (17.9%)
Python
15 (12.8%)
Ruby
2 (1.7%)

Проголосовало пользователей: 107

Автор Тема: Попытка положить конец спорам!  (Прочитано 6286 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nxx

  • Старожил
  • *
  • Сообщений: 1635
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #30 : 12 Июля 2008, 13:31:15 »
С языка с синтаксисом "Си-ориентированным". Тк такие языки являются наиболее мощными и распространенными.  Первые алгоритмические конструкции пробовал на java-script ))  Тк это оказалось очень удобно. Нужен был всего-лишь текстовый редактор и обозреватель))

Ничего себе "удобно".
OpenSUSE 11.3 x86-64

Оффлайн naviero

  • Активист
  • *
  • Сообщений: 685
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #31 : 20 Июля 2008, 13:39:00 »
Итого верх взяли ассемблер и С. Заметна рука профессионалов ;)
Prefiero morir a pie, que vivir siempre arrodillado.
Ernesto Che Guevara

Оффлайн Nxx

  • Старожил
  • *
  • Сообщений: 1635
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #32 : 20 Июля 2008, 15:30:27 »
А может кто-то объяснить, чем Pascal лучше, чем Basic? Вижу, за него в 2 раза больше голосов, а чем это объясняют?
OpenSUSE 11.3 x86-64

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #33 : 21 Июля 2008, 06:40:48 »
Nxx, верь людям на слово. Когда изучишь эти языки тогда сам поймешь что лучше и где оно лучше.

Оффлайн adventure

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #34 : 21 Июля 2008, 10:07:39 »
Ну а я бы порекомендовал ассемблер. Я знаю, что это не самый лучший язык для начинающих, но только этот язык покажет начинающему программисту что такое компьютер и как  он работает. А может быть, этот язык научит пользователя хоть немного следить за ресурсами, потребляемыми его программой.

Оффлайн igel

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #35 : 21 Июля 2008, 10:17:26 »
С - очень сложный язык для изучения и им можно просто напугать.
:coolsmiley: Не сказал бы. Начинал (20 лет назад) с Бейсика, потом Паскаль (около 7 лет в сумме - разработка больших проектов с GUI на основе BGI, если кто такое помнит), потом С (математика и опять GUI на BGI), потом Фортран (математика) и С++ (большие проекты - математика + GUI на Qt).

Ничего логичнее С в этом ряду не встречал. С++ -  закономерное расширение, после изучения C идёт легко, надо только освоиться с концепцией ООП. Бэйсик и Фортран - на мой вкус неудобны для больших проектов, а "Hello, world!" безразлично на чём писать. Фортран хорош для прикладников наличием множества математических библиотек, но и для С сейчас можно найти всё, практически.

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

Ассемблер - вещь великая. Но практически необходимой оказывается для единиц, занимающихся системным программированием либо глубокой оптимизацией. Если у человека появится такая потребность - он обратится к ассемблеру. Рекомендовать начинать с него я бы не стал.

Начинать обучение со специфичных высокоуровневых языков (C#,Java) - тоже не стоит, они слишком сильно прячут аппаратную часть (как и Бэйсик с Фортраном, кстати).

С - золотая середина для старта, как мне кажется. И весьма востребован.
« Последнее редактирование: 21 Июля 2008, 10:30:12 от igel »

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
Re: Попытка положить конец спорам!
« Ответ #36 : 21 Июля 2008, 11:08:11 »
Проголосовал за C++ (хотя лично мне больше нравится C). Плюсы для новичков:
- гибкий язык. Можно изучать различными способами. Как C, т.е. научить правильно выделять память и работать со строками как с char*. А можно научить как работать с vector, string и т.д. И обучение будет не сложнее BASIC'а.
- более строгий чем C (приучает к аккуратности). В C можно опустить декларацию и программа скомпилится, в отличии от C++.
P.S. Изучение же Ассемблера новичками я бы сравнил с отказом изучения классической (ньютоновской) физики в первых классах и преподованием сразу СТО и т.п.
« Последнее редактирование: 21 Июля 2008, 11:38:04 от Sova777 »
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

Оффлайн bkacho

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #37 : 21 Июля 2008, 11:43:54 »
а с каких пор делфи стал языком программирования? ну если только что делфи как объектно-ориентированный паскаль...

Вообще-то у среды Delphi нет конкурентов. Всевозможные нападки линуксоидов -- это от зависти.
Потому что ни MVS ни Mono ни JDeveloper ни Eclipse не предлагают ничего даже близко напоминающего по удобству, возможностям и скорости разработки.

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

Всякие там мелко-серьёзные язычки типа С (включая его клоны), конечно явление временное. (Исключением являются только Linux-разработчики, получившие язык C как тяжелое наследство и вынужденные его терпеть ) .

Ну, никогда программист на C по скорости и качеству не догонит программиста на Delphi.  Не та весовая категория.



Оффлайн Nxx

  • Старожил
  • *
  • Сообщений: 1635
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #38 : 21 Июля 2008, 12:15:46 »
Nxx, верь людям на слово. Когда изучишь эти языки тогда сам поймешь что лучше и где оно лучше.
Я знаю и Паскаль и Бейсик, дальше что? Есть что сказать или пустая брехня?
« Последнее редактирование: 21 Июля 2008, 12:18:02 от Nxx »
OpenSUSE 11.3 x86-64

Оффлайн bkacho

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #39 : 21 Июля 2008, 12:36:44 »
Проголосовал за C++ (хотя лично мне больше нравится C). Плюсы для новичков:
- гибкий язык. Можно изучать различными способами. Как C, т.е. научить правильно выделять память и работать со строками как с char*. А можно научить как работать с vector, string и т.д. И обучение будет не сложнее BASIC'а.
- более строгий чем C (приучает к аккуратности). В C можно опустить декларацию и программа скомпилится, в отличии от C++.
P.S. Изучение же Ассемблера новичками я бы сравнил с отказом изучения классической (ньютоновской) физики в первых классах и преподованием сразу СТО и т.п.

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

Ну и ещё ты забыл сказать что почти все операторы в C названы так, что сходу не догадаешься.  Это тебе не Delphi, в котором операторы названы говорящими английскими словами. Мелочь, но всё-таки.

Кстати, то что С приучает к аккуратности -- это боян, Разбрасывать где попало операторы определения данных, а потом выискивать их в коде -- это порядок?  Множественное наследование -- разве это порядок? По-моему это самый что ни на есть беспорядок. (Правда в C# от множественного наследования отказались -- это весьма радует).

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #40 : 21 Июля 2008, 13:03:35 »
В C можно опустить декларацию и программа скомпилится, в отличии от C++.
покажите мне такой компилятор C, который пропустит необъявленную переменную!  :D :2funny: :2funny: :2funny:

Оффлайн igel

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #41 : 21 Июля 2008, 13:19:34 »
В C можно опустить декларацию и программа скомпилится, в отличии от C++.
покажите мне такой компилятор C, который пропустит необъявленную переменную!  :D :2funny: :2funny: :2funny:
Декларацию, а не переменную. Т.е. объявление функции. Можно забыть, например, директиву include <stdlib.h>, потом использовать exit(int) и всё скомпилится и будет работать, но только потому, что действительная декларация функции в данном случае соответствует ожиданию компилятора. А в общем случае от этого будут большие проблемы.

НО:
к подлинной аккуратности приучают не жёсткие правила, которые не дают сделать  шаг влево - шаг вправо, а как раз отсутствие таковых + умение учиться на собственных ошибках.

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
Re: Попытка положить конец спорам!
« Ответ #42 : 21 Июля 2008, 13:26:20 »
Я о функциях. В C вполне допустимо написать такой код и он будет работать:
int main(int argc, char** argv)
{
  f();
  printf("Hello!\n");
  return (0);
}

int f()
{
  return 0;
}
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

Оффлайн Macloud

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #43 : 31 Июля 2008, 04:07:17 »
То, что начинать надо с основ - понятно. Вопрос в том, что считать основами.
Основы - это то что 2 яблока плюс 3 яблока будет 5 яблок, или то что яблоки состоят из белков, жиров и углеводов, а если копнуть по глубже то есть бозоны Хиггса? Или то, что если яблоки оставить на полгода на столе они сгниют? Или то, что их надо мыть перед едой? Или то, что за яблоки в магазине надо платить деньги, а не туалетную бумагу? Это все основы различных аспектов взаимодействия человека с яблоками.

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

Структурный язык может дать знание об основах структурного программирования, алгоритмах и т.д. Знать чем qsort отличается от bubble sort полезно и не требует знания о том, что валяется в регистрах проца, а что в памяти, и что xor ax,ax быстрее чем mov ax,0.

Объектно-ориентированный язык поможет понять основы ООП, паттернов проектирования и т.д. Знать чем наследование отличается от делегирования, и когда разумно использовать паттерн strategy - тоже полезно и не требует знания ни архитектуры компа ни алгоритмов.

А еще может быть грамотного DBA можно вырастить начиная с SQL :)

Мое мнение такое: в современном мире есть тенденции к абстрагированию от уровня железа. Все что позже асма старается быть в той или иной степени кроссплатформенным. То есть про железо знать полезно, но если вы не будете писать драйвера - вам это знание не потребуется напрямую. Алгоритмы знать тоже полезно, но они неплохо инкапсулируются. В смысле знать о наличии Arrays.sort для большинства задач достаточно.
А вот архитектуру системы, которую вы пишете, вам спрятать не удастся и не удастся от нее абстрагироваться.

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

Обучение вопрос вложный. Фиг знает, может быть если сначала выучить японский, а потом древнегреческую философию, то потом все языки пойдут как по маслу... Но подход "сначала паскаль, потом все остальное" тоже неплохо работал. Еще можно смотреть на настоящее - каких специалистов на рынке требуется больше. Мне видится это java,c#,sql,html,javascript. Можно пытаться угадать будущее, функциональные языки там или ядерная война.
Интересно посмотреть, что бы получилось если начать с UML и проектирования, а уже потом думать как это накодить :)

Короче начинал бы я с паскаля как структурного языка и дельфей (да, все знают что дельфи это оболочка, а язык object pascal, ну и что? учить object pascal отдельно?) как ООП с возможностью дизайнить GUI. А еще лучше начинал бы с того, на чем старший брат пишет, если он есть.

Оффлайн Otetz

  • Активист
  • *
  • Сообщений: 455
    • Просмотр профиля
Re: Попытка положить конец спорам!
« Ответ #44 : 31 Июля 2008, 05:30:44 »
Чушь, Маклауд. Ещё одна попытка грести всех под одну гребёнку. ДЛЯ МЕНЯ начинать с АСМ очень и очень гуд. Вот не понимаю я концепции ООП. Хоть режь. Ну вот голова у меня такая. Не доходит до меня, что такое класс, что за bool int main arg bla bla bla.
Но при этом, могу совершенно спокойно модифицировать программу, написаную на абсолютно любом языке и не видя исходников. МЕНЯ это устраивает. МОЙ образ мышления лично МНЕ не позволяет обучаться так, как ты написал. Не позволяет МНЕ, значит есть ещё такие же, как я (таки я не единственный).

Обучение процесс сугубо индивидуальный. И начинать обучаться нужно отнюдь не с Паскаля. И даже не с языка, на котором кодит "старший брат". Обучаться нужно с того, что ЛЕГЧЕ даётся САМОМУ. А паскаль это, С++ или ещё какая гадость- никого не должно волновать. Обучение- процесс интимный  :) 8)

Вот тут пробегали мысли, что обучение надо начинать с простого. А что для вас простое? Не может быть так, что то, что для Васи нереально понять, Лёне даётся в 5 минут? Где простота и где сложность? Правильно, в головах :)
И нет ничего ужасного в том, что про яблоки я узнаю через "бозоны Хиггса". Почему бы и нет, если Я их понимаю ЛУЧше, чем вижу их цвет?
Кстати, таки не надо о бозонах Хиггса, это всё-таки слишком. Эти частицы к веществу яблока в частности и к яблоку вообще имеют такое же отношение, как к С++ имеют отношение траектории движения атомов процессора.
« Последнее редактирование: 31 Июля 2008, 05:44:58 от Otetz »
Anything, that MAY go wrong, WILL go wrong...

 

Страница сгенерирована за 0.083 секунд. Запросов: 28.