• Видеоуроки - долго, и много воды. Стоит ли тратить на них время?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Прочитайте этот ответ и комментарии под этим.
    Ответ написан
    Комментировать
  • Хороший видео-курс по Go?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Хороший и видео - это взаимоисключающие понятия. Прочитайте лучше учебник.
    Ответ написан
    20 комментариев
  • Видеоуроки - долго, и много воды. Стоит ли тратить на них время?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Нет, не стоит.
    Вы тупо будете слушать, как картавый мычащий Васян пересказывает какой-нибудь learnjavascript, пропуская половину тем, которые сам не понимает.
    И таких видео - 90%.
    Ответ написан
    12 комментариев
  • Нормально ли изучать android разработку по startandroid?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Ненормально ничему обучаться ни по каким курсам. Учебники и официальная документация - единственное качественное и действенное средство.
    Ответ написан
    4 комментария
  • Можно ли начинать с питона?

    laviol
    @laviol
    Кодер-разнорабочий
    Изучая и используя Python Вы, конечно же, не узнаете многих "подкапотных" вещей, большую часть задач интерпретатор заберет на себя (сборка мусора, утиная типизация и т.д.).
    Но это не значит, что их не следует изучать самостоятельно, попутно с изучением самого языка.
    Программирование на C (как вариант C++) даст понимание того, как все работает внутри на пальцах, именно поэтому их чаще всего советуют перед Python, тем более, что самая распространенная реализация Python написана на C, и, когда настанет момент написания собственных библиотек и модулей, знание этого языка точно пригодится.
    Все это не значит, что нельзя научиться писать на Python без знания C.
    Вопрос, как и всегда, в том, что Вы хотите писать и какие задачи решать.
    Простое изучение языка ради его изучения - сомнительная затея.
    Ответ написан
    Комментировать
  • Программное решение для упорядочивания жизни?

    opium
    @opium
    Просто люблю качественно работать
    Любое блокнотоподобное приложение спасет мир
    Все эти навороты в повседневности не нужны
    Ответ написан
    3 комментария
  • Как сделать церковный календарь?

    Jump
    @Jump
    Системный администратор со стажем.
    вот как в каждый день прописать информацию?
    Записать в базу данных. В данном случае в качестве БД пойдет даже простой текстовый файл.
    Ответ написан
    5 комментариев
  • Зачем и когда нужно использовать указатели в C++?

    RabraBabr
    @RabraBabr
    Ну что же. попробуем в указатели.
    Когда то давно, когда деревья были высокими, а трава сочнее и зеленее, на одной красивой планете - да можно было и без указателей. Автоматические переменные неплохо работали в стеке (ага иди гугли про стек и какой он маленький и про знаменитый его оверфлоу). В общем ответь на вопрос, много ли этого стека? Стало все не так романтично, объемы данных росли программы усложнялись , а программист ручками в куче (ага гугли про кучу) с помощью malloc'а выделял память. А что бы он знал где он выделяет память нужны указатели (ну как адрес квартиры - где проживают переменные Ивановы?). вот указатели в общем этот адрес и хранят. Только выяснилось, что программист плохо ручками память выделяет. Например в 20 метровую однушку он может захотеть поселить табор из 300 закарпатских цыган. И согласись получится неприятность.

    Вот в c++ память выделяется new и delete - это операторы такие. Сами посчитают сколько цыган куда и адресок вернут, а когда надо всех ненужных выселят. Только лучше и веселее не стало, память всегда течет, а указатели всегда висят. А где там в какой квартире Ивановы, а где Петровы вообще не понять И куда тот табор делся? А может и не делся.

    Оппа у нас же в c++ парадигма ООП и классы (гуглим классы). А в классах всегда конструктор и деструктор (гуглим), и они вызываются автоматически когда объект (экземпляр класса) создается и когда уничтожается. Так может new положим в конструктор, а delete в деструктор? И назовем все это хозяйство std::auto_ptr. И пусть он сам за памятью следит, а программиста будем бить по рукам за ручное выделение памяти

    Беда, печаль однако. Лучше жить не стало. и виной тому конструктор копирования (вот опять гуглим). Тогда придумали семантику перемещения r-value ссылки и кучу новых умных указателей вот просвещайся https://ru.cppreference.com/w/cpp/memory
    Если пройдешь по ссылке то увидишь много новых и интересных слов например аллокаторы или неинициализированные хранилища.

    И я надеюсь мой юный друг, что ты уже понял, что до джуна тебе еще очень и очень много непонятных слов. Вот когда сможешь shared_ptr свелосипедить, тогда свелосипедь себе еще и резюме и вперед на собеседования.
    Ответ написан
    Комментировать
  • Зачем и когда нужно использовать указатели в C++?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Обратите внимание, что в например в python, переменные не базовых типов очень похожи на ссылки в C++.
    >>> a = [1, 2, 3]
    >>> b = a
    >>> b.append(4)
    >>> print(b)
    [1, 2, 3, 4]
    >>> print(a)
    [1, 2, 3, 4]


    В С++ при присваивании происходит копирование. Вам нужно явно использовать ссылки или указатели чтобы повторить такое же поведение.

    Как уже упоминали, для создания массивов (или других структур данных) произвольного размера используется new, который возвращает указатели. В современном C++ это стараются спрятать за классами контейнеров (vector, map, ...) и умными указателями. Но внутри у них лежат те самые указатели.

    Тема большая и заслуживает несколько лекций. Я читал, что товарищи из яндекса сделали достаточно хороший курс. Гуглите "Белый пояс C++".
    Ответ написан
    1 комментарий
  • Тип данных аналогичный таблице в C#?

    @lil_Toady
    Все верно, вам подойдет struct или class, чтобы описать одну запись (строку), разница между ними будет что первое - value type, не может быть null. И далее любая коллекция, даже простой массив.

    Предположим что вы описали сущность так:
    class Item
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public DateTime Time { get; set; }
    }


    для простоты используем List - простейший динамический список, можно добавлять, удалять и т.п.:
    var timeTable = new List<Item>
    {
      new Item { Id = 1, Title = "Иван Сергеевич", Time = DateTime.Parse("20.05.2019 18:45") },
      new Item { Id = 2, Title = "Петр Николаевич", Time = DateTime.Parse("20.05.2019 16:45") },
    };


    И теперь через Linq (using System.Linq;) можно работать с этими данным, работает на любой коллекции или массиве, внедряющих интерфейс IEnumerable, и предоставляет различные методы типа Where, Min, Max, OrderBy и т.п.
    var ordered = timeTable.OrderBy(item => item.Time); // Получили IEnumerable<Item>  отсортированный по Time


    P.S. Такая запись, более похожая на SQL тоже возможна, но думаю подход с методами будет все же более удобным
    var ordered = from item in timeTable orderby item.Time ascending select item;
    Ответ написан
    2 комментария
  • Как распарсить Json в Java?

    GavriKos
    @GavriKos
    Это не json совсем. Так что сомневаюсь что json-парсером получится распарсить это при любых настройках.
    Ответ написан
    Комментировать
  • Приложение для закладок?

    @neo92
    Я пользуюсь сервисом https://www.gogilink.ru. Конечно, интерфейс простой, но он удобный.
    Ответ написан
    Комментировать
  • Можно ли что то написать зная базовые основы С++?

    @rPman
    Можно что то написать, зная вообще одну математику и даже не используя условия, циклы и т.п., одни математические выражения, что то из серии ненормального программирования. Но мне кажется, почесывать горло через задницу будет примерно так же дико и не практично.

    ООП это очень простая часть языка c++. Проблема не в языке, а в библиотеках, которыми пользуешься чтобы не изобретать велосипед... их не то чтобы учить нужно, просто уметь пользоваться и въезжать в идеологию.
    Ответ написан
    Комментировать
  • Где учить этичный хакинг по С\С++\Python?

    maaGames
    @maaGames
    Погроммирую программы
    Крысъ Касперски.
    Ответ написан
    1 комментарий
  • Где учить этичный хакинг по С\С++\Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Таким вещам нигде не учат. Сначала становишься профессиональным программистом с широким кругозором и глубокими знаниями, а потом учишься сам в исследовательском режиме. Чтобы взломать сайт вроде Тостера, надо сначала уметь написать сайт вроде Тостера.
    Ответ написан
    1 комментарий
  • Какие посоветуете материалы для изучения Android development?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Изучать надо как раз по книгам. Начать можно с "Head First. Программирование для Android" Гриффитсов, а углубить чтением "Android. Программирование для профессионалов" Харди и Филлипса.
    Ответ написан
    9 комментариев
  • Есть ли сборник примеров/советов, обучающих С++ программированию?

    myjcom
    @myjcom Куратор тега C++
    Слишком много литературы есть по С++

    макулатуры.

    Т.е. не обучение языку, а обучение бытовому программированию




    В частности интересует: Обработка данных, Абстрактное программирование, Шаблоны

    Бери(те) все по списку

    На буржуйском есть поинтереснее.
    например
    раз
    два
    Ответ написан
    1 комментарий
  • Что ещё изучать кроме Java - для андроид разработки?

    Kotlin
    Ответ написан
    Комментировать
  • Стоит ли учить Kotlin?

    @nrgian
    Изначально с программированием я не в ладах, на учебе была Java, был С++, C#. Но ни одни из них меня не зацепил, не особо хотелось ими заниматься.


    Не в ладах - полно и других профессий, кроме программистов.

    А язык программирования учится очень легко.

    Поэтому особого значения он и не имеет.
    Значение имеют парадигмы, концепции, принципы, паттерны.

    Именно они и учатся сложно.
    Но, одновременно, зато они переходят из языка в язык.
    Выучил первый язык - легко пойдет второй, а третий - вообще влёт.

    А вот есть вариант с котлином. Я очень люблю копаться в android смартфоне (начиная с прошивки, ядер, рутов и т.д., заканчивая работой с .apk файлами на патчи лицензии, взлом премиум фишек в бесплатном софте и т.д.), а Android судя по последней конференции гугл будет плавно переходить на котлин, и данный ЯП сейчас в приоритете.
    Впереди свободное лето и уже хотелось бы найти себя.


    Еще раз:

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

    Первично - собственно умение программировать.
    Это от языка слабо зависит.

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

    Если вы собираетесь заточиться на Android - то вам придется столкнуться и с Java и с Kotlin.
    С обоими. И много.

    Но тут смотря в какой именно сфере Android - где-то там есть и С и C++.
    А где-то с Андроидом придется столкнуться и с C# (Unity) и с Dart (Flutter) и пр.

    Это я так написал - для тех, кому действительно нужно.
    В вашем случае согласен с
    sim3x
    Нет
    Оно вам не нужно


    Ибо вы или чем-то уже занимаетесь.
    Или оно вам не нужно.

    Я очень люблю копаться в android смартфоне (начиная с прошивки, ядер, рутов и т.д., заканчивая работой с .apk файлами на патчи лицензии, взлом премиум фишек в бесплатном софте и т.д.),


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

    Как именно вы это делаете?
    Просто накладываете патчи, созданные другими?
    Так это вообще не программирование.

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

    Патчи ядра - если вы хотите понимать суть - это язык С.
    Патчи функционала Android, патчи игр - это Java/Kotlin/Unity прежде всего.

    Это если вы эти патчи собираетесь создавать самостоятельно.

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