• Стажер без высшего образования?

    GavriKos
    @GavriKos
    Ищите по тостеру - вопрос уже задавался, и вот те у кого вы спрашиваете мнения уже тоже отвечали.
    Ответ написан
    5 комментариев
  • Чем спецификация отличается от API?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Hibernate
    Седой и строгий
    В данном случае отличается тем, что это стандартная спецификация. Разработчик Hibernate может как угодно и когда угодно поменять своё API, но JPA меняется только в процессе многолетнего согласования примерно полусотни крупных компаний.
    Ответ написан
    2 комментария
  • Какой блок питания взять?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Беглым взглядом:
    1) Разъемов у COOLERMASTER больше, смотрите по необходимости
    2) Deepcool имеет более высокий стандарт (не качества, а выдаваемой мощности, рекомендую посмотреть о этих bronze, gold... больше)

    В остальном разница не существенная. Есть лишние пару тысяч? Бери Deepcool, каждая копейка дорога - COOLERMASTER
    Ответ написан
  • Closure Vs Common Function pointer?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Если лямбда или анонимный класс не используют переменных из объемлющей области видимости, то компилятор не станет их захватывать и разницы со ссылкой на метод не будет. Чтобы убедиться в этом, проведём эксперимент. Нам понадобится три класса:
    import java.util.function.Supplier;
    
    public class ExampleWithMethodRef {
        private static String someMethod() {
            return "Internal value";
        }
    
        public static void main(String[] args) {
            String value = "External value";
            Supplier<String> lambda = ExampleWithMethodRef::someMethod;
        }
    }

    import java.util.function.Supplier;
    
    public class ExampleWithLambda {
        public static void main(String[] args) {
            String value = "External value";
            Supplier<String> lambda = () -> "Internal value";
        }
    }

    import java.util.function.Supplier;
    
    public class ExampleWithCapturingLambda {
        public static void main(String[] args) {
            String value = "External value";
            Supplier<String> lambda = () -> value;
        }
    }

    Скомпилируем все три и запустим с параметром -Djdk.internal.lambda.dumpProxyClasses=. В рабочем каталоге появятся классы, в которые разворачиваются лямбды и ссылки на методы. Посмотрим, что у них внутри:

    javap -p -c ExampleWithMethodRef$$Lambda$1
    final class ExampleWithMethodRef$$Lambda$1 implements java.util.function.Supplier {                       
      private ExampleWithMethodRef$$Lambda$1();                                                               
        Code:                                                                                                 
           0: aload_0                                                                                         
           1: invokespecial #10                 // Method java/lang/Object."<init>":()V                       
           4: return                                                                                          
                                                                                                              
      public java.lang.Object get();                                                                          
        Code:                                                                                                 
           0: invokestatic  #19                 // Method ExampleWithMethodRef.someMethod:()Ljava/lang/String;
           3: areturn                                                                                         
    }


    javap -p -c ExampleWithLambda$$Lambda$1
    final class ExampleWithLambda$$Lambda$1 implements java.util.function.Supplier {                          
      private ExampleWithLambda$$Lambda$1();                                                                  
        Code:                                                                                                 
           0: aload_0                                                                                         
           1: invokespecial #10                 // Method java/lang/Object."<init>":()V                       
           4: return                                                                                          
                                                                                                              
      public java.lang.Object get();                                                                          
        Code:                                                                                                 
           0: invokestatic  #19                 // Method ExampleWithLambda.lambda$main$0:()Ljava/lang/String;
           3: areturn                                                                                         
    }


    javap -p -c ExampleWithCapturingLambda$$Lambda$1
    final class ExampleWithCapturingLambda$$Lambda$1 implements java.util.function.Supplier {                                            
      private final java.lang.String arg$1;
                                                                                                                                         
      private ExampleWithCapturingLambda$$Lambda$1(java.lang.String);                                                                    
        Code:                                                                                                                            
           0: aload_0                                                                                                                    
           1: invokespecial #13                 // Method java/lang/Object."<init>":()V                                                  
           4: aload_0                                                                                                                    
           5: aload_1                                                                                                                    
           6: putfield      #15                 // Field arg$1:Ljava/lang/String;                                                        
           9: return                                                                                                                     
                                                                                                                                         
      private static java.util.function.Supplier get$Lambda(java.lang.String);                                                           
        Code:                                                                                                                            
           0: new           #2                  // class ExampleWithCapturingLambda$$Lambda$1                                            
           3: dup                                                                                                                        
           4: aload_0                                                                                                                    
           5: invokespecial #19                 // Method "<init>":(Ljava/lang/String;)V                                                 
           8: areturn                                                                                                                    
                                                                                                                                         
      public java.lang.Object get();                                                                                                     
        Code:                                                                                                                            
           0: aload_0                                                                                                                    
           1: getfield      #15                 // Field arg$1:Ljava/lang/String;                                                        
           4: invokestatic  #28                 // Method ExampleWithCapturingLambda.lambda$main$0:(Ljava/lang/String;)Ljava/lang/String;
           7: areturn                                                                                                                    
    }


    Невооружённым глазом видно, что байткод вариантов со ссылкой на метод и лямбдой, не использующей переменную, идентичен, в обоих случаях происходит обращение в пул констант. Но если лямбда обращается к переменной, то в прокси-классе появляется поле arg$1, содержащее значение захватываемой переменной. Формально это влияет на потребление памяти, но если вы не собираетесь генерировать лямбды миллионами, то это влияние которым можно пренебречь, тем более во времена, когда даже на мобильных устройствах объёмы памяти измеряются гигабайтами.
    Ответ написан
    1 комментарий
  • Стоит ли сегодня новичку изучать C/C++?

    gbg
    @gbg
    Любые ответы на любые вопросы
    И так, случайные чуваки из интернета, перед вами человек, о знаниях, умениях, навыках и способностях вы ничего не знаете.

    И он спрашивает вас - а стоит ли мне заниматься X?

    НУ ОТКУДА МЫ ЗНАЕМ, стоит ли вам заниматься X? Вот я программирую уже больше 20 лет, 16 из них я программирую на C++, 14 - получаю за это зарплату в виде пяти, а потом и шестизначной суммы

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

    Вам этот ответ как-то поможет? Особенно если у вас нет желания углубленно ковыряться в тонкостях архитектуры вычислительных систем и радоваться лишним выжатым из процессора миллисекундам?

    Если у вас есть желание работать типа в айти 5/2 с 9 до 18, получать стабильные 90к рэ в месяц - есть более "легкие" пути.

    Чем грозит неправильный выбор при высокой зарплате? Размазыванием слез и других жидкостей по хабру в духе "ребята, мне 25 годиков, на мне жена, дите, ипотека, я получаю три штуки баксов в месяц, но я совсем выгорел, у меня депрессия, тревога, импотенция, жена говорит, что я эмоционально холоден к ней, изменяет и грозит разводом...

    КАКОГО ПСИХОТЕРАПЕВТА МНЕ ВЫБРАТЬ, ШТОБ ПОМОХ?"
    Ответ написан
    4 комментария
  • Как правильно работать с данными List, используя Stream API?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    return list.stream()
        .filter(....)
        .collect(Collectors.toList());
    Ответ написан
    6 комментариев
  • Скажите пожалуйста куда писать жалобы на работодателя?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Никуда не можете. До заключения трудового договора наниматель ничего вам не должен.
    Ответ написан
    Комментировать
  • Про нахождение работы за границей. Как это сделать?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Дорастаешь в РФ до уровня, когда работодатели на всё готовы, чтобы тебя заполучить, и тебя начинают хантить из-за границы. Ну, а ненужные здесь, не нужны и там.
    Ответ написан
    Комментировать
  • Возможен ли парсинг на GPU?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Для начала надо найти, что именно потребляет процессор и выяснить поддаётся ли оно векторизации. GPU - не волшебная палочка, не всё может.
    Ответ написан
    Комментировать
  • Где можно посмотреть подробные реальные примеры применения концепций и возможностей языков программирования?

    Adamos
    @Adamos
    Эти приемы нужно самому использовать, чтобы понять. Реальные примеры должны быть реальным решением вашей реальной проблемы.
    А просто читать, даже если оно подробно разжевано - все равно, что лежать на диване и читать уроки карате.
    Ответ написан
    Комментировать
  • Портит ли глаза монитор в таком положении?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Если твой монитор не ламповый и пузатый с частотой ниже 30 кадров в секунду, не портит. Современные мониторы вообще слабо влияют на зрение. Глаза напрягаются - меняй положение, нет - все ок.

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

    у класса Enum
    есть статический метод чтобы узнать это
    import java.lang.Enum;
    import java.lang.IllegalArgumentException;
    
    public class EvalEnum {
    	enum MyEnum {
    		One(1), Two(2), Three(3);
    
    		private int code;
    
    		MyEnum(int code) {
    			this.code = code;
    		}
    	}
    
    	public static void main(String[] args) {
    		System.out.println(
    				String.format("%s in MyEnum? %b", args[0], isPresent(args[0])));
    	}
    
    	private static boolean isPresent(String data) {
    
    		try {
    			Enum.valueOf(MyEnum.class, data);
    			return true;
    		} catch (IllegalArgumentException e) {
    			return false;
    		}
    	}
    }

    java EvalEnum One
    One in MyEnum? true
    
    java EvalEnum Zero
    Zero in MyEnum? false
    Ответ написан
    Комментировать
  • Какая ОС Linux имеет самую высокую защиту?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Настроенная грамотным специалистом и в руках опытного пользователя.
    Ответ написан
    Комментировать
  • В какой сфере IT легче найти работу (Исключая Москву и Питер)?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Проще всего - QA. В целом же быстрый старт - это не про IT.
    Ответ написан
    Комментировать
  • В какой сфере IT легче найти работу (Исключая Москву и Питер)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если для вас первостепенная задача сейчас - это как можно быстрее начать зарабатывать, то лучше про ИТ забыть. В торговом зале, на стройке, за рулём и в других сферах, не требующих высокой квалификации, заработать проще. Без приколов.
    Ответ написан
    Комментировать
  • Как жить после php?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Я тебе больше скажу - в php все тоже самое. Ты просто даже не подобрался к первой ступеньке сложности в веб-разработке
    Ответ написан
    Комментировать
  • Что лучше ноут или ПК?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Хм, что лучше - Хаммер или Ламборджини?

    Все зависит от того, для чего он будет применяться :) Для игр дома - лучше комп. Для презентации продукта в офисе заказчика - лучше ноут. Для того, чтобы поговорить - лучше всего телефон. Хотя все эти вещи можно сделать на всех устройствах - но с разной степенью удобства.
    Ответ написан
    Комментировать
  • Какие области IT сильно связаны с алгоритмикой и математикой?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Когда я в универе был олимпиадником (АСМ) тоже думал - главное - быстро и круто алгоритмы писать, это настоящее программирование, а не вот эти ваши формочки клепать.
    На деле, как вам уже сказали, олимпиадные скиллы хороши ровно в одной области - выигрывании на олимпиадах.
    И основное умение получаемое там - суметь очень быстро написать код который пройдет по жестко заданным тестам. В реальной жизни, к сожалению, это называется "малоподдерживаемый говнокод который проще выкинуть".
    Потому что "пройти тесты" - это только малая часть хорошего кода и правильной архитектуры и алгоритмов.
    Там есть время подумать и написать хорошо, придумать алгоритм лучше, проверить разные варианты и так далее. Это все умеет любой хороший профессионал.

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

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

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

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

    Так что выбирайте по области которая нравится. Пробуйте одно, другое. Информации - море, думаете про дата саенс - полгода проживите так будто туда собрались, читайте статьи, общайтесь в сообществах, участвуйте в вебинарах - конференциях, подпишитесь/задружите с теми кто там работает. Через полгода поймете точно - оно или нет. Поменять всегда успеете, у вас 5-6 таких заходов во время учемы, можно не спрашивать на тостере а просто попробовать всё. Возможно к тому времени как вы доучитесь в универе, появится пачка новых профессий которые вам отлично подойдут.

    Удачи в общем и не грузите себе мозги раньше времени зазря.
    Ответ написан
    2 комментария
  • Знает ли кто то где найти разраба или готовое решение для WhatsApp/Telegram clone под Android?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Jabber разверните
    Ответ написан
    Комментировать