LINUX.ORG.RU

Список --- что должен знать программист для успеха

 , , ,


8

4

http://codingapocalypse.blogspot.com/2013/08/training-path-we-want-to-establi...

Вполне подъемный список вещей которые должны быть в кладовке у человека объявившего себя программистом.

★★★★★

Последнее исправление: ymn (всего исправлений: 1)

Ответ на: комментарий от vurdalak

А что нужно клепать, чтобы математика использовалась?

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

Absurd ★★★
()

И люди в этом треде разделились на 2 типа: те, которые поняли, что не являются программистами, и те, кто понял, что являются программистами несмотря на незнание многих вещей из этого списка :)

SjZ ★★★★★
()
Ответ на: комментарий от psv1967

так расскажите об этом (если не секрет конечно)

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

Absurd ★★★
()
Ответ на: комментарий от Harald

для общего развития электронику знать надо

В таком ключе можно рассуждать на любую тему. «Для общего развития XXX знать надо». Будь то религия, химия или регулировка карбюратора на жигулях.

Мое мнение — сначала надо выучить самое необходимое, потом уже думать об «общем развитии». Серьёзно, неужели я стал плохим программистом просто потому что забыл принцип работы полевого транзистора или не знаю как работает многофазный импульсный блок питания?

true_admin ★★★★★
()
Ответ на: комментарий от twentypercentcooler

Химия, стехиометрия, химия кремния

Парни в точку попали.

MyNameIsWinner
()
Ответ на: комментарий от rikardoac

Вопрос «зачем» простой, это не «кто виноват» и «что делать». Современная теория такая - знания человека это сфера, чем больше знаний, чем больше радиус сферы. Сфера эластичная, из материала типа презерватива. Человек всю жизнь эту сферу надувает с разной степенью интенсивности. Успех это неведомая фигня снаружи сферы, около поверхности. Достигнуть можно или надувая шарик целиком или ,за счет удачи, ловкости или тонкого расчета, выгнув стенку шарика в нужном направлении. Шарик растягивающийся только в сторону «нужно» данной теорией не предусмотрен. Вообщем, расширяй сознание, не сомневайся.

ilovewindows ★★★★★
()
Ответ на: комментарий от rikardoac

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

ilovewindows ★★★★★
()
Ответ на: комментарий от Absurd

вектор состояний на моменты времени последовательные — получается таблица? цепочка действий оператора прибита к конкретным моментам времени + еще один столбец в таблицу?

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

а что за библиотека BN использовалась? или всё написано с нуля самостоятельно?

а какой AUC получился в результате обучения классификатора действий оператора?

PPS ещё наверное CRM алгоритм что то аналогичное может делать в таких условиях.

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от ilovewindows

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

rikardoac
()

Оверхед полнейший.
На самом деле, здесь вопрос прежде всего философский (простите, уважаемые лоровцы, за данное грязное словцо): есть ли необходимость безумного наращивания интеллекта для существования в профессии.

Solace ★★
()
Ответ на: комментарий от Solace

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

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

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

vurdalak ★★★★★
()
Ответ на: комментарий от mv

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

nokachi
()
Ответ на: комментарий от vurdalak

Завидуй молча, нищее ничтожество.

anonymous
()
Ответ на: комментарий от vurdalak

Что за область, если не секрет? Игрушки?

Не удивительно, малолетнее ничтожество не видело в своей жизни ничего кроме сайтиков и игрушечек. А в реальных проектах - mission critical embedded, medical imaging, aerospace, и т.п. математики вообще до хрена.

anonymous
()
Ответ на: комментарий от anonymous

Аллах с ним, с mission critical embedded. Просто что бы писать нормальный, оптимизированный код, а не говнокод с динамическими массивами вместо списков.

PS Есть подозрение, что vurdalak математику видел только в виде арифметики, вот и не понимает.

CaveRat ★★
()
Ответ на: комментарий от anonymous

mission critical embedded, medical imaging, aerospace, и т.п. математики вообще до хрена.

а ответственности, судя по всему, ещё больше

lazyklimm ★★★★★
()
Ответ на: комментарий от psv1967

