Мой путь к программированию

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (7) « Первая ... 4 5 [6] 7   К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
Gexxo
17.06.2021 - 17:45
0
Статус: Offline


Ярила

Регистрация: 4.04.16
Сообщений: 3044
Цитата (Avaddon74 @ 17.06.2021 - 17:38)
Цитата (Gexxo @ 17.06.2021 - 19:30)
Ребята, словом программирование это уже никто не называет. У меня разработчики разрабатывают продукт, и написание кода и верстка, все в это понятие включено.

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

Ну да я писал про маленькие фирмы, только не надо равняться на то что там в трудовой написали некомпетентные в этом люди. На любых англоязычных ресурсах типа SO ты везде будешь видеть только developer, у нас этот термин тоже хорошо уже прижился и применяется практически везде кроме мест где весь цикл повешен на одного человека-оркестра. Если пишешь код или верстаешь называй себя гордо разработчиком, а на работе для починки чайников можно и дальше программистом немного побыть)
 
[^]
Gexxo
17.06.2021 - 17:48
0
Статус: Offline


Ярила

Регистрация: 4.04.16
Сообщений: 3044
Цитата (SashKaRat @ 17.06.2021 - 17:39)
Цитата (Gexxo @ 17.06.2021 - 17:34)
Цитата (SashKaRat @ 17.06.2021 - 17:28)
Цитата
ООП в С++ просто и прозрачно только до того момента как на сцену выходит множественное наследование, дальше начинается ад lol.gif


Соблюдайте технику безопасности. Она кровью написана.

Моя техника безопасности при работе с множественным наследованием - не использовать его, никогда, нигде)

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

Но так хочется иногда ...

Все проще, их спасло решение ребят из MS не тащить эту спорную фичу в C#)
 
[^]
Gexxo
17.06.2021 - 17:50
0
Статус: Offline


Ярила

Регистрация: 4.04.16
Сообщений: 3044
Цитата (Modigar @ 17.06.2021 - 17:39)
Цитата (Gexxo @ 17.06.2021 - 17:34)
Цитата (SashKaRat @ 17.06.2021 - 17:28)
Цитата
ООП в С++ просто и прозрачно только до того момента как на сцену выходит множественное наследование, дальше начинается ад lol.gif


Соблюдайте технику безопасности. Она кровью написана.

Моя техника безопасности при работе с множественным наследованием - не использовать его, никогда, нигде)

Никогда свою иерархию классов не приходилось реализовывать, да чтобы они были shared_from_this ?
А сама shared_from_this очень нужна и полезна при передаче в какой нибудь boost::asio, ибо последний совсем не следит за временем жизни объекта и может легко отложенно обратиться к уже удаленному.

Я давно уже предпочитаю композицию наследованию, а языки высокого уровня более подходят под мой спектр задач, так что да таким слава богу заниматься не приходилось.
 
[^]
Avaddon74
17.06.2021 - 18:32
2
Статус: Offline


Юморист

Регистрация: 4.08.14
Сообщений: 427
Цитата (gskm @ 17.06.2021 - 04:47)
Цитата
На тестовое задание выделили пару дней, но для меня оно не составило труда, и я выполнил его часов за пять.

Я хирею с современных собеседований, тестовое задание на 5 часов. Оплатили хоть время?

Пропустил коммент, но он мне понравился :)

Конечно оплатили, т.к. я отработал уже больше года, я с лихвой получил за свои скромные 5 часов потраченные на тестовое задание. И даже если бы меня не взяли, то для меня была не плохая практика, попробовать выполнить реальное задание на должность, которую я хотел получить. А опыт всегда дороже денег ;)

Так что не нужно все мерить только деньгами, не забывайте про знания, тем более, что часто мы готовы сами платить за них. И если честно, если бы меня не приняли, я бы в некоторые фирмы просился бы сам поработать, за "кусок хлеба", а может и бесплатно, т.к. знания, они всегда важнее денег, это инструмент, это инвестиция в мое будущее :)
 
[^]
Avaddon74
17.06.2021 - 18:41
0
Статус: Offline


Юморист

Регистрация: 4.08.14
Сообщений: 427
Цитата (Gexxo @ 17.06.2021 - 19:45)
Если пишешь код или верстаешь называй себя гордо разработчиком, а на работе для починки чайников можно и дальше программистом немного побыть)

