LINUX.ORG.RU
ФорумTalks

Руки в масле, попа в мыле - мы работаем на ЗИЛе

 , ,


2

1

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

Дискасс, самоучки :)

Первое озарение было в первый день, когда меня начали знакомить с программированием (вроде седьмой класс) и я понял, как поменять значения двух int-ов без промежуточной переменной. Наверное тогда в моем мозге что-то щелкнуло и я уже не занимался ничем другим.

Потом помню веху, был 10 или 11 класс и моим архиватором (типа base64, только использовал 7 битов с русскими буквами, использовался для выкладывания файлов в текстовых постах на местном форуме, других способов тогда не было) начали пользоваться совершенно посторонние люди, пришлось заботиться о куче новых для меня вещей.

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

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

Были всякие прологи, хаскели, лиспы, но там как то не то уже было, так прям переломов в голове не было.

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

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

Но на большие расстояния, ясен пень, ethernet.

На большие расстояния - только оптика. Ethernet при большом уровне индустриальных помех работает не более чем на 10 метров.

lenin386 ★★★★
()

В 2006 я устроился админом к провайдеру, ничего не зная и не умея. Там был WS2k3, который постоянно падал. Я настраивал DNS, DHCP, NAT, Traffic Inspector со слезами на глазах. Это было ужасно.

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

В 2011 я ползал посреди тайги по крышам балков, приматывая несгибающимися от мороза пальцами коаксиал к стальной проволоке, которую тут же тянул. А ещё ходить в туалет, в котором под минус сорок совсем не весело. Это было ужасно.

IPR ★★★★★
()

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

ya-betmen ★★★★★
()
Ответ на: комментарий от IPR

Это было ужасно.

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

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

хотя бы с этого: http://www.asic-world.com/verilog/veritut.html За остальным в гугл. Мне для симуляции хватает iverilog + vpi + Makefile + Бери дев борду на Xilinx'е какую-нибудь, иначе никогда не поймешь разницы между синтезируемым / не синтезируемым подмножествами языка.

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

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

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

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

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

Что? Пройдите на вики и не озвучивайте свои фантазии.

Ничего волшебного в RS485 нет, даже в CAN ничего волшебного нет, провода - они и есть провода. И в wiki ничего внятного не написано по этому поводу.

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

Характеристика скорость обмена/длина линии связи (зависимость экспоненциальная):

  • 62,5 кбит/с 1200 м (одна витая пара)
  • 375 кбит/с 300 м (одна витая пара)
  • 500 кбит/с
  • 1000 кбит/с
  • 2400 кбит/с 100 м (две витых пары)
  • 10000 кбит/с 10 м

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

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

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

Да я тоже вроде проверял - как сейчас помню. Проблема была ещё в том, что вся старая команда с конторы свалила, и дела были в отстое, никаких бекапов, ничего. И я начал свою деятельность с уничтожения бухгалтерии :-) Это было мощно :-)

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

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

Не удивил. Реально даже CAN не держит 300 метров, если уровень помех соотвествущий.

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

Про витые пары с экраном вы, наверное, не слышали? Про CAN мне тут рассказывать не надо, вопрос был про RS-485 и

Да может, только длина будет не 70 метров

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

Лучший вариант вытаскивать опасные жёсткие от беды подальше, если есть возможность. Научился на чужом опыте :)

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

— Когда в ~1991-м я понял, наконец, что такое объекты в Си++

И что же это такое? Я до сих пор не понимаю!

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

Кстати, поддерживаю насчёт объектов. До сих пор помню, как ехал в электричке и читал про ООП (правда, в паскале). И то чувство полного непонимания, зачем всё это вообще нужно. А потом оп! и вдруг всё понятно.

queen3 ★★★★★
()

А вообще было время, когда меня бросали на проект по принципу «методичку по Struts денёк покури и чтобы через неделю корпоративный сайт был готов» :-) Вот тогда это ощущение было часто. В начале недели нихрена не понимаешь и голова пухнет от новых знаний и ощущения, что сделать что-то нереально, а к концу недели уже спокойно пишешь код и отвечаешь на вопросы на stackoverflow ;-) Глаза боятся - руки делают.

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

