Web Developer. Какое учебное заведение выбрать?

Подскажите, пжлст, куда пойти поучится на английском . Изначально думал поступать на программу Internet Programming and Development AEC от John Abbott , но она покрыта EMPLOI-QUÉBEC , получить подтверждение от агента возможно, но с определёнными усилиями. Сейчас начал думать о программе в Конкордии (Computer Science (GrDip)) https://www.concordia.ca/academics/grad … ploma.html. Если буду учится на Computer Science , то буду больше делать уклон в сторону Веб разработки (мне это интересно). Сегодня узнал, что есть программа в Vanier
Software Applications Specialist. В общем, меня интересует фул-тайм обучение и только на английском, в дальнейшем хочу работать в веб разработке. Посоветуйте, пжлст, каким путём лучше пойти. Возможно у кого-то есть подобный опыт.

Комментариев нет

  1. [quote="loco":3f4d3jgf]
    Я вам говорю, что использование Optiona.isPresent как проверки существования возвращенного обьекта это неправильно, оно не для этого.
    Ладно
    Не верите мне — смотрите вашу же статью — http://www.oracle.com/technetwork/artic … 75753.html

    You can also use the isPresent() method to find out whether a value is present in an Optional object. In addition, there’s a get() method that returns the value contained in the Optional object, if it is present. Otherwise, it throws a NoSuchElementException. The two methods can be combined, as follows, to prevent exceptions:

    if(soundcard.isPresent()){
    System.out.println(soundcard.get());
    }

    [b:3f4d3jgf]However, this is not the recommended use of Optional (it’s not much of an improvement over nested null checks), and there are more idiomatic alternatives, which we explore below.[/b:3f4d3jgf]

    Мне ваши предосторожности напоминают одну контору, которая писала на с++, но запрещала программерам использовать арифметику указателей и прямые операции с памятью — потому что это опасно, и не очень опытные разработчики могут налажать:)[/quote:3f4d3jgf]
    Я согласна, что map лучше. Если пишешь код с нуля, то лучше сразу с лямбда. Но я остаюсь при своем мнении — может быть optional is not much of an improvement over nested null checks, но это improvement over returning null однозначно. И объяснять, в чем именно снова я не буду. :lol: По поводу isPresent не для этого — в примере с фильтрами его используют, для этого.

    [quote:3f4d3jgf]

    Unity — это готовый движок. A мы писали свой. И потом игру еще продавали. Есть разница между написанием задания по полугодичному курсу, и 2-х годичной разработкой игры на продажу.
    [/quote:3f4d3jgf]
    По полугодичному курсу? Кто вам такое сказал? Семестр в универе — 3 месяца + 2 недели экзаменов. За эти три месяца — 3 проекта. Первый проект дают где-то через 2-3 недели учебы, так что на каждый проект по 3 недели максимум. Но по поводу разницы спорить не буду, уж мне ли не знать, что такое писать игры — я работаю в игровой индустрии. :lol:

    [quote:3f4d3jgf]Это софт, который автоматически торговал на бирже, на NYSE. Про HFT тогда не знали еще, по паттернам считали
    Сами писали, не было тогда никаких библиотек для machine learning
    Я об этом и толкую — вы говорите об использовании существующих библиотек, я — о написании этих библиотек. Это совсем разные задачи[/quote:3f4d3jgf]
    Я не знаю, что такое HFT — то есть вы сами создавали алгоритмы для machine learning? Если да, то круто. Если там machine learning не было, то не сильно впечатляет.

    [quote:3f4d3jgf]
    Но почему вы считаете, что исходники, например, автокада менее сложны, чем то, что вы описали? Там как бы knowledge base не покруче[/quote:3f4d3jgf]
    Декстоп приложения изначально проще распределенных систем. Вы в Autodesk работаете? Года 4 назад говорили что-то про радиосигналы, я думала, вы до сих пор там. Я не знаю, какие там исходники, но Autodesk — серьезная компания. Хотя я бы все равно на этом не остановилась. :lol:

  2. [quote="Ольга_":2lgal0ti]
    Я согласна, что map лучше. Если пишешь код с нуля, то лучше сразу с лямбда. Но я остаюсь при своем мнении — может быть optional is not much of an improvement over nested null checks, но это improvement over returning null однозначно. И объяснять, в чем именно снова я не буду. :lol: По поводу isPresent не для этого — в примере с фильтрами его используют, для этого.
    [/quote:2lgal0ti]

    Конечно, используют, как часть цепочки вызовов. Я сам когда-то для дотнета мейби монаду написал, для себя(тогда встроенных не было еще), и у меня были метод If() и Return(), делавшие что-то похожее
    Но подход isPresent() ? get(), then use a real obj он бессмысленный, и прячет истинную суть монад. Вся суть-то именно в chaining of methods без проверки
    Ну да ладно

    [quote:2lgal0ti]
    Я не знаю, что такое HFT — то есть вы сами создавали алгоритмы для machine learning? Если да, то круто. Если там machine learning не было, то не сильно впечатляет.[/quote:2lgal0ti]

    hft — high frequency trading, куча микротранзакций в секунду, которые хоть и мелкие, но в массе дают заметную прибыль. Во там народ с перформансом заморачивается, ужас
    Про machine learning — ну, в некотором роде, с т.з. pattern recognition. Есть определенные паттерны, описывающие поведение акций, вот мы их и имплементировали и потом применяли для авто трейдинга
    Мне, на самом деле, большие распределенные системы не очень, потому что под них надо инфраструктуру, а это значит, я не смогу написать сам для себя что-то мне интересное, без привлечения каких-то внешних ресурсов. Но может, это я от жизни отстал

    [quote:2lgal0ti]
    Декстоп приложения изначально проще распределенных систем. Вы в Autodesk работаете? Года 4 назад говорили что-то про радиосигналы, я думала, вы до сих пор там. Я не знаю, какие там исходники, но Autodesk — серьезная компания. Хотя я бы все равно на этом не остановилась. :lol:[/quote:2lgal0ti]

    Нет, не в автодеск. Софт — похожий на разные cad
    Почему десктоп проще? Т.е., с точки зрения архитектуры — конечно, у нас только 1 компьютер. Но с т.з. кода — вряд ли, т.к. приложение работает на 1-го юзера, и соответственно, мы менее ограничены по ресурсам, и наворотить можем дохрена, больше, чем на отдельно взятом веб сервере
    Про радиосигналы я говорил как про нахождение распределения мощности сигнала внутри помещения, с учетом различных антенн, стен, и проч. Движок, это дело обрабатывающий, по сложности сопоставим с движком, обсчитыващим физику в играх, принципы те же. Если вы считаете, что тот же Havok простой в написании, то это не так:) У нас вон даже патент на наш есть.
    Там сплошная математика и физика(теория волновых процессов), бывает весело. Помнится, один из наших phd принес модель по расчету емкости сети, так эта модель при обсчете стандартно падала, т.к. нек промежуточные рассчитываемые величины вылезали за предел double и даже decimal. Пришлось извращаться

  3. [quote="loco":s7o4wyn5]

    hft — high frequency trading, куча микротранзакций в секунду, которые хоть и мелкие, но в массе дают заметную прибыль. Во там народ с перформансом заморачивается, ужас
    Про machine learning — ну, в некотором роде, с т.з. pattern recognition. Есть определенные паттерны, описывающие поведение акций, вот мы их и имплементировали и потом применяли для авто трейдинга
    Мне, на самом деле, большие распределенные системы не очень, потому что под них надо инфраструктуру, а это значит, я не смогу написать сам для себя что-то мне интересное, без привлечения каких-то внешних ресурсов. Но может, это я от жизни отстал[/quote:s7o4wyn5]
    Я имела в виду алгоритмы, обучающие машину. В pattern recognition они присутствуют.

    Я потому и стараюсть найти работу с соответствующей инфраструктурой, потому что десктопы можно писать и дома, а вот комплексные системы — это должна быть крупная компания с большим количеством пользователей. По этой причине в основном меня привлекают top IT разработчики. Чем круче компания, тем интереснее проекты. Это мое мнение. Ну и плюс мне просто нравятся распределенные системы, я хотела ими заниматься еще с универа, как только узнала об их существовании.

    [quote:s7o4wyn5]
    Почему десктоп проще? Т.е., с точки зрения архитектуры — конечно, у нас только 1 компьютер. Но с т.з. кода — вряд ли, т.к. приложение работает на 1-го юзера, и соответственно, мы менее ограничены по ресурсам, и наворотить можем дохрена, больше, чем на отдельно взятом веб сервере
    [/quote:s7o4wyn5]
    Смотря в чем заключается сложность. Если в том, как все наворочено и запутано — то да, можно написать такой десктоп. Я имела в виду алгоритмическую сложность. Как бы все не было запутано, всегда можно разобраться, тут вопрос времени, но есть алгоритмы, когда приходится поломать голову. Например, алгоритмы AI — это сложно. Но они могут быть на любом из серверов распределенных систем, плюс к ним добавляются взаимодействие серверов и сети. Наверное, у меня не так много опыта и я не сталкивалась с действительно сложными десктопными приложениями.

  4. [quote="Ольга_":3vaqe4aq]
    Я имела в виду алгоритмы, обучающие машину. В pattern recognition они присутствуют.[/quote:3vaqe4aq]

    что-то пока что не видно особого выхлопа от machine learning
    Это я брюзжу, но, с другой стороны, из того что вокруг — больше рулят узкоспециализированные сервисы

    [quote:3vaqe4aq]Я потому и стараюсть найти работу с соответствующей инфраструктурой, потому что десктопы можно писать и дома, а вот комплексные системы — это должна быть крупная компания с большим количеством пользователей. По этой причине в основном меня привлекают top IT разработчики. Чем круче компания, тем интереснее проекты. Это мое мнение. Ну и плюс мне просто нравятся распределенные системы, я хотела ими заниматься еще с универа, как только узнала об их существовании.[/quote:3vaqe4aq]

    понимаю

    [quote:3vaqe4aq]
    Смотря в чем заключается сложность. Если в том, как все наворочено и запутано — то да, можно написать такой десктоп. Я имела в виду алгоритмическую сложность. Как бы все не было запутано, всегда можно разобраться, тут вопрос времени, но есть алгоритмы, когда приходится поломать голову. Например, алгоритмы AI — это сложно. Но они могут быть на любом из серверов распределенных систем, плюс к ним добавляются взаимодействие серверов и сети. Наверное, у меня не так много опыта и я не сталкивалась с действительно сложными десктопными приложениями.[/quote:3vaqe4aq]

    А я не сталкивался с сложными распределенными:)
    десктопные бывают весма сложные(не в смысле запутанные). Самый простой пример — ОС:)
    К тому же, в наше время(тм) нету проблемы организовывать распределенную сеть именно десктопных приложений, со всеми этими RESTful, и кучей фреймворков, нынче это просто. Я вот считаю, что это часть будущего, сети а ля пиринговые, без центрального сервера, т.к. телефоны нынче у всех и почти все время онлайн. Потому и полез на андроид

  5. [quote="loco":1qj0ipzl]
    что-то пока что не видно особого выхлопа от machine learning
    Это я брюзжу, но, с другой стороны, из того что вокруг — больше рулят узкоспециализированные сервисы

    [/quote:1qj0ipzl]
    Какие выхлопы вы ждете? Они сидят тихой сапой и нас изучают. Google, Facebook. Однажды машины начнут нами управлять, а мы этого не заметим. :lol:

  6. [quote="Ольга_":395g15dc][quote="loco":395g15dc]
    что-то пока что не видно особого выхлопа от machine learning
    Это я брюзжу, но, с другой стороны, из того что вокруг — больше рулят узкоспециализированные сервисы

    [/quote:395g15dc]
    Какие выхлопы вы ждете? Они сидят тихой сапой и нас изучают. Google, Facebook. Однажды машины начнут нами управлять, а мы этого не заметим. :lol:[/quote:395g15dc]

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

  7. [quote="loco":1on8aj7v][quote="Ольга_":1on8aj7v][quote="loco":1on8aj7v]
    что-то пока что не видно особого выхлопа от machine learning
    Это я брюзжу, но, с другой стороны, из того что вокруг — больше рулят узкоспециализированные сервисы

    [/quote:1on8aj7v]
    Какие выхлопы вы ждете? Они сидят тихой сапой и нас изучают. Google, Facebook. Однажды машины начнут нами управлять, а мы этого не заметим. :lol:[/quote:1on8aj7v]

    Я где-то читал, что уже накопили столько данных, что атас(давно ведь копят). Но вот что с ними делать — до сих пор не очень-то и понятно. Поэтому все и надеются так на этот самый machine learning, но пока что особых результатов нет.[/quote:1on8aj7v]
    Ну как нет — поиск в Гугле быстро понимает, что вы хотите, даже если вы делаете ошибку в запросе, Фейсбук знает, какую рекламу вам показывать — это же все результаты machine learning. Это то, что сразу приходит в голову, наверняка, они еще много какими результатами пользуются. Самоуправляемые гугловские машины уже который год колесят по Маунтейн Вью.

  8. [quote="Ольга_":1qc8tws8][quote="loco":1qc8tws8][quote="Ольга_":1qc8tws8][quote="loco":1qc8tws8]
    что-то пока что не видно особого выхлопа от machine learning
    Это я брюзжу, но, с другой стороны, из того что вокруг — больше рулят узкоспециализированные сервисы

    [/quote:1qc8tws8]
    Какие выхлопы вы ждете? Они сидят тихой сапой и нас изучают. Google, Facebook. Однажды машины начнут нами управлять, а мы этого не заметим. :lol:[/quote:1qc8tws8]

    Я где-то читал, что уже накопили столько данных, что атас(давно ведь копят). Но вот что с ними делать — до сих пор не очень-то и понятно. Поэтому все и надеются так на этот самый machine learning, но пока что особых результатов нет.[/quote:1qc8tws8]
    Ну как нет — поиск в Гугле быстро понимает, что вы хотите, даже если вы делаете ошибку в запросе, Фейсбук знает, какую рекламу вам показывать — это же все результаты machine learning. Это то, что сразу приходит в голову, наверняка, они еще много какими результатами пользуются. Самоуправляемые гугловские машины уже который год колесят по Маунтейн Вью.[/quote:1qc8tws8]

    Говорят, это только малая часть. А что делать с действительно огромными массивами данных — непонятно, особенно как их анализировать. Говорят, показ рекламы — это самое простое
    С гуглом, кстати и прочими — а вот voice recognition до сих пор толковый не могут сделать, хотя стараются уже очень долго, лет 15
    Про гугловские машины — не знаю, как они работают, ничо сказать не могу

  9. [quote="loco":2x2ey9x9]
    Говорят, это только малая часть. А что делать с действительно огромными массивами данных — непонятно, особенно как их анализировать. Говорят, показ рекламы — это самое простое
    С гуглом, кстати и прочими — а вот voice recognition до сих пор толковый не могут сделать, хотя стараются уже очень долго, лет 15
    Про гугловские машины — не знаю, как они работают, ничо сказать не могу[/quote:2x2ey9x9]
    Data scientistы знают, что с ними делать, я за это спокойна. :lol:

    Гугловский Лексус впервые попал в аварию в прошлом году — говорят, автобус его не пропустил, когда автомобиль возвращался в полосу после объезда препятствия. После этого инцидента подправили софт — научили машину не ожидать, что автобусы будут их пропускать. Welcome to the jungle. :lol:

  10. [quote="Ольга_":1vrabygt]
    Data scientistы знают, что с ними делать, я за это спокойна. :lol:
    [/quote:1vrabygt]

    Есть сомнения! Хотя, наука про данные это интересно

    [quote:1vrabygt]Гугловский Лексус впервые попал в аварию в прошлом году — говорят, автобус его не пропустил, когда автомобиль возвращался в полосу после объезда препятствия. После этого инцидента подправили софт — научили машину не ожидать, что автобусы будут их пропускать. Welcome to the jungle. :lol:[/quote:1vrabygt]

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

  11. [quote="loco":1i95keas]
    Тут вот мне кажецца, нто нету там нейросетей особых
    Плюс, что удивляет, это использование камер. Имхо, ультразвуковые и лазерные датчики были бы намного точнее[/quote:1i95keas]
    Там лазер на крыше и 4 радара на бамперах. Основная информация от лазера. Алгоритмы распознавания объектов и местоположения автомобиля основаны на скрытой марковской модели. Это все, что я знаю.

  12. [quote="Ольга_":1hc696f8][quote="loco":1hc696f8]
    Тут вот мне кажецца, нто нету там нейросетей особых
    Плюс, что удивляет, это использование камер. Имхо, ультразвуковые и лазерные датчики были бы намного точнее[/quote:1hc696f8]
    Там лазер на крыше и 4 радара на бамперах. Основная информация от лазера. Алгоритмы распознавания объектов и местоположения автомобиля основаны на скрытой марковской модели. Это все, что я знаю.[/quote:1hc696f8]

    Будущее грядет, вопщем:)

  13. [quote="Ольга_":l8th0pkd]У нас Трюдо в офисе сейчас — приехал со мной познакомиться. :lol:[/quote:l8th0pkd]

    Круто:)
    Говорят, весьма обаятельный молодой человек!

  14. [quote="loco":2lef1hgc][quote="Ольга_":2lef1hgc]У нас Трюдо в офисе сейчас — приехал со мной познакомиться. :lol:[/quote:2lef1hgc]

    Круто:)
    Говорят, весьма обаятельный молодой человек![/quote:2lef1hgc]
    Да, обаятельный. Ну вы-то с ним уже знакомы. :)

  15. [quote="Ольга_":m293u2ff][quote="loco":m293u2ff][quote="Ольга_":m293u2ff]У нас Трюдо в офисе сейчас — приехал со мной познакомиться. :lol:[/quote:m293u2ff]

    Круто:)
    Говорят, весьма обаятельный молодой человек![/quote:m293u2ff]
    Да, обаятельный. Ну вы-то с ним уже знакомы. :)[/quote:m293u2ff]

    Теперь нас двое!

  16. Кстати
    Я, как и всякий русский человек, задним умом крепок
    А что вы будете делать вот в таком случае:

    Optional<MyObj> getMyObj()
    { return null; }

    Optional<MyObj> myObj = getMyObj();
    if(myObj.empty()){ .. }

    Будет все тот же NPE, если не ошибаюсь

  17. [quote="loco":1wh2j4v9]Кстати
    Я, как и всякий русский человек, задним умом крепок
    А что вы будете делать вот в таком случае:

    Optional<MyObj> getMyObj()
    { return null; }

    Optional<MyObj> myObj = getMyObj();
    if(myObj.empty()){ .. }

    Будет все тот же NPE, если не ошибаюсь[/quote:1wh2j4v9]
    Да, но зачем возвращать null? Если человек использует Optional (особенно не в контексте функционального программирования), он намеревается избегать возврата null, а тут он сам же его вернет? Значит, человек не понимает, зачем он использует Optional. Поэтому в таком случае, если я найду этого человека, я объясню ему, что он не прав, если не найду — исправлю сама.

  18. [quote="Ольга_":3uvphk8l][quote="loco":3uvphk8l]Кстати
    Я, как и всякий русский человек, задним умом крепок
    А что вы будете делать вот в таком случае:

    Optional<MyObj> getMyObj()
    { return null; }

    Optional<MyObj> myObj = getMyObj();
    if(myObj.empty()){ .. }

    Будет все тот же NPE, если не ошибаюсь[/quote:3uvphk8l]
    Да, но зачем возвращать null? Если человек использует Optional (особенно не в контексте функционального программирования), он намеревается избегать возврата null, а тут он сам же его вернет? Значит, человек не понимает, зачем он использует Optional. Поэтому в таком случае, если я найду этого человека, я объясню ему, что он не прав, если не найду — исправлю сама.[/quote:3uvphk8l]

    Это упрощенный пример. Допустим, у человека функция на тыщу строк(это ужас, конечно, но бывает), и он потерялся, и вернул неинициализированное значение.
    Обьявил где-то в начале Optional<MyObj>, и забыл присвоить значение, не увидел в какой ветке произошел выход, етц. Это как пример, ситуации могут быть разные.
    Т.е., т.к. optional тоже обьект, это не панацея, и он тоже может быть нул, и его тоже надо проверять на нул.

  19. [quote="loco":1gta5x06][quote="Ольга_":1gta5x06][quote="loco":1gta5x06]Кстати
    Я, как и всякий русский человек, задним умом крепок
    А что вы будете делать вот в таком случае:

    Optional<MyObj> getMyObj()
    { return null; }

    Optional<MyObj> myObj = getMyObj();
    if(myObj.empty()){ .. }

    Будет все тот же NPE, если не ошибаюсь[/quote:1gta5x06]
    Да, но зачем возвращать null? Если человек использует Optional (особенно не в контексте функционального программирования), он намеревается избегать возврата null, а тут он сам же его вернет? Значит, человек не понимает, зачем он использует Optional. Поэтому в таком случае, если я найду этого человека, я объясню ему, что он не прав, если не найду — исправлю сама.[/quote:1gta5x06]

    Это упрощенный пример. Допустим, у человека функция на тыщу строк(это ужас, конечно, но бывает), и он потерялся, и вернул неинициализированное значение.
    Обьявил где-то в начале Optional<MyObj>, и забыл присвоить значение, не увидел в какой ветке произошел выход, етц. Это как пример, ситуации могут быть разные.
    Т.е., т.к. optional тоже обьект, это не панацея, и он тоже может быть нул, и его тоже надо проверять на нул.[/quote:1gta5x06]
    Программист, который пишет метод, всегда помнит, какой тип этот метод должен вернуть, какой бы длинным метод не был. Не говоря о том, что метод в 1000 строк — это тоже bad practice. Я понимаю, что в жизни много не очень хороших программистов, ну так им уже никакие библиотеки и новые фичи не помогут. В этих случаях все надежды на код ревью.

  20. [quote="Ольга_":wesz670q]
    Программист, который пишет метод, всегда помнит, какой тип этот метод должен вернуть, какой бы длинным метод не был. Не говоря о том, что метод в 1000 строк — это тоже bad practice. Я понимаю, что в жизни много не очень хороших программистов, ну так им уже никакие библиотеки и новые фичи не помогут. В этих случаях все надежды на код ревью.[/quote:wesz670q]

    Если программист хороший, он и на нулл проверит:)
    Но речь не о том. Конечно, он помнит, что он возвращает. Конечно, он оборачивает возвращаемый обьект в optional только при вызове return, в идеале
    Но если не в идеале, то
    Optional<MyObj> getMyObj()
    {
    Optional<MyObj> myObj;
    //some code here
    if(something)
    return myObj;->NPE in the caller of the method
    //
    //another code
    //here the obj is initialized
    myObj = Optional.of(new MyObj());
    //some code

    return myObj;
    }

  21. Или вот еще
    public class Computer {
    private Optional<Soundcard> soundcard;
    public Optional<Soundcard> getSoundcard() { … }

    }

    Ну вот забыли soundcard проинициализировать. Или что-то пошло не так, и инициализация не сработала
    И усе, getSoundcard() вернет нулл

    При этом если есть привычка проверять на нул, ничо страшного не произойдет, сгенерим и залогим исключение, если надо. А если верить, что optional сработает, то получим старое доброе NPE. Ну и имхо если надеяться, что фреймворк за тобой приберет, можно довольно быстро растерять полезные привычки.
    T.e., не панацея это совсем.

  22. [quote="loco":rv7sxzj8][quote="Ольга_":rv7sxzj8]
    Программист, который пишет метод, всегда помнит, какой тип этот метод должен вернуть, какой бы длинным метод не был. Не говоря о том, что метод в 1000 строк — это тоже bad practice. Я понимаю, что в жизни много не очень хороших программистов, ну так им уже никакие библиотеки и новые фичи не помогут. В этих случаях все надежды на код ревью.[/quote:rv7sxzj8]

    Если программист хороший, он и на нулл проверит:)
    Но речь не о том. Конечно, он помнит, что он возвращает. Конечно, он оборачивает возвращаемый обьект в optional только при вызове return, в идеале
    Но если не в идеале, то
    Optional<MyObj> getMyObj()
    {
    Optional<MyObj> myObj;
    //some code here
    if(something)
    return myObj;->NPE in the caller of the method
    //
    //another code
    //here the obj is initialized
    myObj = Optional.of(new MyObj());
    //some code

    return myObj;
    }[/quote:rv7sxzj8]
    Зачем декларировать Optional? Работайте с объектом, и только когда надо возвращать, заверните его в Optional.

    Если не в идеале, то нужно учиться, чтобы было в идеале.

    Сейчас вы снова скажете, что если в идеале, то нужно все проверять на null. Этой степени идеала добиться сложнее, чем понять, что такое Optional и как его правильно использовать. И мы не можем гарантировать идеала от других, поэтому мы делаем все от нас зависящее, чтобы им помочь, когда декларируем возвращаемый тип метода Optional, если знаем, что наш метод может вернуть null. А так как мы стремимся к идеалу, мы знаем, как обращаться с Optional — когда его возвращать и как.

  23. [quote="loco":2ufvwegd]Или вот еще
    public class Computer {
    private Optional<Soundcard> soundcard;
    public Optional<Soundcard> getSoundcard() { … }

    }

    Ну вот забыли soundcard проинициализировать. Или что-то пошло не так, и инициализация не сработала
    И усе, getSoundcard() вернет нулл

    При этом если есть привычка проверять на нул, ничо страшного не произойдет, сгенерим и залогим исключение, если надо. А если верить, что optional сработает, то получим старое доброе NPE. Ну и имхо если надеяться, что фреймворк за тобой приберет, можно довольно быстро растерять полезные привычки.
    T.e., не панацея это совсем.[/quote:2ufvwegd]
    Зачем soundcard заворачивать в Optional? И вообще сомнительная идея возвращать Optional в getter, я бы этого не делала. Optional используется в логике программы — надо получить какой-то объект из базы данных, либо отфильтровать по каким-то критериям, когда объект может быть не найден. Атрибуты класса к этим случаям не относятся.

  24. [quote="Ольга_":voyi1fjr][quote="loco":voyi1fjr]Или вот еще
    public class Computer {
    private Optional<Soundcard> soundcard;
    public Optional<Soundcard> getSoundcard() { … }

    }

    Ну вот забыли soundcard проинициализировать. Или что-то пошло не так, и инициализация не сработала
    И усе, getSoundcard() вернет нулл

    При этом если есть привычка проверять на нул, ничо страшного не произойдет, сгенерим и залогим исключение, если надо. А если верить, что optional сработает, то получим старое доброе NPE. Ну и имхо если надеяться, что фреймворк за тобой приберет, можно довольно быстро растерять полезные привычки.
    T.e., не панацея это совсем.[/quote:voyi1fjr]
    Зачем soundcard заворачивать в Optional? И вообще сомнительная идея возвращать Optional в getter, я бы этого не делала. Optional используется в логике программы — надо получить какой-то объект из базы данных, либо отфильтровать по каким-то критериям, когда объект может быть не найден. Атрибуты класса к этим случаям не относятся.[/quote:voyi1fjr]

    Это пример вот отсюда — http://www.oracle.com/technetwork/artic … 75753.html

  25. [quote="Ольга_":iu7aejuw]Зачем декларировать Optional? Работайте с объектом, и только когда надо возвращать, заверните его в Optional.

    Если не в идеале, то нужно учиться, чтобы было в идеале.

    Сейчас вы снова скажете, что если в идеале, то нужно все проверять на null. Этой степени идеала добиться сложнее, чем понять, что такое Optional и как его правильно использовать. И мы не можем гарантировать идеала от других, поэтому мы делаем все от нас зависящее, чтобы им помочь, когда декларируем возвращаемый тип метода Optional, если знаем, что наш метод может вернуть null. А так как мы стремимся к идеалу, мы знаем, как обращаться с Optional — когда его возвращать и как.[/quote:iu7aejuw]

    Как по мне — те же эээ уши, вид сбоку
    Использование этого типа не гарантирует от возврата нулл, но добавляет сложности. Ну т.е. в одном случае надо проверять на нулл, в другом — правильно оборачивать. И не забывать проверять, хотя в описании класса это совсем не обязательно
    Имхо, аннотация @NotNull/@Nullable полезнее — компилятор(или любой статический анализатор кода) сразу скажет — вот тут ай-яй-яй.

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

  26. [quote="loco":1oujg1xq][quote="Ольга_":1oujg1xq][quote="loco":1oujg1xq]Или вот еще
    public class Computer {
    private Optional<Soundcard> soundcard;
    public Optional<Soundcard> getSoundcard() { … }

    }

    Ну вот забыли soundcard проинициализировать. Или что-то пошло не так, и инициализация не сработала
    И усе, getSoundcard() вернет нулл

    При этом если есть привычка проверять на нул, ничо страшного не произойдет, сгенерим и залогим исключение, если надо. А если верить, что optional сработает, то получим старое доброе NPE. Ну и имхо если надеяться, что фреймворк за тобой приберет, можно довольно быстро растерять полезные привычки.
    T.e., не панацея это совсем.[/quote:1oujg1xq]
    Зачем soundcard заворачивать в Optional? И вообще сомнительная идея возвращать Optional в getter, я бы этого не делала. Optional используется в логике программы — надо получить какой-то объект из базы данных, либо отфильтровать по каким-то критериям, когда объект может быть не найден. Атрибуты класса к этим случаям не относятся.[/quote:1oujg1xq]

    Это пример вот отсюда — http://www.oracle.com/technetwork/artic … 75753.html[/quote:1oujg1xq]
    Да он там везде Optional пытается создавать, я до такого радикализма еще не дошла. :lol:

  27. [quote="Ольга_":tm4u2zxq]
    Да он там везде Optional пытается создавать, я до такого радикализма еще не дошла. :lol:[/quote:tm4u2zxq]

    :)
    С моего имха — оно не должно за пределы функции выходить
    Т.е., возвращает мне кто-то MyObj, из которого я хочу получить значение какого-то поля. Я его тут же оборачиваю в Optional, и мапами бегу по пропертям, пока не дойду до нужной, и возвращаю либо значение, либо empty optional. Никаких проверок на нулл, только в конце проверка, не пустое ли значение

    Ну, я так в дотнете делю. Там немного по-другому, но смысл тот же — не писать многочисленные ифы. Вот такой подход, по моему опыту, тренируется легко, если ide толковый и подсказывает:)

  28. A вот отличная новость!
    Гугл обьявил [url=https://kotlinlang.org/:3vbayc2p]Kotlin[/url:3vbayc2p] основным языком разработки для Андроида

    [youtube:3vbayc2p]d8ALcQiuPWs[/youtube:3vbayc2p]
    https://www.theverge.com/2017/5/17/1565 … nt-io-2017

    Не будет больше древней жавы, гип-гип-ура!
    :)

    пс Котлин — это остров в Финском заливе, btw:)

  29. В котлине, кстати, есть офигенная штука как раз про nullable obj
    Если обьект is nullable but passed to a func accepting not null val, код просто не скомпилируется — надо будет обязательно проверить обьект на нулл

  30. [quote="Lascal":2oujjq68][quote="loco":2oujjq68]A вот отличная новость!
    Гугл обьявил [url=https://kotlinlang.org/:2oujjq68]Kotlin[/url:2oujjq68] [b:2oujjq68][color=#FF0000:2oujjq68]основным языком разработки для Андроида[/color:2oujjq68][/b:2oujjq68][/quote:2oujjq68]
    Добавлена лишь поддержка этого языка.
    )
    [/quote:2oujjq68]

    она там и раньше была, с плагином
    а сейчас — именно основной язык, т.к. у них давние серьезные проблемы с ораклом. T.e., будут неуклонно и неотвратимо туда мигрировать
    Полную поддержку обещают в студии 3.0, а пока — устанавливаешь плагин, слегка правишь gradle, и вперед
    Вы послушайте, что дама там говорит — они уже организовали foundation с JetBrains для поддержки и развития языка, а это не шутки

    [quote:2oujjq68][quote="loco":2oujjq68]Не будет больше древней жавы, гип-гип-ура!
    :)[/quote:2oujjq68]
    Будет … еще ой долго как будет :lol:[/quote:2oujjq68]

    программисты-то не дураки
    Котлин гораздо круче жавы — удобнее, лаконичнее, гораздо лучше спроектирован и соответственно — более ээ производительный
    При этом, там же полное соответствие android runtime, 100% java interop, full IDE support. Т.е., менять в проекте не надо вообще ничего, просто новые packages пишешь на котлине, и все.

  31. [quote="Lascal":2y2nb4gu]Заявлено лишь о полной официцальной поддержке kotlin.
    Не стоит преувеличивать про основной язык.
    jvm никуда пока не делась[/quote:2y2nb4gu]

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

  32. [quote="loco":3953y0dv][quote="Lascal":3953y0dv]Заявлено лишь о полной официцальной поддержке kotlin.
    Не стоит преувеличивать про основной язык.
    jvm никуда пока не делась[/quote:3953y0dv]

    Там не совсем jvm
    уже с 5 андроида рантайм — ART, а не далвик. Т.е., понемногу уходят от jvm
    А основным он станет быстро, т.к. база девов на андроиде довольно большая, а сам язык — лучше. И перейти на него — никаких проблем[/quote:3953y0dv]
    почитал обзор некоторых его фич и при[s:3953y0dv]ху[/s:3953y0dv] свистнул :lol:
    https://habrahabr.ru/company/mailru/blog/329294/
    они стырили сахарок с С#, да еще и улучшили его местами. реально можно теперь работать :) почти как мостик с шарпа на жаву :roll:
    опять же облегчают жизнь разработчикам, которые "вынуждены жить в постоянном страхе перед NPE" (цитата из #15 в статье) :lol:

  33. Привет всем. Есть вопрос к тем кто учится или недавно учился в vanier college. Как проходило интервью для поступления? О чем спрашивали? Сколько длилось по аремени? И те кто закончил колледж, трубно ли было найти работу интересуют web &database programming и software application specialist. Спасибо заранее за ответы.

  34. [quote="Iren77":34hy0x8f]Привет всем. Есть вопрос к тем кто учится или недавно учился в vanier college. Как проходило интервью для поступления? О чем спрашивали? Сколько длилось по аремени? И те кто закончил колледж, трубно ли было найти работу интересуют web &database programming и software application specialist. Спасибо заранее за ответы.[/quote:34hy0x8f]

    везде по разному
    Обычно, сперва(если ваше резюме приняли к рассмотрению) телефонное интервью — это просто поговорить с вами, выяснить бзовый набор знаний, убедиться в адекватности; потом, если все ок, on-site интервью, с уже тех. специалистами — там могут быть просто вопрос, короткие задачи или написать тест(приложение); потом, если все ок — офер

    про компании и как у них проходит интервью, можно смотреть тут — https://www.glassdoor.ca/Reviews/montre … _IM990.htm

  35. [quote="елкапалка":3k8hw1c7][quote="loco":3k8hw1c7][quote="Lascal":3k8hw1c7]Заявлено лишь о полной официцальной поддержке kotlin.
    Не стоит преувеличивать про основной язык.
    jvm никуда пока не делась[/quote:3k8hw1c7]

    Там не совсем jvm
    уже с 5 андроида рантайм — ART, а не далвик. Т.е., понемногу уходят от jvm
    А основным он станет быстро, т.к. база девов на андроиде довольно большая, а сам язык — лучше. И перейти на него — никаких проблем[/quote:3k8hw1c7]
    почитал обзор некоторых его фич и при[s:3k8hw1c7]ху[/s:3k8hw1c7] свистнул :lol:
    https://habrahabr.ru/company/mailru/blog/329294/
    они стырили сахарок с С#, да еще и улучшили его местами. реально можно теперь работать :) почти как мостик с шарпа на жаву :roll:
    опять же облегчают жизнь разработчикам, которые "вынуждены жить в постоянном страхе перед NPE" (цитата из #15 в статье) :lol:[/quote:3k8hw1c7]

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

    Ну, прямо скажем — словить NPE(NRE) это lame, это девы не шибко квалифицированные, а не язык

  36. [quote="loco":3s1qacml][quote="Iren77":3s1qacml]Привет всем. Есть вопрос к тем кто учится или недавно учился в vanier college. Как проходило интервью для поступления? О чем спрашивали? Сколько длилось по аремени? И те кто закончил колледж, трубно ли было найти работу интересуют web &database programming и software application specialist. Спасибо заранее за ответы.[/quote:3s1qacml]

    везде по разному
    Обычно, сперва(если ваше резюме приняли к рассмотрению) телефонное интервью — это просто поговорить с вами, выяснить бзовый набор знаний, убедиться в адекватности; потом, если все ок, on-site интервью, с уже тех. специалистами — там могут быть просто вопрос, короткие задачи или написать тест(приложение); потом, если все ок — офер

    про компании и как у них проходит интервью, можно смотреть тут — https://www.glassdoor.ca/Reviews/montre … _IM990.htm[/quote:3s1qacml]

    Loco, спасбо за ответ. Может быть я не правильно сформулировала вопрос, меня интересует интервью для поступления в vanier college. Какие вопросы там задают, а про работу, это уже после…..:) Но все равно спасибо.

  37. [quote="Iren77":2ebz9a4f][quote="loco":2ebz9a4f][quote="Iren77":2ebz9a4f]Привет всем. Есть вопрос к тем кто учится или недавно учился в vanier college. Как проходило интервью для поступления? О чем спрашивали? Сколько длилось по аремени? И те кто закончил колледж, трубно ли было найти работу интересуют web &database programming и software application specialist. Спасибо заранее за ответы.[/quote:2ebz9a4f]

    везде по разному
    Обычно, сперва(если ваше резюме приняли к рассмотрению) телефонное интервью — это просто поговорить с вами, выяснить бзовый набор знаний, убедиться в адекватности; потом, если все ок, on-site интервью, с уже тех. специалистами — там могут быть просто вопрос, короткие задачи или написать тест(приложение); потом, если все ок — офер

    про компании и как у них проходит интервью, можно смотреть тут — https://www.glassdoor.ca/Reviews/montre … _IM990.htm[/quote:2ebz9a4f]

    Loco, спасбо за ответ. Может быть я не правильно сформулировала вопрос, меня интересует интервью для поступления в vanier college. Какие вопросы там задают, а про работу, это уже после…..:) Но все равно спасибо.[/quote:2ebz9a4f]

    A!:)
    Не, в ванье не поступал никогда:)

  38. [quote="tatyanaf":23dprnjz]Как вот такая программа для новичка http://fc.cmaisonneuve.qc.ca/repertoire … -sites-web После неё реально работу найти? И что может быть в тесте на Алгоритмы?[/quote:23dprnjz]

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

  39. Hi to everyone,

    I am thinking about AEC program in Bois-de-Boulogne,
    I am starting from scratch, ie no IT background. The most attractive part is stage which is provided in the end of program by college. I am watching youtube about programing in order to understand if it is something I wanna do but still confused which direction to choose for the beginning. My french is pre-intermediate meaning it will be harder, but the biggest question after what program chances are higher to get employed?

    First program — Quality Assurance, I was told at the college that chances to find job 200%. According to my logic to start as QA you should be pretty advanced programmer.

    Second program — Analyst programmer

    Third — DBA.

    Please help me to get better insight.

    http://bdeb.qc.ca/etudiants-adultes/pro … gicielle/;
    http://bdeb.qc.ca/etudiants-adultes/pro … nte-objet/
    http://bdeb.qc.ca/etudiants-adultes/pro … s-donnees/

Ответить