А я не стесняюсь слова программист, это тот, кем я и являюсь. Придумываю ли я что-то новое?! Да!. Разрабатываю ли я что-то?! Да! Я и программист и разработчик, я не понимаю, что постыдного в наши дни в слове программист? То что им называют любого мало-мальски сведущего в компьютерах?! Да пусть называют :) Я когда работал сисадмином, меня тоже все программистом называли. Пусть хоть дворником называют :) Я давно уже перестал гнаться за понятиями и словами, важно не это, а кем ты себя считаешь. ИМХО
 
[^]
Voronezher
17.06.2021 - 19:25
0
Статус: Offline


Ярила

Регистрация: 4.02.13
Сообщений: 5297
Цитата (Avaddon74 @ 17.06.2021 - 16:58)
Цитата (Voronezher @ 17.06.2021 - 14:53)
ТС, я вот тоже программист со стажем...расскажи, будь добр, как ты написал нейросеть с нуля? smile.gif

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

Если про программную, то написал класс нейрона, написал другой класс объединяющий их в сеть с обучением, скачал базу MNIST и гонял сети пока не достиг приемлемых результатов, если мне память не изменяет, точность распознавания моей сетью была около 98,2 процента. Потом переписал код и приспособил к змейкам. Что ещё рассказать... даже и не знаю

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

Просто уже значительное время нейросети не пишут самостоятельно, городя классы нейронов - а берут одну из специализированых библиотек, собирают там сеть из готовых элементов, учитывая специфику задачи и скармливают на обучение той же библиотеке, которая, в силу того, что содержит внутри бешеный матан, в процессе обучения сама обходит многие подводные камни, о существовании которых, подозреваю, Вы не слышали - затухание градиента, ловушки локальных экстремумов и т.д.
 
[^]
Avaddon74
17.06.2021 - 19:56
0
Статус: Offline


Юморист

Регистрация: 4.08.14
Сообщений: 427
Цитата (Voronezher @ 17.06.2021 - 21:25)
Просто уже значительное время нейросети не пишут самостоятельно, городя классы нейронов - а берут одну из специализированых библиотек, собирают там сеть из готовых элементов, учитывая специфику задачи и скармливают на обучение той же библиотеке, которая, в силу того, что содержит внутри бешеный матан, в процессе обучения сама обходит многие подводные камни, о существовании которых, подозреваю, Вы не слышали - затухание градиента, ловушки локальных экстремумов и т.д.

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

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

Я очень много чего сам написал без использования сторонних библиотек, и считывание bmp файлов и классы больших чисел и классы вывода текста на расширенный opengl под шрифты TTF, причем чтение шрифтов сам так же писал, т.е. изучил структуру данных в файле, считал и реализовал в коде

P.S. Если интересно, могу часть кода выложить
По количеству нейронов в сети, некоторые сети имели около тысячи нейронов, в зависимости от настроек сети

Это сообщение отредактировал Avaddon74 - 17.06.2021 - 20:00
 
[^]
Voronezher
17.06.2021 - 20:18
2
Статус: Offline


Ярила

Регистрация: 4.02.13
Сообщений: 5297
Цитата
у меня настройки сети были разные, даже на каждую змейку, не только по количеству нейронов в слое, но и слоев было разное количество.

Цитата
По количеству нейронов в сети, некоторые сети имели около тысячи нейронов, в зависимости от настроек сети

А подробнее можно насчет кол-ва слоев и нейронов в них? Какие использовались функции активации? Оптимизаторы? Метрики обучения?
 
[^]
Selkup
17.06.2021 - 20:24
0
Статус: Offline


Балагур

Регистрация: 8.09.09
Сообщений: 939
Какая трогательная история, жалко что пиздеж.jpg. Были сомнения в начале текста, когда ТС путался в терминах, но после сына с 25-ю ЯП в совершенстве читать уже не смог. Да и в комментах "программисты" жгут. Вроде взрослый человек, а текст на уровне школьника "я крутой хакер-программист, вчера Пентагон взломал, написал суперпрогу на Си для своего сайта и за 10 минут мой сайт взломал их Пентагон". Ну а про нейросети совсем стыдоба, даже не хочу вступать в полемику, и так все ясно.

Размещено через приложение ЯПлакалъ
 
[^]
ToxaB
17.06.2021 - 20:29
0
Статус: Offline


Балагур