Ну там цепочек нет, при превышении порогов посылается бригада специалистов X на участок Y. Проблема в том что порогов over9000, и специалистов тоже. Если в помещении с упсами надо менять аккумуляторы, это специалисты X, если ругаются детекторы рекоммендуемых климатических условий для упсов это спецы Y, если сработал детектор вторжения это секьюрити, если пожарка это пожарные. Если оверпесец, надо жаловаться Большому Брату. И так по каждой зоне которых в аэропорту over 9000. Если хардкодить регламенты, эта система никогда не взлетит. Часть регламентов неясна, к примеру что делать если несущая конструкция здания зависла между первым и вторым порогом и висит таким образом несколько часов никто не знает. Библиотечка Apache Mahout.

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

Absurd ★★★
()

Вполне себе небольшой и вполне разумный по большинству пунктов список. Вот сбалансирован ли он — это вопрос.

anonymous
()
Ответ на: комментарий от vurdalak

А зачем ты мнение имеешь? Ты же не программист.

anonymous
()
Ответ на: комментарий от Absurd

в Mahout есть только наивный байесовский классификатор (Naive Bayes)

тогда лучше randomForest, у него высокая устойчивость к переобучению (хотя слабая способность к экстраполяции).

ну и раз используется метод классификации крайне важно провести ROC (хотя бы в виде превентивного определения весов классов пропорциональных реальным частотам событий), иначе достанут ошибки первого и второго рода.

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

psv1967 ★★★★★
() автор топика

неделя програмистских холиваров на ЛОРе, а так от всех подобных списков веет C++-ориентированностью, при этом как то забывается, что в мире существуют и другие языки/платформы/подходы в которых все эти знания могут не помочь.

mm3 ★★★
()

Долистал до пунктов с математикой- закрыл.

Akamanah ★★★★★
()

А еще прогромист должен быть специалистом в области зигохистоморфных препроморфизмов.

nerdogeek
()
Ответ на: комментарий от ilovewindows

Напомнило мне цитату Брюса Ли:

Я не боюсь того, кто изучает 10000 различных ударов. Я боюсь того, кто изучает один удар 10000 раз.

pulo
()
Ответ на: комментарий от psv1967

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

mv ★★★★★
()

Вполне подъемный список вещей которые должны быть в кладовке у человека объявившего себя программистом.

интересно, почему такому простому методу как алгоритм Еваклида выделен отдельный пункт? (даже два!)

А вот принципы выделения памяти знать программистам уже не нужно? Она в libastral сама выделяется?

drBatty ★★
()
Ответ на: комментарий от mv

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

врачи разные бывают. Как и программисты.

drBatty ★★
()
Ответ на: комментарий от drBatty

А вот принципы выделения памяти знать программистам уже не нужно?

Человеку которому для написания программ не нужна математика выше курса средней школы не может и встретиться задача для которой gc работает неудовлетворительно. Да и тем кто знает математику на университетском уровне знать о выделении памяти не обязательно. Тут рядом человек обсчитывает сопромат на вижуал бейсике и говорит что от ЯП ему нужны только массивы и циклы. Он плохой программист? Думаю, нет. Порекоммендовал ему на R посмотреть, пока не посмотрел. Да и даже на С++ можно пользоваться только Qt-шными коллекциями и не знать как оно работает на низком уровне.

Absurd ★★★
()
Ответ на: комментарий от Absurd

Человеку которому для написания программ не нужна математика выше курса средней школы не может и встретиться задача для которой gc работает неудовлетворительно.

практика жабобыдлокодеров доказывает обратное.

Тут рядом человек обсчитывает сопромат на вижуал бейсике и говорит что от ЯП ему нужны только массивы и циклы. Он плохой программист?

он вообще не программист.

Да и даже на С++ можно пользоваться только Qt-шными коллекциями и не знать как оно работает на низком уровне.

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

drBatty ★★
()
Ответ на: комментарий от twentypercentcooler

Просто оставлю это здесь http://sharpc.livejournal.com/67583.html

Сеть[...]DNS[...]


вот я сейчас пишу ДНС сервер на node.js, и вы считаете что каждый программист должен знать за что отвечают 18-21 биты заголовка протокола?
или этот список, как и ТС - это список того, о чём вообще можно разговор в курилке поддержать? глубина знания какая должна быть, чтоб назвать себя программистом?

system-root ★★★★★
()
Ответ на: комментарий от system-root

