• Лисп или хаскел?

    Начнём с того, что Лисп не функциональный. Тем, кто приходит в Лисп из мира императивных языков может так казаться, но я пришел в Лисп после Хаскела и я тебе точно говорю, Лисп - не функциональный.
    Теперь по теме - оба языка крайне интересны и способны взорвать мозг, но Хаскел вставляет сильнее, он действительно заумный и изобилует супер-дупер новыми изощренными технологиями программирования (Аппликативные функторы, комбинаторы, монады, ленивые вычисления), но что тебе действительно взорвёт мозг - это чистота языка (нельзя совершать побочные эффекты т.е. не напишешь в консоль где хочешь, не присвоишь значение переменной), отсутствие циклов и декларативность (ты не пишешь "как", а пишешь "что" представляет из себя задача). Но это только в начале. Когда освоишься, оказывается, что Хаскел очень выразителен и краток. Но есть у него и минусы - он очень сложен, ОЧЕНЬ. Серьезно, даже через пол года, у тебя по-прежнему будут проблемы. Уверен, 95% хаскелистов не объяснят в подробности, как работает Hello world на хаскеле, который выглядит так:
    main::IO ()
    main = do
    putStrLn "Hello world!"

    выглядит не сложно, но вот что скрывается под водой: все вычисления происходят в монаде IO т.к. только в ней разрешены побочные эффекты. Побочный эффект (действие ввода-вывода) выполняется только тогда, когда вернётся в main т.к. побочные эффекты разрешены только в main (поэтому и только в монаде IO т.к. main возвращает IO () ). Что такое IO ()? Это как бы список действий, которые туда запихиваются и объединяются в цепочку, чтобы быть последовательными (вне монады порядок выполнения твоих инструкций не определён, счастливого дебага). Эти действия на самом деле не выполняются сразу, а представляют из себя "обещание" сделать это действие, которое реализуется как только что-то уже действующее не затребует результат, в нашем случае это консоль... в общем и это только верхушка айсберга, я еще про типы не говорил, про извлечение и упаковку в монаду, про отображения множеств, карринг и тд.
    В общем хаскел это интересно, но очень сложно. Даже если не пообломаешь зубы, у тебя очень долго будут проблемы с дебагом, с пониманием всяких астральных техник, которые плодятся день и ночь, вроде стрелок или линз. Да и понять чужой код на хаскеле часто очень сложно, потому что каждый считает, что просто обязан применить все заумные штуки, которые он знает, ведь разве не для этого он учил хаскел? А ведь потом люди будут читать это...
    Теперь пара слов о Лиспе - тут у меня меньше опыта, но идея такая - это программируемый язык программирования. Кроме того, что в нём есть макросы - специальные инструменты, чтобы писать программу которая напишет программу, так и сам язык представляет из себя синтаксическое дерево в своём первозданном виде, что открывает безграничные возможности в метапрограммировании. В общем идея такая - этот язык в умелых руках становится абсолютно чем захочешь. Нравится хаскел и ФП? Отлично, сейчас реализуем. Хочешь ленивые вычисления? На! Хочешь классы? Вот! Хочешь логическое программирование? Держи! При всём этом язык крайне прост, может даже проще Си.
    Так, что я тебе посоветую? Наверное, начинай с Хаскела - он тащит за собой огромную теоретическую базу и целый арсенал таких приёмов программирования, которые тебе и не снились. Выучишь, освоишься - подумай о лиспе. Но! Тебе в любом случае нужно будет ставить Emacs - это самая лучшая среда для этих обоих языков, а Emacs конфигурируется на Emacs Lisp, так что у тебя будет возможность на него посмотреть. Посмотри видео по емаксу https://www.youtube.com/playlist?list=PLECBtie1W1t... (там и про Emacs Lisp есть глава), потом качаешь "Хаскел во имя добра" и "О хаскел по-человечески" и читаешь их параллельно - в первой хорошее мягкое введение, а во второй практика - она нужна сразу, чтобы хотябы знать, как создать проект с помощью cabal и собрать его, а то Липовача пол книги в интерпретаторе сидит.
    Ответ написан
    1 комментарий
  • Проблемы с IF в Java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Main.java:15: error: cannot find symbol
    for (int i = 0; i < odd.size(); i++)
    ^
    symbol: variable odd
    location: class Ideone

    Java не видит переменную odd, то же самое с even и other

    Они у тебя объявлены в main
    а printList туда доступа не имеет.

    В качества quikFix-а могу предложить вынести из метода main.

    static ArrayList<Integer> even = new ArrayList<>();
            static ArrayList<Integer> odd = new ArrayList<>();
            static ArrayList<Integer> other = new ArrayList<>();


    Это будет компилироваться, но вообще-то лучше так не делать.
    Ответ написан
    Комментировать
  • Проблемы с IF в Java?

    @zelan
    Кратко обо мне не получится.
    В каком редакторе пишешь?

    else if (x % 2 == 0)
     {
    even.add(x);}   //<------- лишняя скобка
     }


    продолжение:

    //Эти объекты объявлены в методе main(), и их видно только в нем.
    ArrayList<Integer> even = new ArrayList<Integer>();  
    ArrayList<Integer> odd = new ArrayList<Integer>();  
    ArrayList<Integer> other = new ArrayList<Integer>();


    //этот метод не может найти переменные even, odd, other. статический метод может видеть только другие статические методы/переменные/др и то, что передаешь в сигнатуре(в скобочках)
    public static void printList(){
    
    }


    Выходов много, вот 2 из них:
    class Ideone{
     //выносишь переменные из метода main и делаешь их static
    static ArrayList<Integer> even = new ArrayList<Integer>();  
    static ArrayList<Integer> odd = new ArrayList<Integer>();  
    static ArrayList<Integer> other = new ArrayList<Integer>();
    }


    или
    //переписываешь метод, и в мейне при его вызове передаешь сви списки
    public static void printList(List<Integer> even, List<Integer> odd, List<Integer> other ){
    
    }
    Ответ написан
    8 комментариев
  • Учитель из прошлого тысячелетия в техническом ВУЗе. Как ему объяснить, что информация может быть не только на бумажке?

    vpuhoff
    @vpuhoff
    Программист в свободное от работы время
    Электроника это хорошо, особенно если писать лекции по гуманитарным предметам, но с учебниками не все так просто. Если им пользоваться только в формате "открыл, прочитал страницу, закрыл", то все хорошо, но как правило с учебниками так не работает, приходится постоянно рыть какую ни будь информацию, держать десяток закладок на нужных страницах и т.д. и ни одна программа ни на ПК, ни на планшете не позволит работать с учебником так же просто как и с его бумажной копией (не с распечатанной). Именно это учитель скорее всего пыталась донести, то есть в ее глазах человек с электронкой это лентяй, который учится "лишь бы отстали".
    Ответ написан
    Комментировать
  • Существуют ли в природе, достойные задачники по программированию?

    GavriKos
    @GavriKos
    Варианты:
    1) Реализуйте какие нибудь общеизвестные алгоритмы. Сортировка, поиск, деревья. Скилл поднимется.
    2) Придумайте сами себе задачу исходя из ваших потребностей. И решите ее. Имеется ввиду какой то софт, конечно, а не чисто алгоритмическая задача.
    Ответ написан
    1 комментарий
  • Где можно найти образцы и лучшие примеры ТЗ на разработку софта?

    goodprogrammer
    @goodprogrammer
    к. ф.-м. н.
    Гуглите литературу и курсы на тему managing software requirements, agile software requirements

    Вот неплохая книга www.amazon.com/Managing-Software-Requirements-Appr...

    Все в основном на английском, на русском только хлам либо нормальные переводные книги, типа
    www.piter.com/product/iskusstvo-upravleniya-it-pro... (кстати из микрософта чувак).

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

    ПС: универсальных чеклистов и схем тут нет и быть не может. Разные типы продуктов, заказчиков, условий требуют разных требований.
    Ответ написан
    Комментировать
  • Где можно найти образцы и лучшие примеры ТЗ на разработку софта?

    @balamut108
    Py
    Моё мнение, если тебя никто не ограничивает в стандартах выполнения ТЗ, то надо исходить из следующего:

    1. Время.

    2. Полезность ТЗ для разработчиков и прочих, но прежде всего для разработчиков.

    2.1. Полезность это прежде всего описание бизнес-логики.

    2.2. Прототип (делаю в Бальзаме).

    2.3. Связи с подсистемами и интеграции.

    2.4. Структуры данных и нагрузка.

    Я пишу ТЗ и по ГОСТам и по корп. стандартам, но эффективней всего получается когда никто не ставит рамки.

    Будут вопросы пиши в ЛС.
    Ответ написан
    Комментировать
  • Где можно найти образцы и лучшие примеры ТЗ на разработку софта?

    @krox
    аспирант, программист, исследователь
    Была на хабре компания Edison и они в своих статьях делились ссылками на примеры своих ТЗ. В общем, если почитаете https://habrahabr.ru/company/edison/blog/267569/ и https://habrahabr.ru/company/edison/blog/267671/, думаю, для вас не составит труда найти примеры их ТЗ
    Ответ написан
    Комментировать
  • Какие еще есть блогеры вроде Sorax?

    werty1001
    @werty1001
    undefined
    Я думаю Sorax не вернется, что вполне понятно, на мой взгляд бесплатно делать такой контент это сомнительное занятие, а делать что-то посредственное ему не интересно, да и перфекционизм ему явно не чужд. Если с ним вообще все в порядке, он так резко пропал, наверно свалил в теплые края, а может в гугл пилить ии или он сам ии от гугля, по крайней мере порой так казалось.
    Ответ написан
    3 комментария
  • Какие еще есть блогеры вроде Sorax?

    Nivalis
    @Nivalis
    Верните нам Sorax'а! Может есть люди, которые его знают лично или из Белгорода?
    Ответ написан
    5 комментариев
  • Какие еще есть блогеры вроде Sorax?

    @kostein
    Сварщик - Верстальщик
    После Sorax'a сложно смотреть кого либо .) Может он нашёл способ завести трактор..

    А вообще я б на месте нашего гос-ва, Или там доморощенных Цукербергов-Дуровых или какие-нибудь Тиньковы, Сечины, Абрамовичи, СамыйДлинныйИзНорильска (тысячи их), таким людям как Зоракс, Кантор и пр., - гранты давал на их просветительскую деятельность, всяко больше пользы для страны чем клепать авиабомбы в три смены, или раскидывать пятирублёвки из окна, а на глинтвейн в куршавеле всяко бы осталось.

    Илья Кантор два курса node js и webpack если тематика подходит, то очень даже.

    p.s. у Ильи ещё курс добавился по "Стакану с трубочкой".
    Ответ написан
    3 комментария
  • Нужен ли продакт-менеджеру Data Science?

    @Roman_Kh
    Правильному product-менеджеру, конечно же, нужен data science.
    Только покупать русские курсы не стоит. Совсем. Никакие.
    На coursera, udacity и даже youtube есть огромное количество курсов от уважаемых компаний и университетов для любого уровня подготовленности.

    Во-первых, data science нужно знать для того, чтобы понимать, что вообще возможно узнать о продукте, клиенте, процессе, а что нет, что можно рассчитать, а что нет, что можно предсказать, а что нет, а также как, в чем и на сколько можно и нельзя ошибаться.

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

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

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    нужно

    сначала пройдите азы, чтобы видеть, где глубокое погружение, а где нет
    а так - на udacity есть курсы от того же Гугла
    Ответ написан
    Комментировать
  • Нужен ли продакт-менеджеру Data Science?

    действительно ли пригодится серьезное погружение в дата сайнс для продуктового менеджера

    Думаю не пригодится, потому что если он руками начнёт анализировать Big Data то он больше не продуктовый менеджер, но ещё не программист и не аналитик и так... ни в тех ни в сех...
    Ответ написан
    Комментировать
  • А не дал ли я борща, установив Windows 7 Pro x64 на слабый ноут?

    @Nikolay45
    Как раз разрядность и повлияет. Доставте ещё 1-2 Гига памяти, они сейчас не очень дорогие. А обновляться будет ещё дня два-три. Некоторые обновления .NET устанавливаются по пол дня каждое.
    Ответ написан
    3 комментария
  • Где можно найти образцы и лучшие примеры ТЗ на разработку софта?

    amerov
    @amerov
    Web Developer
    могу порекомендовать книжки
    www.ozon.ru/context/detail/id/30958003
    Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем
    www.ozon.ru/context/detail/id/27995134 Разработка требований к программному обеспечению
    Ответ написан
    Комментировать
  • Где можно найти образцы и лучшие примеры ТЗ на разработку софта?

    Rastishka
    @Rastishka
    Мне кажется что успешный продукт можно сделать только по аджайлу, итерациями.
    Ни разу не удавалось все распланировать и предусмотреть все мелочи.
    Ответ написан
    2 комментария
  • Где можно найти образцы и лучшие примеры ТЗ на разработку софта?

    @lakegull
    Примерно пару лет назад мне потребовалось структурировать базу контактов с клиентами. Изобрёл немного велосипедное решение для своих нужд. ТЗ по можно скачатьпо ссылке.
    Как сейчас помню в то время на его составление у меня ушло часов 25-30 чистого времени. В начале я не знал какие инструменты использовать, чтобы исполнитель понял все нюансы правильно, поэтому многое переписывал. Так-же в процессе написания постоянно появлялись новые идеи, которые , как мне казалось не включить в ТЗ уже нельзя.
    В результате после выхода первой версии программы, ушёл ещё месяц её на доработку. Пользовался ею я около полугода, всё это время собирал информацию, что можно было бы улучшить. Затем понабравшись опыта и знаний я написал новое ТЗ, которое составило 20 листов и ещё около десятка дополнительных файлов с картинками и таблицами. На составление второго ТЗ ушло около месяца.
    Ответ написан
    1 комментарий