6 Страницы < 1 2 3 4 5 > »   
Ответить Создать тему

Учить ребенка программированию , Нужно ли? С чего начать?

SummerRain
post Jun 15 2015, 17:19 
Отправлено #31


Активный

Сообщений: 1 219



Цитата(Amp @ Jun 15 2015, 14:14)
Соглашусь с Snowm@n. Эти несколько лет лучше тратить не на борьбу с языком и компилятором, а собственно на написание программ.
*

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


--------------------
Как прекрасен этот миф...
Profile CardPM
  0/0  
Amp
post Jun 15 2015, 17:39 
Отправлено #32


Активный

Сообщений: 2 336



Цитата(SummerRain @ Jun 15 2015, 17:19)
И только я потом понял, что "не очень" был как раз я.
*

Я это сразу понимал biggrin.gif
Profile CardPM
  0/0  
SummerRain
post Jun 15 2015, 17:45 
Отправлено #33


Активный

Сообщений: 1 219



Цитата(Amp @ Jun 15 2015, 17:39)
Я это сразу понимал biggrin.gif
*

А зачем про борьбу с языком и компилятором пишете?


--------------------
Как прекрасен этот миф...
Profile CardPM
  0/0  
Amp
post Jun 15 2015, 21:07 
Отправлено #34


Активный

Сообщений: 2 336



Цитата(SummerRain @ Jun 15 2015, 17:45)
А зачем про борьбу с языком и компилятором пишете?
*

Потому что язык и экосистема, выстроенная вокруг него, не способствуют быстрому старту. Особенно для человека у которого это первый язык. И вместо написания в удовольствие каких-то своих первых приложений он будет заниматься сбором грабель, что может погубить всякий интерес к этому делу.
Profile CardPM
  0/+3  
SummerRain
post Jun 15 2015, 21:53 
Отправлено #35


Активный

Сообщений: 1 219



Цитата(Amp @ Jun 15 2015, 21:07)
Потому что язык и экосистема, выстроенная вокруг него, не способствуют быстрому старту. Особенно для человека у которого это первый язык. И вместо написания в удовольствие каких-то своих первых приложений он будет заниматься сбором грабель, что может погубить всякий интерес к этому делу.
*

Какова альтернатива?

--------------------
Как прекрасен этот миф...
Profile CardPM
  0/0  
ap@chi
post Jun 15 2015, 21:56 
Отправлено #36


Покинул этот форум 19.02.21

Сообщений: 11 265



я понял, что надо было учить Си, когда уже освоил бейсик и bascom, а тепер уже лень пересаживаться с одного на другое
Profile CardPM
  0/0  
Amp
post Jun 15 2015, 23:33 
Отправлено #37


Активный

Сообщений: 2 336



Цитата(SummerRain @ Jun 15 2015, 21:53)
Какова альтернатива?
*

Python, современный Pascal (FreePascal, Delphi), может быть Lua (в связке c love2d, если хочется игр).
Profile CardPM
  0/+1  
SummerRain
post Jun 16 2015, 07:42 
Отправлено #38


Активный

Сообщений: 1 219



Цитата(Amp @ Jun 15 2015, 23:33)
Python, современный Pascal (FreePascal, Delphi), может быть Lua (в связке c love2d, если хочется игр).
*

Pascal, Delphi уже как раз мертвы.
Lua вообще на С написан.
А написать "хеллоуворд" или пару других простых программ на С++ не сложнее, чем на питоне.


--------------------
Как прекрасен этот миф...
Profile CardPM
  0/+1  
SiMM
post Jun 16 2015, 09:24 
Отправлено #39


Banned

Сообщений: 37 461
Из: «либеральных»«ценностей»



Цитата(SummerRain @ Jun 16 2015, 07:42)
Lua вообще на С написан.
*
И? Начинали так вообще все с ассемблера, а тот, в свою очередь, с машинных кодов wink.gif

--------------------
Profile CardPM
  0/+1  
SummerRain
post Jun 16 2015, 10:38 
Отправлено #40


Активный

Сообщений: 1 219



Цитата(SiMM @ Jun 16 2015, 09:24)
И? Начинали так вообще все с ассемблера, а тот, в свою очередь, с машинных кодов wink.gif
*

А я и не против ассемблера wink.gif

--------------------
Как прекрасен этот миф...
Profile CardPM
  0/0  
Amp
post Jun 16 2015, 12:31 
Отправлено #41


Активный

Сообщений: 2 336



Цитата(SummerRain @ Jun 16 2015, 07:42)
Pascal, Delphi уже как раз мертвы.
*

