Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.

Какой опыт нужен программисту? (отпочковалась от "VV после PhD")

Тема в разделе "Работа и учёба", создана пользователем Anna, 16 авг 2004.

  1. Alexey

    Alexey Аксакал

    :)
    Ну каждому свое.

    Windows тоже не учат ставить :)
    Учат OOP, программированию в чистом виде, ведению проекта в команде (со всеми стадиями от requirements до deployment). Ну и для общего развития scheduler'ы, software-hardware co-design, и прочие диаграмки :)


    http://wwwooti.win.tue.nl/topics/index.html - курсы программы
     
  2. Dmitry Pankratov

    Dmitry Pankratov Аксакал

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

    И что такое программирование в чистом виде? Всякие основные алгоритмы, типа сортировок, прошивок деревьев, структуры данных, базы данных и проч? Так они всегда привязаны к какому-либо языку, чистой теорией не отделаешься. Даже у Кнута вон все привязано к маразматическому MIXAL'у (да простят меня почитатели сего труда, к которым я не отношусь).

    Все это приобретается после нескольких месяцев практической работы в конкретной компании, и изученные общие принципы оказываются в 99% никому не нужны. На позицию Software Architect вчерашних студентов не берут.
     
  3. Anna

    Anna Аксакал

    Вот еще один
    камень в сторону ООП (спасибо www.stumpleupon.com за ссылку :) )...
     
  4. Andrei_S

    Andrei_S Завсегдатай

    А на SW design берут? Вообще, куда тут берут толковых вчерашних студентов или просто тех у кого опыт небольшой?

    P.S. Я работу не ищу, надеюсь ещё пару лет не буду. Мне просто интересно.
     
  5. Anna

    Anna Аксакал

    Берут на должность учеников волшебника :) В подавляющем большинстве случаев ;)
     
  6. Alexey

    Alexey Аксакал

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


    Да нет. Неправда.
    Ключевые слова для поиска Hoare triple, алгебра предикатов.

    9 заключительных месяцев обучения - это именно проект в компании.

    Вообще говоря, я не собираюсь спорить о качестве программы в TUE.

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

     
  7. hondje

    hondje Новичок

    В тестеры берут и много не дают...
     
  8. Anna

    Anna Аксакал

    Вообще-то нельзя изучить язык программирования без понятия о том, на какую тему ты собираешься на этом языке общаться с компутером ;)

    И вообще, вообще, вообще, взаимосвязь между структурой языка и способом мышления - это такая тема, по которой еще не написано достаточное количество докторских и прочих диссертаций:) См. хотя бы www.loglan.org, или "Вавилон-17" С.Дилэни, например.

    Резюме: нельзя _хорошо_ знать "язык программирования" в отрыве от его области приложения (так же как нельзя грамотно писать на человеческом языке, не зная грамматики, синтаксиса и орфографии). А это и есть опыт.
     
  9. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    Я бы еще добавил к вопросу об опыте - одно дело говорить "я умею программировать на языке blah-blah и знаю реализацию основных паттернов на uml", а совсем другое - "у меня есть опыт программирования в области коммерческих embedded-систем, или финансового/страхового/whatever софта".
     
  10. Alexey

    Alexey Аксакал

    2 Dmitry Pankratov
    С этим полностью согласен.
    Только надо ещё и свою роль в проекте указывать и респонсибилитис.

    Хотя так и тянет пофлеймить при слове "embedded" :)
    Например set-top box - это embedded device?
    Вроде как да...
    А то что на нем крутится pJava и программят его в принципе на Jave как с этим быть?
    Выходит что любой человек пишущий на Java - embedded programmer?
     
  11. Andrei_S

    Andrei_S Завсегдатай

    Мне тоже это "embedded" глаз режет! Что там такого особенного? От асемблера уже ушли (хорошее было время 8051, Z80...), теперь везде всё тот же СИ, только может при embedded чуть больше знания архитектуры железа требуется. Так что это слово только чтоб дураков пугать!
     
  12. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    У меня слово embedded стойко ассоциируется с real-time и ограниченностью ресурсов :)
     
  13. Artem

    Artem Новичок

    "Embedded" на практике значит по моему, что надо не только уметь библиотечные функции/методы звать, а еще и головой иногда думать и алгоритмы, которые что-то делают придумывать и имплементировать.
     
  14. Alexey

    Alexey Аксакал

    Real-time - это ещё один смешной термин :)
    Особенно когда почитаешь про, например, Linux Real-Time, а потом оказывается что никакой он не реал тайм. Потому как не может гарантировать выполнение задач, до дэйдлайнов.
    А ограниченность ресурсов..... Так это всегда :)
    Тут вот под современные PDA люди программят и жалуются на ресурсы :p
    А это 100ни мегагерц и десятки мегабайт :)
     
  15. Andrei_S

    Andrei_S Завсегдатай

    И что, это в корне меняет дело?? Например во всяких драйверах тоже real-time.
    Кроме того, есть системы реального времени (всякие QNX) и используются они не только в embedded приложениях. Например при управлении тех. процессами (e.g. АЭС) тоже нужно реальное время. Много что ещё надо что в пультах телевизоров отсутствует. Так что к embedded надо относиться как к простой разновидности проэкта.
     
  16. Anna

    Anna Аксакал

    У Палма стек, вроде бы, до самых недавних времен 8К был :)
     
  17. Alexey

    Alexey Аксакал

    И этого мало?
    В нашем теперяшнем проекте ограничение на стэк 2КБ (и максимально 10K heap) и превосходно работает Digital Rights Management агент (для мобил).
    Шифрует и дешифрует файлы любого размера, следит за лицензиями, защищает часы+ предоставляет броусинг контента
     
  18. Artem

    Artem Новичок

    На С написано? Тогда еще и компилятор умный должен быть.
     
  19. Andrei_S

    Andrei_S Завсегдатай

    Помойму во всех компилаторах есть опция "размер стека"...
     
  20. Artem

    Artem Новичок

    Да - это им предел ставит, по моему. Компилятор может, например tail-recursion в цикл раскладывать - стека меньше. Сalling convension тоже влияет. Например в некоторых случаях не надо все регистры сохранять на стеке (frame pointer).
    Автоматический inlining сохраняет 1 call на стеке.
     

Поделиться этой страницей

Загрузка...