Как какая глубина? если в 3 часа ночи разбудили и ты не смог с закрытыми глазами написать qsort - добро пожаловать в ряды недопрограммистов-школоты-быдлокодеров

pulo
()
Ответ на: комментарий от drBatty

Человеку которому для написания программ не нужна математика выше курса средней школы не может и встретиться задача для которой gc работает неудовлетворительно.

практика жабобыдлокодеров доказывает обратное.

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

Тут рядом человек обсчитывает сопромат на вижуал бейсике и говорит что от ЯП ему нужны только массивы и циклы. Он плохой программист?

он вообще не программист.

Возможно. Только он пишет программы которые перефасовывают довольно большие массивы даблов и про проблемы с аллокацией памяти не знает вообще ничего.

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

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

Absurd ★★★
()
Последнее исправление: Absurd (всего исправлений: 1)
Ответ на: комментарий от Absurd

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

реалтайм есть всегда. А что и кто будет шифровать от программиста часто не зависит.

Возможно. Только он пишет программы которые перефасовывают довольно большие массивы даблов и про проблемы с аллокацией памяти не знает вообще ничего.

программа которая считает sin от 10 double ничуть не сложнее программы, которая считает sin от 100500 double. Разве это не очевидно?

Ну положим что кто-то передает стринги не по const-ссылке, а по значению.

ну ИМХО нужно использовать какой-нить string, внутри которого передача реализована самым оптимальным методом. А сам string передавать таки по значению.

drBatty ★★
()
Ответ на: комментарий от drBatty

реалтайм есть всегда. А что и кто будет шифровать от программиста часто не зависит.

Реалтайм есть только там где нет интерфейса между человеком и машиной. На каком-нибудь PLC который работает под VxWorks и закрывает клапан при превышении значением аналогового сигнала некоего порогового значения. Но в таком программировании динамическое выделение памяти не используется и не требуется. Там даже функции malloc() нет. А если клапан закрывается с экранной формы, то там разбросы времени реагирования в десятки секунд. Чтобы за эти десятки секунд не переслать какие-нибудь 10 байт в контроллер клапана это нужно специально Sleep() делать после каждого байта.

программа которая считает sin от 10 double ничуть не сложнее программы, которая считает sin от 100500 double. Разве это не очевидно?

Тем не менее, проблем с дефолтной VB-шной аллокацией для хранения промежуточных 100500 double у него нет.

ну ИМХО нужно использовать какой-нить string, внутри которого передача реализована самым оптимальным методом. А сам string передавать таки по значению.

А пользователю нужно про это знать?

Absurd ★★★
()
Ответ на: комментарий от pulo

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

system-root ★★★★★
()
Ответ на: комментарий от Absurd

Реалтайм есть только там где нет интерфейса между человеком и машиной.

да конечно! Фейсбук тот же возьми.

На каком-нибудь PLC который работает под VxWorks и закрывает клапан при превышении значением аналогового сигнала некоего порогового значения. Но в таком программировании динамическое выделение памяти не используется и не требуется. Там даже функции malloc() нет.

это смотря что за клапан. Клапанов может быть Over9000.

А если клапан закрывается с экранной формы, то там разбросы времени реагирования в десятки секунд. Чтобы за эти десятки секунд не переслать какие-нибудь 10 байт в контроллер клапана это нужно специально Sleep() делать после каждого байта.

часто время ЖЁСТКО задаётся. Т.е. не менее 10мс например. И никого не волнует, что в тестах у тебя 1 клапан, а IRL их Over9000, и все надо закрыть СРАЗУ.

программа которая считает sin от 10 double ничуть не сложнее программы, которая считает sin от 100500 double. Разве это не очевидно?

Тем не менее, проблем с дефолтной VB-шной аллокацией для хранения промежуточных 100500 double у него нет.

в helloworld'ах нет проблемы, я же не спорю. Просто наличие 100500 double не делает программу сложной.

А пользователю нужно про это знать?

да. Что-бы не костылять свои велосипеды с const ptr, как это ты делаешь. Например на x64 коротенькие строчки <=7 байт передавать выгоднее именно по значению. Но решает это совсем не программист, а компилятор на месте.

drBatty ★★
()
Ответ на: комментарий от system-root

зато любую сортировку напишет. это плохой программист?

хороший _специалист_. С уважением, К.О.

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.