Так для обучения же берем. Потом можно соскочить на что-то более востребованное. Или на тот же C.

Цитата(SummerRain @ Jun 16 2015, 07:42)
А написать "хеллоуворд" или пару других простых программ на С++ не сложнее, чем на питоне.
*

Классический плюсовый "Hello, world" - очень неудачный старт. На человека сразу сваливается куча вещей: классы, пространства имен, перегруженные операторы, функции, понятие точки входа в программу, косвенным образом даже указатели.
Profile CardPM
  -1/+1  
SummerRain
post Jun 16 2015, 13:20 
Отправлено #42


Активный

Сообщений: 1 219



Цитата(Amp @ Jun 16 2015, 12:31)
Так для обучения же берем. Потом можно соскочить на что-то более востребованное. Или на тот же C.
*


Это с С можно соскочить на паскаль, а тут придётся переучиваться.

Цитата(Amp @ Jun 16 2015, 12:31)
Классический плюсовый "Hello, world" - очень неудачный старт. На человека сразу сваливается куча вещей: классы, пространства имен, перегруженные операторы, функции, понятие точки входа в программу, косвенным образом даже указатели.
*

Исходный код
#include <iostream>
void main() {
   std::cout << "Hello, World!";
}

#include <iostream> - подключение модуля для ввода/вывода данных.
void main() - главная функция.
std::cout << - вывод.
Пусть просто запомнит пока эти три вещи без подробностей. Потом уже дойдёт до всего остального. Также как ребёнок учится говорить "мама", "папа", "каша".
Он просто запоминает. Ему же не объясняют, что "мама тебя родила", "папа тебя зачал", "каша - это то, что будешь кушать не смотря ни на что первые лет 10 своей жизни". biggrin.gif
А вы предлагаете, мол, пусть ребенок выучит мартышкин язык, а потом уже научится блеять по-человечьи. good.gif

--------------------
Как прекрасен этот миф...
Profile CardPM
  0/0  
Amp
post Jun 16 2015, 14:52 
Отправлено #43


Активный

Сообщений: 2 336



Мне кажется, что вы не те цели возлагаете на первый для ребенка язык smile3.gif По мне так на нем (языке) нужно учиться основам алгоритмизации и решению задач. А не заниматься изучением языка ради самого языка с целью использования его в будущей профессиональной деятельности.
Profile CardPM
  0/+1  
Snowm@n
post Jun 17 2015, 20:04 
Отправлено #44


O_o

Сообщений: 1 037



Цитата(SummerRain @ Jun 10 2015, 10:33)
Да он довольно сложный. Но если ребенок занимает программированием, то скорее всего он весьма одарённый. К тому же, чтобы научиться писать хорошо на С++, у него есть несколько лет до того, как он повзрослеет.
*
Эти несколько лет будет полезнее потратить на другие вещи, например на изучение алгоритмов и структур данных, а не осваивать язык, состоящий из костылей чуть менее чем полностью.
Цитата(SummerRain @ Jun 10 2015, 10:33)
Так про С++ говорили ещё лет 5 назад. Но почему-то на С++ до сих пор пишут сложные программы и игры.
*
У С/С++ есть очень важное достоинство - оптимальное использование ресурсов, и как следствие экономия памяти и высокое быстродействие. Но его недостатков при этом никто не отменял. Да, у него всегда будет своя ниша. Но если вам не требуется максимальное быстродействие например, лезть туда не следует. Только время потеряете. А особенно если вы новичок/начинающий программист.
Цитата(SummerRain @ Jun 10 2015, 10:33)
А для сборки мусора есть стандартные средства (например, умные указатели, которых в том же новом стандарте тьма тьмущая).
*
Сборка мусора != умные указатели. Умные указатели я могу использовать, а могу не использовать в отличие от сборки мусора. Да и чтобы использовать умные указатели правильно нужно знать не меньше, чем при ручном управлении памятью. Хотите примеров? Иx есть у меня
Исходный код
func(shared_ptr<A>(new A()),shared_ptr<B>(new B())) // возможна утечка памяти

Исходный код
class A;
class B;
class A{... auto_ptr<B> m_b; ...};
class B{... auto_ptr<A> m_a; ...};
// зацикливание при удалении

Исходный код
class A;
class B;
class A{... shared_ptr<B> m_b; ...};
class B{... shared_ptr<A> m_a; ...};
// утечка памяти при удалении