Вот это знание пора опять забывать

Да. Уже несколько лет, как оно вполне очевидно, что экстенсивный путь развития завершается.

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

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

Да было такое сумбурное состояние, диск под бекапы освобождал :-) Почему не отсоединил диск с бухгалтерией - не знаю, торопился :-) Сейчас - отсоединю обязательно 100%, но сейчас я и не претендую на подобную должность.

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

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

Конечно, не прокатывает! Он опоздал на 10 лет :)

...

Хотя суть там немного глубже. Не конкретика оптимизации, а конкретика _неоправданной_ оптимизации. Вариация на тему того же утверждения, что преждевременная оптимизация — зло.

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

поэтому мощность процов выросла дико, а софт как тупил, так и тупит.

Ты счастливый человек, который не застал времена, в которые загрузка примитивной ОС за минуту считалась нормальной, браузеры нормально стартовали за 10..30 секунд, а открытие нового документа в редакторе за 10 секунд считалась крутизной :D

Как раз в то время, когда звучало то утверждение, быстрый набор текста в Word'е на средней машине приводил к периодической подтормозке со скроллингом, когда тезаурус отрабатывал. Поэтому те, кто набивал быстро, его отключали нафиг :)

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

только перед каждым пунктом следует добавить «Я пыхнул и понял, что...»

Я не пыхал, я бухал. В бухом виде строил весьма интересные программные проекты, но никаких откровений не получал :D

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

вполне очевидно, что экстенсивный путь развития завершается

Это очевидно, не очевидны методы оптимизации. Подсчёты числа тактов выпонения команды не канают, других методов не предложено.

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

Пожалуй самое большое влияние на меня оказал труд Реймонда «Искусство программирования для Юникс».

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

а какая литература по C++ была доступна в 91-м?

Совершенно не помню, появился у меня Страуструп до того, как я понял, что такое объекты или после. Так что я даже не помню, понятно он писал или нет. Но даже если и после — то примерно в тот же год.

А так, на имеющейся в то время литературе, я долго искренне не мог понять, что такое объекты и нафига они нужны. То есть код воспроизвести мог, а понять, что это такое по сути — нет. Пока в книжке, не помню ни названия, ни автора, помню только что это женщина была :D не была до меня донесена простая мысль. Что объекты в Си++ — это те же самые структуры, что в Си (который я к тому времени знал отлично), только с приватными свойствами по умолчанию :D С внутренней стороны (а я, выросший из машкодов подходил тогда только с ней) стало всё сразу понятно, после этого соединились знания и с «внешним» удобством такого подхода. Сразу стали понятны три основные парадигмы.

Вообще, наверное, напутал я с датой. Скорее всего это не 1991-й был, а 1992-й. В 1991-м я ещё активно мучил Фокал на БК-0010 и осваивал Форт.

KRoN73 ★★★★★
()

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

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

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

Для меня озарением стало что в шелле 0 это true, а все остальные числа — false.

Век живи, век учись... Не знал :D

...

Для меня, правда, уже было открытием, что в Си (и некоторых старых Си++) NULL — не обязательно 0.

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

И что же это такое? Я до сих пор не понимаю!

Как я написал чуть выше в более длинном сообщении, объекты в Си++ — то же самое, что структуры. Только с приватными методами по умолчанию :D

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

Как я написал чуть выше в более длинном сообщении, объекты в Си++ — то же самое, что структуры. Только с приватными методами по умолчанию :D

Юмор хорош, но у структур в С нет наследованиния. Внутреннее прдставление не надо путать с философией. И смайлик тут непричём.

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

Поделитесь, пжлста. Вот мне до сих пор не понятно, зачем эта хернь нужна.

Для троллинга на ЛОРе, конечно :)

...

А так, забавно, но _активно_ применять объекты, делая свои системы полностью объектными я стал 15 лет спустя после знакомства с ООП. Хотя до этого, конечно, практиковал их использование. Но как вспомогательного инструмента для удобства разработки. Комплексные числа, там, строки... Но объекты всегда использовались в не-объектных по сути приложениях.

