Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти

 
Расширенный поиск

801039 Сообщений в 11262 Тем- от 88249 Пользователей - Последний пользователь: AleksAleks

18 Август 2022, 11:07:09
ADSL.Kirov.RuСообществаПрограммирование (Модератор: Ivanidze)Тема: ЧАВО: Прежде чем задать вопрос, прочитайте это.
Страниц: [1]   Вниз
Печать
Автор Тема: ЧАВО: Прежде чем задать вопрос, прочитайте это.  (Прочитано 1797 раз)
Shire
Ветеран
*****
Пол: Мужской
Сообщений: 1015



« : 15 Март 2009, 04:41:40 »

Давайте создадим FAQ для форума и прикрепим его к теме. Изменения, дополнения и обсуждения приветствуются.

Q: А что это вообще за форум и что в нем обсуждается?
A: Этот форум предназначен для программистов и беседы здесь ведутся о программировании. Софт, способы работы с ним и прочие непрофильные вопросы обсуждаются только с точки зрения программистов, иначе тему перенесут.

Q: Почему все не на моем родном языке?
A: Исторически сложилось, что в программировании используется английский язык, как международный. Для того, чтобы не испытывать проблем, нужно хотя бы базовое знание технического английского, поскольку большинство документации, статей, библиотек языков программирования связано с английским. Без этого будет очень трудно. Исключение составляют только локальные языки, например, 1С скрипт, или локализованный Visual Basic.

Q: Почему так много программистов?
A: Потому что программистами сейчас ошибочно называют практически любого IT-специалиста, даже не занимающегося непосредственно программированием – системного администратора, администратора БД, специалиста по информационной безопасности. На самом деле классификация даже программирующих достаточно широка.

Q: Как можно классифицировать программистов?
A: Они делятся на два главных класса: системные и прикладные. Системные программисты разрабатывают операционные системы, общие системные библиотеки, драйверы и сервисы – словом, обычному пользователю их работа практически не видна. Системные программисты стремятся к универсальности, чтобы их компоненты можно было использовать разными прикладными задачами одновременно. Прикладные программисты, используя базу, созданную системными программистами, пишут уже конкретные приложения, решающие конкретные задачи. Аналогия с машинами – системные программисты делают шасси с двигателем, а прикладные – кузов и салон. На одном и том же шасси можно построить несколько моделей. Также программисты классифицируются по специализации - области, в которой они программируют.

Q: Я хочу заняться программированием, с чего мне начать?
A: Сначала нужно определиться, нужно ли это вообще. Программирование зачастую предполагает знание многих предметов и смежных областей, чтобы начать хотя бы сносно программировать, требуется особый склад ума и, как правило, год-два для получения удовлетворительных результатов. Начинать лучше с изучения азов. Обычно это арифметика, алгоритмы, теория информации, принципы работы современных электронных машин. Изучать сразу конкретный язык без знания, как функционирует компьютер, сродни нажиманию кнопок на черном ящике. Документация по азам лежит в библиотеке, интернете или здесь: ftp://ftp.adsl.kirov.ru/Docs/Programming/ .  Проще говоря, программирование – это процесс обучения компьютера тем или иным вещам – программист пишет инструкцию, а компьютер ее читает и выполняет по пунктам.

Q: Что мне нужно, чтобы начать программировать?
A: Это зависит от выбранного языка и среды. Обычно достаточно текстового редактора (notepad) и окружения, необходимого для выбранного языка – для компилируемых языков это компилятор (compiler), для скриптовых – интерпретатор (interpreter), для управляемых языков – виртуальная машина (VM). Еще, особенно на первых порах, нужен отладчик (debugger) – программа, которая может остановить написанную вами программу в любом месте и показать состояние окружения – обычно это используется, если программа работает не так, как хотелось, чтобы разобраться, что, когда и где пошло не так. Для удобства редактор, окружение и отладчик совмещают в одном пакете, который называют IDE (Integrated Development Environment). Примеры IDE – Visual Studio, Microsoft Access, Delphi, 1С:Конфигуратор, Borland C++ 3.1. Большинство необходимого можно найти на FTP: /Programming/.