Цитата(SummerRain @ Jun 10 2015, 10:33)
А к синтаксису можно привыкнуть.
*
К тому, что компилятор при малейшей опечатке в шаблонном коде выдает многостраничную простыню привыкнуть довольно сложно smile3.gif
В итоге что хочу сказать. Применять С++ можно и нужно, но ни в коем случае не для обучения. На мой взгляд, идеальным выбором будет Python.
p.s. Да, ваш HelloWorld стандарту не соотвествует smile3.gif
p.p.s. Не надо воспринимать мое сообщение как нападки на C++, я его люблю таким, какой он есть, со всеми недостатками wink.gif

--------------------
Developer -> Lead Developer -> Lead Architect -> ... ?
Profile CardPM
  0/+1  
SummerRain
post Jun 17 2015, 22:34 
Отправлено #45


Активный

Сообщений: 1 219



Цитата(Snowm@n @ Jun 17 2015, 20:04)
Эти несколько лет будет полезнее потратить на другие вещи, например на изучение алгоритмов и структур данных, а не осваивать язык, состоящий из костылей чуть менее чем полностью.
*


Изучать алгоритмы без применения их в коде - пустая трата времени. Также и со структурами. Как влетит - так вылетит. Теория без практики мертва.
Почти полностью состоит из костылей? Да ладно...

Цитата(Snowm@n @ Jun 17 2015, 20:04)
У С/С++ есть очень важное достоинство - оптимальное использование ресурсов, и как следствие экономия памяти и высокое быстродействие. Но его недостатков при этом никто не отменял. Да, у него всегда будет своя ниша. Но если вам не требуется максимальное быстродействие например, лезть туда не следует. Только время потеряете. А особенно если вы новичок/начинающий программист.
*


Да никто сразу не заставляет кодить на низком уровне. Как раз достоинство языка в том, что можно писать драйвера и можно шлёпать формы (ну тут ясно, что это не pure C++).

Цитата(Snowm@n @ Jun 17 2015, 20:04)
Сборка мусора != умные указатели. Умные указатели я могу использовать, а могу не использовать в отличие от сборки мусора. Да и чтобы использовать умные указатели правильно нужно знать не меньше, чем при ручном управлении памятью.
*

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

Цитата(Snowm@n @ Jun 17 2015, 20:04)
Хотите примеров? Иx есть у меня
Исходный код
func(shared_ptr<A>(new A()),shared_ptr<B>(new B())) // возможна утечка памяти

Исходный код
class A;
class B;
class A{... auto_ptr<B> m_b; ...};
class B{... auto_ptr<A> m_a; ...};
// зацикливание при удалении

Исходный код
class A;
class B;
class A{... shared_ptr<B> m_b; ...};
class B{... shared_ptr<A> m_a; ...};
// утечка памяти при удалении

*

Про эти примеры можно сказать: "Месье знает толк в извращениях".
В первом примере нефиг громоздить инструкции в одну строку. Мелкий программёнок должен знать, что опубликованное пользователем изображение. А надо сначала проверить на std::bad_alloc.
И вообще он должен знать, что аргументы функции могут вычисляться в любом порядке. (Пару тысяч страниц увлекательного чтива в виде стандарта как раз пойдут ему на пользу biggrin.gif ).
Во 2-м и 3-м примере тоже извращение. Чтобы 2 класса ссылались друг на друга... Конечно ваш опыт больше. Вот мне бы хотелось какой-нибудь реальный пример, где такое необходимо.

Цитата(Snowm@n @ Jun 17 2015, 20:04)
К тому, что компилятор при малейшей опечатке в шаблонном коде выдает многостраничную простыню привыкнуть довольно сложно smile3.gif
*

Не ну не надо торопиться портить шаблонами детство ребёнку. biggrin.gif

Цитата(Snowm@n @ Jun 17 2015, 20:04)
В итоге что хочу сказать. Применять С++ можно и нужно, но ни в коем случае не для обучения. На мой взгляд, идеальным выбором будет Python.
*

не знай, не знай. А если он захочет создать (а он скорее всего захочет) полноценный экзешник. На интерпретируемом языке без сторонних программ... pardon.gif

Цитата(Snowm@n @ Jun 17 2015, 20:04)
p.s. Да, ваш HelloWorld стандарту не соотвествует smile3.gif
*

Ну я там специально поставил void. А то действительно проблематично будет объяснять int main... return 0. Куда возвращает? biggrin.gif

--------------------
Как прекрасен этот миф...
Profile CardPM
  -1/0  

6 Страницы < 1 2 3 4 5 > » 
ОтветитьTopic Options
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
Быстрый ответ
Кнопки кодов
 Расширенный режим
 Нормальный режим
    Закрыть все тэги


Открытых тэгов: 
Введите сообщение
Смайлики
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
         
Показать все

Опции сообщения