Программирование и кодирование. Компьютерная и программная инженерия. В чём разница?

?????????????????????????????????????????????????????????????????????????????????????????????????????????????

КН/КИ/ПИ и Программирование/Кодирование

Компьютерные науки (КН), компьютерная инженерия (КИ), программная инженерия (ПИ), программирование и кодирование – это всё связанные между собой термины, но при этом они немного отличаются, вводя в заблуждение новичков.

В первую очередь нужно различать КН/КИ/ПИ и программирование/кодирование. КН, КИ и ПИ – это области изучения. Говорить «я изучаю компьютерные науки» – это то же самое, что говорить «я изучаю химию» или «я изучаю литературу». И наоборот, программирование и кодирование – это деятельность, это то, что вы делаете. Используя метафору, КН/КИ/ПИ – это музыкальная теория, в то время как кодирование/программирование – это игра на конкретном инструменте.

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

Другая разница состоит в том, что КН/КИ/ПИ познаётся через изучение, в то время как программировать можно научиться только через практику. В сущности, большинство университетов и школ формально учат одному языку, чтобы познакомить с азами кодирования, а затем фокусируются на обучении КН, КИ и ПИ, позволяя вам самим учиться программировать через практику и выполнение домашних заданий.

КН, КИ и ПИ

Далее, вам надо понимать разницу между КН, КИ и ПИ. В двух словах, несмотря на большое пересечение, «компьютерные науки» – больше не про компьютеры или науку, а скорее про прикладную математику, изучающую концепцию вычислимости. Компьютерная инженерия похожа на КН, но фокусируется на низкоуровневых аппаратных средствах компьютера – она как бы промежуточное звено между компьютерными науками и электротехникой. И наконец, программная инженерия учит тому, как строить большие и сложные программные комплексы таким образом, чтобы они не падали под собственным весом – как КН и КИ, но меньше теории.

Программирование и кодирование

И наконец, осталось программирование и кодирование. Разница между этими терминами очень маленькая, часто они взаимозаменяются. В целом, «программирование» имеет более позитивные ассоциации, нежели «кодирование». Если вы говорите «я программист», это подразумевает определённый уровень профессионализма – что вы не только умеете писать код, но и имеете сильную базу в основах программирования и теории, знаете, как общаться с клиентами и работать в команде и т.д.

В противоположность, если вы говорите «я кодер», то это подразумевает, что вы фокусируетесь больше на написании кода, чем на остальных вещах.

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

По материалам страницы «/r/learnprogramming/wiki/faq»