Ответы пользователя по тегу Программирование
  • Почему в программировании столько математики?

    @younghacker
    Потому что в мире много молекул и объекты реального мира состоят из молекул.
    А программирование базируется на математике.
    Программирование решает те или иные математические задачи.
    Будь то построение на плоскость проекции трёхмерной модели освещённой виртуальным светом,
    или простая отрисовка кнопочки с тенью на экране айфона.
    Как ни крутись, а координаты и масштабы нужно посчитать.
    А чего стоит моделирование динамики прокрутки экрана с трением...
    Разумеется использование разных библиотек избавляет от необходимости изобретать велосипед, но ездить на нём всё же нужно уметь.
    Ответ написан
  • Где взять практику программисту?

    @younghacker
    А вы уверены что вы программист?
    У меня идеи были раньше навыков программирования и раньше знания языков.
    Что программировать даже вопросов не возникало.
    Придумывал задачу и писал. Сталкивался с проблемой - брал
    дизассемблер, отладчик и смотрел как это решают другие.
    Читал исходники чужих широко известных библиотек.
    Красивый, понятный, изящный код. Это же кайф, как поэзия!

    Практику можно только напрактиковать! :)
    Тренировка во сне - пока что возможна только в кинематографе.
    Ответ написан
  • Как эффективно учить 2 языка программирования?

    @younghacker
    Нет никакой волшебной пилюли. Накачать мышцы с долговременным эффектом можно только упорными тренировками.

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

    А количество языков... Программирование оно одинаково по сути. В конечном итоге всё транслируется в MOV, DIV, CMP, NE, LOOP и т.д. Отличается только оболочка которую называют языками программирования. Если будете знать суть на должном уровне то потратив день на изучение языковой оболочки, начнёте писать. А через месяц другой упорной работы и изучения станете экспертом в области любого языка. Можете придумать даже свой. Это сейчас модно. Только суть останется той же.
    Ответ написан
  • Насколько важную роль при устройстве на работу программистом играют собственные OpenSource проекты?

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

    А остальное проверяется на испытательном сроке. :)
    Скорее всего наличие открытого кода это требование ведушего проекта чтобы не тратить время на многочасовые собеседования и тестирования.

    PS.
    HR никода не спрашивали меня про публичные репозитории. Но последнее время профиль в LinkedIN разрывается от предложений с астрономическими зарплатами. Наверняка врут. :) Хотят узнать где мои репозитории.
    Ответ написан
  • Как защитить БД Access в Delphi?

    @younghacker
    В вопросе явно мало вводных данных.

    Аксес для этой задачи однозначно не подходит Хотя если построите трёхзвенное приложение и будете шифровать все критические поля то можно помучаться.

    Я бы сделал так:
    Разместил бы базу на другом сервере. FireBird.
    В ней завёл бы обычного юзера. Пользователю разрешл бы читать только определённые объекты tables, views и выполнять определённые процедуры. Другими словами сделал бы так чтобы пользователь не мог читать писать то что ему нельзя. Там же на сервере запустил бы другое приложение задача которого подсоединиться к базе как sysdba и прочесть табличку с логинами паролями пользователей и сидеть ждать соединения пользователя. Вторая задача серверного приложения принимать соединения по ssl и дешифровать их. Тут же должна быть защита от подбора пароля.
    На клиенте бы использовал ssl.
    Но у этого решения есть большая проблема чтобы обезопаситься от dll injection нужно избавиться от внешних ssleay.dll и fbclient.dll нужно взять их исходники и внедрить в приложение без использования техники dll. А это явно не Delphi.

    Но главный вопрос что Вы хотите сделать?
    Если пользователь может запустить приложение и пользоваться им то что ему мешает сделать простой скрипт который распарсит данные из базы? Любое Windows GUI приложение которое использует Windows API может быть обмануто внешней программой.

    Если задача ограничить пользователя только его песочницей -- то тут нужно работать над устройством базы данных её структурой и бизнеслогикой. Firebird позволяет используя только возможности сервера сделать различные ограничения в том числе отображать записи из таблицы избирательно через view (блокируя при этом доступ к таблице).

    Но если база физически доступна пользователю то шифруйте её. Возможно есть какие-то готовые решения.
    Ответ написан