Регистрация: 18.07.16
Сообщений: 863
Сижу тут ЯП читаю и ютуб смотрю
а надо сайт программировать
(JScript+PHP)
P.S. старый программер 48 лет

Это сообщение отредактировал ToxaB - 17.06.2021 - 20:29
 
[^]
Avaddon74
17.06.2021 - 20:57
1
Статус: Offline


Юморист

Регистрация: 4.08.14
Сообщений: 427
Цитата (Voronezher @ 17.06.2021 - 22:18)
А подробнее можно насчет кол-ва слоев и нейронов в них? Какие использовались функции активации? Оптимизаторы? Метрики обучения?

Активация через сигмоиду, обучение через производную сигмоиды

По поводу настроек, я организовал так, что кол-во слоев и кол-во нейронов в них брал через рэндом, кроме конечно входов и выходов, чтоб контролировать. Но на входе так же был рандом, но не любое число. Например, змейка имела дальность обзора (я по дальности обзора рассчитывал кол-во входов) одну клетку, значит входов у сети было 5 нейронов вокруг головы + 1 доп клетка впереди, а выходов всегда три, при любом значении дальности, так как змейка могла повернуть только на три стороны, т.е. влево, вправо, и прямо.
Максимум ставил дальность обзора 11 (вроде) клеток, формула на вход простая:
Цитата
(DistView + 1) * (2 * DistView + 1)

Другие слои были чисто случайными и кол-во в них нейронов.

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

По поводу обучения уже написал:
Цитата
// Обратное распространение ошибки. Берем значение ошибки след.слоя и умножаем на веса этого
void backPropagation(Layer *l) {
for (size_t i = 0; i < neurons; i++) {
  error[i] = 0.0f; // Обнуляем старые
  // суммируем
  for (size_t j = 0; j < neuronsNextLayer; j++) {
  error[i] += l->error[j] * weights[j][i]; // берем транспорентную матрицу, поэтому ji а не ij
  }
}
}

// Корректировка весов
void training(Layer *l, float_t learning_rate) {
for (size_t i = 0; i < neuronsNextLayer; i++) {
  // производная сигмоиды
  float_t s = l->value[i] * (1 - l->value[i]);
  // меняем веса
  for (size_t j = 0; j < neurons; j++) {
  weights[i][j] += s * l->error[i] * value[j] * learning_rate;
  }
}
}

Чуть позже смогу выложить видео результата работы змеек
 
[^]
RazerStalker
17.06.2021 - 21:05
0
Статус: Offline


Хохмач

Регистрация: 5.07.14
Сообщений: 612
Цитата (kalmyk @ 17.06.2021 - 17:20)
Цитата (RazerStalker @ 17.06.2021 - 10:40)
Мой стек html, css, js, wp, php без библиотек, просто!
Собираю портфолио в августе выхожу на фриланс…

Покажи портфолио.

Напиши в личку с какой целью интересуешься
 
[^]
Avaddon74
17.06.2021 - 21:38
2
Статус: Offline


Юморист

Регистрация: 4.08.14
Сообщений: 427

Видео со змейками
 
[^]
Voronezher
17.06.2021 - 22:00
2
Статус: Offline


Ярила

Регистрация: 4.02.13
Сообщений: 5297
Не очень понятно - зачем змейкам нейросеть? Какую задачу змея решает при помощи нейросети?
 
[^]
amerikanec
18.06.2021 - 02:54
-4
Статус: Offline


Ярила

Регистрация: 3.02.14
Сообщений: 1025
Большинство местных пограмистов не скажут чем отличается C от С++, 3 пригэнципа OOP, и что означает каждый принцып. Что такое наследование, интерфейс, чем отличается абстрактный класс от интерфейса и для чего он нужен. Все почему-то считают что синтаксис языка это вех владения, но это не так. Весь цимес в создании архитектуры софта, а на каком языке писать абсолютно пофиг. Хошь на джаве, или шарпе, хошь на сиквеле, хошь на плюсах или TS. Язык это инструмент, а вот как этот инструмент используется тут уже нужны мозги. И да, оптимизация и многопоточность современным пограмистам не известна
 
[^]
Gexxo
18.06.2021 - 05:25
0
Статус: Offline


Ярила

