• С чего начать ребёнку программировать?

    Neznayka1979
    @Neznayka1979
    Интересы - IT, психология...
    Есть такое мнение, что практическое применение какого-либо яп в конечном итоге влияет на мышление человека...
    Для начинающих лучшим решением пожалуй будет освоить первым - функциональный яп.
    Почему функциональный ? Потому что функциональный яп не содержит "ничего лишнего" и тем самым поможет освоить суть алгоритмов и выработать соответствующее мышление, т.е. научит мыслить Логически.
    Подводя итог вышесказанному начинающим программистам лучше начать с изучения одного из функциональных яп - Haskell или Scala, Lisp...
    А уже после можно переходить на яп С (Си), который поможет понять многие другие очень важные детали...
    И уже освоив на достаточном уровне яп С можно переходить на другие яп (С++, Java, С#...)
    Да, и ещё желательно (обязательно) освоить англ.яз и параллельно осваивать - Дискретную математику.
    Но учитывая возраст вашего ребёнка (7 лет) можете купить данную книгу:
    www.ozon.ru/context/detail/id/32092949
    А если интересует геймдев (разработка игр), то посмотрите тут:
    https://thequestion.ru/questions/205745/chto-uchit...
    https://habrahabr.ru/company/miip/blog/313326/
    https://habrahabr.ru/post/319582/
    https://dou.ua/lenta/articles/gamedev-for-programm...
    Ну и видео:
    https://www.youtube.com/playlist?list=PLR4wcBxrUGP...
    Ответ написан
    Комментировать
  • С чего начать ребёнку программировать?

    @d-stream
    Готовые решения - не подаю, но...
    Пусть ребенок сделает своего рода "первый шаг": найдет и выберет что-нибудь САМ.
    Ответ написан
    5 комментариев
  • Нужно ли защищать данные в зависимых таблицах с помощью Foreign Key?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это только вы можете решить, нужно ли вам сохранять ссылочную целостность базы.
    Ответ написан
    Комментировать
  • Как ограничить добавление строки в таблицу в БД MS SQL по атрибуту?

    tsklab
    @tsklab Куратор тега SQL Server
    Здесь отвечаю на вопросы.
    Как ограничить добавление строки в таблицу в БД MS SQL?

    Из справки:
    CREATE TABLE CheckTbl (col1 int, col2 int);
    GO
    CREATE FUNCTION CheckFnctn()
    RETURNS int
    AS 
    BEGIN
       DECLARE @retval int
       SELECT @retval = COUNT(*) FROM CheckTbl
       RETURN @retval
    END;
    GO
    ALTER TABLE CheckTbl
    ADD CONSTRAINT chkRowCount CHECK (dbo.CheckFnctn() >= 1 );
    GO

    Понятно, что в функцию проверки нужно передавать id_студента и использовать его в запросе.
    Ответ написан
    Комментировать
  • Нужно Ваше мнение - по какому материалу легче научиться программировать: видео или статьи?

    Почему бы не давать видео без исходников? На ларакастах так подача материала и происходит. В итоге смотришь, как что-то реализуется, затем пишешь по аналогии сам, ну и смотришь документацию попутно в соседней вкладке. А вообще главное не способ подачи, а замотивированность ученика, если я понимаю, что мне нужен этот материал, я выучу его хоть по видео, хоть по статье. Если мне это нафиг не надо, то хоть вы телепатию изобретите - толку не будет.
    Ответ написан
    3 комментария
  • Нужно Ваше мнение - по какому материалу легче научиться программировать: видео или статьи?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Лучше - это описание вместе с ссылкой на временную метку в видео-уроке с заранее заданным интервалом воспроизведения:
    Кликнул, посмотрел кусочек, выполнил сам и дальше читаешь и ВНИКАЕШЬ!

    Без роликов - становится сложнее понимать, так как всё чаще, современные IDE-интерфейсы (например, Unity3d) предусматривают "сборку проекта" в GUI "мышью" с помощью drag-n-drop манипуляций. Что лучше увидеть в анимации, чтобы правильно понять, повторить и запомнить.
    Ответ написан
    Комментировать
  • Как изменить тип параметра в унаследованном методе C#?

    Nipheris
    @Nipheris Куратор тега C#
    То, что вы просите, невозможно сделать по одной простой причине. Наследование в .NET бывает только "настоящее", т.е. когда устанавливается отношение is-a. Ваш MyTCPStream не может быть Stream-ом, если не реализует метод Read (Byte[], Int32, Int32). Спросите себя - что произойдёт, если я скастю объект MyTCPStream к Stream, и попытаюсь вызвать Read(Byte[]...)?

    Вы конечно можете в теле метода бросить InvalidOperationException, но это однозначно признак неверно выбранной абстракции. Лично я не понимаю, зачем вам мог понадобиться TCPStream, из которого вы читаете не байты, а символы.

    Для реализации процесса чтения более сложных объектов (а символ это более сложная штука, т.к. его представление в потоке зависит от кодировки) в дотнете есть TextReader и его наследники. Было бы хорошо, если б вы описали изначальную задачу - возможно мы посоветуем вам что-то полезное, а не странные хаки.
    Ответ написан
    3 комментария
  • Как узнать размер консольного окна в Delphi?

    SagePtr
    @SagePtr
    Еда - это святое
    Подозреваю, что этой функцией:
    https://msdn.microsoft.com/ru-ru/library/windows/d...
    Ответ написан
    Комментировать
  • Как лучше хранить данные о трафике в БД?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Подскажите, как лучше хранить все это дело в базе? Я думал хранить в одной величине, например, в байтах, но что-то слишком большие цифры получаются.
    Если эти числа не выходят за максимальный допустимый размер (диапазон), например 9223372036854775807 - знаковое, 18446744073709551615 - без знаковое BIGINT, то скорее всего, ничего лучше, для хранения чисел (чем специальный тип БД, предназначенный для хранения именно чисел) - Вы не найдете.

    P.S. Если нужна точность до байт - хранить нужно в байтах. Если до мегабайт - соотв. округлять значения и хранить в мегабайтах. Т.е., в зависимости от необходимой точности можно выбрать конечную величину. Обработка больших цифр (целочисленных) - для компьютера не есть проблема, числа обрабатываются в ряде случаев, лучше чем например, текст.
    Ответ написан
    1 комментарий
  • Почему функция обработки ошибок по какому-то "соглашению программистов" должна первым параметром принимать/возвращать код ошибки, а не сообщение?

    gzhegow
    @gzhegow Автор вопроса
    aka "ОбнимиБизнесмена"
    Судя по числу подписавшихся одно хочу точно сказать, если на форуме влупить фразу "по соглашению программистов" верит чрезвычайно больше народу, чем если влупить "я тут подумал, почему бы не сделать..." - видимо так и работает
    Ответ написан
    1 комментарий
  • Как сделать функционал вставки моего кода на сайт другим людям, как это делает вк?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Я за стандарты
    https://habrahabr.ru/post/141303/
    Ответ написан
    Комментировать
  • Как называется должность специалиста отвечающего за техническую часть hardware проекта?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Технический директор, главный инженер.
    Вот он уже подбирает команду для того, чтобы достичь каких-то результатов.
    Ответ написан
    3 комментария
  • Аудит пользователя SYS, как?

    @Oraclist
    Оффтоп. По-моему, вы боретесь с симптомами, а не с болезнью. SYS имеет исключительные права. Если надо он может всё, в том числе включить и отключить любой аудит. В аудите нет смысла, если его можно обойти. Это как аудировать пользователя root в Unix.
    Ответ написан
    4 комментария
  • Какую версию SQL Server можно использовать для работы с VS 2015?

    @d-stream
    Готовые решения - не подаю, но...
    Собственно формальный ответ - "никакую". Для работы самой студии SQL как таковой не требуется.
    А для разработки чего-то своего - в общем-то любую версию. C точки зрения движения на острие прогресса - видимо самую новую.
    Ответ написан
    Комментировать
  • Как учиться новому после рабочего дня?

    Поработайте годик, не меньше, чтобы на следующей работе можно было предъявить хотя-бы год опыта. В свободное время ,если его не много, лучше изучать какие-то базовые вещи, теорию. Практику лучше стараться получать на работе, предлагая и обосновывая начальству какие-то вещи, которые будут способствовать развитию. Это не всегда получается, но много и не обязательно. Все равно толку будет не много.

    Через год начинайте ходить на собеседования. Вас пугают требования в описании вакансии? Когда я читаю требования на работе, где сейчас тружусь, то задаюсь вопросом "кто этот бред писал? и на хрена нам вот это все что там написано?". А все потому что пишут тексты HRы со слов "кого-то из отдела", сказанных несколько лет назад.
    В реальности по моим наблюдениям можем отказать довольно сильному разработчику потому что просто в данный момент вакансия не горит, а иногда, когда отдел завален работой, берем вполне себе средних, просто потому что срочно нужен. Аналогичная ситуация была и на предыдущей работе. Поэтому лично мое мнение - чтобы устроиться на работу надо обладать не только и не столько перечисленными в вакансии навыками, а скорее откликнуться в удачное время :) Ну и что-то знать конечно.

    И самое главное: два-три месяца работы в компании с более высоким уровнем разработки, чем у вас в данный момент, дадут вам больше, чем год бессонных ночей после работы. Поэтому не стоит пытаться сначала дорасти до определенного уровня, а потом устраиваться. Скорее всего не дорастете, только время потеряете. Изучайте базу и в бой!
    Ответ написан
    7 комментариев
  • Изначальная память процесса и 4-х миллионный байт?

    @none7
    Поле ImageBase указывающее системе в какую часть виртуальной памяти процесса нужно разместить исполняемый файл. Традиционно .exe файлы размещают по адресу 0x400000, это не значит, что он занимает 4 мегабайта, просто адрес. Dll традиционно размещают по адресу 0x10000000; поскольку для dll весьма возможен конфликт адресов, к ним обязательно прикрепляют релоки. Адрес размещения .exe и .dll строго говоря может быть любым кратным 0x10000, но не 0, не адрес ntdll.dll и не в пространстве ядра. Сам же исполняемый файл может занимать минимум 1 страницу(4Кбайт на x86) памяти + минимум по 1 странице на секцию, независимо от адреса размещения исполняемого файла.
    То, что без таблицы импорта нельзя ничего сделать, строго говоря неверно. Можно через стандартные адреса выяснить где расположены системные .dll и их экспортируемые функции и через них загрузить всё, что необходимо. Но без самих системных .dll можно только зависнуть или умереть. Подгружать нужно то, что необходимо для работы кода приложения, это полностью зависит от самого приложения. Например для классического HelloWorld
    void func() {
        MessageBoxA(NULL, "Hello", "Hello, World!", MB_OK);
        ExitProcess(0);
    }
    нужны user32.dll:MessageBoxA и kernel32.dll:ExitProcess.
    Если обратиться к адресам памяти никак их не проинициализировав, то произойдёт исключение. Если при этом не настроены обработчики исключений, то выскочет традиционное окошко.ef716e0677a846e0a53b4665103d2029.png
    Ответ написан
    6 комментариев
  • Как не засыпать при чтении?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Вы пытаетесь себя обмануть, говоря что эта книга (с большим количеством информации) вам интересна.

    На самом деле нет, не интересна. Может быть полезна, может быть развивает, но неинтересна.
    + банальная усталость.
    Ответ написан
    3 комментария
  • После вытаскивания HDD из ПК и установки его обратно система перестала загружаться, почему?

    opium
    @opium
    Просто люблю качественно работать
    ну логично что проблема в контакте или шлейфе если на обоих одно и тоже
    ну либо в питании винтов.
    Ответ написан
    Комментировать
  • Почему запись данных в конец файла атомарна, если данные не превышают размер блока файловой системы?

    Потому что так устроен жёсткий диск. Жёсткий диск может прочитать или записать минимум 1 сектор. Он не может прочитать или записать 1 байт. Размер сектора же уже зависит от железа.
    К физическому размеру сектора дополняется логический размер кластера файловой системы. Обычно он тоже пишется\читается атомарно, но это уже искусственное программное ограничение. И оно может быть снято планировщиком.

    Например, размер сектора 512 байт, а размер кластера 1024 байта.
    Вы читаете файл длинною 1 байт.
    Т.к. размер кластера 1024, то файловая система запросит с диска 2 сектора по 512 байт.
    Затем вы решили изменить 1 байт и записать.
    Файловая система отправит на запись 2 сектора по 512 байт. Тут в действие может вступить планировщик, определить какие данные изменились и реально на запись отправить лишь 1 сектор.
    Ответ написан
    Комментировать
  • Как и где можно подрабатывать pl/sql девелоперу?

    @Draconian
    Oracle Developer
    Оракл есть деньги закупать только у крупных компаний, которым фрилансеры не нужны. Так что в этой сфере всё сложно с подработкой.
    Чтобы, например, оптимизировать чужие запросы, нужно знать предметную область, в которой заказчик работает, и без этих знаний, как правило, не подпускают людей к базе данных.
    Ответ написан
    Комментировать