Q: С какого языка лучше начать?
A: Общего ответа на этот вопрос нет, так как все сразу начинают советовать свой любимый язык.  Можно начать изучение снизу вверх, т.е. сначала понять полностью, как функционирует центральный процессор и медленно подниматься от Assembler/C/Pascal к C++/Delphi, а от них – к виртуальным машинам – C#/Java. Это достаточно долгий и трудный путь, идти им рекомендуется будущим системным программистам, архитекторам и библиотекарям. Для нетерпеливых прикладных программистов (в т.ч. веб-дизайнеров), жаждущих сразу же получить результат, а потом уже разобраться в деталях – есть путь сверху вниз – от скриптовых языков – Python/PHP/JavaScript/Basic к виртуальным машинам – C#/Java и, при необходимости, опуститься до компилируемых C++/Delphi. Многие начинают именно с профильного языка своей области. Иногда для того, чтобы определиться, достаточно просто посмотреть минимальную программу на языке программирования – обычно это программа, которая выводит на экран «Hello, world!», либо песню 99 bottles /Docs/Programming/99bottles.chm . Не бойтесь пробовать. Если вы знаете основные принципы, то сравнительно легко сможете перейти на другой язык.

Q: Почему языков программирования так много?
A: Потому же, почему и много языков людей на земле. Есть множество областей применения программирования, и каждая имеет свои специфические особенности, для чего и создавались различные языки. Есть и универсальные языки, которые годятся практически для всех областей и сфер – например, C++, Pascal, C#. Универсальность в них достигается за счет множества специализированных библиотек.

Q: Компилятор, интерпретатор, виртуальная машина – в чем их различие?
A: Обычно программа – это текст, состоящий из команд на одном из компьютерных языков. Чтобы программа выполнилась, нужно перевести этот текст из человеко-читаемого вида в машинный код. Именно способом перевода и различаются. Возьмем в качестве аналогии рецепт на иностранном языке (исходник на языке программирования).

Компилятор: Для того, чтобы приготовить блюдо(написать программу), берется словарь, рецепт(исходник) переводится полностью на родной язык(машинные коды) и записывается на бумажке (исполнимый файл, напр. .exe).  То есть, когда рецепт будет нужен, то можно его быстро прочитать (выполнить).
Плюсы: быстрота выполнения (переводится 1 раз, готовится – много), для выполнения не нужен исходник.
Минусы: бумажки нужно писать для каждого языка. При изменении исходного рецепта придется снова все переводить на все языки. Сложно проверять и искать ошибки в переведенном рецепте – сложно сопоставить фразы исходника с фразами перевода.

Интерпретатор: Готовка ведется со словарем – перевели фразу – выполнили ее, перевели другую фразу – снова выполнили, никаких других бумажек не требуется,
Плюсы: очень просто производить изменения в рецептах, просто отлаживать, один рецепт годится для всех языков.
Минусы: гораздо медленнее, чем читать на родном языке, да и потребление памяти гораздо больше

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

Q: Что такое SDK и для чего он?
A: Software Development Kit - это набор для интеграции в какой-либо продукт. Может содержать документацию по взаимодействию с этим продуктом, определение интерфейса для компилятора, служебные утилиты и примеры. Наиболее известный SDK - это Microsoft Platform SDK. Он состоит из заголовков (.h), библиотек (.lib), утилит, которые позволяют писать программы для платформы Microsoft Windows, использовать системные библиотеки и сервисы. С недавних пор в него также включают .net Framework SDK - пакет для разработки .net приложений. Игровые программисты не обходятся без DirectX SDK - этот набор позволяет разрабатывать мультимедийные программы с расширенными возможностями графики, звука, и управления. Также известны SDK к Miranda, WinAMP, Foobar 2000, и прочим составным программам.
« Последнее редактирование: 15 Март 2009, 13:07:50 от Shire » Записан
Shire
Ветеран
*****
Пол: Мужской
Сообщений: 1015



« Ответ #1 : 26 Апрель 2009, 13:13:03 »

