Подтвердить что ты не робот

Какая концепция компьютерных наук вы цените больше всего?

По какой-то причине я замечаю, что в конечном итоге я использую много конечных автоматов на работе. В частности, когда я реализую собственный протокол TCP/serial, они очень полезны и дают очень надежный результат (на мой взгляд).

Мои дни в классах CS давно позади меня. Таким образом, мое воспоминание о том, что я узнал, нечеткое. Мне было любопытно, есть ли другие концепции, которые используют люди, о которых я забыл.

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

-Роберт

4b9b3361

Ответ 2

Держите его простым. Если возможно, сделайте это проще.

Ответ 4

Модель контроллера модели Model - это тот, который я использую больше, чем любой другой.

Ответ 6

Копирование и изменение существующего кода.

Ответ 7

Разрушение проблемы на более мелкие проблемы, я думаю, это то, что я часто делаю, даже если не думаю об этом:

  • это помогает добраться до решения.
  • а также помогает получать более чистый код (например, меньшие функции/методы, которые выполняют "единичный материал" ).

Тем не менее, может быть, это не действительно "концепция"... Событие, если я помню некоторые уроки алгоритма, где нас учили "разделять, чтобы побеждать" ^^


Если вы хотите что-то более конкретное, я бы пошел с:

  • тестирование; это то, что мы не делаем, когда мы просто не в школе... И мы узнаем, как трудно это сделать, что мы должны делать больше, и лучше!
  • Некоторые шаблоны проектирования, возможно,
  • Мышление перед кодированием - возможно, самое важное в нашей работе ^^

Ответ 8

Объектно-ориентированное программирование и структура данных

Ответ 9

Не повторяйте себя.

Ответ 10

Сложность.

Ответ 11

Сложность времени/пространства.

Ответ 12

Concurrency и параллельных вычислений. Я не касался его в течение многих лет, но он становится более актуальным с каждым годом (и каждый сердечник рассчитывает удвоение).

Ответ 13

Синглтон, шаблоны и шаблоны стратегий.

также: ЯГНИ - Вам это не понадобится
KISS - Держите его простым, глупым

Ответ 14

Абстрактные

Ахо и Ульман пишут во вступлении к Основы компьютерной науки

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

Ответ 15

Концепция "Google";)

Ответ 16

Оценка сложности пространства/времени и использование соответствующих структур данных для получения более простого и быстрого кода. Моделирование некоторых проблем, поскольку графики также пригодились время от времени.

Ответ 18

Избегая преждевременных оптимизаций, как сказал г-н Кнут:

"Мы должны забыть о небольшой эффективности, скажем, около 97% времени: преждевременная оптимизация - корень всего зла". (из Википедии)

Ответ 19

Анализ требований и реляционные базы данных.

Ответ 20

Хранение инкапсуляции или информации

Ответ 21

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

Ответ 22

"Любая проблема в информатике может быть решен другим слоем косвенности". - Дэвид Уилер, начальник программист для проекта EDSAC в начало 1950-х годов

При хорошем применении это приводит к разумному обобщению, как показано в примерах, таких как абстрактные типы данных, классы повторного использования с виртуальными методами и т.д.

При плохом применении он приводит к чрезмерно косвенным реализациям с большим количеством служебных ресурсов во время выполнения из-за чрезмерного обобщения, например. архитектуры Intel 432.

Ответ 23

Мусор, мусор.

Ответ 24

Объектно-ориентированное программирование

Ответ 25

Это не CS-специфический, а просто помните, что достижение простых или сжатых результатов - это и хорошие цели. Если вы можете создать что-то простое и лаконичное, то вы, вероятно, будете производить высококачественную работу.

Ответ 26

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

Ответ 27

Решение проблем...

Ответ 28

Связь и сцепление.

Это, по сути, парадигма "разделяй и властвуй" в основе всего программного обеспечения.

Вы ищете ортогональные понятия и ортогональные программные объекты, те, которые имеют свободную связь и высокую степень сцепления.

Используется gosub в Basic? Вы используете C & C.

Ответ 29

Это университетские курсы/концепции, которые я нашел наиболее полезными для своей профессиональной карьеры

  • Введение в базы данных
  • СУБД - как они работают.
  • Алгоритмы и структуры данных
  • Концепции объектно-ориентированного программирования
  • Шаблоны проектирования (в основном MVC, наложение приложений)
  • Разработка требований
  • Управление качеством программного обеспечения
  • Показатели программного обеспечения

Угадайте, все они... Я не упоминал о конкретных технологиях здесь, а только о концепциях.

Ответ 30

Чем дольше возникает ошибка в программном обеспечении, тем более дорогостоящим является обнаружение и исправление тем меньше вероятность правильного исправления.