Регистрация: 4.04.16
Сообщений: 3044
Цитата (amerikanec @ 18.06.2021 - 02:54)
Большинство местных пограмистов не скажут чем отличается C от С++, 3 пригэнципа OOP, и что означает каждый принцып. Что такое наследование, интерфейс, чем отличается абстрактный класс от интерфейса и для чего он нужен. Все почему-то считают что синтаксис языка это вех владения, но это не так. Весь цимес в создании архитектуры софта, а на каком языке писать абсолютно пофиг. Хошь на джаве, или шарпе, хошь на сиквеле, хошь на плюсах или TS. Язык это инструмент, а вот как этот инструмент используется тут уже нужны мозги. И да, оптимизация и многопоточность современным пограмистам не известна

Может поделишься результатами исследования, соц. опроса, или что ты там проводил прежде чем за всех говорить?
 
[^]
Gexxo
18.06.2021 - 05:28
1
Статус: Offline


Ярила

Регистрация: 4.04.16
Сообщений: 3044
Цитата (Voronezher @ 17.06.2021 - 22:00)
Не очень понятно - зачем змейкам нейросеть? Какую задачу змея решает при помощи нейросети?

Для моделирования перемещения настоящей змеи наверно хорошо бы зашло, а вот для змейки да, непонятно.
 
[^]
Modigar
18.06.2021 - 09:17
3
Статус: Offline


Ярила

Регистрация: 15.07.11
Сообщений: 5318
Цитата (amerikanec @ 18.06.2021 - 02:54)
Большинство местных пограмистов не скажут чем отличается C от С++, 3 пригэнципа OOP, и что означает каждый принцып. Что такое наследование, интерфейс, чем отличается абстрактный класс от интерфейса и для чего он нужен. Все почему-то считают что синтаксис языка это вех владения, но это не так. Весь цимес в создании архитектуры софта, а на каком языке писать абсолютно пофиг. Хошь на джаве, или шарпе, хошь на сиквеле, хошь на плюсах или TS. Язык это инструмент, а вот как этот инструмент используется тут уже нужны мозги. И да, оптимизация и многопоточность современным пограмистам не известна

Я недавно пособеседовался, и вот подобные собеседователи с такими вопросами пиздец как вымораживают. При чем з/п предлагают по самой нижней границе рынка.
Сделаешь им тестовое задание, человек смотрит в код и не видит где там многопоточность... но гонору дохера. Приходиться носом тыкать и как джуну объяснять что и как распараллеливается и как синхронизируется.
Еще и про паттерны любят с пафосом спрашивать. Начнешь рассказывать, тоже видно что сам не понимает, но пытается с умным видом башкой кивать.
Вот нахера у разработчика со стажем спрашивать какие то академические термины и определения? Я академическим языком мало что могу рассказать, и даже не смогу с наскока рассказать разницу между наследованием и полиморфизмом.

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

Это сообщение отредактировал Modigar - 18.06.2021 - 09:18
 
[^]
ss1971
18.06.2021 - 10:29
1
Статус: Offline


Ярила

Регистрация: 24.10.15
Сообщений: 4189
Цитата (Tualatin @ 17.06.2021 - 15:58)
Цитата (ss1971 @ 17.06.2021 - 19:53)
Цитата (Dutch @ 17.06.2021 - 11:54)
Мне тоже 39 будет осенью. Начал изучать C++ 2018 году. Нахожусь ещё в процессе изучения. Ну уж очень много всего там. И чем это кончится - не понятно. Автор - спасибо за твой рассказ. Приятно осознавать что не я один на старости лет решил программированием заняться

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

наверняка ООП)
без обид)

уже комментировал этот пост но ещё добавлю. вряд ли ООП. в С++ есть такая штука как перегрузка оператора ->. вот возможности которые открываются при этом можно изучать всю жизнь. именно не учить а изучать. там такие дебри открываются что пиздец, js со своим сумасбродством нервно курит. уже давно на C# стал подзабывать что такое истинный С++)
 
[^]
Modigar
18.06.2021 - 10:47
1
Статус: Offline


Ярила

Регистрация: 15.07.11
Сообщений: 5318
Цитата (ss1971 @ 18.06.2021 - 10:29)
в С++ есть такая штука как перегрузка оператора ->. вот возможности которые открываются при этом можно изучать всю жизнь. именно не учить а изучать. там такие дебри открываются что пиздец, js со своим сумасбродством нервно курит. уже давно на C# стал подзабывать что такое истинный С++)