Q: Я написал в форум "ПАМАГИТЕ РЕШИТЬ ЗАДАЧУ", но мне почему-то никто не отвечает и не помогает.
A: Есть несколько пожеланий тем, кто хочет реально получить помощь.
  • помните, что здесь никто никому ничего не должен. Если вы не уважаете отвечающего - он либо пройдет мимо, либо ответит так же неуважительно.
  • пишите внятно, соблюдая регистр букв, без паразитических плачущих смайлов вроде ((((((( или  Плачущий Плачущий Плачущий (хочется просто пристрелить такое "эмо")
  • будьте терпеливы. Решение вашей темы для большинства может быть нудно и неинтересно. Программисты любят интересные задачи, решения которых могут пригодиться впоследствии им самим.
  • вставки кода оформляйте моноширинным шрифтом (тег code)
  • не заставляйте отвечающих заниматься телепатией: если это не понятно из контекста, укажите целевую ОС, среду разработки, используемые библиотеки
  • четко формулируйте цель. Угадывать, что именно хотел задавший вопрос - пустая трата времени.
  • обязательно напишите, что вы уже сделали, и где именно возникло затруднение. Отсутствие этого будет трактоваться, как лень - а кому нравится помогать ленивым?
  • не ждите готовых исходников - довольствуйтесь изложенной идеей. Если вы не можете переложить идею в код, то, по всей видимости, вам нужно что-то менять в жизни (язык, увлечение, учебное заведение, профессию).
  • если кто-то из отвечающих резко (по вашему мнению) покритиковал вас, выразите это одной фразой. Не нужно разводить флейма, в котором затеряются (или вообще не появятся) более адекватные ответы.
Записан
Shire
Ветеран
*****
Пол: Мужской
Сообщений: 1015



« Ответ #2 : 28 Апрель 2009, 22:52:43 »

Q: Я написал программу, протестируйте и покритикуйте ее!
A: Посетители этого форума в большинстве - осторожные до параноидальности люди. Для того, чтобы они что-то скачали и, хуже того, запустили, нужно:
  • написать как можно более полную аннотацию к программе - что она делает, как делает, чем отличается от аналогов, под какие ОС работает.
  • желательно предоставить пару скриншотов.
  • чтобы люди не тыкали пальцами в черный ящик, приложите исходники, хотя бы их часть. Иногда проще разобраться в программе по коду, и выловить ошибку даже без запуска программы. К тому же, компиляция из исходников - иногда единственный способ получить доверие на запуск у особо параноидальных личностей
  • вряд ли кому-то будут интересны списанные с учебников куски программ - пишите лучше самостоятельно.
  • выкладывайте программы по возможности на этот сайт или на FTP. К сожалению, не у всех людей бесплатный внешний интернет.
  • перед тем, как выложить программу "на люди", протестируйте ее самостоятельно на "голой" целевой системе - проще всего это сделать с помощью эмулятора PC (например, VirtualBox или VirtualPC).
Записан
SergeyAB
Новичок
*
Сообщений: 9


« Ответ #3 : 23 Март 2013, 14:08:27 »

из первого поста: "есть путь сверху вниз – от скриптовых языков – Python/PHP/JavaScript/Basic к виртуальным машинам – C#/Java и, при необходимости, опуститься до компилируемых C++/Delphi. Многие начинают именно с профильного языка своей области."

IMHO: python and nothing else/

"К тому же, компиляция из исходников - иногда единственный способ получить доверие на запуск у особо параноидальных личностей" - ну ты жгёшь )))
Записан
Shire
Ветеран
*****
Пол: Мужской
Сообщений: 1015



« Ответ #4 : 29 Март 2013, 19:31:43 »

IMHO: python and nothing else/
Вообще-т это тема - FAQ, хочется выразить своё мнение - создавай новую. Да и на ЛОРе уже сказали:
> Смерть любого свободного проекта начинается тогда, когда в нем разрешают кодить на питоне.
Записан
Страниц: [1]   Вверх
Печать
ADSL.Kirov.RuСообществаПрограммирование (Модератор: Ivanidze)Тема: ЧАВО: Прежде чем задать вопрос, прочитайте это.
Перейти в: