Software engineering

·

Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.

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

Основная [[суть разработки в борьбе со сложностью]]. Сложность можно разделить на две составляющие:

  1. естественная - та, которая изначально лежит в решаемой проблема
  2. случайная - ту, которую мы привнесли сами И отсюда вытекает, что нам необходимо тщательно изучить изначальную проблему, поэтому есть потребность быть экспертом в [[обучение]]. А также не допустить дополнительную сложность, значит необходимо ей управлять.

When we first solve a problem with software, we write some code against the constraints of that particular day. We don’t necessarily know how the problem is going to change. Maybe there will be different customers or stakeholders tomorrow, or maybe the product will expand to serve a related, but different, problem space. We need to be able to change software to accommodate changing circumstances without rewriting it, and that is fundamentally what software engineering is: how to change software systems. Change is the name of the game.

Попробуем составить список тем, которые могли бы быть полезными:

  • [[programming]] - само ремесло по программированию.
  • [[computer architecture]] - архитектура компьютера, включая модели взаимодействия.
  • [[computer science]] - на русском языке, информатика. Наука об алгоритмах и дата структурах в программировании.
  • [[network]] - необходимо знать про сети.
  • system design - дисциплина по выстраиванию крупных систем.
  • software architecture - проектирование любого ПО в общем виде.

Где изучать

Книги

File status created_at finish_date книгодни
Modern Software Engineering Reviewing 2023-09-16 2023-09-14 1 месяц

Курсы

File status created_at finish_date
[[How to design a program]] - 2023-06-03 -
[[Build Your Own Redis]] - 2023-06-03 -

Обратные ссылки