А можно примеры того что можно долго изучать при перегрузке оператора -> ?
Кмк, сама перегрузка этого оператора задача тривиальная, а что внутри этой перегрузки будет, уже описывает бизнес-логику, которую в общем то и изучать особо не требуется, т.к. в каждой задаче она разная.
 
[^]
ss1971
18.06.2021 - 11:14
2
Статус: Offline


Ярила

Регистрация: 24.10.15
Сообщений: 4189
Цитата (Modigar @ 18.06.2021 - 10:47)
Цитата (ss1971 @ 18.06.2021 - 10:29)
в С++ есть такая штука как перегрузка оператора ->. вот возможности которые открываются при этом можно изучать всю жизнь. именно не учить а изучать. там такие дебри открываются что пиздец, js со своим сумасбродством нервно курит. уже давно на C# стал подзабывать что такое истинный С++)

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

полистайте Джефф Элджер "C++ библиотека программиста"
кстати очень редко вижу её в списках рекомендуемых а на самом деле охуенная книга и в первую очередь для тех кто уже немного разобрался в основах и ему кажется что программирование это элементарно. но и для новичков первая часть отличный учебник. и написана гораздо легче чем большинство подобных местами даже неплохой юмор.

вот эпиграф к части 2 где начинается изучение возможностей которые даёт перегрузка ->
"Когда указатель на самом деле не является указателем? Когда вы программируете на С++ и работаете с умными указателями. Одна из самых богатых (и самых недооцененных) концепций С++ — то, что объект может выполнять функции указателя. В этой части подробно рассматриваются различные способы, позволяющие это сделать, а за одно и примеры практического применения описанных идиом. Эта часть — не сборник рецептов, а скорее набор новых инструментов для вашей мастерской. Руки приложить все равно придется, но с хорошими инструментами работа пойдет гораздо легче."

Это сообщение отредактировал ss1971 - 18.06.2021 - 11:19
 
[^]
ss1971
18.06.2021 - 11:18
2
Статус: Offline


Ярила

Регистрация: 24.10.15
Сообщений: 4189
извиняюсь книга называется не "программирование на С++" а "С++ библиотека программиста"
 
[^]
Modigar
18.06.2021 - 11:33
1
Статус: Offline


Ярила

Регистрация: 15.07.11
Сообщений: 5318
ss1971
посмотрел, вау-эффекта не получил, мои утверждения в предыдущем посте остаются в силе.
ps: умные указатели в современных плюсах это какбэ мастхев, и более того в моих проектах очень сильно бьют за использование голых.
 
[^]
RitaZ
18.06.2021 - 11:36
2
Статус: Offline


Балагур

Регистрация: 24.06.17
Сообщений: 954
"По поводу настроек, я организовал так, что кол-во слоев и кол-во нейронов в них брал через рэндом, кроме конечно входов и выходов, чтоб контролировать. Но на входе так же был рандом, но не любое число. Например, змейка имела дальность обзора (я по дальности обзора рассчитывал кол-во входов) одну клетку, значит входов у сети было 5 нейронов вокруг головы + 1 доп клетка впереди, а выходов всегда три, при любом значении дальности, так как змейка могла повернуть только на три стороны, т.е. влево, вправо, и прямо.
Максимум ставил дальность обзора 11 (вроде) клеток, формула на вход простая:"

Уважаемый автор, не ведитесь, из вас просто вытягивают алгоритм работы вашей змейки, у вас не тривиальное решение и додумались до него вы сами, дойти до этого не просто. Базовыми терминами оперировать могут все, а до конкретики надо додумываться.
Готовые библиотеки это хорошо, но когда человек прощупывает каждую деталь самостоятельно, он уже может не просто кидаться терминами, а говорить по-существу
 
[^]
ss1971
18.06.2021 - 11:37
0
Статус: Offline


Ярила

Регистрация: 24.10.15
Сообщений: 4189
Цитата (Modigar @ 18.06.2021 - 11:33)
ss1971
посмотрел, вау-эффекта не получил, мои утверждения в предыдущем посте остаются в силе.
ps: умные указатели в современных плюсах это какбэ мастхев, и более того в моих проектах очень сильно бьют за использование голых.

ну прекрасно. поздравляю Вас) для меня тогда эти вещи были совсем неочевидными.
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 22680
0 Пользователей:
Страницы: (7) « Первая ... 4 5 [6] 7  [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх