Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ Образование в области электроники _ Кризис в самообразовании.

Автор: xinortcele Mar 22 2017, 21:41

Здравствуйте.

В подростковом возрасте немного увлекался электроникой (лет в 12 досталась книга "Юный радиолюбитель", по-моему седьмое издание)). Потом лет в 17 я понял что это не мое и как-то все было благополучно заброшено. Спустя примерно 10 лет, после некоторых "умствований" решил заняться самообразованием. Сначала выбор пал на веб-программирование, потом на так сказать, универсальные языки программирования, потом заинтересовался ПЛИС прочитал книгу "Харрисов - Цифровая схемотехника и архитектура компьютера. Каждый раз меня или что-то отталкивало, в общем дальше не помню уже как, я перешел на силовую электронику - сначала это были книги Семенова, какие-то другие, различные форумы - на этом некоторые подразделы силового форума я прочитал целиком) начиная с самых старых тем - очень эффективно мне кажется). Понятно что все читалось лишь поверхностно. В общем придя к выводу что нужно начинать с азов а именно с математики я также поверхностно пробежался по некоторым книгам. Видимо это и было какой-то ошибкой, но взяв первый том Фихтенгольца и начав неспеша, вдумчиво читать каждое предложение, я столкнулся с тем что меня хватает примерно на 5 страниц и все! Срабатывает какой-то тормоз и дальнейшее чтение приносит одни муки, ощущение какой-то нехватки памяти!
В общем описал все несколько сумбурно. Может кто-то сталкивался с чем-то подобным. Отдых (две недели) как-то не помогает, (правда мысли как-бы по инерции работали в том же ключе).

Автор: Baser Mar 22 2017, 22:26

А в чем вопрос то? sm.gif

Электроникой увлекаются в юности и на всю жизнь. Если вы в 17 лет поняли, что это не ваше, то с годами оно не станет вашим делом, увы.
О таких случаях не слышал...

Автор: xinortcele Mar 22 2017, 22:37

Да я как бы и не стремлюсь чтобы оно стало моим делом на всю жизнь. blush.gif

Автор: Myron Mar 23 2017, 00:04

Цитата(xinortcele @ Mar 22 2017, 16:37) *
Да я как бы и не стремлюсь чтобы оно стало моим делом на всю жизнь. blush.gif
Тогда надо бросать. Уровень вхождения в современную электронику довольно высок и без соответствующей мотивации ничего не выйдет, пустая трата времени. Даже радиолюбительство не потянуть. Ну если не считать мигание светодиодами на купленной плате с ардуино.

Автор: xinortcele Mar 23 2017, 00:15

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


А вот у товарища TSerg в подписи следущее:

"Стоит только начать.. а, начать - всегда стоит" - причем без дополнительных оговорок biggrin.gif
А если без шуток, то как оказалось мне нужны только некоторые разделы, и прежде всего как раз математика. Тут надо сказать что даже знания, полученные в детстве, мне очень помогали и были хорошим подспорьем в жизни.

Автор: V_G Mar 23 2017, 00:49

Чтение умных книжек (в отрыве от практики) не должно быть самоцелью. Надо заняться каким-то конкретным проектом, и в ходе проектирования и отладки находить ответы в умных книжках. При решении возникших проблем от чтения совершенно не клонит в сон.

Автор: xinortcele Mar 23 2017, 01:05

Цитата(V_G @ Mar 23 2017, 03:49) *
Чтение умных книжек (в отрыве от практики) не должно быть самоцелью. Надо заняться каким-то конкретным проектом, и в ходе проектирования и отладки находить ответы в умных книжках. При решении возникших проблем от чтения совершенно не клонит в сон.


Хороший совет, но как мне кажется это не всегда работает. Да и хочется сразу знать ответы на все вопросы biggrin.gif

Автор: Myron Mar 23 2017, 01:23

Цитата(xinortcele @ Mar 22 2017, 19:05) *
Хороший совет, но как мне кажется это не всегда работает. Да и хочется сразу знать ответы на все вопросы biggrin.gif
Вот-вот. Хотеть не вредно. Главное не переживать через десятилетия о бесцельно прожитых годах с нереализованными хотениями. Чтобы этого не было надо искать другое приложение сил.

Автор: xinortcele Mar 23 2017, 01:32

Цитата(Myron @ Mar 23 2017, 04:23) *
Вот-вот. Хотеть не вредно. Главное не переживать через десятилетия о бесцельно прожитых годах с нереализованными хотениями. Чтобы этого не было надо искать другое приложение сил.


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

Автор: Myron Mar 23 2017, 02:37

Цитата(xinortcele @ Mar 22 2017, 19:32) *
Переживаний точно не будет. Вы же согласитесь, что можно знать или одно хорошо, или всего по чуть-чуть. Кажется по Вашему второе это плохо? Я думаю это не всегда так.
У каждого свой выбор. Главное, чтобы выбор не огорчал ни в данное время, ни потом, с годами.

Автор: hsoft Mar 23 2017, 02:42

Цитата(xinortcele @ Mar 22 2017, 22:41) *
... но взяв первый том Фихтенгольца и начав неспеша, вдумчиво читать каждое предложение, я столкнулся с тем что меня хватает примерно на 5 страниц и все! Срабатывает какой-то тормоз и дальнейшее чтение приносит одни муки, ощущение какой-то нехватки памяти!

Вводных слишком мало...

Автор: xinortcele Mar 23 2017, 02:58

Цитата(hsoft @ Mar 23 2017, 05:42) *
Вводных слишком мало, но проблема очевидно в слабых ресурсах организма. Вот моя история...


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

Автор: ViKo Mar 23 2017, 04:18

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

Автор: xinortcele Mar 23 2017, 04:31

Цитата(ViKo @ Mar 23 2017, 07:18) *
Можно таки продолжить изучать и работать в сфере веб-программирования, а не связываться со схемами, платами, комплектацией, паянием, настройкой и др. Или под Андроид программку забабахать, бабло само в руки поплывет.


Бабло вовсе не цель всего этого мероприятия, не цель даже и схемы, платы и т.д.. Цель собственно сами знания. А применение им, если они будут, я уверен найдется всегда.

Автор: oldparrot Mar 23 2017, 06:17

Читайте по 4 страницы, пока не сработает тормоз.

Автор: ViKo Mar 23 2017, 08:27

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

Автор: iosifk Mar 23 2017, 08:35

Цитата(xinortcele @ Mar 23 2017, 01:41) *
Может кто-то сталкивался с чем-то подобным.

Можем поговорить об этом по скайпу. Помогу чем смогу...

Автор: zltigo Mar 23 2017, 08:39

Цитата(ViKo @ Mar 23 2017, 10:27) *
Не представляю специалиста, не читавшего ее.

Ну со специалистами Вы загнули. Это книга для расширения кругозора радиолюбителей и студентов младших курсов.

Автор: ViKo Mar 23 2017, 09:01

Цитата(zltigo @ Mar 23 2017, 11:39) *
Ну со специалистами Вы загнули. Это книга для расширения кругозора радиолюбителей и студентов младших курсов.

Хорошо, не специалиста, любителя. Но начинать лучше с того, что заинтересует, а не от чего голова заболит. rolleyes.gif Топикстартер где-то на уровне оговоренных категорий.

Автор: Raven Mar 23 2017, 09:04

Цитата(xinortcele @ Mar 23 2017, 00:41) *
Видимо это и было какой-то ошибкой, но взяв первый том Фихтенгольца и начав неспеша, вдумчиво читать каждое предложение, я столкнулся с тем что меня хватает примерно на 5 страниц и все! Срабатывает какой-то тормоз и дальнейшее чтение приносит одни муки, ощущение какой-то нехватки памяти!

А задачи по теме решать не пробовали? Это придаст, так сказать, ряд локальных целей по доизучению теории.

А вообще, я вам предлагаю запустить еще один поток образования,- практический. С того уровня, где знаний хватает, или почти хватает (это чтобы был некоторый мобилизующий и мотивирующий вызов в деятельности). Например, сдуйте пыль с книги "Юный радиолюбитель" и начните экспериментировать, или найдите совренную книгу аналогичной направленности (по чему угодно: хоть по тем же микроконтроллерам, силовой электронике, винтажным компьютерам на КР580ВМ80 или чему-то еще, что можно сделать вам самому в обозримые сроки). И тогда у вас не будет сплошной работы "всухую", как с Фихтенгольцем, а может, и мотивация к последнему со временем обретет краски.

Автор: adnega Mar 23 2017, 09:08

Цитата(xinortcele @ Mar 23 2017, 07:31) *
Бабло вовсе не цель всего этого мероприятия, не цель даже и схемы, платы и т.д.. Цель собственно сами знания. А применение им, если они будут, я уверен найдется всегда.

Я подумываю дочке на день рождения (и для себя, конечно) купить современный дорогой конструктор.
Не хочу ничего рекламировать, но есть сейчас варианты с довольно нетривиальным программированием
и датчиками/исполнительными устройствами. Не ради денег, а для души - может, будет решением.

Автор: _Ivan_33 Mar 23 2017, 09:20

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

Автор: AlexandrY Mar 23 2017, 10:17

Цитата(_Ivan_33 @ Mar 23 2017, 11:20) *
Просто на мой взгляд это форма прокрастинации.


Мозги также утомляются как и мышцы. Если мышцам надо 2 дня на восстановление, то и мозгам столько же.
Поэтому читать математику не чаще 1 раза в три дня.
Мозг также как и мышцы получит травму если его перетренировать.

И помнить о правиле 20 часов.
Если посвятить 20 часов по часу чтению этой математики, то спустя это время математику будете читать залпом. Итого надо 60 дней минимум.

Для электронщиков есть специальные книги по математики, моя любимая - "Attenborough M.Mathematics for electrical engineering and computing.2003"



Автор: xinortcele Mar 23 2017, 11:11

Цитата(oldparrot @ Mar 23 2017, 09:17) *
Читайте по 4 страницы, пока не сработает тормоз.

Правильно, сдаваться не буду wink.gif

Цитата(ViKo @ Mar 23 2017, 11:27) *
Да, если хочется изучить электротехнику, то, наверное, самая легкая и полезная книга будет классическая "Искусство схемотехники" Хоровиц, Хилл. Не представляю специалиста, не читавшего ее.

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

Цитата(iosifk @ Mar 23 2017, 11:35) *
Можем поговорить об этом по скайпу. Помогу чем смогу...

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

Цитата(Raven @ Mar 23 2017, 12:04) *
А задачи по теме решать не пробовали? Это придаст, так сказать, ряд локальных целей по доизучению теории.

А вообще, я вам предлагаю ...

Как раз решаю сейчас, пару таких задач, но там все сопромат, механика, электроника, ТАУ..

Цитата(AlexandrY @ Mar 23 2017, 13:17) *
Мозги также утомляются как и мышцы. Если мышцам надо 2 дня на восстановление, то и мозгам столько же...


Похоже действительно все так и есть.
А по книгам - вот бы освоить все о чем пишет Анго это было бы действительно круто.

Автор: iosifk Mar 23 2017, 11:15

Цитата(xinortcele @ Mar 23 2017, 15:11) *
Правильно, сдаваться не буду wink.gif

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

Ну так еще раз. Если хотите, можем поговорить. Мой адрес в карточке форума...

Автор: xinortcele Mar 23 2017, 11:30

Цитата(iosifk @ Mar 23 2017, 14:15) *
Ну так еще раз. Если хотите, можем поговорить. Мой адрес в карточке форума...

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

Автор: MrYuran Mar 23 2017, 11:42

Цитата(xinortcele @ Mar 23 2017, 14:11) *
Когда я думал - вот бы мне "покрутиться" чуть-чуть в сфере какого-нибудь НИИ, среди профессоров - понаблюдать за психологическими особенностями "чистых" ученых, так сказать.

В НИИ "чистых" ученых можно по пальцам пересчитать.
А уж профессоров..
НИРы практически не ведутся, в основном НИОКРы, а чаще ОКР.
Академические вопросы слабо способствуют освоению средств оборонного бюджета.

Автор: xinortcele Mar 23 2017, 11:55

Цитата(MrYuran @ Mar 23 2017, 14:42) *
Академические вопросы слабо способствуют освоению средств оборонного бюджета.


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

Автор: zltigo Mar 23 2017, 12:41

Цитата(ViKo @ Mar 23 2017, 11:01) *
Но начинать лучше с того, что заинтересует, а не от чего голова заболит. rolleyes.gif Топикстартер где-то на уровне оговоренных категорий.

C этим спору нет. Хотя, скорее всего ниже sad.gif.

Автор: xinortcele Mar 23 2017, 12:52

Цитата(zltigo @ Mar 23 2017, 15:41) *
C этим спору нет. Хотя, скорее всего ниже sad.gif.


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

Автор: ViKo Mar 23 2017, 13:05

Цитата(xinortcele @ Mar 23 2017, 14:11) *
У меня выбор пал сразу на Титце и Шенка biggrin.gif

Тоже годится. Правда, у меня какое-то древнее издание с немецкой системой обозначений в формулах.

Автор: Baser Mar 23 2017, 14:25

Цитата(xinortcele @ Mar 23 2017, 14:52) *
Проблема в том что интереса как бы и нет совсем, если только мания величия biggrin.gif я себя просто заставляю...

Ну и зачем тогда вам все это? Ради куска хлеба?
Ну может вы и изучите что-нибудь нужное на практике, но если интереса совсем нет...
Не хотел бы я работать в команде с коллегами, которые себя из под палки гонят на работу и заставляют что-то делать sad.gif
Вам нужно найти дело поближе к своей натуре.

Автор: Myron Mar 23 2017, 14:39

Цитата(Baser @ Mar 23 2017, 08:25) *
Вам нужно найти дело поближе к своей натуре.
Вот именно. Мотивация - только один путь. Ну или нужен очень сильный пинок от жизни, от которого не все выживают. Это чтобы появилась новая мотивация. А любое насилие над самим собой не приведет ни к чему, кроме, опять же, заболеваний.

Автор: xinortcele Mar 23 2017, 14:44

Цитата(Baser @ Mar 23 2017, 17:25) *
Ну и зачем тогда вам все это? Ради куска хлеба?
Ну может вы и изучите что-нибудь нужное на практике, но если интереса совсем нет...
Не хотел бы я работать в команде с коллегами, которые себя из под палки гонят на работу и заставляют что-то делать sad.gif
Вам нужно найти дело поближе к своей натуре.

Такой наверное характер, я никогда, ни к какому делу не имел пристрастия. Но цель, пусть даже абстрактная, есть, а это мне кажется самое главное.

Автор: TSerg Mar 23 2017, 20:51

По мне, так разговор вообще ни о чем, более того - спровоцирован.

Автор: xinortcele Mar 23 2017, 20:55

Цитата(TSerg @ Mar 23 2017, 23:51) *
По мне, так разговор вообще ни о чем, более того - спровоцирован.

Может быть и ни о чем. Но что значит спровоцирован? Кем, чем, для чего или для кого?

Автор: iosifk Mar 23 2017, 20:56

Цитата(TSerg @ Mar 24 2017, 00:51) *
По мне, так разговор вообще ни о чем, более того - спровоцирован.

Думаю, что так и есть.
Ибо как говорится, процесс, который ведется ради самого процесса называется игра...

Автор: xinortcele Mar 23 2017, 21:01

Цитата(iosifk @ Mar 23 2017, 23:56) *
Думаю, что так и есть.
Ибо как говорится, процесс, который ведется ради самого процесса называется игра...

И Вы туда же. Пусть игра, что плохого в игре?

Автор: TSerg Mar 23 2017, 22:34

Цитата(xinortcele @ Mar 24 2017, 00:01) *
Пусть игра, что плохого в игре?

Ничего плохого, наоборот - полезно для развития. Но, с этим - в "детский сад".

Автор: xinortcele Mar 23 2017, 22:51

Цитата(TSerg @ Mar 24 2017, 01:34) *
Ничего плохого, наоборот - полезно для развития. Но, с этим - в "детский сад".

Играют не только там. Ну ладно, в детский сад - так в детский сад.

Автор: TSerg Mar 23 2017, 23:20

Цитата(xinortcele @ Mar 24 2017, 01:51) *
Ну ладно, в детский сад - так в детский сад.

Так попробуйте, может понравится sm.gif
В разделе "Начинающие" создайте свою уже обмусоленную Вами тему, но вот что-то там у Вас не получается, непонятно.
Вот Вам и "Песочница".

Автор: xinortcele Mar 24 2017, 00:11

Цитата(TSerg @ Mar 24 2017, 02:20) *
Так попробуйте, может понравится sm.gif
В разделе "Начинающие" создайте свою уже обмусоленную Вами тему, но вот что-то там у Вас не получается, непонятно.
Вот Вам и "Песочница".

Не понятно Вам или мне? biggrin.gif

Автор: Myron Mar 24 2017, 00:14

Цитата(xinortcele @ Mar 23 2017, 18:11) *
Не понятно Вам или мне? biggrin.gif
Вам уже пояснили, что пора завязывать с играми.

Автор: xinortcele Mar 24 2017, 00:19

Цитата(Myron @ Mar 24 2017, 03:14) *
Вам уже пояснили, что пора завязывать с играми.

Хорошо. Я только за. Но ведь это товарищ TSerg любитель оставить последнее слово. Я без какого-либо троллинга - уступаю это право ему.

Автор: TSerg Mar 24 2017, 02:30

Цитата(xinortcele @ Mar 24 2017, 03:19) *
Хорошо. Я только за. Но ведь это товарищ TSerg любитель оставить последнее слово.

Люблю пинать в правильном направлении.
Адекватным - помогает, а, иногда, и не адекватным.

Автор: Эдди Mar 24 2017, 05:53

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

Автор: ViKo Mar 24 2017, 06:14

Цитата(Эдди @ Mar 24 2017, 08:53) *
Товарищи, а как пересилить свое отвращение к ...

У нас, перфекцио(на)нистов, вопрос не стоит. Не хочу и не буду! laughing.gif
Вот C# мне нравится.
Учиться нужно тому, что нравится. И заниматься тем, что нравится.

Автор: yanvasiij Mar 24 2017, 19:47

Цитата(Эдди @ Mar 24 2017, 10:53) *
Товарищи, а как пересилить свое отвращение к фекалиям, и начать их есть недоязыкам программирования (С++, питон) и таки выучить их? Есть истории успеха? Я вот уже четвертый год собираюсь взять в библиотеке книжку по питону, но никак не пересилю себя — уж больно убогий язычок. Ситуация примерно как с абдуриной — говно то еще, но в некоторых ситуациях на нем можно что-то быстро на коленке собрать (когда при правильном подходе пришлось бы пару-тройку недель работать).


Что значит "недоязык"? Ничего, что на C++ написано, пожалуй, наибольшее количество проектов по сравнению с другими языками? Ничего, что в системах где требуется максимально быстродействие нет альтернатив C/C++? А тот факт, что C++ является одним из самых универсальных языков, тоже не имеет значения? Ну да - многие вещи легче писать на выскоуровневых языках, но это не делает С++ "недоязыком". Попробуйте-ка на C# написать операционную систему, системную службу или системный драйвер - не выйдет. То, что некоторые вещи трудно или даже невозможно делать на С++ или C# или любом другом языке не делают его "недоязыком", это всего лишь вопрос оптимальной применимости инструмента к задаче. Это как если бы программист всю жизнь писавший веб службы на PHP, вдруг решил сделать все тоже самое на C++ и обнаружил, что так гораздо труднее, заявил что С++ плохой язык. Нет это не язык плохой, это программист просто мало что понимает. С++ на мой взгляд является одним из самых сложных языков, и дело тут в не в синтаксисе языка, а в том, что хороший С++ программист (себя я ним не отношу, не подумайте) должен знать и ориентироваться, как минимум, в stl/boost, которые невероятно громадны.

А что касается python, то это, на мой взгляд, самой простой по порогу вхождения язык. Но он не так прост, как это кажется с первого взгляда, динамическая типизация с одной стороны открывает массу возможностей, а с другой стороны требует от программиста иного мышления, нежели в языках со статической типизацией. Обратите внимания, что Python входит в список самых распространенных и популярных языков. И те тысячи, сотни тысяч или более программистов, что работают на нем годами совсем не считают его "недоязыком". А вот товарищ со стороны, который не знает ни С++ ни Python, вот так берет и клеймит их "недоязыками". Вам самому не кажется это по меньшей мере странным?

Автор: TSerg Mar 24 2017, 20:29

Цитата(yanvasiij @ Mar 24 2017, 22:47) *
Что значит "недоязык"?
..
А вот товарищ со стороны, который не знает ни С++ ни Python, вот так берет и клеймит их "недоязыками". Вам самому не кажется это по меньшей мере странным?

Да, не переживайте Вы так уж сильно sm.gif
Этот "товарищ" временами спускается с гор и обнаруживает новую реальность на равнинах, начинает бороться с внутренним несоответствием "горных знаний" и современной индустрии программирования.
Поэтому, есс-но, ему невдомек, что Python - это язык, причисляемый к языкам сверхвысокого уровня (very high-level programming language, VHLL), а также языки Ruby, Haskell и даже Perl.

Автор: aiwa Mar 25 2017, 20:35

Цитата(xinortcele @ Mar 22 2017, 23:41) *
Видимо это и было какой-то ошибкой, но взяв первый том Фихтенгольца и начав неспеша, вдумчиво читать каждое предложение, я столкнулся с тем что меня хватает примерно на 5 страниц и все! Срабатывает какой-то тормоз и дальнейшее чтение приносит одни муки, ощущение какой-то нехватки памяти!

Да, выбор Фихтенгольца был Вашей ошибкой. Редкий человек не засыпает после 5-ти его страниц.
И вообще эта книга предназначена для молодых начинающих математиков, Вам нужно читать ее тезисно, либо подобрать менее детализированный аналог.

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

Автор: Myron Mar 26 2017, 00:08

Цитата(aiwa @ Mar 25 2017, 14:35) *
если у кого есть программа "электронного" вуза, т.е. последовательный список вопросов и прилагающийся к ним список литературы просто выложите его, вместо того, чтобы пинать.
Если чел засыпает на 5-й стринице (Фихтенгольца), то сколько времени ему потребуется, чтобы изучить самостоятельно по "списку". Знания в электронике быстро прогрессируют. По моим подсчетам придется переучиваться (доучиваться) примерно каждые 7-8 лет. Причем в свободное от работы время. С преподами это делается более эффективно, если выбраны (найдены) лучшие. Правда после некоего числа таких шагов процесс обучения идет быстрее.
Бросайте вы это. Без мотивации ничего не выйдет.

Автор: aiwa Mar 26 2017, 01:28

Цитата(Myron @ Mar 26 2017, 02:08) *
Если чел засыпает на 5-й стринице (Фихтенгольца), то сколько времени ему потребуется, чтобы изучить самостоятельно по "списку".

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



Автор: hsoft Mar 26 2017, 04:11

Цитата(aiwa @ Mar 26 2017, 02:28) *
Так в том то и дело, что если бы был "список", то в нем отсутствовал бы Фихтенгольц.
Потому что он довольно специфичен: его нужно читать будущим математикам в 14-летнем возрасте. В любых других случаях - это бесполезная трата времени.
Взять в руки книгу - это уже мотивация. А был бы "список", т.е. хоть какой-то методический ориентир что изучать и в какой последовательности может человек тихой сапой и освоил что ему требуется самостоятельно. А потраченное время - это же его время ему и решать.

можно поспорить...
Если Вы собираетесь работать с базами данных в банке или писать сайты, Фихтенгольца можно не читать.

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

Фихтенгольц по настоящему качественный учебник математики. Я бы прописал его любому специалисту после 35 чтобы "прокачать" заплывшие мозги.
В отличие от авторов 70х и позже годов, он пишет просто, очень доступно и при этом очень последовательно и позволяет пройти все концепции
без преподавателя, самостоятельно. Как раз в силу того, что пишет очень просто, логично и без разрывов в концепциях.
Усилия потраченные на освоение математики с Фихтенгольцем однозначно дадут результат.

Автор: Smoky Mar 26 2017, 08:01

Цитата(xinortcele @ Mar 23 2017, 03:41) *
Видимо это и было какой-то ошибкой, но взяв первый том Фихтенгольца и начав неспеша, вдумчиво читать каждое предложение, я столкнулся с тем что меня хватает примерно на 5 страниц и все! Срабатывает какой-то тормоз и дальнейшее чтение приносит одни муки, ощущение какой-то нехватки памяти!
В общем описал все несколько сумбурно. Может кто-то сталкивался с чем-то подобным. Отдых (две недели) как-то не помогает, (правда мысли как-бы по инерции работали в том же ключе).


Вдумчиво читать Фихтенгольца есть смысл когда есть мотивация в расширении знаний. Для начала понимания достаточно книги Мартина Хартли Джонса ЭЛЕКТРОНИКА-ПРАКТИЧЕСКИЙ КУРС с обязательным сочетанием с какой либо программой моделирования, например бесплатной MultiSIM BLUE, в которой куча наглядных измерительных приборов. В книге номинал математики, просто и доступно. Все примеры можно наглядно проверить виртуально в программе. Такой способ более интересен и результативен, проверено на себе...

Автор: Эдди Mar 26 2017, 08:46

Цитата(ViKo @ Mar 24 2017, 09:14) *
Вот C# мне нравится.

Как может нравиться это говнище?
Цитата(yanvasiij @ Mar 24 2017, 22:47) *
Что значит "недоязык"? Ничего, что на C++ написано, пожалуй, наибольшее количество проектов по сравнению с другими языками?

Это — ваши фантазии. На С написано больше полезного софта, чем на любом другом языке. Потому что только С позволяет иметь большую гибкость и кучу удобств!
Цитата
Попробуйте-ка на C# написать операционную систему, системную службу или системный драйвер - не выйдет.

си-диез - это вообще финиш! На нем вообще ничего нельзя писать, как и на пхытоне.
Цитата
А что касается python, то это, на мой взгляд, самой простой по порогу вхождения язык.

Тоже чушь! Начать с отступов вместо скобок, спагетти-кода и вообще полной алогичности самого языка! Нет, на пхытоне работать — себя не уважать! Единственное, что удобно в пхытоне — количество кода в разы меньше, чем на С. Но, естественно, только под узкий круг задач: микроконтроллеры на пхытоне не попрограммируешь, и операционку на нем не напишешь. Ибо убог.


Цитата(aiwa @ Mar 25 2017, 23:35) *
Да, выбор Фихтенгольца был Вашей ошибкой. Редкий человек не засыпает после 5-ти его страниц.
И вообще эта книга предназначена для молодых начинающих математиков...

Ну, я по Фихтенгольцу матан учил. И я — не математик, я — физик. Мне понравилась подача материала, и я не засыпал после пяти страниц.
Если же человек реально не может осилить Фихтенгольца, то и матан ему не стоит пытаться понять. Да и нужно ли? Матан — штука сложная, и 99% из него в реальной жизни никогда не пригодится (разве что "скрутить в форме интеграла проволоку и шляпу из лужи достать").
Есть уйма литературы по обработке данных, где матана минимум — софт вроде той же октавы все за вас сделает. Для обработки 1D данных советую Сергиенко почитать, а если нужно с изображениями работать, то Гонсалеса-Вудса.

Автор: AlexandrY Mar 26 2017, 08:52

Цитата(hsoft @ Mar 26 2017, 06:11) *
Если же Ваша цель создание реальных железок, Фихтенгольц нужен. Те знания которые приведены в трехтомнике не являются чем то узкоспецифичным.


Хм, посмотрел я первый том Фихтенгольц-а.
Это что-то.

Уважаю тех кто смог прочитать там за раз 5-ть страниц и понять о чем там и для чего. Местами напоминает схоластику.

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


Автор: mdmitry Mar 26 2017, 11:26

Андре Анго. Математика для электро- и радиоинженеров. Издательство Наука, 1964.

Автор: aiwa Mar 26 2017, 14:37

Цитата(hsoft @ Mar 26 2017, 06:11) *
можно поспорить...
...
Если же Ваша цель создание реальных железок, Фихтенгольц нужен. Те знания которые приведены в трехтомнике не являются чем то узкоспецифичным.
...

Согласен, знания в трехтомнике не являются узкоспецифичными - более того, по сути первый том в наше время это уже материал средней школы.
Но изложение материала является узкоспецифическим: его скрупулезная последовательность предназначена для тех, кто связывает свою жизнь с математикой в качестве работы или хобби. Ну не нужны для создания реальных железок доказательство замечательных пределов или вывод формулы ряда Фурье. Достаточно знать что о существовании и их свойствах.
Поэтому, ИМХО, лучше подходит более краткий курс, пусть даже элементарный справочник.
А вот про доступность изложения, - я согласен, если отсутствует понимание чего-то на "молекулярном" уровне, то полезно заглянуть в Фихтенгольц на данную тему.

Автор: yanvasiij Mar 26 2017, 17:23

Цитата(TSerg @ Mar 25 2017, 01:29) *
Да, не переживайте Вы так уж сильно sm.gif
Этот "товарищ" временами спускается с гор и обнаруживает новую реальность на равнинах, начинает бороться с внутренним несоответствием "горных знаний" и современной индустрии программирования.


Вот только что осознал, как же Вы правы! )))

Автор: DASM Mar 27 2017, 07:53

Цитата(Myron @ Mar 26 2017, 03:08) *
Если чел засыпает на 5-й стринице (Фихтенгольца), то сколько времени ему потребуется, чтобы изучить самостоятельно по "списку". Знания в электронике быстро прогрессируют. По моим подсчетам придется переучиваться (доучиваться) примерно каждые 7-8 лет. Причем в свободное от работы время. С преподами это делается более эффективно, если выбраны (найдены) лучшие. Правда после некоего числа таких шагов процесс обучения идет быстрее.
Бросайте вы это. Без мотивации ничего не выйдет.

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

Цитата(Эдди @ Mar 26 2017, 11:46) *
И я — не математик, я — физик.

Вы не физик, я бы сказал кто вы но мат тут запрещен

Автор: dxp Mar 27 2017, 08:43

QUOTE (Эдди @ Mar 26 2017, 15:46) *
Это — ваши фантазии. На С написано больше полезного софта, чем на любом другом языке. Потому что только С позволяет иметь большую гибкость и кучу удобств!

Именно! Шарп - это вообще какая-то местечковая поделка M$. Захотелось иметь свою жабу, вот и родили. А цэ-крест-крест - уже в самом названии - язык, на котором даже автор поставил аж два креста! Ну, что там можно от него ожидать?! Одни понты: какие-то, дескать, типы, определяемые пользователем - это зачем? чтобы запутать? Перегрузка операторов - зачем? Опять чтобы запутать. Как будто без этого у программиста проблем нет. А шаблоны - эт ваще песня! Многословный мутный синтаксис, по которому компилятор должен что-то родить. Нередко там оно такого нарожает, что мама-не горюй! Тонны дублирующегося кода. А потом удивляются, что процы на гигагерцах и гигабаты памяти, а проги всё равно тормозят и не лезут.

А этот самый полиморфизм! Написать код, который не ясно, что конкретно делает, а ясно только на рантайме. А там уже поздно выяснять. И зачем это? Опять чтобы запутать. Если кто в этом что-то и может делать, то только автор. В общем, write-only язык.

Отдельно хочется отметить так называемые виртуальные функции! Это что за название? Что обычно называют виртуальным? Что-то такое, что как бы является похожим. Т.е "виртуальные функции" - это "как бы функции", т.е. не настоящие, а выдающие себя за них. Так понимать? И так там во всём. Костыли на костылях.

Но и С - это тоже полумеры! С - есть попытка сделать портабельный макроассемблер, и вся его мощь в том, что программист может управлять ресурсами на низком уровне. И если раньше этот подход (портабельный макросассемблер) был ещё как-то оправдан, то сегодня это уже анахронизм - компания ARM решила эту проблему - изобрела унифицированную ISA, и теперь без разницы, какой проц - надо микроконтроллер или апликушный процессор, ассемблер тот же самый. Т.е. без разницы, Cortex-M или Cortex-A, команды пишем те же самые. Скажете: "А как же другие процы, которые не ARM?". Так они все обречены на вымирание, нет смысла тратить на них время. Надо учить ассемблер ARM, это решает все проблемы без гемора, вносимого так называемыми "языками высокага уровня".

Возвращаясь к С - и этот тоже туда же (в смысле, больше проблем от него, чем пользы). Например, если надо обратиться по конкретному адресу, это требует явного преобразования типов через мерзкий, ломающий мозг синтаксис типа (*(int *)ptr). А у ж разместить переменную по конкретному адресу вообще средствами языка невозможно - начинают тянуться всякие расширения, которые у разных вендоров все разные, а у некоторых отсутствуют. Ну, и где эта хвалёная переносимость?

А пресловутая "адресная арифметика"?! Это нескончаемый источник труднообнаруживаемых ошибок. Недаром серьёзные фирмы, выпускающие ответственные изделия (автомобильная электроника), осознав эту проблему, разработали отдельный стандарт для безопасности - MISRA, где вся эта возня с указателями и адресной арифметикой просто запрещена!

Другое дело ассемблер: доступны абсолютно все средства используемой целевой платформы, без всякого гемора оптимальнейшим образом достигаем любой цели. Например, попробуйте на С написать такое:
CODE
    mrc    p15, 0, r0, c1, c0, 0        /* read CP15 register 1 */
    bic    r0, r0, #0x1            /* clear bit 0 */
    mcr    p15, 0, r0, c1, c0, 0        /* write value back */


А уж про синтаксические правила и говорить нечего. Ведь это же надо придумать конструкции вроде такой:

int (*(af[]))(int);

Ведь тут без бутылки не разберёшься. Нет, чтоб читать выражение слева-направо, тут надо расшифровывать по специальным правилам, а всего-то массив указателей на функции. Конечно, человек ко всему привыкает, но новичкам это срывает крышу. Да даже с простым вопросом, где идеологически правильно ставить звёздочку, и то не ясно:

int* ptr;

или

int *ptr;

Я вот думал поначалу (и довольно долго), что первый вариант - дескать, int* - это тип указателя. Хотя даже тогда не покидало чувство, что что-то тут не так - почему для объектов звезда применяется слева, а для типов справа. А потом узнал, что правильно - второй вариант. И трактуется это так: "ptr - это такой тип, при разыменовании которого, получается int".

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

Т.ч. не, не говорите, что С хороший язык. Попытка сделать портабельный макроассемблер - да. Имела право на жизнь? Да. Нужна ли сейчас? Нет! Учите ISA от ARM, и будет вам счастье.

QUOTE (Эдди @ Mar 26 2017, 15:46) *
На нем вообще ничего нельзя писать, как и на пхытоне.

Я даже больше скажу: Python - вообще не язык программирования. Серьёзно. Сам бы удивлён, когда узнал. Т.ч. его и рассматривать как ЯП не стоит.

QUOTE (Эдди @ Mar 26 2017, 15:46) *
Тоже чушь! Начать с отступов вместо скобок, спагетти-кода и вообще полной алогичности самого языка! Нет, на пхытоне работать — себя не уважать! Единственное, что удобно в пхытоне — количество кода в разы меньше, чем на С. Но, естественно, только под узкий круг задач: микроконтроллеры на пхытоне не попрограммируешь, и операционку на нем не напишешь. Ибо убог.

Да, какой-то голландский (кстати, это может не случайно) мужык по имени Гуидо решил, что мне удобно везде использовать одинаковый отступ для выделения блока, а я вот, может, люблю каждую строчку индивидуально отодвинуть от края. И потом - подумать только - ведь каждый объект - это выделение памяти в куче (malloc, сиречь). Это ж какой тормоз-то получается! Ну подумаешь, динамическая типизация - зачем она? Только запутывает! Никогда не знаешь, какого типа объект.

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

Автор: hsoft Mar 27 2017, 08:52

Я тоже хочу такой травы.... sm.gifsm.gifsm.gif

Автор: DASM Mar 27 2017, 11:32

Вы ничего не понимаете в программировании. Вот код настоящих профи своего дела, такие кадры воспитываются в отдельных элитных ВУХах страны и они нарсхват

CODE
static int bus_spi_cs(dev_spi_t * dev, bool state)
{
dev_gpio_t * cs_pin = ((dev_spi_stm32f_hints_t *) dev->hints)->spi_cs_pin;
((int (*)(dev_gpio_t *))((uint32_t)cs_pin->setpin*(!state) + (uint32_t)cs_pin->resetpin*(state)))(cs_pin);
return 0;
}

Я всего лишь колхозник самоучка и заменил на
CODE
static int bus_spi_cs(dev_spi_t * dev, bool state)
{
dev_gpio_t * cs_pin = ((dev_spi_stm32f_hints_t *) dev->hints)->spi_cs_pin;

if (state)
cs_pin->resetpin(cs_pin);
else
cs_pin->setpin(cs_pin);
return 0;
}

Мне придется много учиться еще, чтобы хоть немного достичь уровня этих, не побоюсь этого слова, Мастеров.
crying.gif
А вы говорите Питон плохой и Сишарп
Кстати все поняли как работает первый вариант? Мой уровень на грани имбицилла позволил понять примерно минут за 10 только
моя б воля запретил бы приведение типов программистом вообще, а еще лучше и сами типы как класс, лишнее это нонче

Автор: AlexandrY Mar 27 2017, 11:58

Цитата(DASM @ Mar 27 2017, 14:32) *
Кстати все поняли как работает первый вариант? Мой уровень на грани имбицилла позволил понять..


Видно, что программно, остальное не интересно.
Переходите на Kinetis, там CS передается вместе с данными. Можно одним блоком DMA писать/читать сразу из 6-и слэйвов, вообще не парясь установкой и снятием CS.

Автор: DASM Mar 27 2017, 12:12

Цитата(AlexandrY @ Mar 27 2017, 14:58) *
Видно, что программно, остальное не интересно.
Переходите на Kinetis, там CS передается вместе с данными. Можно одним блоком DMA писать/читать сразу из 6-и слэйвов, вообще не парясь установкой и снятием CS.

мне лично никуда переходить не надо, я на Питон перелезаю, ну и драйвер на Сях немного V4L

Автор: AlexandrY Mar 27 2017, 12:43

Цитата(DASM @ Mar 27 2017, 15:12) *
мне лично никуда переходить не надо, я на Питон перелезаю, ну и драйвер на Сях немного V4L


Кстати в VS2017 бесплатно идет Xamarin.
Это С# для всего - iOS, Android, Win

Как бы must-have в свете последних трендов, важнее математики. biggrin.gif

Автор: dxp Mar 27 2017, 13:02

QUOTE (DASM @ Mar 27 2017, 18:32) *
Вы ничего не понимаете в программировании. Вот код настоящих профи своего дела, такие кадры воспитываются в отдельных элитных ВУХах страны и они нарсхват
CODE
static int bus_spi_cs(dev_spi_t * dev, bool state)
{
dev_gpio_t * cs_pin = ((dev_spi_stm32f_hints_t *) dev->hints)->spi_cs_pin;
((int (*)(dev_gpio_t *))((uint32_t)cs_pin->setpin*(!state) + (uint32_t)cs_pin->resetpin*(state)))(cs_pin);
return 0;
}

Мне придется много учиться еще, чтобы хоть немного достичь уровня этих, не побоюсь этого слова, Мастеров.

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

Или критерий оценки - чем запутаннее, тем круче? По мне так ровно наоборот. Хороший код прозрачен, лёгок для восприятия и модификации. Мастерам есть куда расти.

Вот такие вот примеры и приводят желанию писать на ассемблере - там такого безобразия в принципе быть не может.

Автор: DASM Mar 27 2017, 13:09

Цитата(dxp @ Mar 27 2017, 16:02) *
Я не понял, где тут какое-то особое мастерство? Явное преобразование типов на каждом шагу, тонны скобок, от чего не видно толком, где какое подвыражение начинается и где заканчивается, что код стал совершенно нечитабельным. Это как раз пример того, как не надо писать код.

Или критерий оценки - чем запутаннее, тем круче? По мне так ровно наоборот. Хороший код прозрачен, лёгок для восприятия и модификации. Мастерам есть куда расти.

Сарказм тэе где тут sm.gif Меня приколоа идея сложения указателей.. или как-то так? Я уже снова не понимаю как это работает
(int (*)(_t*) ((uint32_t)setpin*...+ (uint32_t) ....) ()

Автор: TSerg Mar 27 2017, 13:45

Цитата(dxp @ Mar 27 2017, 11:43) *
Именно!
Но и С - это тоже полумеры!
Другое дело ассемблер:
Да, какой-то голландский
И вообще типы - зло. Какая-то лишняя сущность. Вон на ассемблере нет никаких типов, всё просто и прозрачно

5+!!!

Недавно, на одном из форумов, студент обратился за помощью для решения одной из тестовых задач - не за кодом, а именно за помощью в части идей ее решения.
Задачка простая:
- есть/создается массив random-целых (integer 32b) чисел;
- требуется отсортировать массив на месте по следующим правилам:
-- массив должен быть отсортирован так, чтобы слева от середины массива находились бы все четные числа по убыванию от начала к центру, а справа - все нечетные по возрастанию от центра к концу массива.

Пример:
rnd= 19 [40,14,17,46,12,53,3,49,26,56,10,28,59,20,35,42,42,18,24]
sort=19 [56,46,42,42,40,28,26,24,20,18,14,12,10,3,17,35,49,53,59]

Требования: простота, изящность, самодокументируемость кода для понимания студентами.
Реализация планировалась на тех или иных разновидностях Pascal/Delphi/FreePascal/Lazarus.

Были предложены решения (код) тремя программистами в качестве междусобойчика уже (про студента быстро забыли).
Два программиста исповедовали стиль аля Си, но на Pascal (Turbo Pascal).
Третий предложил метод "разделяй и властвуй" тоже на Pascal ( PascalABC.Net).
Причем, как было показано, высокоуровенное решение вообще сводится к array.Sort(cmp), где cmp - функция сравнения для сортировки.
Что выбрал студент - к бабке не ходи sm.gif

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

Автор: =SSN= Mar 27 2017, 13:57

Цитата(TSerg @ Mar 27 2017, 16:45) *
Задачка простая:
- есть/создается массив random-целых (integer 32b) чисел;
- требуется отсортировать массив на месте по следующим правилам:
- массив должен быть отсортирован так, чтобы слева от середины массива находились бы все четные числа по убыванию от начала к центру, а справа - все нечетные по возрастанию от центра к концу массива.

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

Яркий пример некорректно поставленной "задачки".

"Задачка" имеет решение в том единственном случае, когда в массиве по какому-то случайному совпадению, оказалось одинаковое кол-во четных и нечетных чисел.

В противном случае, "задачка" решения не имеет.. biggrin.gif

Автор: hsoft Mar 27 2017, 14:01

Цитата(TSerg @ Mar 27 2017, 14:45) *
Пример:
rnd= 19 [40,14,17,46,12,53,3,49,26,56,10,28,59,20,35,42,42,18,24]
sort=19 [56,46,42,42,40,28,26,24,20,18,14,12,10,3,17,35,49,53,59]

Результаты
[73, 52, 1, 33, 26, 84, 39, 58, 24, 57, 74, 37, 87, 90, 84, 8, 50, 89, 16, 9, 70, 15, 75, 37, 77]
[90, 84, 84, 74, 70, 58, 52, 50, 26, 24, 16, 8, 1, 9, 15, 33, 37, 37, 39, 57, 73, 75, 77, 87, 89]

Автор: TSerg Mar 27 2017, 14:09

Цитата(=SSN= @ Mar 27 2017, 16:57) *
Яркий пример некорректно поставленной "задачки".
"Задачка" имеет решение в том единственном случае, когда в массиве по какому-то случайному совпадению, оказалось одинаковое кол-во четных и нечетных чисел.
В противном случае, "задачка" решения не имеет.. biggrin.gif

Ерунда. Задачка имеет четкое решение, без особенностей.
Надо было понять, что "центр" массива - плавающий индекс, который определяется конкретным набором rnd-чисел.

Автор: =SSN= Mar 27 2017, 14:12

Цитата(TSerg @ Mar 27 2017, 17:09) *
Надо было понять, что "центр" массива - плавающий индекс, который определяется конкретным набором rnd-чисел.

Студент не обязан догадываться, что препод "тупит"..

Сначала научитесь ясно выражать свои мысли, а потом занимайтесь преподавательством.

Автор: TSerg Mar 27 2017, 14:13

Цитата(hsoft @ Mar 27 2017, 17:01) *
Вот так на Java
..
list.sort(new Comp());
..

Вот и я про это.

Автор: AHTOXA Mar 27 2017, 14:13

Цитата(DASM @ Mar 27 2017, 16:32) *
Код
static int bus_spi_cs(dev_spi_t * dev, bool state)
{
    dev_gpio_t * cs_pin = ((dev_spi_stm32f_hints_t *) dev->hints)->spi_cs_pin;
    ((int (*)(dev_gpio_t *))((uint32_t)cs_pin->setpin*(!state) + (uint32_t)cs_pin->resetpin*(state)))(cs_pin);    
    return 0;
}

Ух ты, это где вы такое нашли?

Автор: TSerg Mar 27 2017, 14:15

Цитата(=SSN= @ Mar 27 2017, 17:12) *
Студент не обязан догадываться, что препод "тупит"..
Сначала научитесь ясно выражать свои мысли, а потом занимайтесь преподавательством.

Ну, извини, забыл взять в кавычки "середина" массива.
А тебе, любезный - тоже не стоит тупить. Пример приведен.

Автор: =SSN= Mar 27 2017, 14:19

Цитата(TSerg @ Mar 27 2017, 17:15) *
Ну, извини, забыл взять в кавычки "середина" массива.
А тебе, любезный - тоже не стоит тупить. Пример приведен.

Не надо мне "ты-кать", не на базаре..

Автор: TSerg Mar 27 2017, 14:22

Цитата(=SSN= @ Mar 27 2017, 17:19) *
Не надо мне "ты-кать", не на базаре..

Как хочу - так и обращаюсь. Не нравится - не читай.

Автор: =SSN= Mar 27 2017, 14:25

Цитата(TSerg @ Mar 27 2017, 17:22) *
Как хочу - так и обращаюсь. Не нравится - не читай.

Так ты специально по форумам шляешься, чтобы потупить? biggrin.gif

Автор: AlexandrY Mar 27 2017, 14:25

Цитата(DASM @ Mar 27 2017, 16:09) *
Сарказм тэе где тут sm.gif Меня приколоа идея сложения указателей.. или как-то так? Я уже снова не понимаю как это работает
(int (*)(_t*) ((uint32_t)setpin*...+ (uint32_t) ....) ()


О! А я понял.
Значит берет он два указателя на функции. Преобразует их в целые и умножает один на состояние, а другой на инвертированное состояние.
Получает в результате суммы только один из указателей. Потом снова приводит указатель к функции и вызывает ее вкладывая как аргумент структуру описывающую пин.

Фишка этой функции в том, что она не требует if т.е. абсолютно детерминирована.
Ай! Красота. Надо записать где-то на память.

Тому кто пишет драйвера и не знает такие финты должно быть стыдно по моему.

Автор: dxp Mar 27 2017, 14:27

QUOTE (TSerg @ Mar 27 2017, 20:45) *
Пример:
rnd= 19 [40,14,17,46,12,53,3,49,26,56,10,28,59,20,35,42,42,18,24]
sort=19 [56,46,42,42,40,28,26,24,20,18,14,12,10,3,17,35,49,53,59]

Требования: простота, изящность, самодокументируемость кода для понимания студентами.
Реализация планировалась на тех или иных разновидностях Pascal/Delphi/FreePascal/Lazarus.

CODE
#!/usr/bin/python

rnd =  [40,14,17,46,12,53,3,49,26,56,10,28,59,20,35,42,42,18,24]

even = [x for x in rnd if not x%2]
odd  = [x for x in rnd if x%2]
res  = sorted(even, reverse=True) + sorted(odd)

print res


Вывод:

CODE
[56, 46, 42, 42, 40, 28, 26, 24, 20, 18, 14, 12, 10, 3, 17, 35, 49, 53, 59]

Автор: TSerg Mar 27 2017, 14:43

Цитата(=SSN= @ Mar 27 2017, 17:25) *
Так ты специально по форумам шляешься, чтобы потупить? biggrin.gif

Нет, конечно, исключительно, чтобы тупых выявить sm.gif
Все как обычно - профи все поняли правильно, студенты - затупили.

Автор: DASM Mar 27 2017, 14:46

Цитата(AlexandrY @ Mar 27 2017, 17:25) *
О! А я понял.
Значит берет он два указателя на функции. Преобразует их в целые и умножает один на состояние, а другой на инвертированное состояние.
Получает в результате суммы только один из указателей. Потом снова приводит указатель к функции и вызывает ее вкладывая как аргумент структуру описывающую пин.

Фишка этой функции в том, что она не требует if т.е. абсолютно детерминирована.
Ай! Красота. Надо записать где-то на память.

Тому кто пишет драйвера и не знает такие финты должно быть стыдно по моему.

а цель?
Кстати умножать на bool это видимо по вашему )

Автор: TSerg Mar 27 2017, 14:47

Цитата(dxp @ Mar 27 2017, 17:27) *
..
even = [x for x in rnd if not x%2]
odd = [x for x in rnd if x%2]
res = sorted(even, reverse=True) + sorted(odd)

..
Отлично!
Прекрасный пример на Питоне по краткости, хотя тут не сортировка на месте.
Идея была именно такая - разделить четные/нечетные в массиве по месту, отдельно отсортировать на месте части массива (четные/нечетные).
Т.е. метод разделения сложного на части, простые операции над частями - доступны для понимания студентам с начальным уровнем.

P.S.
Я это затеял не для того, что быть здесь Рефери.
Просто предложил Профи показать возможности тех или иных языков.

Автор: AlexandrY Mar 27 2017, 14:57

Цитата(dxp @ Mar 27 2017, 17:27) *
Код
#!/usr/bin/python
rnd =  [40,14,17,46,12,53,3,49,26,56,10,28,59,20,35,42,42,18,24]
even = [x for x in rnd if not x%2]
odd  = [x for x in rnd if x%2]
res  = sorted(even, reverse=True) + sorted(odd)
print res

Ну.., это слишком сложно.
В Matlab гораздо короче:
Код
X = [40,14,17,46,12,53,3,49,26,56,10,28,59,20,35,42,42,18,24]

>> [sort(X(find(mod(X,2) <= 0)),'descend' ),  sort(X(find(mod(X,2) > 0))) ]

ans =

    56    46    42    42    40    28    26    24    20    18    14    12    10     3    17    35    49    53    59



Автор: TSerg Mar 27 2017, 15:03

Цитата(AlexandrY @ Mar 27 2017, 17:57) *
В Matlab гораздо короче:
>> [sort(X(find(mod(X,2) <= 0)),'descend' ), sort(X(find(mod(X,2) > 0))) ]

Кратко, да.
Но, Mathlab.. сложно назвать чистым ЯП.
Александр, а Вы приведите трансляцию этого кода на Си sm.gif
Кроме того, опять же это не сортировка на месте.

Автор: dxp Mar 27 2017, 15:24

QUOTE (AlexandrY @ Mar 27 2017, 21:57) *
Ну.., это слишком сложно.
В Matlab гораздо короче:

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

CODE
res  = sorted([x for x in rnd if not x%2], reverse=True) + sorted([x for x in rnd if x%2])


QUOTE (TSerg @ Mar 27 2017, 22:03) *
Кратко, да.
Но, Mathlab.. сложно назвать чистым ЯП.

Матлаб в данном контексте ничем не лучше питона и даже наоборот.

Автор: TSerg Mar 27 2017, 15:31

Цитата(dxp @ Mar 27 2017, 18:24) *
Было сказано, чтобы читабельно и понимабельно бегиннерам - т.е. разумная декомпозиция. Но для любителей говнокода, извольте:
Код
res  = sorted([x for x in rnd if not x%2], reverse=True) + sorted([x for x in rnd if x%2])

Матлаб в данном контексте ничем не лучше питона и даже наоборот.

+1.
Совершенно верно.
С таким подходом - налетят Сишники и такое понапишут в "три буквы" sm.gif

Автор: TSerg Mar 27 2017, 16:37

Пример обфускации программ на C ( 21-й конкурс IOCC ).
Второй призер (hamano):



Есть желающие это понять? sm.gif

Автор: Swup Mar 27 2017, 17:49

Поясните чем все-таки вот это:

Код
((int (*)(dev_gpio_t *))((uint32_t)cs_pin->setpin*(!state) + (uint32_t)cs_pin->resetpin*(state)))(cs_pin);

лучше чем вот это?
Код
if (state)
    cs_pin->resetpin(cs_pin);
else
    cs_pin->setpin(cs_pin);        
return 0;


Вот сортировка на месте на C. Просто 2 сортировки вставкой. Да, не коротко конечно, но надеюсь понятно.
CODE
void swap(int *a, int *b )
{
int tmp = *a;
*a = *b;
*b = tmp;
}
int odd_even_separate(int* mas, int len)
{
// odd to left, even to right
int i;
int n = len;
for (i = 0; i < n;)
{
if ((mas[i] % 2) == 0)
{
i++;
}
else
{
swap(&mas[i],&mas[n-1]);
n--;
}
}
return n; //even start
}

int cmp (int a, int b, int par)
{
return par ? a > b : a < b;
}

void insertion_sort(int* mas, int len, int dir)
{
// dir - diretion : 0 for down, 1 for up
int i;
int j;
for(i=1; i<len; i++)
{
for( j=i; j>0 && cmp(mas[j-1], mas[j], dir); j--)
{
swap(&mas[j], &mas[j-1]);
}
}
}

void test_sort(int *mas, int len)
{
int even_start = odd_even_separate(mas, len);
insertion_sort(mas, even_start, 0); // left part(odd) sort down
insertion_sort(mas+even_start, len-even_start, 1); // right part(even) sort up
}

Автор: des333 Mar 27 2017, 17:53

Цитата(dxp @ Mar 27 2017, 11:43) *
Именно!
...

+100
Сарказм на отлично! beer.gif
Единственный вопрос -- не лень было столько писать? sm.gif

Автор: ViKo Mar 27 2017, 18:49

Например, так. Сортировка пары чисел.

Код
void sort(int *x, int *y)
{
  bool a = *x & 1;
  bool b = *y & 1;
  bool c = *x < *y;
  if (a && !b) swap(*x, *y);
  else if (!a && !b && c) swap(*x, *y);
  else if (a && b && !c) swap(*x, *y);
}

Остальное - стандартно. Любой из алгоритмов.

Автор: TSerg Mar 27 2017, 19:11

Цитата(ViKo @ Mar 27 2017, 21:49) *
Например, так. Сортировка пары чисел.

Не-не.., ну хотелось бы полностью, да и с проверочкой.
Вот, кстати и "чистый" Си, еще один вариант.

Автор: Эдди Mar 27 2017, 19:47

Зачем городить пузырек или вставки, если есть qsort?
Кстати, тем, кому на мелкоконтроллерах нужно медиану считать, советую взять примеры из Numerical receipes. Сам так фильтрую данные с АЦП по 9 точкам (DMA заполняет буфер, дальше делается memcpy этого буфера и расчет).

Автор: TSerg Mar 27 2017, 20:09

Цитата(Эдди @ Mar 27 2017, 22:47) *
Зачем городить пузырек или вставки, если есть qsort?

Задачку студенческую, выполни, плиз - "горный ты наш джигит".

Автор: AlexandrY Mar 27 2017, 20:42

Цитата(Swup @ Mar 27 2017, 20:49) *
Поясните чем все-таки вот это:
лучше чем вот это?


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

Автор: Эдди Mar 27 2017, 21:22

Цитата(TSerg @ Mar 27 2017, 23:09) *
Задачку студенческую, выполни, плиз - "горный ты наш джигит".

Лень. Надергай сам из моего гитхаба ☺

Автор: TSerg Mar 27 2017, 21:39

Цитата(Эдди @ Mar 28 2017, 00:22) *
Лень. Надергай сам из моего гитхаба ☺

Ой, тут есть спеши, которые понимают - слился Эдди.

P.S.
Летом собираюсь в вело-поход с приятелями, проедем через КЧ. Примешь? sm.gif

Автор: Эдди Mar 27 2017, 21:51

У меня условия не сильно-то позволяют поселить народ. Но если заранее гостиницу забронируете, то выгул (шашлык-машлык, экскурсия на телескоп, экскурсии по окрестностям и, если есть желание, мини-походец в горы) обеспечу.

Автор: TSerg Mar 27 2017, 22:07

Цитата(Эдди @ Mar 28 2017, 00:51) *
У меня условия не сильно-то позволяют поселить народ. Но если заранее гостиницу забронируете, то выгул (шашлык-машлык, экскурсия на телескоп, экскурсии по окрестностям и, если есть желание, мини-походец в горы) обеспечу.

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

Автор: blackfin Mar 28 2017, 03:12

На чистом "С" задача решается в три шага:

Код
#define swap(x,y) s = x; x = y; y = s;

#define N 19

int main()
{
    int s;
    int i = 0;
    int j = N-1;

// Шаг №1:
    do {
        while ((rnd[i]%2 == 0)&&(i != j)) i = i + 1;
        while ((rnd[j]%2 == 1)&&(j != i)) j = j - 1;
        swap(rnd[i],rnd[j]);
    } while (i != j);

// Шаг №2:
    if (1 < i)
    {
        if (rnd[N-1]%2 == 0)  i = i + 1;

        сортировка_первых_i_значений_rnd[]_по_убыванию
    }

// Шаг №3:
    if (j < N-1)
    {
        сортировка_последних_N-j_значений_rnd[]_по_возрастанию
    }

    return 0;
}

Автор: Эдди Mar 28 2017, 04:58

Цитата(TSerg @ Mar 28 2017, 01:07) *
наезды на технологии

Я на технологии не наезжаю, я лишь критикую всякую дрянь: мастдайку, systemd'изированные дистры линукса, наркоманские ЯП и т.п.

Автор: ViKo Mar 28 2017, 10:26

Я очень слабый умелец в C#. Вот, сделал. Можно поводить мордой по батарее, если что не так.

CODE

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace VS_2017_ArraySort {

public class myComparer : IComparer {

public int Compare(object x, object y ) {
if (x == y) return 0;
else if (((int)x % 2) == 1 && ((int)y % 2) == 0) return 1;
else if (((int)x % 2) == 0 && ((int)y % 2) == 0 && ((int)x < (int)y)) return 1;
else if (((int)x % 2) == 1 && ((int)y % 2) == 1 && ((int)x > (int)y)) return 1;
else return -1;
}
}

class Program {
static void Main(string[] args) {
IComparer myComp = new myComparer();

const int N = 20;
int[] Arr = new int[N];
Random Rnd = new Random();

for (int i=0; i<N; i++) {
Arr[i] = Rnd.Next(0, 99);
}
Console.Write("Исходный массив: ");
foreach (int i in Arr)
Console.Write(i + " ");
Console.WriteLine();

Array.Sort(Arr, myComp);
Console.Write("После сортировки: ");
foreach (int i in Arr)
Console.Write(i + " ");
Console.WriteLine();
}
}
}

Исходный массив: 71 58 3 51 65 96 9 16 57 85 32 75 3 98 51 53 69 15 39 1
После сортировки: 98 96 58 32 16 1 3 3 9 15 39 51 51 53 57 65 69 71 75 85

Автор: Swup Mar 28 2017, 11:17

Цитата(ViKo @ Mar 28 2017, 14:26) *
Я очень слабый умелец в C#. Вот, сделал. Можно поводить мордой по батарее, если что не так.
Код
Array.Sort(Arr, myComp);


Там ведь используется интроспектная сортировка. Такая комбинация перестановок, сортировок вставкой, кучей и быстрой.
При определенном размере массива будет работать быстрая сортировка, а она делается не на месте. Т.е. в общем случае нарушается условие задачи.

ПС понравилась функция сравнения у вас. Мне и в голову не пришло, что так можно.

Автор: ViKo Mar 28 2017, 11:26

Цитата(Swup @ Mar 28 2017, 14:17) *
При определенном размере массива будет работать быстрая сортировка, а она делается не на месте. Т.е. в общем случае нарушается условие задачи.

Почему не на месте? В книге Шилдта есть такой код:
Код
/* Quicksort setup function. */
void quick(char *items, int count)
{
  qs(items, 0, count-1);
}  
/* The Quicksort. */
void qs(char *items, int left, int right)
{
  register int i, j;
  char x, y;
  i = left; j = right;
  x = items[(left+right)/2];
  do {
    while((items[i] < x) && (i < right)) i++;
    while((x < items[j]) && (j > left)) j--;
    if(i <= j) {
      y = items[i];
      items[i] = items[j];
      items[j] = y;
      i++; j--;
    }
  } while(i <= j);
  if(left < j) qs(items, left, j);
  if(i < right) qs(items, i, right);
}

Автор: dxp Mar 28 2017, 11:28

Сортировка in-place:

CODE
#!/usr/bin/python3

rnd =  [40,14,17,46,12,53,3,49,26,56,10,28,59,20,35,42,42,18,24]

rnd.sort(key=lambda x: -1*x if x & 0x1 else x, reverse=True)

print (rnd)


CODE
hz@h:~/slon/python/$ ./sort2.py
[56, 46, 42, 42, 40, 28, 26, 24, 20, 18, 14, 12, 10, 3, 17, 35, 49, 53, 59]

Этот вариант и работать должен быстрее. Хотя он не такой наглядный для неподготовленного человека.

Автор: =SSN= Mar 28 2017, 11:31

Цитата(Swup @ Mar 28 2017, 14:17) *
ПС понравилась функция сравнения у вас. Мне и в голову не пришло, что так можно.

Указатель на функцию-предикат можно также и на С++ использовать:
Код
// Return whether first element is greater than the second
bool greater ( int a, int b )
{
   return (a&1 == 0)&&(b&1 == 0)&&(a < b)||(a&1 == 1)&&(b&1 == 1)&&(a > b)||(a&1 == 1)&&(b&1 == 0);
}

sort( vec.begin( ), vec.end(), greater);

См. http://electronix.ru/redirect.php?https://msdn.microsoft.com/en-us/library/ecdecxh1(v=vs.100).aspx

Автор: TSerg Mar 28 2017, 11:54

Цитата(dxp @ Mar 28 2017, 14:28) *
rnd.sort(key=lambda x: -1*x if x & 0x1 else x, reverse=True)
..
Хотя он не такой наглядный для неподготовленного человека.

Да, с лямбда-функцией это практически идеальный по краткости вариант.
Нечто подобное было предложено на PascalABC.Net (там тоже lambda есть), но студент выбрал из предложенных все же вариант с декомпозицей на четные-нечетные и раздельной их сортировкой пузырьком на месте.
Так ему понятнее.

Код
// Body  
  var k: integer = 0;
  var x: integer;
  
// Even to head
  for var i := 0 to ar.High do
    if not Odd(ar[i]) then begin
        x := ar[i];
        for var j := i downto k+1 do
          ar[j] := ar[j-1];
        ar[k] := x;
        Inc(k);
    end;
// Sort even
  for var i := 0 to k-2 do
    for var j := i to k-1 do
      if ar[i] < ar[j] then Swap(ar,i,j);
// Sort odd
  for var i := k to ar.High-1 do
    for var j := i to ar.High do
      if ar[i] > ar[j] then Swap(ar,i,j);



Автор: dxp Mar 28 2017, 12:18

Замерил производительность, сортировка 1000000 рандомов в диапазоне 0..100000. Первый вариант (с вычленением чётных-нечётных и раздельной сортировкой):

1.0882549455855042

второй, по ключу:

0.48738399290014056

Более, чем в два раза.

P.S. Вариант с лямбдой работает только с натуральными числами. Если надо весь целый диапазон, то ключевую функцию надо поправить соответственно.

Автор: Swup Mar 28 2017, 12:27

Цитата(ViKo @ Mar 28 2017, 15:26) *
Почему не на месте? В книге Шилдта есть такой код:


Спасибо, что поправили.
Какие-то у меня в голове странные ассоциации сложились по поводу "на месте" и "O(1) потребления памяти".

Автор: aiwa Mar 28 2017, 13:16

Цитата(dxp @ Mar 27 2017, 10:43) *
А уж про синтаксические правила и говорить нечего. Ведь это же надо придумать конструкции вроде такой:

int (*(af[]))(int);

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


Можно разобраться и без бутылки, если помнить, что в С разбор не слева-направо или наоборот, а по спирали.

Берем идентификатор и вокруг него раскручиваем спиральку:
af /*af - идентификатор*/
[] /*значит, af - это массив*/
* /*значит, это массив указателей на...*/
(int) /* скобки - принадлежность функции, внутри скобок - ее параметры, значит массив указателей на функции принимающие в качестве параметра тип int */
int /* тип возращаемого результата вышеупомянутыми функциями, ...... */

Автор: AlexandrY Mar 28 2017, 19:44

Цитата(dxp @ Mar 27 2017, 18:24) *
Было сказано, чтобы читабельно и понимабельно бегиннерам - т.е. разумная декомпозиция. Но для любителей говнокода, извольте:
Код
res  = sorted([x for x in rnd if not x%2], reverse=True) + sorted([x for x in rnd if x%2])

Нет, ну действительно у создателей питона не было целью сделать жизнь легче.

Вот пример на Node.js -
Код
var math = require('mathjs');

var  X = math.matrix([40, 14, 17, 46, 12, 53, 3, 49, 26, 56, 10, 28, 59, 20, 35, 42, 42, 18, 24]);
A = math.concat(math.sort(math.filter(X, function (x){ return x%2 == 0 }),'desc'),math.sort(math.filter(X, function(x){ return x%2 > 0})))

console.log(A);
Все ясно и понятно. Я это сделал за 10 мин, до этого никогда Node.js в руках не держал.

А вооще-то мы ждем перлов на ассемблере. Кто тут рвался показать счастье. biggrin.gif

Да нет, я не тролю. Тема мне не интересна, просто только что мне пришла ссылка с рекламой Node.js для embedded,
где довольно изящно опустили Python - http://electronix.ru/redirect.php?http://embedded-computing.com/articles/speeding-embedded-systems-time-to-market-using-node-js/

Автор: TSerg Mar 28 2017, 21:01

Цитата(AlexandrY @ Mar 28 2017, 22:44) *
.. до этого никогда Node.js в руках не держал.

Кто хорошо освоил один из ЯП, нет проблем перейти на другой.
Точнее, проблемы будут, но не с синтаксисом, а либами.
P.S.
Питон - это не панацея, но один из вариантов современных языковых технологий.


Нда.. наверное самый короткий и понятливый вариант на PascalABC.Net (используются лямбды):
Есть конечно, фикус - массив остается прежним sm.gif

Код
begin
  var ar := Seq(45,46,8,11,5,29,37,0,21,43,4,5,58,34,14,18,40,46,30);
  ar.Where(x -> x mod 2 = 0).SortedDescending.Print;
  Print('');
  ar.Where(x -> x mod 2 <> 0).Sorted.Print;
end.


Result:
Код
45 46 8 11 5 29 37 0 21 43 4 5 58 34 14 18 40 46 30
58 46 46 40 34 30 18 14 8 4 0 5 5 11 21 29 37 43 45

Автор: dxp Mar 29 2017, 04:00

QUOTE (AlexandrY @ Mar 29 2017, 02:44) *
Нет, ну действительно у создателей питона не было целью сделать жизнь легче.

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

QUOTE (AlexandrY @ Mar 29 2017, 02:44) *
Вот пример на Node.js -
CODE
var math = require('mathjs');

var  X = math.matrix([40, 14, 17, 46, 12, 53, 3, 49, 26, 56, 10, 28, 59, 20, 35, 42, 42, 18, 24]);
A = math.concat(math.sort(math.filter(X, function (x){ return x%2 == 0 }),'desc'),math.sort(math.filter(X, function(x){ return x%2 > 0})))

console.log(A);
Все ясно и понятно. Я это сделал за 10 мин, до этого никогда Node.js в руках не держал.

Что тут ясно и понятно? Какое-то нагромождение "проприетарных" ключевых слов. При этом длинно и рыхло. Уже приводил выше, но повторю:
CODE
rnd.sort(key=lambda x: -1*x if x & 0x1 else x, reverse=True)

Сделайте хотя бы так же компактно. Хотя, думается, вы не понимаете, как это работает.

QUOTE (AlexandrY @ Mar 29 2017, 02:44) *
А вооще-то мы ждем перлов на ассемблере. Кто тут рвался показать счастье. biggrin.gif

Про асм тоже не в кассу. Во-первых, все поняли контекст того поста (ну, кроме вас, видимо). Во-вторых, вся фишка этих кратких и красивых вариантах на ЯВУ - в использовании библиотек. Напишите сортировку на любом из этих языков без использования библиотечных функций - чисто выражениями языка - и увидите, что на асме оно будет не сильно отличаться, потому что тут нет ни каких-либо высокоуровневых абстракций, ни сколько-нибудь сложной структуры программы.

Автор: TSerg Mar 29 2017, 15:58

Цитата(dxp @ Mar 29 2017, 07:00) *
.. вся фишка этих кратких и красивых вариантах на ЯВУ - в использовании библиотек.

Не только.
Есть такие понятия, как "синтаксический сахар" и "синтаксическая соль".
Применение первого, обеспечивает, по выражению Джек Криншоу:
"В конце концов, люди тоже должны читать программы… Сахарные токены служат в качестве полезных ориентиров, помогающих вам не сбиться с пути…"
Сам термин "syntactic sugar" был введен Peter J. Landin в 1964 г. для описания синтаксиса алголо-подобного языка с использованием лямбда-исчисления.
Пример во многих ЯВУ - дополнение базового безусловного цикла, сначала тремя циклами (пред-, пост-условие, цикл с шагом), а затем и foreach.
Или, к примеру (x := x + y) == (x+=y); Это стандартно для C, но для Pascal - нет. Тем не менее, отечественные разработчики PascalABC.Net, сознательно пошли на значительную переделку Object Pascal, для сближения его с современными технологиями.

Синтаксическая "соль" - дополнительные, технически бесполезные, конструкции в языке программирования, которые правила языка требуют употреблять при выполнении потенциально небезопасных действий.
Пример в Delphi - override.
Или, например - завершение операции точкой с запятой.
Для синтаксического парсера, это не принципиально, но большинство разработчиков к этому привыкли.

Автор: MrYuran Mar 30 2017, 10:12

Цитата(TSerg @ Mar 29 2017, 18:58) *
Или, к примеру (x := x + y) == (x+=y); Это стандартно для C, но для Pascal - нет.

Это имеет конечный смысл, особенно на безаккумуляторных архитектурах.
Так же, как ++ и --

Автор: petrov Mar 30 2017, 14:20

Цитата(TSerg @ Mar 29 2017, 18:58) *
Или, к примеру (x := x + y) == (x+=y); Это стандартно для C, но для Pascal - нет. Тем не менее, отечественные разработчики PascalABC.Net, сознательно пошли на значительную переделку Object Pascal, для сближения его с современными технологиями.


Просто таки замечательный пример тарабарщины на ровном месте, в большинстве современные языки превратились в совершенно нечитабельную вещь в себе, в отличие от старых книг с алгоритмами на фортране и паскале. ИМХО

Автор: TSerg Mar 31 2017, 18:29

Цитата(petrov @ Mar 30 2017, 17:20) *
Просто таки замечательный пример тарабарщины на ровном месте, в большинстве современные языки превратились в совершенно нечитабельную вещь в себе, в отличие от старых книг с алгоритмами на фортране и паскале. ИМХО

BASIC - наше все, с нумерацией строк, GOSUB и полной свободой.

Автор: TSerg Apr 4 2017, 17:12

Еще один, очень красивый и, практически, кросс-языковый вариант решения задачи сортировки четных-нечетных:
(хотя он подразумевает, что изначально числа заданы в положительном диапазоне)

Код
for (int i = 0; i < rnd.Length; i++) if (rnd[i] % 2 == 0) rnd[i] = rnd[i] * (-1);
Array.Sort(rnd);
for (int i = 0; i < rnd.Length; i++) if (rnd[i] % 2 == 0) rnd[i] = rnd[i] * (-1);

Автор: dxp Apr 5 2017, 03:20

QUOTE (TSerg @ Apr 5 2017, 00:12) *
Еще один, очень красивый и, практически, кросс-языковый вариант решения задачи сортировки четных-нечетных:
(хотя он подразумевает, что изначально числа заданы в положительном диапазоне)

CODE
for (int i = 0; i < rnd.Length; i++) if (rnd[i] % 2 == 0) rnd[i] = rnd[i] * (-1);
Array.Sort(rnd);
for (int i = 0; i < rnd.Length; i++) if (rnd[i] % 2 == 0) rnd[i] = rnd[i] * (-1);

Ну, так в варианте в посте №106 именно этот финт и использован. И тоже только для положительных целых. Для любых целых это трансформируется в
CODE
rnd.sort(key=lambda x: (1, -1*x) if x & 0x1 else (0, x), reverse=True)

Автор: TSerg Apr 5 2017, 13:53

Цитата(dxp @ Apr 5 2017, 06:20) *
Ну, так в варианте в посте №106 именно этот финт и использован. И тоже только для положительных целых.

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

Вот без ограничений на знак:
Код
const
  m=-MaxInt-1;

for i:=0 to Length(Arr)-1 do Arr[i]:=(Arr[i] xor m) shr 1 xor -(Arr[i] and 1 xor 1);
Sort(Arr);
for i:=0 to Length(Arr)-1 do Arr[i]:=(Arr[i] shl 1 xor m) xor -(Arr[i] shr 31) xor 1;

Автор: ViKo Apr 5 2017, 14:08

Два раза бегать по массиву - это чемпион? w00t.gif

Автор: TSerg Apr 5 2017, 14:31

Цитата(ViKo @ Apr 5 2017, 17:08) *
Два раза бегать по массиву - это чемпион? w00t.gif

Где сказано, что это "чемпион"?
Да и два раза пробежаться - это линейная сложность.

Автор: ViKo Apr 5 2017, 14:40

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

Автор: TSerg Apr 5 2017, 14:47

Цитата(ViKo @ Apr 5 2017, 17:40) *
Два раза бегать или сортировать только натуральные числа - такая альтернатива?
Два раза бегать - это два раза. Сегодня в обед испытал удовольствие, забыл кошелек, обнаружил уже у кассы. К черту такую линейную сложность.

Вам хочется поспорить ни о чем? Предоставляю это увлекательное занятие в форме Вашего же само-диалога.

Автор: ViKo Apr 5 2017, 15:57

Здесь не о чем спорить. Констатация факта в форме вопроса.

Автор: dxp Apr 6 2017, 04:17

QUOTE (TSerg @ Apr 5 2017, 20:53) *
Разумеется, просто здесь без лямбд.

Да тут не в лямбдах дело. Лямбда - это просто способ внедрить тело функции в выражение. Предыдущий пример без лямбды:
CODE
def get_key():
    return (1, -1*x) if x & 0x1 else (0, x)

rnd.sort(key=get_key(), reverse=True)


QUOTE (TSerg @ Apr 5 2017, 20:53) *
А так, да - Ваш на первой полочке, хотя и с ограничением на диапазон.

Предыдущий пример (120-й пост и этот выше) без ограничений на диапазон.

QUOTE (ViKo @ Apr 5 2017, 21:08) *
Два раза бегать по массиву - это чемпион? w00t.gif

А сколько проходов по массиву совершается внутри функции сортировки? Или вы полагаете, что внутри sort() оно за один проход сортирует? И вообще, каков вес (в смысле затрат) прохода по массиву - сиречь, работа с памятью, - на фоне операций сортировки?

Автор: ViKo Apr 6 2017, 05:10

Цитата(dxp @ Apr 6 2017, 07:17) *
А сколько проходов по массиву совершается внутри функции сортировки? Или вы полагаете, что внутри sort() оно за один проход сортирует? И вообще, каков вес (в смысле затрат) прохода по массиву - сиречь, работа с памятью, - на фоне операций сортировки?

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

Автор: dxp Apr 6 2017, 07:43

QUOTE (ViKo @ Apr 6 2017, 12:10) *
Логично, что того, кто пробежал дополнительный круг, вряд ли назовут чемпионом.

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

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

QUOTE (ViKo @ Apr 6 2017, 12:10) *
Вот последнее ваше решение вполне может претендовать. Наряду с подобными на других языках - функция метода сравнения + сама библиотечная функция сортировки.

Так у TSerg по сути используется тот же метод. В моём примере выполняется подготовка ключей - массив элементов, каждый из которых связан с целевым сортируемым элементом, а затем собственно сортировка целевых элементов на основе значений ключей. У TSerg делается принципиально то же самое: сначала он готовит ключи, модифицируя элементы массива так, чтобы они могли выполнять роль ключей, затем сортировка по этим ключам. Ну, и финально вернуть значения элементов массива в исходному виду. Стандартные способы тут ничем не вырвутся вперёд.

QUOTE (ViKo @ Apr 6 2017, 12:10) *
Проход по массиву с инвертированием членов, удовлетворяющих условию, думаю, соизмерим с проходом со сравнением пары и обменом местами.

Проход со сравнением пары и перестановкой местами - это что, "пузыёк"? "Пузырёк" - один из самых медленных (хотя и один из самых простых и незатратных) способов сортировки. Там совершается почти столько проходов по массиву, сколько в массиве элементов. На этом фоне лишний проход по массиву ничего не портит.

Автор: ViKo Apr 6 2017, 07:49

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

Автор: dxp Apr 6 2017, 08:37

QUOTE (ViKo @ Apr 6 2017, 14:49) *
Нет, не "пузырек". Многие функции сортировки работают с парой элементов одинаково - сравнивают и, если нужно, переставляют местами. В том числе и быстрая сортировка.

quicksort (который Хоара), насколько мне известно, сравнивает с опорным элементом, а переставляет пару, в которую опорный не входит. Но это не важно. Там всё равно суммарно получается эн проходов по массиву, где эн зависит логарифмически от количества элементов. Да, гораздо лучше "пузырька", особенно, когда элементов много. Один лишний проход снаружи сортировки погоды не портит.

Автор: ViKo Apr 6 2017, 09:54

Цитата(dxp @ Apr 6 2017, 11:37) *
quicksort (который Хоара), насколько мне известно, сравнивает с опорным элементом, а переставляет пару, в которую опорный не входит. Но это не важно. Там всё равно суммарно получается эн проходов по массиву, где эн зависит логарифмически от количества элементов. Да, гораздо лучше "пузырька", особенно, когда элементов много.

В сообщении 105 алгоритм быстрой сортировки показан. Пусть не так работает с парой, это, действительно не существенно.
Цитата
Один лишний проход снаружи сортировки погоды не портит.

Вообще-то, даже два: один до сортировки, один после. А можно без них, внутри функции сортировки все выполнить. Экономия очевидна.

Автор: dxp Apr 6 2017, 10:52

QUOTE (ViKo @ Apr 6 2017, 16:54) *
Вообще-то, даже два: один до сортировки, один после. А можно без них, внутри функции сортировки все выполнить. Экономия очевидна.

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

Автор: @Ark Apr 6 2017, 11:58

Цитата(dxp @ Apr 6 2017, 13:52) *
Вообще-то, тут не просто сортировка, а сортировка с дополнительным условием (чёт-нечет), и это тоже надо как-то учитывать. Т.е. это выливается в некие дополнительные действия, и не факт, что они будут менее затратными, нежели один доп. проход по массиву.

Это все издержки ЯВУ. sm.gif На любом асме эта проблема ничего не стоит. Просто считаем младший бит числа самым старшим и все.
Можете, чисто для удобства, "крутануть" циклически весь регистр вправо, перед сравнением...
Чет будет в начале, нечет - в конце отсортированного списка. Если нужен обратный порядок - инвертируем бит перед сравнением.
P.S. По-моему, основной вопрос для любого языка - кому должно быть "удобно": программисту или процессору? sm.gif


Автор: Gruffly Apr 6 2017, 21:50

Весело тут у Вас sm.gif
Кто-то считает, что линейный пробег по массиву сравним по быстродействию с любой сортировкой, даже самой быстрой?
Таки я его разочарую.
Берем алгоритм из поста #121.
Делаем точные замеры ( на PC, Win7, Delphi 7, размерность времени в мкс) и что видим?
Ой!
- prepare и post - линейная пробежка по массиву;
- sort - сортировка массива методом QuickSort, можно еще Radix-сортировку применить, но не принципиально что-то изменится.



Автор: ViKo Apr 7 2017, 04:16

В таблице не хватает процентного отношения (пре + пост) к сорт. Также время сортировки может зависеть от того, какие данные в массиве. Желательно усреднить множество сортировок.
"Кто-то" сравнивает линейный пробег по массиву с одним из проходов функции сортировки. Вот что соизмеримо. Понятно, сортировка 1000-элементного массива будет выполняться проходов за 10 (по фрагментам массива). Здесь вклад дополнительных внешних проходов будет невелик. А вот 10-элементный массив наглядно демонстрирует неоптимальность такого подхода.

Автор: Gruffly Apr 7 2017, 14:15

1. По приведенной выше таблице - можно прикинуть проценты, если кто-то учился в детстве считать в уме.
2. Как я вижу, из постановки задачи, массив формируется из random-чисел и это есть наиболее общая постановка задачи.
Рассматривать особые частные случаи - интересно, но в оговоренных случаях.
3. При рандом-массиве, размерностью свыше нескольких десятков, тем более сотен - QuickSort отработает предсказуемо.
4. При размерности 4..10 - есс-но могут быть реализованы крайне эффективные варианты решения Задачи, да хоть на тех же if..else.

Автор: @Ark Apr 7 2017, 15:04

Цитата(Gruffly @ Apr 7 2017, 00:50) *
Делаем точные замеры ( на PC, Win7, Delphi 7, размерность времени в мкс)...

Объясните, пожалуйста, как сочетаются понятия WIN7 (явно, не real-time) и "точные замеры времени в мкс"?



Автор: Gruffly Apr 7 2017, 15:23

Цитата(@Ark @ Apr 7 2017, 16:04) *
Объясните, пожалуйста, как сочетаются понятия WIN7 (явно, не real-time) и "точные замеры времени в мкс"?


Учить, до посинения, такие вещи, как:

Код
GetThreadPriority(GetCurrentThread );
GetSystemTimeAdjustment(Ad, Int, Q);
QueryPerformanceCounter( i1 );
QueryPerformanceFrequency( i1 );


// System slice, [100*ns]
// 156001 == 15.6001 ms
function GetAccuracy_: Cardinal;
var  Ad, Int: Cardinal;
     Q: LongBool;
begin
  GetSystemTimeAdjustment(Ad, Int, Q);
  Result:= Int;
end;

// CPU frequency, [MHz]
function GetCPUFreq_: extended;
var
    i1,i2,t:int64;
    pr:dword;
begin
    pr := GetThreadPriority(GetCurrentThread );
    SetThreadPriority(GetCurrentThread,THREAD_PRIORITY_TIME_CRITICAL);
    QueryPerformanceCounter( i1 );
    t := GetCPUTicks_;
    Sleep(SleepTime);
    asm
      dw 310Fh // rdtsc
      sub eax, dword[t]
      sbb edx, dword[t+4]
      mov dword[t], eax
      mov dword[t+4], edx
    end;
    QueryPerformanceCounter( i2 );
    i2 := i2-i1;
    QueryPerformanceFrequency( i1 );
    Result := i2*1000000 div i1;
    Result := t/(Result);
    CPUFreq := Result;
    SetThreadPriority(GetCurrentThread,pr);
end;

procedure SetRealTime_;
var
   ProcessID : DWORD;
   ProcessHandle : THandle;
   ThreadHandle : THandle;
begin
  ProcessID := GetCurrentProcessID;
  ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,
        false,ProcessID);
  SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
  ThreadHandle := GetCurrentThread;
  SetThreadPriority(ThreadHandle, THREAD_PRIORITY_TIME_CRITICAL);
end;

procedure SetNormalTime_;
var
   ProcessID : DWORD;
   ProcessHandle : THandle;
   ThreadHandle : THandle;
begin
  ProcessID := GetCurrentProcessID;
  ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,
        false,ProcessID);
  SetPriorityClass(ProcessHandle, NORMAL_PRIORITY_CLASS);
  ThreadHandle := GetCurrentThread;
  SetThreadPriority(ThreadHandle, THREAD_PRIORITY_NORMAL);
end;

Автор: @Ark Apr 7 2017, 15:31

Цитата(Gruffly @ Apr 7 2017, 18:23) *
Учить, до посинения ...

Спасибо. А Вы не могли бы, кратко, своими словами, объяснить суть? sm.gif


Автор: Gruffly Apr 7 2017, 15:39

Цитата(@Ark @ Apr 7 2017, 15:31) *
Спасибо. А Вы не могли бы, кратко, своими словами, объяснить суть? sm.gif

Что, именно?

Win-система позволяет управлять собой вплоть до кольца 0 (ring 0).
Любой поток(и) можно возвысить до статуса реал-тайм для выполнения некоторых time-замеров и вернуть его обратно, в normal-time.
Есть очень много тонкостей по замеру времени исполнения той или иной программы, того или иного участка ее.
Объяснить двумя словами - нереально.
Однако, начиная с WinNT - Windows может считаться реал-тайм системой, более того, есть специальные релизы ее.
Важно другое - что мы понимаем под реал-тайм?
Реал-тайм может быть жесткий, мягкий, промежуточный - все, от задач зависит.
Где-то ранее, я приводил реализацию большого проекта на WinNT - супервизорное управление технологическим оборудованием + управление электро-приводом.
Реализовано, более того - продано китайцам sm.gif

Автор: Эдди Apr 7 2017, 15:55

Какой поток бреда!..

Автор: blackfin Apr 7 2017, 16:07

Цитата(Эдди @ Apr 7 2017, 18:55) *
Какой поток бреда!..

Обычная в наших краях дуэль джентльменов на пенисах! biggrin.gif

Автор: Gruffly Apr 7 2017, 16:12

Цитата(Эдди @ Apr 7 2017, 16:55) *
Какой поток бреда!..

Не спеши причислять себя к горным баранам, в горах их и без тебя хватает sm.gif
Using Windows NT for Real-Time Applications (Mitsubishi Electric Research Labs)
 TR98_02.pdf ( 337.73 килобайт ) : 180



Автор: @Ark Apr 7 2017, 23:57

Цитата(Gruffly @ Apr 7 2017, 19:12) *
Using Windows NT for Real-Time Applications (Mitsubishi Electric Research Labs)
 TR98_02.pdf ( 337.73 килобайт ) : 180

Почитал. Может, что-то не так понял, но там говорится о временах порядка миллисекунд.
Вы выложили измерения в микросекундах... rolleyes.gif

Автор: Эдди Apr 8 2017, 05:41

Даже из линукса при помощи rt- патча полноценной ртоси не получится! Что уж о пускалке игр говорить?

Автор: Gruffly Apr 8 2017, 14:55

Цитата(@Ark @ Apr 8 2017, 00:57) *
Почитал. Может, что-то не так понял, но там говорится о временах порядка миллисекунд.
Вы выложили измерения в микросекундах... rolleyes.gif


Теперь по порядку:

Методы измерения времени на платформе Windows имеют свою историческую подоплеку:

1. timeGetTime() - возвращает время в ms, прошедшее с момента старта OS. Работает от мультимедийного таймера. Точность 1..5 ms.
2. GetTickCount() - возвращает время в ms, прошедшее с момента старта OS. Работает от того же таймера, но точность ниже (10..55 ms), т.к. срабатывает по прерываниям часов реального времени.
3. RDTS - чи­та­ет из про­цес­сор­но­го счёт­чи­ка чис­ло так­тов, про­шед­шее с мо­мен­та за­пус­ка про­цес­со­ра. Са­мый точ­ный счёт­чик из до­ступ­ных.
При частоте CPU = 3 GHz длительность тика составляет 1/3 = 0.33 нс.
Есть проблемы на современных платформах, связанные с изменением частоты процессора, переключением задачи между CPU в многопроцессорных и многоядерных случаях.
Проблемы не принципиальные, просто надо учитывать особенности применения rdts.
4. QueryPerformance­Counter() - «тай­мер вы­со­ко­го раз­ре­ше­ния».
Вве­дён фир­мой Microsoft, что­бы раз и на­все­гда по­ста­вить точ­ку в про­бле­мах из­ме­ре­ния вре­ме­ни.
Ча­сто­та это­го тай­ме­ра ( ~ 3 МГц и вы­ше) и не ме­ня­ет­ся во вре­мя ра­бо­ты си­сте­мы. Запрос частоты QueryPerfomanceFrequency().
Очевидно, что длительность тика составляет 1/3 = 0.33 мкс.

Методы превращения платформы Windows в реал-тайм OS (того или иного типа) тоже имеют свою историческую подоплеку:
1. Впервые это стало возможным после появления WinNT 3.1
2. Win2000 Advanced Server вполне претендовал на эту роль и использовался ( в т.ч. мной) для создания "мягких" реал-тайм приложений.
3. Были выпущены расширения для WinNT платформ.
Их много, наиболее известная - RTX от фирмы VenturCom (затем Ardence, затем куплена Citrix), сейчас подразделение Citrix выделилось в отдельную фирму IntervalZero Inc.
4. Microsoft всегда следила на требованиями embebbed-рынка.
Список специальных релизов реал-тайм Windows достаточно большой:

Windows 7 Professional for Embedded Systems and Windows 7 Ultimate for Embedded Systems
Windows Embedded POSReady 7
Windows Server 2008 R2 for Embedded Systems
Windows Embedded POSReady 2009
Windows Server 2012 R2 for Embedded Systems
System Center 2012 SP1
Windows Embedded Compact 2013
Windows Embedded 8.1 Industry
и более ранние + для мобильных девайсов.

Есть такое понятие, как время System-slice (SST). Это время переключения задач на той или иной платформе в многозадачных OS.
Для обычных реализаций Windows, значение SST составляет от 10 до 20 ms, для embedded - 1 ms, для расширений - менее 1 ms.
Именно это, в первую очередь, ограничивает диапазон применения любой многозадачной OS.
К измерениям времени на платформе имеет опосредованное отношение.

P.S.
Надеюсь, что ответил на вопросы.

Автор: @Ark Apr 8 2017, 16:00

Цитата(Gruffly @ Apr 8 2017, 17:55) *
Надеюсь, что ответил на вопросы.

Да. Спасибо за информацию.

Автор: Эдди Apr 8 2017, 16:19

Как вообще можно говно мастдайное как операционную систему рассматривать? Она же только для игрулек годится! И создавалась изначально как пускалка игр!!!

Автор: Gruffly Apr 8 2017, 16:23

Цитата(Эдди @ Apr 8 2017, 17:19) *
Как вообще можно говно мастдайное как операционную систему рассматривать? Она же только для игрулек годится! И создавалась изначально как пускалка игр!!!

В горы вернись - там телескопы, звезды, инопланетяне и незамутненное сознание.

Автор: Myron Apr 8 2017, 18:32

Цитата(Эдди @ Apr 8 2017, 10:19) *
Как вообще можно говно мастдайное как операционную систему рассматривать? Она же только для игрулек годится! И создавалась изначально как пускалка игр!!!
Да все в жизни начинается с игр. Дальше развитие к спутникам, станкам, связи и т.д.

Автор: @Ark Apr 8 2017, 21:17

Цитата(Gruffly @ Apr 8 2017, 19:23) *

Еще несколько вопросов, если позволите. Раз уж Вы такой знаток данной темы. rolleyes.gif
Ведь, в предложенной выше задаче, нас интересует не "реальное время" в конечном итоге,
а "чистое время" выполнения некоторой последовательности команд. Которое, как предполагается,
теоретически может быть прервано разнообразными прерываниями, в том числе, системными.
Как это решается?

Автор: Gruffly Apr 8 2017, 21:58

Цитата(@Ark @ Apr 8 2017, 21:17) *
Еще несколько вопросов, если позволите. Раз уж Вы такой знаток данной темы. rolleyes.gif
Ведь, в предложенной выше задаче, нас интересует не "реальное время" в конечном итоге,
а "чистое время" выполнения некоторой последовательности команд. Которое, как предполагается,
теоретически может быть прервано разнообразными прерываниями, в том числе, системными.
Как это решается?


Переключение задач происходит в соответствии с system-slice. Как сказано выше, это время зависит от Win - платформы
Если мы укладываемся со своими измерениями в этот интервал, то "все хорошо, прекрасная маркиза".
Если нет - надо принимать меры по снижению задач на переключение.
Понятно, что на тестовой машине должны быть "прибиты" некоторые сервисы, не нужно в этот момент слушать музыку, смотреть фильмы, лазать браузерами, антивирь отключен и т.п.
Еще один пример показан в коде выше - переключить текущий контент на real-time и не забыть вернуть его обратно в текущий или normal.

Есть инструменты по наблюдению за сервисами, которые хорошо "кушают" процессорное время.
К примеру - LatencyMonitor называется.
Основная задача - проследить на затраты interrupt service routine (ISR) и Deferred Procedure Call (DPC) и, что не критично для работы - отключить.

P.S.
На самом деле, не все так плохо. Если явно не запущены затратные приложения, то измерения по rdts и QPC дают правдивые и релевантные значения без специальной настройки тестовой машины.

P.P.S.
У Майкрософт, есс-но, есть свои инструменты для тестирования ISR & DPC:

Код
tracelog -start -f test01.etl -dpcisr -UsePerfCounter -b 64
tracelog -q
tracelog -update -b 128 -max 40
tracelog -stop
tracerpt test01.etl -report dpcisr.txt -df
или
tracerpt test01.etl -report dpcisr.txt -f HTML

Автор: @Ark Apr 8 2017, 22:13

Цитата(Gruffly @ Apr 9 2017, 00:58) *
Если мы укладываемся со своими измерениями в этот интервал, то "все хорошо, прекрасная маркиза".
Если нет - надо принимать меры по снижению задач на переключение...

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

Автор: Gruffly Apr 8 2017, 22:33

Цитата(@Ark @ Apr 8 2017, 22:13) *
Погодите. Переключения между задачами - это одна проблема.
Но ведь есть еще низкоуровневые аппаратные прерывания, которые "съедают" определенное время.
И повлиять на них никак нельзя, поскольку они имеют наивысший приоритет.
Как это учитывается?

Это следующий уровень, Вы к нему готовы? sm.gif
DPC можно "запретить" на определенное время, можно отлавливать длину очереди DPC и отсчитывать время исполнения "команд" в DPC.

Автор: @Ark Apr 8 2017, 22:53

Цитата(Gruffly @ Apr 9 2017, 01:33) *
Это следующий уровень, Вы к нему готовы? sm.gif

А, Вы?
Меня, собственно, только именно этот уровень и интересует.
Я Вам задавал "наводящие вопросы", чтобы выйти на эту тему. Прикидываясь "чайником". sm.gif
Цитата(Gruffly @ Apr 9 2017, 01:33) *
DPC можно "запретить" на определенное время, можно отлавливать длину очереди DPC и отсчитывать время исполнения "команд" в DPC.

Как быть с конвейером команд и данных? Перестановкой команд при выполнении их процессором из конвейера?
Ненормированным временем выполнения отдельных команд процессора? Это еще не все вопросы...
Вы готовы на них ответить?
Или хотя бы обсудить?


Автор: Gruffly Apr 9 2017, 06:22

Уровень углубления зависит от того, что нам нужно.
Влезание в потроха возможно для кого-то может быть самоцелью, для меня всегда это разумный компромисс между задачей и уровнем погружения.
Задача, с которой началось обсуждение - замеры времени выполнения программы, ее части и погрешностей таких измерений.
Только, что провел тест на стандартной Win7 (не отключал ресурсные сервисы типа анивиря и пр., не маскировал прерывания, не переводил в реал-тайм и тд)
Тестовое время работы приложения 60 сек.
Из них:
ISR max = 42 мкс, всего 0.036% (DirectX)
DPC max = 483 мкс, всего 0.11 % (Nvidia driver)
HPF (hard page faults) = 0.08% (AVP подгадил)
Итого: 0.23%

По процессорам время на прерывания:
CPU0 = 0.345 ms
CPU1 = 0.013 ms
CPU2 = 0.013 ms
CPU3 = 0.018 ms
Итого: 0.65%

Вывод:
Ничего особо не предпринимая в части снижения затрат на системные вызовы (административно или программно),
мы получили погрешность 0.65% замера времени исполнения (60 сек) нашей программы.
Много это или мало - каждый решает за себя.
Если много - сначала идут административные действия, затем программные.
Из программных - подсчет статистики по системным вызовам, повышения статуса, маскирование доступных для этого прерываний.
И, есс-но, неоднократный запуск тестируемого ПО для набора стат. значимых результатов.

Автор: Эдди Apr 9 2017, 07:02

Цитата(Myron @ Apr 8 2017, 21:32) *
Да все в жизни начинается с игр. Дальше развитие к спутникам, станкам, связи и т.д.

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

Автор: yanvasiij Apr 18 2017, 16:20

Цитата(Gruffly @ Apr 8 2017, 19:55) *
...
Список специальных релизов реал-тайм Windows достаточно большой:

Windows 7 Professional for Embedded Systems and Windows 7 Ultimate for Embedded Systems
...


Разрешите и мне глупый вопрос, уж больно интересна тема. Были упомянуты инструменты и ОСи для реал-тайм и эмбед. Какие времена циклов может обеспечить Windows Embedded? И вообще насколько это актуально применение Windows Embedded в задачах с жесткими требования ко времени, например в автоматизации (есть примеры применения?)? Может ли она конкурировать, например, с QNX по совокупности факторов (цена, легкость в освоении, время на разработку, надежность и пр.)? Как там с портированием на самодельные аппаратные платформы?

Автор: Gruffly Apr 18 2017, 18:34

Цитата(yanvasiij @ Apr 18 2017, 16:20) *
Как там с портированием на самодельные аппаратные платформы?

На Arduino? sm.gif

Автор: Myron Apr 18 2017, 18:51

Цитата(Myron @ Apr 8 2017, 12:32) *
Да все в жизни начинается с игр. Дальше развитие к спутникам, станкам, связи, мечтам и т.д.

Цитата(Эдди @ Apr 9 2017, 01:02) *
Вот только там уже не до игр. Это как с ардуиной: детям очень удобно начинать знакомиться с робототехникой с абдурины. Важно лишь, чтобы они не застряли на этом уровне.
Для детей это никак не работа. Потом с появлением заинтересованности, успехов и мотивации это может перерасти в любимую работу. Но не всегда.

Автор: Эдди Apr 18 2017, 20:39

Цитата(Myron @ Apr 18 2017, 21:51) *
Для детей это никак не работа.

А при чем здесь работа? Я вообще не понимаю, как можно ходить на работу, как на каторгу! Работа должна приносить удовольствие. Самым идеальным вариантом является работа==хобби.

Автор: Myron Apr 18 2017, 22:15

Цитата(Эдди @ Apr 18 2017, 14:39) *
А при чем здесь работа? Я вообще не понимаю, как можно ходить на работу, как на каторгу! Работа должна приносить удовольствие. Самым идеальным вариантом является работа==хобби.
Я это и имел ввиду, когда возражал - см. выше ваши заметки.

Автор: V_G Apr 18 2017, 23:33

Цитата(yanvasiij @ Apr 19 2017, 02:20) *
Были упомянуты инструменты и ОСи для реал-тайм и эмбед. Какие времена циклов может обеспечить Windows Embedded?

Смотря в какие приборы эмбедируют. У нас автоматы поверхностного монтажа работают под управлением Винды XP. У меня векторный анализатор Rohde&Schwarz работает под виндой 7. Все вполне себе риалтайм.

Автор: Эдди Apr 19 2017, 05:06

Цитата(Myron @ Apr 19 2017, 01:15) *
Я это и имел ввиду, когда возражал - см. выше ваши заметки.

Вот поэтому мастдайка и работа — несовместимые вещи. Мне вот понадобилось чертеж сделать в 3D, пришлось запускать эмулятор, а в нем "компас-3D". И хоть мастдайка в данном случае свою непосредственную роль выполняет — роль пускалки игрушек, а не операционной системы, все равно как-то коробит...
А еще мне нравится в коде ковыряться. Мне вот говорят: "пиши на пхытоне", на что я отвечаю, что роднее С ничего себе представить не могу. И, в отличие от пхытона, С значительно меньше косяков может вызывать при переходе, скажем, на новую версию gcc. Хотя, некоторые проблемы и возникают: скажем, свежий gcc матюкается на код, который раньше считался корректным — и приходится добавлять -Wno-trampolines и подобные флаги, чтобы оставить -Wall -Wextra…

Автор: yanvasiij Apr 19 2017, 06:25

Цитата(V_G @ Apr 19 2017, 04:33) *
Смотря в какие приборы эмбедируют. У нас автоматы поверхностного монтажа работают под управлением Винды XP. У меня векторный анализатор Rohde&Schwarz работает под виндой 7. Все вполне себе риалтайм.


Ну речь идет о промышленном контроллере специального назначения, одно из требований время реакции изменение дискретного входа 20 мс (проц либо x86, либо ARM пока точно не определились какой). Мы так-то намерены использовать QNX. Я увидел эти рассуждения о винде и мне стало интересно, чисто гипотетически, насколько эти применимо.

Автор: Gruffly Apr 19 2017, 15:05

Цитата(yanvasiij @ Apr 19 2017, 07:25) *
Ну речь идет о промышленном контроллере специального назначения

Попросите Microsoft - напишут для вас за ваши деньги нужную реализацию Windows.

Автор: Amurak May 2 2017, 04:15

Цитата(Эдди @ Apr 19 2017, 08:06) *
Мне вот говорят: "пиши на пхытоне", на что я отвечаю, что роднее С ничего себе представить не могу.

Звучит как:
- Пользуйся линейкой.
- Нет, я предпочитаю пассатижи.

Автор: Mikle Klinkovsky May 2 2017, 21:54

Цитата
Мне вот говорят: "пиши на пхытоне", на что я отвечаю, что роднее С ничего себе представить не могу.

Цитата(Amurak @ May 2 2017, 07:15) *
Звучит как:
- Пользуйся линейкой.
- Нет, я предпочитаю пассатижи.

Нет, звучит как:
- Пользуйся логарифмической линейкой.
- Нет, я предпочитаю микрокалькулятор с обратной польской записью.

Автор: haker_fox May 3 2017, 00:41

QUOTE (Эдди @ Mar 28 2017, 12:58) *
я лишь критикую всякую дрянь: мастдайку, systemd'изированные дистры линукса, наркоманские ЯП и т.п.

Зачем вам это надо? Не вы создали эту дрянь, не вы несёте за неё ответственность. И вообще, в одном фильме звучала прекрасная фраза: "Хорошим г****ом можно поле удобрить". Т.е. то, что для вас дрянь, для других - полезная вещь.

QUOTE (V_G @ Apr 19 2017, 07:33) *
Смотря в какие приборы эмбедируют. У нас автоматы поверхностного монтажа работают под управлением Винды XP. У меня векторный анализатор Rohde&Schwarz работает под виндой 7. Все вполне себе риалтайм.

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


================

Помню в своё время удивлялся, что современные немецкие станки (фрезерные, токарные) на панеле оператора загружают вполне себе обычную XP или 7. Как так, а вдруг зависнит, и шпиндель стоимостью несколько тысяч зелёных, да ещё и с недешёвой фрезой со всей дури въедут в заготовку. Ну и дураки эти немцы crying.gif Это потом, я уже узнал, что приводами, датчиками, и вообще всей железякой в прямом смысле управляют отдельные блоки. А винда - лишь визуализатор. Если и завснет, то ничего страшного не произойдёт. Но в том-то и дела, что не помню ни одного случая её зависания или сбоя.

Вообще наезды на винду, начиная с XP считаю сильно преувеличинными. И нередко необоснованными. Да не реалтайм. Да притормаживает. Но её сфера не атомными реакторами управлять напрямую. И это не 98, которая действительно вылетала, причём так, что без перезагрузки не обойтись. Хотя, вполне возможно, у кого-то она работала устойчиво и стабильно.

================

Также вообще не понимаю смысла ругать винду или питон, или Си++. Ну не нравится, не жуй. Этой руганью лишь показываешь своё неуважение во-первых к себе, затем - к пользователям и создателям. Таким поведением, люди, на мой взгляд, лишь демонстрируют свой не очень широкий кругозор, не очень глубокие аналитические способности, которые не позволяют им хоть на мгновение задуматься, что если это есть, то значит для чего-то нужно. Хотя возможна и другая сторона. В психологии известно, что иногда рьяно ругают то, что в где-то в глубине души любят. Но так сложилось, что у некогда любящего сложилась неприязнь к объекту любви (я пока о питоне, винде и си++)))) в силу неудачи освоить, или социум давил, и порицал объект любви. Я сам был таким в отношении винды лет 15 назад. Остаюсь таковыми и по сей день в отношении некоторых вещей, но я работаю с этим и понимаю, что ничего лишнего или дурного в этом мире нет.

Автор: V_G May 3 2017, 05:55

Цитата(haker_fox @ May 3 2017, 10:41) *
Уверен, что в этих приборах реал-таймовские вещи крутятся на отдельных микроконтроллерах с отдельными осями, впрочем это давно всем известная истина.

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

Автор: haker_fox May 3 2017, 07:34

QUOTE (V_G @ May 3 2017, 13:55) *
Все верно, в свое время хотел сделать диссер на тему распределения интеллекта в сложных системах управления. Каждый датчик и исполнительное устройство должны иметь собственный контроллер, чтобы в итоге получилось по Суворову: "всяк солдат знай свой маневр". При этом в первичных контроллерах не нужны особые оси.

На мой взгляд это вполне оправдано.
QUOTE (V_G @ May 3 2017, 13:55) *
Хотя сейчас модно и светодиодом мигать под осью.

Не обязательно следовать моде, моду можно и самому создавать, чтобы за ней следовали другие)

Автор: Эдди May 3 2017, 07:39

Хорошо железяки программировать — никаких GUI нафиг не надо. А вот возникла у меня хотелка сделать нормальную смотрелку FITS файлов (потому что не нравится мне ограниченный функционал ds9). Я уже когда-то сделал простую смотрелку с добавочным функционалом http://electronix.ru/redirect.php?https://github.com/eddyem/fitsview-hartmann. Но GTK2 нонче не в моде — его сменяет GTK3, и тут все плачевно: уж больно убог подход glib к попытке сделать ООП на С. А даже если я решусь вдруг морду на C++ написать, то и здесь выбор GUI-библиотек невелик. Qt — страх лютый! wxvidgets? Ну, даже не знаю.

В области программирования железа такую проблему сложно представить. Скажем, с теми же STM32: не нравится SPL — попробуй HAL. Не нравится HAL — пиши на гольном CMSIS. Не нужно тратить так много времени на элементарные вещи, как в разработке программ с GUI для ПК.

Автор: haker_fox May 3 2017, 10:40

QUOTE (Эдди @ May 3 2017, 15:39) *
В области программирования железа такую проблему сложно представить. Скажем, с теми же STM32: не нравится SPL — попробуй HAL. Не нравится HAL — пиши на гольном CMSIS. Не нужно тратить так много времени на элементарные вещи, как в разработке прогр
амм с GUI для ПК.

Эдди, ну вы прям как дитя, нет мира кроме вашего rolleyes.gif rolleyes.gif rolleyes.gif
А вы эти самые железки пробывали программить? И как? Работало "из каропки?" SPL, HAL, CMSIS? Я вот в них регулярно находил ошибки, элементарные, правил. Иногда не элементарные, а просто отсутсвующие куски кода. Систему драйверов я пишу в виде наследованных классов на ненависном вам Си++.
Но даже, положим, что всё работает. Кроме дров и хала ничего писать не надо? Алогоритмы? Обработку данны? Управление механизмами?

QUOTE (Эдди @ May 3 2017, 15:39) *
Хорошо железяки программировать — никаких GUI нафиг не надо.

Снова мир, полный фантазий.
QUOTE (Эдди @ May 3 2017, 15:39) *
А даже если я решусь вдруг морду на C++ написать, то и здесь выбор GUI-библиотек невелик. Qt — страх лютый! wxvidgets? Ну, даже не знаю.

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


Автор: Эдди May 3 2017, 13:32

Цитата(haker_fox @ May 3 2017, 13:40) *
А вы эти самые железки пробывали программить? И как? Работало "из каропки?" SPL, HAL, CMSIS?

Пробовал, конечно. В основном STM32 и STM8. Когда-то давно пробовал пики. На гитхабе у меня есть все.
Перешел на голый CMSIS. Раньше opencm3 использовал.
Цитата
Но даже, положим, что всё работает. Кроме дров и хала ничего писать не надо? Алогоритмы? Обработку данны? Управление механизмами?

Это — самое простое обычно. Низкоуровневое программирование больше проблем вызывает. Я пару лет назад целую неделю убил, пока с 1-wire смог работать на STM32 (DMA + таймер). На STM8 DMA отсутствует, там я на прерываниях делал.

И насчет ненадобности GUI для железяк — никакие это не фантазии! У меня уже куча кода для разных железяк есть (см. гитхаб), все работает через командную строку. Нафиг мне GUI, чтобы, скажем, турель в нужную позицию поставить, картинку с ПЗС-камеры забрать или еще чего-нибудь элементарное сделать?
Если нужно визуализировать, я предпочитаю веб-морды. Все равно поставить и настроить в минимальной конфигурации Nginx или apache — дело совершенно плевое. Они у меня даже на нетбуке (eeepc700) есть!

P.S. Я догадываюсь, почему многим здесь для управления элементарной железкой GUI требуется — они bash не осилили!

Автор: Amurak May 3 2017, 14:52

Цитата(Эдди @ May 3 2017, 16:32) *
Нафиг мне GUI, чтобы, скажем, турель в нужную позицию поставить, картинку с ПЗС-камеры забрать или еще чего-нибудь элементарное сделать?

А если нужно сделать что-то неэлементарное? Или, не дай бог, сделать что-то не для себя, а для кого-то другого, кто bash не осилил?

Автор: TSlicer May 3 2017, 16:04

Цитата(Amurak @ May 3 2017, 14:52) *
А если нужно сделать что-то неэлементарное? Или, не дай бог, сделать что-то не для себя, а для кого-то другого, кто bash не осилил?

Все юзеры обязаны знать назубок bash и grep, иначе к полетам не допускаются.

Автор: Эдди May 3 2017, 16:22

Цитата(Amurak @ May 3 2017, 17:52) *
А если нужно сделать что-то неэлементарное? Или, не дай бог, сделать что-то не для себя, а для кого-то другого, кто bash не осилил?

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

Автор: Amurak May 3 2017, 18:26

Цитата(Эдди @ May 3 2017, 19:22) *
Неэлементарное можно тоже на С написать и попросить знающего питон прилепить к этому морду.
Но обычно веб-морды за глаза хватает.
А неосиляторам баша нефиг за комп садиться!

Это такой толстый троллинг?

Автор: haker_fox May 4 2017, 00:58

QUOTE (Amurak @ May 4 2017, 02:26) *
Это такой толстый троллинг?

Да, и причём это у Эдди уже давно. Тут несколько месяцев назад он откровенными грязными словами поливал виндовс, Си++ и т.п. Его отправили на некоторое время в рид-онли. Сейчас он стал чуть мягче, но отнюдь не изменил свою точку зрения. Да и Бог с ним, уже лучше пусть человек имеет свою точку зрения. Но когда человек имея свою точку зрения так или иначе навязывает её, всё что выходит за эту точку зрения не признаёт или ругает, причём ругает грязно, это на мой взгляд именно "точка" зрения.

Автор: b32b Jun 18 2017, 09:57

Цитата(Myron @ Mar 23 2017, 03:04) *
.
Тогда надо бросать. Уровень вхождения в современную электронику довольно высок и без соответствующей мотивации ничего не выйдет, пустая трата времени. Даже радиолюбительство не потянуть. Ну если не считать мигание светодиодами на купленной плате с ардуино.

Что вы. Уровня как такового, не существует, но тем не менее, есть базовая "платформа" от которой и можно "танцевать", без неё, и правда никуда. А это было всегда. К счастью, не все люди одинаковы, и социум легко охватывает, то что не под силу отдельному человеку. Так, что топикстартеру надо попробовать что-то ещё, а не зацикливаться.
Зависать, подобно компу, не обязательно.


Автор: Myron Jun 18 2017, 13:25

Цитата(b32b @ Jun 18 2017, 03:57) *
Что вы. Уровня как такового, не существует, но тем не менее, есть базовая "платформа" от которой и можно "танцевать", без неё, и правда никуда. А это было всегда. К счастью, не все люди одинаковы, и социум легко охватывает, то что не под силу отдельному человеку. Так, что топикстартеру надо попробовать что-то ещё, а не зацикливаться.
Зависать, подобно компу, не обязательно.
Под уровнем вхождения в любую специальность понимается набор знаний и навыков достаточный, чтобы быть востребованным на рынке труда с удовлетворяющей конкретный индивидуум зарплатой. Социумы в качестве работников на работу пока не принимают и зарплату не платят. Это как бы объективная оценка. Субъективная самооценка может быть, конечно, любой. Уровень вхождения туда нулевой.

Автор: Fujitser Jun 19 2017, 03:24

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

Автор: Mikhail B. Nov 9 2017, 15:40

Цитата(V_G @ Mar 23 2017, 03:49) *
Чтение умных книжек (в отрыве от практики) не должно быть самоцелью. Надо заняться каким-то конкретным проектом, и в ходе проектирования и отладки находить ответы в умных книжках. При решении возникших проблем от чтения совершенно не клонит в сон.


Как заняться новым конкретным проектом, не начитавшись умных книжек? Дилемма какая-то прям - не удастся выполнить проект без чтения книг, но и занимаясь только чтением книг без практики проект не выполнить. С чего же лучше начать новичку? rolleyes.gif

Автор: Kabdim Nov 9 2017, 15:45

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

Автор: Фрол Кузьмич Nov 13 2017, 06:11

Цитата(xinortcele @ Mar 23 2017, 04:05) *
Да и хочется сразу знать ответы на все вопросы biggrin.gif

Это только к попам в церковь, только там все ответы на все вопросы сразу.

Автор: Mikhail B. Nov 17 2017, 19:48

Цитата(Kabdim @ Nov 9 2017, 18:45) *
Прочитать одну не самую толстую книжку, выполнить не самый толстый петпроджект. Оценить сделанное и понять куда надо/хочется двигаться.


Правильно. Те самые не самые толстые книжки дают в хорошем университете. И обычно тогда уже всё становится понятно. В худшем случае сам ищешь, а их не много в узкой специфике. Делать проекты надо уже сидя на рабочем месте, иначе толку нет. А когда опыта нет, на работу не берут прожекты делать. Вот и сидишь без работы с хорошими знаниями.
Как быть, с чего начать??? Бросать электронику, начинать писать сайты, например? Так не хочу бросать, люблю её, стерву sm.gif
Поделитесь опытом как начинать работу после получения образования, если не секрет.

Автор: iosifk Nov 17 2017, 20:37

Цитата(Mikhail B. @ Nov 17 2017, 22:48) *
Как быть, с чего начать??? Бросать электронику, начинать писать сайты, например? Так не хочу бросать, люблю её, стерву sm.gif
Поделитесь опытом как начинать работу после получения образования, если не секрет.

На мой взгляд есть некоторое отличие "инженерных" знаний от "академических"...
Все дело в том, что академики сами по себе не инженеры. Да, они знают формулы, пишут учебники и т.д. НО! Это учебники по академическим знаниям. А в реале нужно начинать совсем с другого.
Ну вот простейший пример. Как не рассказать студентам о диаграммах Карно? А кому это сейчас нужно, если все это делает компилятор?
А вот что на самом деле нужно - это умение начать проект, выбрать оптимальную архитектуру проекта и только потом браться писать файлы исходников.
Или вот так...
В советские времена все книги по силовым транзисторным преобразователям были изданы на основе чьих-то кандидатских, докторских и пр... Введут на 10 странице какой-то коэффициент, и так он по всей книге "путешествует". И начать книгу с нужного раздела не удается, можно только с начала...
И вот попала мне тогда переводная книга "нелинейное применение линейных ИС". Про логарифматоры, умножители. А там совершенно другой подход. Чисто инженерный. Книга - состоит из 3 частей. Первая - это просто "аппликухи". Т.е. надо генеротор синуса-косинуса. Вот, бери работающую схему. Вторая часть - это как расчитать эти схемы. А третья - которая занимает больше половины книги - это погрешности схем, расчет их и компенсация.
Т.е. сначала выбираешь то, что нужно и тратишь столько сил, сколько нужно. Потому как книга - для инженеров.
То же самое и со всем остальным. Нужно не только "знать", но и уметь применить то, что нужно...
Кто хочет подробнее, могу словами по скайпу...

Автор: one_eight_seven Nov 17 2017, 21:21

Цитата
Вот и сидишь без работы с хорошими знаниями.

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

Автор: Myron Nov 17 2017, 22:16

Цитата(Mikhail B. @ Nov 17 2017, 13:48) *
Правильно. Те самые не самые толстые книжки дают в хорошем университете. И обычно тогда уже всё становится понятно. В худшем случае сам ищешь, а их не много в узкой специфике. Делать проекты надо уже сидя на рабочем месте, иначе толку нет. А когда опыта нет, на работу не берут прожекты делать. Вот и сидишь без работы с хорошими знаниями.
Как быть, с чего начать??? Бросать электронику, начинать писать сайты, например? Так не хочу бросать, люблю её, стерву sm.gif
Поделитесь опытом как начинать работу после получения образования, если не секрет.
У меня был подобный кризис в мои очень давние 23-25. С ума сходил по электронике, а найти работу подходящую не мог - сидел в крупной конторе, писал буиаги. Тогда придумал себе занятие - собрать уникальный аудио центр, превосходящий все что было доступно. Разработал дома структуру, написал ТЗ, стал знакомиться с передовыми принципами... - книги, статьи, журналы, библиотеки, и пр. (интернета тогда не было), стал собирать узлы, доставать оборудование (на время и на совсем) - по 24 часа без выходных, праздников и вечеров и пошло и поехало. И все дома. Причем на уровне рассыпухи, а не готовых модулей. (Это важно все сделать своими руками, что переварилось в голове). Привлек еще 2-х таких же бедолаг. Кончилось тем, что мы сделали, что хотели - слушали и пъянствовали со слезами от восторга, получили 3 авторских, и куча людей хотела влиться. Дальше произошел прорыв. Об этом в другой раз. Мне тот опыт до сих пор помогает концептуально. Хотя с аудио больше не работал. Итак - мотивация, но конструктивная. Надо поставить цель, но на грани возможного для вас и данного времени. И вперед без сомнений и колебаний. Сейчас возможностей и направлений неизмеримо больше. Но это все возможно только при беззаветной любви к электронике.

Автор: haker_fox Nov 18 2017, 02:33

QUOTE (Myron @ Nov 18 2017, 06:16) *
Об этом в другой раз.

Расскажите rolleyes.gif Ваши рассказы очень вдохновляют!!!!!!

Автор: Myron Nov 18 2017, 03:24

Цитата(haker_fox @ Nov 17 2017, 20:33) *
Расскажите rolleyes.gif Ваши рассказы очень вдохновляют!!!!!!
В меру своей глупости принимаю ваш запрос всерьез и вот пишу. Привык, к сожалению, что в союзе/России если хвалят, то это со скрытой издевкой, а если ругают, то завидуют.
К сожалению, все что пишу выходит инструкцией по настройке. Вот и опять, и только для отчаянных и посвященных.
Если отчаянной страсти к электронике нет, надо менять сферу/профессию, так как ничего не получится. А в конце жизни будет больно. Решение это тяжелое, но и предлагаемый путь очень тяжел. Но результат - !!!

Автор: Студент заборстроительного Nov 18 2017, 08:16

Цитата(Myron @ Nov 18 2017, 06:24) *
Если отчаянной страсти к электронике нет, надо менять сферу/профессию, так как ничего не получится. А в конце жизни будет больно.

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

Быть классным электронщиком и при этом остаться "нормальным человеком" невозможно.
Тут только психи, шизнутые на электронике, выживают

Автор: Kabdim Nov 18 2017, 10:40

Цитата(Mikhail B. @ Nov 17 2017, 22:48) *
Делать проекты надо уже сидя на рабочем месте, иначе толку нет. А когда опыта нет, на работу не берут прожекты делать. Вот и сидишь без работы с хорошими знаниями.
Как быть, с чего начать??? Бросать электронику, начинать писать сайты, например? Так не хочу бросать, люблю её, стерву sm.gif
Поделитесь опытом как начинать работу после получения образования, если не секрет.

- Для того что бы приготовить пирог нужено смешать молоко, муку и сахар...
- Не хочу муку и вообще смешивать надо уже работая шеф-поваром!

Реальность такая. Заламывать руки - не помогает. До некоторой границы знаний и умений желающий трудится по какой-то специальности учится за свой счёт. Работодателю в принципе пофиг, сразу человек угадал и пошел бесплатно в нужный ВУЗ или сделал себя домашними разработками. Но совершенно точно инженерно-ясельную группу ни один работодатель добровольно содержать не будет. Единственное исключение - для молодых и афигеть как перспективных.

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

Автор: Myron Nov 18 2017, 14:25

Цитата(Kabdim @ Nov 18 2017, 04:40) *
Работодателю в принципе пофиг, сразу человек угадал и пошел бесплатно в нужный ВУЗ или сделал себя домашними разработками.
Не встречал толковых инженеров (не путай с менеджерами), кто сделал себя только дом. разработками. Только черепановых с их паровозами на дровах (в наши века) и самомнением - мол, "я современный Билл Гейц, академик Зельдович и пр".
Цитата(Kabdim @ Nov 18 2017, 04:40) *
Но совершенно точно инженерно-ясельную группу ни один работодатель добровольно содержать не будет. Единственное исключение - для молодых и афигеть как перспективных.
Единственное исключение - по блату.
Цитата(Kabdim @ Nov 18 2017, 04:40) *
Вывод простой можно жаловаться на форуме или засучив рукава начинать трудиться, не ожидая гонорара за красивые глаза. Альтернатива с деньгами - аутсорс, но там всё равно будут копейки и задачи будут вероятно не в ту сторону в которую тянет. Еще альтернатива - ремонтники, но прям скажем это дорога слишком напоминает тупик.
+1. Ремонтники - на несколько лет. Вспомните обслугу больших ЭВМ - где она? Не говоря уже о телемастерах - хорошо и массово зарабатывавших в 70-х.

Автор: thermit Nov 18 2017, 17:22

Цитата(iosifk @ Nov 17 2017, 23:37) *
На мой взгляд есть некоторое отличие "инженерных" знаний от "академических"...
Все дело в том, что академики сами по себе не инженеры. Да, они знают формулы, пишут учебники и т.д. НО! Это учебники по академическим знаниям. А в реале нужно начинать совсем с другого.
Ну вот простейший пример. Как не рассказать студентам о диаграммах Карно? А кому это сейчас нужно, если все это делает компилятор?
А вот что на самом деле нужно - это умение начать проект, выбрать оптимальную архитектуру проекта и только потом браться писать файлы исходников.
Или вот так...
В советские времена все книги по силовым транзисторным преобразователям были изданы на основе чьих-то кандидатских, докторских и пр... Введут на 10 странице какой-то коэффициент, и так он по всей книге "путешествует". И начать книгу с нужного раздела не удается, можно только с начала...
И вот попала мне тогда переводная книга "нелинейное применение линейных ИС". Про логарифматоры, умножители. А там совершенно другой подход. Чисто инженерный. Книга - состоит из 3 частей. Первая - это просто "аппликухи". Т.е. надо генеротор синуса-косинуса. Вот, бери работающую схему. Вторая часть - это как расчитать эти схемы. А третья - которая занимает больше половины книги - это погрешности схем, расчет их и компенсация.
Т.е. сначала выбираешь то, что нужно и тратишь столько сил, сколько нужно. Потому как книга - для инженеров.
То же самое и со всем остальным. Нужно не только "знать", но и уметь применить то, что нужно...
Кто хочет подробнее, могу словами по скайпу...



У нормального инженера академические знания вполне гармонично являются основой инженерных знаний. Иначе получаем инженеров-программистов, инженеров-электрон(щ)иков и прочих инженеров-кукольникоков, которые вообще не инженеры, а просто ремесленники, владеющие вижуалстудией или осциллографом-паяльником в качестве инструмента. Ведь инженер, это человек, который может выбрать способ решения задачи, обосновать его и вообще говоря, решить задачу выбранным способом. А какой это будет способ - программирование или пайка в кучу гт-308х или применение супермикросхемы с 1м регистров... Не принципиально. Не?

Автор: Студент заборстроительного Nov 18 2017, 19:24

thermit
Коллега!
Тут не всё так просто, как кажется с первого взгляда.
Встречал я инженеров, у которых "академические знания вполне гармонично являются основой инженерных знаний" но которые были не способны освоить не только вижуалстудию или mentor график, но даже ворд и эксцель для них были всегда как "темный лес".
Так что нужен некий баланс знание теории и практических навыков.

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

Автор: Mikhail B. Nov 18 2017, 19:50

Цитата(one_eight_seven @ Nov 18 2017, 00:21) *
Самое интересное - правильно говорит, что надо сделать, а даёшь лист бумаги и говоришь: "Сделай", - не может.


Ну вот о таком случае и говорю как раз. Человек знает, но из-за отсутствия практики реально не делает. НО знания то у него хорошие. Что сказать, печально.
Не утверждаю что у меня хорошие знания, ни в коем случае. Как раз наоборот, мои знания очень малы (мягко говоря), и чем больше изучаешь какую-то область науки, тем больше это осознаёшь. Вот тут появляется интерес! Стимул изучать дальше! Развиваться!
"Человек с хорошими знаниями" я имею в виду со знаниями, достаточными для приёма на работу на предприятие N, занимающимся электроникой в области М. Ну и последующей работы в этой области деятельности, разумеется.
В общем, это уже не конструктивно для меня. Надо взбивать сметану, как та мышка в ведёрке с молоком из детской сказки. В этом весь секрет. Или иметь связи Больше обсуждать нечего, у меня конкретных вопросов и предложений нет по этой теме, да и быть не может laughing.gif Выше правильно сказали - инженер должен решать задачу. Всё.

P.S. спасибо всем, кто поделился своим опытом, рассказали примеры. Это то, что мне было нужно в данный момент

Автор: Огурцов Nov 18 2017, 19:51

Цитата(thermit @ Nov 18 2017, 18:22) *
Ведь инженер, это человек, который может выбрать способ решения задачи, обосновать его и вообще говоря, решить задачу выбранным способом. А какой это будет способ - программирование или пайка в кучу гт-308х или применение супермикросхемы с 1м регистров...

а это называется инженер-системотехник

Автор: thermit Nov 18 2017, 20:34

Цитата(Студент заборстроительного @ Nov 18 2017, 22:24) *
thermit
Коллега!
Тут не всё так просто, как кажется с первого взгляда.
Встречал я инженеров, у которых "академические знания вполне гармонично являются основой инженерных знаний" но которые были не способны освоить не только вижуалстудию или mentor график, но даже ворд и эксцель для них были всегда как "темный лес".
Так что нужен некий баланс знание теории и практических навыков.

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


Я тоже разных инженеров встречал. И врачей тоже разных. И педагогов... Эт нормально. Есть хорошие, есть плохие. Диалектика.

зы
ворд и эксцель для меня - темный лес. Равно как футбол, хоккей, фотошоп и гитарпро. Это ни разу не характеризует меня, как инженера.

Автор: Myron Nov 18 2017, 20:35

Цитата(Mikhail B. @ Nov 18 2017, 13:50) *
Выше правильно сказали - инженер должен решать задачу. Всё.
Добавлю, если он хочет всю жизнь оставаться просто инженером. Все.
При соответствующей же мотивации инженер может научиться ставить инженерные задачи (на это уходит еще 10 тыс. часов) и расти от старшего инженера до главного конструктора (кто какие цели ставит).

Автор: Студент заборстроительного Nov 18 2017, 20:53

Цитата(thermit @ Nov 18 2017, 23:34) *
зы
ворд и эксцель для меня - темный лес. Равно как футбол, хоккей, фотошоп и гитарпро. Это ни разу не характеризует меня, как инженера.

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

Цитата(thermit @ Nov 18 2017, 23:34) *
ворд и эксцель для меня - темный лес.

Вы лукавите?
Вы не способны быстро набить текст в ворде и нужным образом его отформатировать?
Или что-то посчитать в экцеле и нарисовать это в виде графиков?
Я не верю.
Вы ведь шутите? cool.gif

Автор: Огурцов Nov 18 2017, 20:53

Цитата(thermit @ Nov 18 2017, 21:34) *
ворд и эксцель для меня - темный лес. Равно как футбол, хоккей, фотошоп и гитарпро. Это ни разу не характеризует меня, как инженера.

характеризует, талантливый человек - талантлив во всём

Автор: Студент заборстроительного Nov 18 2017, 21:00

Вообщем мой посыл. "Багаж знаний" (т.е. основательная теоретическая подготовка) конечно важен.
Но не менее важны (если не более) и практические навыки. Как то , к примеру, уметь работать в той же виджуалстудии или максплюс. И ещё в куче всяких разных инструментов, без которых не обходится не одна разработка.

Зачастую даже бывает так, что многообещающий проект оказывается запоротым только потому, что никто из инженеров, имеющих "хороший багаж знаний", не владеет в полной мере инструментарием разработчика (тем же максплюсом или ментор графиком). Т.е. теорию чел хорошо знает, а вот плату развести в менторе ну никак не выходит. Потому что ментор плохо знает. И сейчас "инструменты" стали такими сложными, что порой их освоить тяжелей, чем получить "багаж теоретических знаний".

Поэтому я бы с осторожностью говорил, что главное это "академические знания", а инструмент - дело десятое

Никому не нужен плотник, который ТЕОРЕТИЧЕСКИ умеет пользоваться молотком

Автор: iosifk Nov 18 2017, 21:04

Цитата(thermit @ Nov 18 2017, 23:34) *
зы
ворд и эксцель для меня - темный лес. Равно как футбол, хоккей, фотошоп и гитарпро. Это ни разу не характеризует меня, как инженера.

Ну это только Ваша точка зрения.
А в жизни у меня было так. Устоился на работу в инофирму. И вот хозяин подошел и посмотрел как я работаю. Выделяю мышкой текст, потом по правой кнопке вызываю меню, потом клацаю.... И т.д.
Хозяин посмотрел и сказал, что если я не буду использовать сочетания клавиш Ctrl+A Ctrl+C Ctrl+V ну и так далее, то он меня уволит сегодня же... Потому что это быстрее и удобнее...
А уж про то, что "темный лес" - это вообще смешно. Инженеру надо учиться всю жизнь, причем в одной книжке было написано, что не просто объем знаний должен увеличиваться, но первая производная от объема не должна уменьшаться.
Я когда провожу индивидуальные занятия по ПЛИС, то задаю вопрос: "с какой целью Вы ходите на работу"?
Если ответ - "зарабатывать деньги", то выучить не долго. Потому что иначе не получится результат. А если как здесь сказано - " темный лес", то это только "игрун", который на работу ходит ради курилки...

Автор: thermit Nov 18 2017, 21:13

Цитата(Студент заборстроительного @ Nov 18 2017, 23:53) *
Вы лукавите?
Вы не способны быстро набить текст в ворде и нужным образом его отформатировать?
Или что-то посчитать в экцеле и нарисовать это в виде графиков?
Я не верю.
Вы ведь шутите? cool.gif


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

Автор: Студент заборстроительного Nov 18 2017, 21:18

Цитата(iosifk @ Nov 19 2017, 00:04) *
Я когда провожу индивидуальные занятия по ПЛИС, то задаю вопрос: "с какой целью Вы ходите на работу"?
Если ответ - "зарабатывать деньги", то выучить не долго. Потому что иначе не получится результат. А если как здесь сказано - " темный лес", то это только "игрун", который на работу ходит ради курилки...

Тут не все так однозначно.
Я сталкивался с тем, что те, кто говорил "я пришёл зарабатывать деньги", потом вели себя так, когда ему начинаешь что-то объяснять "да плевать мне на всякие резисторы/транзисторы и прочую хрень. Я деньги пришел зарабатывать. Вы мне скажите, что нужно нарисовать, начертить, написать"

Т.е. он хочет чтобы ему сразу давали сложные ответственные "денежные" проекты при том, что он даже САМОЙ ЭЛЕМЕНТАРЩИНОЙ не владеет.
Естественно никто ему такие проекты не дает. Начальство у нас ещё вменяемое. И жить хочет.
Так как ясно что проект будет запорот. Человек резистор от транзистора не отличает, а хочет "зарабатывать деньги", при этом проскочив этап обучения и набирания опыта.
Бред же

Цитата(thermit @ Nov 19 2017, 00:13) *
мне хватает других инструментов эквивалентной функциональности и я ни разу не испытывал потребности освоить ворд с экселем.

Не важно. Ворд илит аналог ворда. Освоили же.
А есть инженеры у которых как будто компьютерный кретинизм какой-то: ни одной программы ни одной САПР не могут освоить на должном уровне. Разве таких можно назвать инженерами?
Даже при наличии "академической подготовки"?

Автор: thermit Nov 18 2017, 21:33

Цитата(iosifk @ Nov 19 2017, 00:04) *
Ну это только Ваша точка зрения.
А в жизни у меня было так. Устоился на работу в инофирму. И вот хозяин подошел и посмотрел как я работаю. Выделяю мышкой текст, потом по правой кнопке вызываю меню, потом клацаю.... И т.д.
Хозяин посмотрел и сказал, что если я не буду использовать сочетания клавиш Ctrl+A Ctrl+C Ctrl+V ну и так далее, то он меня уволит сегодня же... Потому что это быстрее и удобнее...
А уж про то, что "темный лес" - это вообще смешно. Инженеру надо учиться всю жизнь, причем в одной книжке было написано, что не просто объем знаний должен увеличиваться, но первая производная от объема не должна уменьшаться.
Я когда провожу индивидуальные занятия по ПЛИС, то задаю вопрос: "с какой целью Вы ходите на работу"?
Если ответ - "зарабатывать деньги", то выучить не долго. Потому что иначе не получится результат. А если как здесь сказано - " темный лес", то это только "игрун", который на работу ходит ради курилки...


Инженеру нужно учиться всю жизнь. Не вопрос. Вопрос - чему? стрл-а - стрл-с - стрл-в? Если проблема научиться этому, то о дальнейшем обучении можно не париться. Уж лучше курилка. И для здоровья полезнее.



Цитата(Студент заборстроительного @ Nov 19 2017, 00:18) *
Тут не все так однозначно.
Я сталкивался с тем, что те, кто говорил "я пришёл зарабатывать деньги", потом вели себя так, когда ему начинаешь что-то объяснять "да плевать мне на всякие резисторы/транзисторы и прочую хрень. Я деньги пришел зарабатывать. Вы мне скажите, что нужно нарисовать, начертить, написать"

Т.е. он хочет чтобы ему сразу давали сложные ответственные "денежные" проекты при том, что он даже САМОЙ ЭЛЕМЕНТАРЩИНОЙ не владеет.
Естественно никто ему такие проекты не дает. Начальство у нас ещё вменяемое. И жить хочет.
Так как ясно что проект будет запорот. Человек резистор от транзистора не отличает, а хочет "зарабатывать деньги", при этом проскочив этап обучения и набирания опыта.
Бред же


Не важно. Ворд илит аналог ворда. Освоили же.
А есть инженеры у которых как будто компьютерный кретинизм какой-то: ни одной программы ни одной САПР не могут освоить на должном уровне. Разве таких можно назвать инженерами?
Даже при наличии "академической подготовки"?


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

Автор: Студент заборстроительного Nov 18 2017, 21:48

Цитата(thermit @ Nov 19 2017, 00:33) *
Понадобится - освою ворд. И гитарпро. И фотошоп, чотам... И практически никаких усилий от меня для этого не потребуется.

Дай Бог. Просто знаю людей, которые называли себя инженерами, но когда им потребовался ворд - они так и не смогли освоить как вставлять номера страниц и форматировать текст. Как не бились. Они говорили, что для них это всё слишком сложно
Их можно назвать инженерами?

Цитата(thermit @ Nov 19 2017, 00:33) *
К инженерной деятельности это какое отношение имеет? На мой мутный взгляд - никакого. Это примерно как уметь стирать белье стиральной машинкой или варить борщ газовой плитой или варить кофий модной кофеваркой.

Не совсем так. Это все равно что стирать бельё не руками, а с помощью стиральной машинки.
Или закручивать шурупы не руками и отверткой, а электрическим шуруповёртом.
Смысл работы тот же, а вот производительность труда разная.
А работодателю подавай производительность

Врядли ли у Вас вызовет доверие плотник, который придет к Вам сверлить дырки с ручной дрелью и будет закручивать саморезы руками, а не шуруповёртом.

Так и инженер, не знающий хотя бы пару-тройку САПР (ну хотя бы одну, но хорошо) и ворда/экселя вызывает недоумение у работодателя

Автор: thermit Nov 19 2017, 15:31

http://electronix.ru/redirect.php?https://postimages.org/

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)