| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > основы основ |
| Автор: DENNN 31.8.2004, 19:24 |
| может и не только мне интересно будет почитать: http://russian.joelonsoftware.com/Articles/BacktoBasics.html |
| Автор: shedon 31.8.2004, 19:53 |
| Довольно интересная статья |
| Автор: lynx_916 31.8.2004, 22:29 |
| гыыыы, интересно |
| Автор: AndyY 31.8.2004, 22:48 |
| Интересно послушать, что думают заинтересованные по поводу идеальной структуры данных для хранения строк. Проблемы C реализации я вижу такие: 1. в том, что функции strncpy, strncat, _snprintf не ставят завершающий 0 в конце. 2. если сохранить указатель на строку в нескольких местах, то при необходимости переразмещения буфера (выделения большего объема памяти) требуется обновлять все указатели 3. далеко не во всех кодировках длина строки соответствует числу символов в ней + 0 на конце. Итак, какие мнения? |
| Автор: chipset 1.9.2004, 07:20 |
| Очень интересная статья (читал пару месяцев назад) |
| Автор: gray_k 1.9.2004, 08:36 |
| Мне вообще все его статьи нравятся. Умный мужик. |
| Автор: 3,14 1.9.2004, 09:15 |
| ИМХО - учится надо начинать сверху, если человек разберётся с премудростями ООП тогда мож у него и с низким уровнем что получится, а так если чел. хочет стать, допустим, веб-мастером, то пусть уж сначала просто научится сайты писать, а уж потом можно и с оптимизацией начинать мучится... |
| Автор: DENNN 1.9.2004, 10:42 | ||
Ага, и у него создасться ложное представление о том, что же там находится внизу. |
| Автор: 3,14 1.9.2004, 11:18 | ||
|
| Автор: DENNN 1.9.2004, 17:02 |
| 3,14 Про "невъезжающих" разговор отдельный. Они как раз критерием врядли могут служить. |
| Автор: lynx_916 1.9.2004, 21:56 | ||
я тебе говорю. у меня друг учил С долго, а потом сразу на яву. въехал. даже очень. |
| Автор: 3,14 2.9.2004, 07:36 | ||
Я не говорю что они не могут программить на языках высокого уровня, но как правило у них логика другая. Ест у меня друг, типичный программер к-ый начинал C, занялся ASM и.т.д. Он может запросто программить хоть на C++, хоть на Java, но завязался однажды у нас спор насчёт того, что выведет код :
Мой вариант был : A B Его вариант : B B В док-во он долго задвигал про таблицу ф-ий, про то как там размещаются виртуальные ф-ии, и про то что произойдёт при вызове одного конструктора из другого, на что я сказал что его вариант просто противоречит логике ООП и оказался прав. |
| Автор: chipset 2.9.2004, 08:53 |
| И кто здесь начинал с ООПнутых языков? Некоторые вообще с Васика начинали... Добавлено @ 08:54 Вьехать можно(если вообще этому человеку можно вникнуть), стереотипы быстро сотрутся (по себе сужу). |
| Автор: 3,14 2.9.2004, 08:57 | ||
Суть не в этом, человек может стать хорошим кодером с чего бы он не начинал, но с чего начинать ООП кодер целесообразней, вот вопрос!
|
| Автор: lynx_916 3.9.2004, 19:52 | ||||
не понял. поясни, илиз.
правильно, кто начал бы с ООП, тот бы и закончил быстро. |
| Автор: chipset 4.9.2004, 03:48 | ||
Я перестал вызывать printf, scanf, использовать вот такое приведение типов (x).. писать стараюсь с использование ООП Добавлено @ 03:49 3,14 Ох, я на браинбенче на этой фигне поймался... |
| Автор: lynx_916 4.9.2004, 07:06 | ||
гыгыгыгы, так легче и не мочаешь себе голову, которая и без того... |
| Автор: chipset 5.9.2004, 03:44 | ||
Начал читать Элджера и натыкаюсь на следующее:
|
| Автор: lynx_916 5.9.2004, 07:56 |
| согласен на все 100% |
| Автор: lynx_916 5.9.2004, 08:24 | ||
создать новый тип данных! я не знаю точно, н String всё это делает. но лучше создать свой класс. |
| Автор: GrayCardinal 5.9.2004, 08:56 | ||
ч-е-г-о ? :O а как тогда два раза strncat выдает нормальную строку ? (в Линухе только его и юзаю, очень удобная вещь) |
| Автор: GrayCardinal 5.9.2004, 09:30 |
| ниче так статейка. правда там (как я понял) говорится что такая примитивная функция УЖЕ тормозная, а народ почему-то за ООП... объясните чайнику, плз... создавать класс строк... бррррр... я даже после водки такого не придумаю... |
| Автор: 3,14 6.9.2004, 09:37 | ||
|
| Автор: shedon 6.9.2004, 09:54 |
| Я начинал тоже с бэсика, потом купил книжку по VC++, с ней я иначал изучение языка, но книжку я выбрал не ту, там сразу про MFC и e.t.c. начиналось, не фига не понял купил книгу по си разобрался, а после и в С++, и в ООП, разобрался. |
| Автор: Peter 6.9.2004, 15:24 |
| Ох, народ, это обсуждение на флейм стало похоже. Я думаю, сначала нужно заиметь голову, а потом уже садиться программировать. |
| Автор: 3,14 6.9.2004, 15:27 | ||
Голова конесно нужна, но и от методологии обучения многое зависит |
| Автор: Peter 6.9.2004, 15:38 | ||
Знаю хорошую методику: учиться, учиться и учиться. Ульянов тут ни при чем. |
| Автор: Peter 27.9.2004, 11:02 | ||
Имеется в виду вот что. Программировать я начал только на первом курсе. До того изучал математику (на уровне участника всероссийских олимпиад). Поэтому всякие языки (Fortran, C++) и технологии программирования (COM, ООП) осваивались без затруднений. И материал статьи мне показался тривиальным. |
| Автор: 3,14 27.9.2004, 12:05 | ||||
Угу, и придётся по сто раз велосипед изобретать |
| Автор: Guest 27.9.2004, 13:58 |
| На мой взгляд, начинать обучение с нуля надо на Васике или на Паскале. Лучше - на Паскале - простой и ясный язык, но тем не менее строгий. Он прививает культуру программирования . Ну а после того, как узнаешь условные операторы, циклы и процедуры, надо начинать ООП (неважно, на каком языке) и ассемблер... наверное, лучше всего параллельно. Была такая точка зрения, что настоящий хакер должен начинаь учиться программировать только на асме, причём самостоятельно. Не знаю, может отдельные таланты так и делали. Но 999 человек из тысячи это точно отпугнёт с самого начала |
| Автор: Step 27.9.2004, 14:05 |
| Во флейм понесся.... главное что бы на благо по себе скажу.... лучшебы я с асма начал..... а не с бейсика...... асм требует понимание процессов (базовых).... а это кирпич, а потом уже стена идет... |
| Автор: Atos 27.9.2004, 14:25 |
| Немного не согласен: для начала надо освоить базу самого программмирования - условия, циклы, массивы, процедуры, а это лучше делать на более понятном для чайника языке. Для асма необходимы и знания по архитектуре ЭВМ, а способен ли , например, обычный средний школьник заинтересоваться и реально врубиться во всё это (Если исходить из принципа-"чем раньше начать, тем лучше")? Понятно, что есть талантливые люди, которые в 15 лет ужи оси пишут, но не о них речь. {предпоследнее сообщение моё было - забыл зарегиться} |
| Автор: Step 27.9.2004, 14:49 |
| а вот маленький пример по поводу того что лучше.... есть циклы с пост условиями пред условия и с параметрами в языках высокого уровня мы не задумываемся и выбераем тот который удобней ( а задуматься надо былобы) так как производительность разная... по той простой причине что процессор лучше преспособлен работать с циклами с пост условиями, они же для него являеються циклами с параметрами а вот цикл с пред условиями это нагрузка на процессор, команды передачи управления довольно таки длительны по выполнению а в циклах с пред условиями команды нужно две (в стандартной реализации).... кстати товарищи давайте не путать чистый асм и асм который мы видем сейчас (с биосом, с 21 прерыванием и всем прочем), я считаю что переход например с бейсика или с паскаля на чистый асм - это нужно практически все переосмыслеть, в то время когда обратный переход являет собой просто явление группировки (а, блин, не знаю как это правильно назвать, к которому программист рано или позно приходит сам вне зависимости от языка программирования) |
| Автор: DENNN 27.9.2004, 14:59 |
| Вообще логичнее было бы принять точку зрения Atos, если стоит задача привлечь растущий организм Если же начинать осваивать языки уже в момент сформировавшегося интеллекта (ну например человек способен самостоятельно постигать азы математики институтского уровня), то для него изучение первоначальных, базовых знаний не будет настолько тяжелой задачей. Сам я начинал еще в средних классах и помню, сколько интереса вызывало понимание того, что я сам могу на том же бейсике что-то нарисовать или сделать. Это явилось мощным стимулом в самом начале и для мнея, и для моих товарищей, которые впоследствии на программинг "забили". А если меня в том возрасте посадить за старые советские книжки по асму для ЕС ЭВМ, бр-р-р - до сих пор помню тот ужасный язык. |
| Автор: 3,14 27.9.2004, 15:07 |
| Вполне согласен с DENNN-ом и Atos-ом |
| Автор: Step 27.9.2004, 15:10 | ||||
DENNN, ну это кому что, например для меня после паскаля, ассемблер ЕС-ки открывал уйму возможностей..... меня просто затягивало в асм когда я начал понимать что на асме можно сделать то что трудно сделать на языке высокого уровня.... кстати для поиска 3д игрушку не пытались написать... я пытался, (на паскале, во фигня получилась, и тут у меня отвращение пошло, а потом асмик подучил, и по комнате уже ходить можно было) Добавлено @ 15:17
|
| Автор: DENNN 27.9.2004, 15:19 | ||
Нет, я как раз ничего подобного не отрицал. Я например тоже на асме и спрайты отображал за пару тактов и игрушку правил, когда у нее модель прерываний под классический ZXSpectrum написана. Только если бы я с нуля начал сразу асм по тем материалам, что были доступны, я бы наверное на долго интерес потерял. Ну сам посуди, какой мне прок, от того, что я буду разбираться как на микросхемах серии кр155 постороена операция "логическое или"? Я конечно мог бы что и спаять, но к логике программинга это имело только историческое отношение. А в те времена каждое издание старалось такой "комплексный" материал дать. Это называлось у них "как работает ЭВМ" Добавлено @ 15:21 А че во флейм то? Страшно что попрекут в плохом модерировании? |
| Автор: Step 27.9.2004, 15:29 | ||
| я просто расказываю, что позиции могут быть разные вопрос в том к чему душа у человека склонна... причем тут попрекнут, и сделал я такое предупреждение, что бы увидеть вашу реакцию и сделать правильное решение .... но лично я считаю что в контексте с++ эта тема себя исчерпала
|
| Автор: chipset 28.9.2004, 00:56 |
| Я вот учил Си под влиянием отца.. Потом, долго программил на бэйсике, в конце 2002 что то в мозгУ тронулось и я ушёл в С++... Хотя конечно для меня 10-летнего асм вероятно показался бы сильно тяжелым, помню как мне тяжело было понять элементарные циклы |
| Автор: Peter 30.9.2004, 12:24 | ||||
Зато впоследствии человек сможет изобрести неизобретенное. |