Лишь в ~2005-м я понял, насколько всё удобно, логично и единообразно получается в моём PHP-фреймворке, если его каркас из процедурного переделывать на объектный. А в 2006-м я плотно влез в Java-проект и, имея уже ООП головного мозга, наконец понял, насколько Java удобна :D До этого-то я знаком был с ней аж с ~1997-го, но вызывала где-то недоумение.

KRoN73 ★★★★★
()

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

Забавно, что такого никогда не было :) Я обычно заранее расставался с теми направлениями, на которые у меня не хватило бы времени. Где-то до 1993..1994 хватало возможности (с точки зрения программиста) охватить вообще всё, что происходило с компьютерами. Все новые популярные возможности, алгоритмы, языки программирования, технологии...

Где-то в это время я понял, что не успеваю охватывать одновременно «всё» и программирование баз данных. Оно мне было не нужно, но тогда считалось полезным разбираться во всём. И вот я понял, что БД — это тёмный (снизу) лес. И я добровольно отказался, сосредоточившись на остальном. Я стал «программистом всего, кроме БД» :) Даже в первых резюме (как раз этот период) писал об этом.

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

Вскоре после этого, дело уже к 1997-му шло, я понял, что мои знания в области 3D-программирования пошло в пустошь. Сперва появился Direct3D, а тут и аппаратные ускорители подоспели. Завязал с 3D :)

Потом пришёл Интернет и это был песец «всеохватности». Объём информации стал таким, что пришлось выбирать не то, что исключить из рассмотрения, а то, что изучать. Надо было выбирать нишу. Ну я и выбрал Интернет :D

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

Юмор хорош, но у структур в С нет наследованиния.

Чтобы понять, зачем нужно наследование, нужно уже знать, что такое объекты и зачем нужны они.

Внутреннее прдставление не надо путать с философией.

Это были годы, когда внутреннее представление и философия шли рука об руку. И смайлик потому тут к месту :)

Это сейчас можно программировать, не представляя, что творится внутри машины. Тогда — даже Бейсик требовал знания о внутренних представлениях.

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

— Когда я проникся утверждением Андрея Черезова «за то время, что я пишу новый механизм, который позволит оптимизировать продукт, ускоряя его на 10..15% выйдет новый процессор Intel, который ускорит систему вдвое без всяких усилий с моей стороны». Что-то в районе 1998-го.

Либо Андрей Черезов совсем не дружит с процессом оптимизации, либо с пониманием того, когда стоит остановиться в процессе «вылизывания» программы.

Да и само утверждение ущербно, ибо интел-то новый проц выпустит, но не будет его нахаляву менять владельцам старых. Появятся новые классы устройств, куда ставятся далеко не топовые ЦП, а потребность запускать данное ПО может возникнуть. Да и конкурренты могут взяться оптимизировать то, на что автор положил, и уйти вперед.

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

Для троллинга на ЛОРе, конечно :)

Если я начинаю свои проекты, то использую чистый С. По возможности :) К сожалению, есть проблема в GUI фреймворках, без которых сейчас никак, и приходится переходить на C++, даже если проект был зачат на C.

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

И то чувство полного непонимания, зачем всё это вообще нужно. А потом оп! и вдруг всё понятно.

Да, когда встречаешься с проектами, где оно действительно нужно. А то после просмотров примеров использования ООП из учебного пособия у меня тоже такой вопрос возник.

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

Чтобы понять, зачем нужно наследование, нужно уже знать, что такое объекты и зачем нужны они.

Просветите убогих, или не считаете нужным делать это ?

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

Это очевидно, не очевидны методы оптимизации.

Это уже частности. Вопрос же более общий.

KRoN73 ★★★★★
()

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

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

все 60 томов изучать что ли? Запорхаешься.

сильно меньше, можно смело пропускать его выкладки. просто принять «жили хренова», поначалу интересно, конечно, взглянуть «на сколько», но потом приедается. ну и заметки в искре просматривать по диагонали.

читать в общем сложности стоит книг 5-6. и мне лично понравилось :)

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

Когда я понял, что множественное наследование не нужно (2007).

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

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

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

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