코딩이 중요합니까? [닫은]


9

코딩은 컴퓨터 과학에 능숙해야합니까? 알고 있어야 알고리즘을 구현해야합니까?

" 난 절대 코딩하지 않는다 "는 한 Cs 교수의 관용구를 기억합니다


32
코딩이 중요한지 프로그래머 그룹에 문의하는 중입니다 ... 정확하게 편향되지 않은 응답을 얻지 못할 수 있습니다.
Rachel

25
교수의 관용구와 관련하여 코드를 작성하지 않으면 다른 사람에게 코드 작성 방법을 가르 칠 자격이 없습니다. 그의 가르침이 순전히 이론적이라면, 여전히 코딩 기술을 사용하면 도움이 될 것입니다.
Robert Harvey

19
수영을 할 수없는 사람에게서 수영 레슨을 받으시겠습니까?
Steven A. Lowe

5
@Steven A. Lowe : 비 수영 교수는 수영이 아닌 수생 생리학을 가르친다 고 생각합니다. 그래도 수영을하지 않으면 질소 마취가 어떻게 느껴지는 지 알 것입니다.
Javier

4
@Javier : 수중 철거를 가르치고있을 가능성이 높지만 SCUBA 인증조차받지 않았습니다. 그런 사람들 ( "교수"이외의)을위한 기술 용어는 "posepose";-)
Steven A. Lowe

답변:


27

당신은 정말 알고리즘을 알 수 없습니다 아니라 당신이 그것을 코딩 할 때까지.


3
이것은 반드시 사실이 아니며, 알고리즘을 이해하고 실제로 코딩하지 않고 상황이나 문제에 적용 할 수 있습니다.
aggietech

10
@aggietech : 여기서 핵심 단어는 "잘"입니다.
Robert Harvey

2
@aggietech, Robert가 맞았습니다. 알고리즘을 앵무새로 만들 수는 있지만 실제로 작동 시키려고하면 알고리즘에 대해 얼마만큼 배워야하는지 알게됩니다.

3
당신이-루프와 거품 종류에 대해 이야기한다면, 그것은 별거 아니,하지만 그것으로 실제 문제를 유전자 알고리즘에 책을 읽고 실제로 해결 사이에 큰 차이가있다
스티븐 A. 로우

2
@Steven, 그래, 복잡성은 그것과 관련이 있습니다.

19

코딩은 교수에게는 중요하지 않지만, 할 일에 대한 대가를받지 않는다는 점을 명심해야합니다. 그는 SAY 사물 (및 쓰기 사물)에 돈을 지불합니다.

저는 전 수학 교수이므로이 역학을 잘 이해하고 있습니다.

그의 길을 따르고 이론적 인 컴퓨터 과학자가 되려면 코딩이 덜 중요합니다. 그러나 그렇게한다면, 일을하기로 선택한 사람들이 벌어 들인 자원으로 급여를 받는다는 것을 알고 겸손을 유지하는 것을 잊지 마십시오.


3
경험의 목소리. 이것은 내가 본 것 같은 교수의 가장 좋은 요약에 관한 것입니다.
TehShrike

1
그렇습니다. 다른 사람들에게 "잘"하도록 가르치려면 "할 일"을 연습해야한다고 덧붙입니다.
Beth Whitezel

@BitOff : 동의하지만 "if"도 "if if"입니다. 코딩하지 않는 교수는 비즈니스 교육 소프트웨어 개발이 없지만 복잡성 이론을 가르치는 데 완벽하게 적합 할 수 있습니다. 이 경우에, 그가 학생들에게 가르치는 것은 정리를 증명하는 방법이므로, 유일한 요구 사항은 이론을 증명하는 연습 (코딩이 아님)이 있어야한다는 것입니다.
ShreevatsaR

@ShreevatsaR 예 동의합니다. 그리고 실제로 실제로 코드를 많이 작성한다는 사실에 엄격하지는 않습니다. 훌륭한 코더는 좋은 선생님을 거의 만들지 않습니다. 교사가 자신의 주 요점을 알면 보충 할 수 있습니다. 우리는 산업계 사람들을 교실로 데려 오는 지역 프로그램을 가지고 있습니다. 교사는 가르치는 전문가이며 코딩이 가능하며 학생들의 이익을 위해 업계 사람으로부터 정보를 추출하는 방법을 알고 있습니다.
Beth Whitezel

16

컴퓨터 과학은 천문학보다 망원경에 관한 것이 아닙니다.

— Edsger Dijkstra

나는 동의하는 경향이있다.


2
좋습니다, 그러나 이것은 질문과 어떤 관련이 있습니까?
Robert Harvey

2
"컴퓨터 과학에 능숙해야 코딩이 중요합니까?" 컴퓨터가 관련이 없다면 어떻게 컴퓨터의 물리적 코딩이 중요 할 수 있습니까?
ElGringoGrande

1
@Robert Harvey : 컴퓨터 과학은 컴퓨터에 관한 것이 아니며 많은 천문학 자들이 유리 렌즈를 들여다 보는 데 거의 시간을 소비하지 않습니다. 일부는 결과를 분석하기 만합니다. 컴퓨터 프로그래밍에서 중요한 발견의 절반은 컴퓨터가되기 전에 알려졌습니다.
Orbling

2
@Robert Harvey : 컴퓨터 과학은 단순히 프로그래밍 방법이 아니라 계산 과학입니다. 순수 이진 인코딩 외부에서는 컴퓨터 과학의 이론과 결과를 구현하기 위해 추상화 인 언어를 사용합니다. 컴퓨터 과학 (예 : 양자 컴퓨팅)에는 프로그래밍이 완전히 실현할 수없는 많은 아이디어가 있습니다. 내가 말하는 것은 컴퓨터 과학의 모든 아이디어가 프로그래밍 언어를 사용하지 않고 완전하고 우아하게 표현 될 수 있다는 것입니다. 할 수없는 이름을 지정하십시오.
ElGringoGrande

3
@Orbling : 매우 사실입니다. 예를 들어, 튜링은 최초의 전자 컴퓨터가 만들어지기 전에 보편적 인 튜링 머신의 개념을 발명했다고 기억하십시오. 그가 수많은 코드를 작성하지 않았다는 사실이 그를 무능한 컴퓨터 과학자로 만들었습니까?
mipadi

11

추상적이고 기초적인 컴퓨터 과학 개념을 전문으로하는 순수한 컴퓨터 과학 학문에 대해 이야기하고 있다면 반드시 그런 것은 아닙니다.

비유를 구부리려면, 이것은 NASA의 모든 로켓 과학자가 "좋은 로켓 과학자"가되기 위해 우주로 날아 가야하는지 묻는 것과 약간 같습니다. 당연히 아니지. 우주 비행사가된다는 것은 우주 비행 산업의 일부이며 실제적인 부분이지만 지상 과학자가 자신의 방식만큼 중요하지 않다는 것을 의미하지는 않습니다.

즉, 실제 프로그래밍 언어로 작성하지 않는 경우 그가 만든 알고리즘을 적용하는 것이 좋습니다. 이런 의미에서 알고리즘 설계는 수학의 한 가지로 생각할 수 있습니다.


1
NASA의 모든 로켓 과학자들은 로켓 과학과 기계 및 전기 공학에 대한 심도있는 실제 경험을 철저히 접지하고 있다고 말하는 것이 공평하다고 생각합니다. 아, 그리고 일반적으로 코드 작성 방법도 알고 있습니다.
Robert Harvey

3
나는 그들이 방법에 대한 이론이 아니라 궤도를 여러 번 계산했다고 생각합니다.

3
+1, 나는 또 다른 예를 추가 할 것입니다-와인 제조에 경험이 없어도 훌륭한 와인을 맛볼 수 있습니다.
Jas

2
@Jas : 끔찍한 비유. 컴퓨터 과학자는 최종 제품의 수신기가 아닙니다. 그들은 있는 와인 메이커.
doppelgreener

1
@Axidos 아니, 아니, 그들은 포도 농부 입니다.
Mark C

9

진정한 컴퓨터 과학자가되기 위해서는 코딩이 중요하지 않습니다. 코드에서 생각하는 것은 유용한 추상 개념을 개발하려고 할 때 생각을 제한 할 수 있습니다. 대부분의 뛰어난 코더에는 복잡한 알고리즘을 분석하거나 프로그래밍 언어, 고급 검색 및 정렬 알고리즘, 유한 자동 분석 이론, 분산 컴퓨팅 이론, R- 트리, 내결함성 프로토콜, 안정적인 통신 프로토콜, 디지털과 같은 개념을 개발할 수있는 지적 능력이 없습니다. 신호 처리 알고리즘, 암호화 이론, 성능 분석 및 최적화, 효율적인 캐싱, 맵 축소, 안정적인 보안 프로토콜 등. 우수한 코더와 컴퓨터 엔지니어는 일반적으로 이러한 이론을 효과적으로 구축하고 수행하려는 시스템에서 사용할 수 있지만 그것은 실제로 컴퓨터 시스템 엔지니어 나 컴퓨터 프로그래머의 영역입니다.

코딩은 컴퓨터 프로그래머가되기 위해 매우 중요합니다. 컴퓨터 과학자들이 생성 한 유용한 추상 개념을 작업 코드로 인코딩하는 방법을 이해하는 것도 유용합니다.

컴퓨터 과학의 큰 문제 중 하나는 오늘날의 프로그래밍 문제를 해결하는 데 거의 도움이되지 않는 수학 문제에 대한 솔루션을 찾아야한다는 것입니다. 그들이 솔루션을 코딩 했더라도 아무도 그것을 사용할 수 없었습니다. 디지털 신호 처리 이론에 대해 생각해보십시오. 푸리에, 힐버트, 섀넌과 같은 사람들이 발명했지만, 20 년 전까지는 전산화 된 DSP 문제에 대한 적용이 불가능했습니다.

컴퓨터 교육의 큰 문제는 컴퓨터 과학자가 가르치는 대부분의 사람들이 컴퓨터 과학자가되지 않는다는 것입니다. 그러나 너무 많은 컴퓨터 과학자들은 이것을 얻지 못합니다. 코딩은 그들에게 중요하지 않을 수도 있지만, 수업 중이라면 거의 확실히 당신에게 중요 할 것입니다.

컴퓨터 교육의 또 다른 큰 문제는 많은 진정한 컴퓨터 과학자들이 소프트웨어 개발을 가르치는 데 유용한 산업 경험이 부족하다는 것입니다. 그들은 본질적으로 그들이 정말로 모르는 것을 가르치려고 노력하고 있습니다. 그것은 그들이 신뢰성을 잃게합니다. 산업 환경에서 중요한 것들은 이러한 컴퓨터 과학자들 중 일부에게 종종 등록되지 않습니다.

길고 짧은 코딩은 "컴퓨터 과학자"가되는 대부분의 사람들에게 중요합니다. 왜냐하면 대부분의 사람들은 컴퓨터 프로그래머와 컴퓨터 시스템 엔지니어가 될 것이기 때문입니다.


문제의 핵심에 대한 훌륭한 답변. 문제는 산업과 관련된 전산 과학 및 소프트웨어 공학을 모두 배워야한다는 것입니다. 대부분의 대학은 다른 대학보다 일반적으로 하나를 더 잘 가르칩니다. 대학은 본질적으로 전자를 장려하고 후자와 거의 관련이없는 연구 기관이기 때문에 후자를 달성하는 것은 쉽지 않습니다. 이것은 대부분의 실용적인 분야에서 문제입니다.
Orbling

3

교수가 소속 된 하위 분야에 따라 다릅니다.

수치 분석에 능숙한 사람은 아마도 포트란 (Fortran)입니다. 모든 AI 교수는 Lisp 또는 Prolog 등으로 코딩합니다.

좀 더 수학적인 영역에서는 실제로 코딩 할 필요가 없습니다. 나는 여전히 의심스러운 터치가 될 것입니다.


2

그는 컴퓨터 과학의 수학과 이론에 대한 이산 수학과 같은 사람처럼 들립니다. 이런 종류의 교수들이 한 알의 소금으로 무엇을 말해야하는지 생각해보십시오.


5
저는 수학 애호가이며 알고리즘 중독자입니다. 나는 항상 코딩을 즐깁니다. 그러나 알고리즘은 코딩 뒤에 있습니다. 1 펜과 1 종이는 알고리즘과 계산 이론에 충분합니다. 내가 요즘하는 일은 단지 사고와 쓰기 알고리즘하지만 코딩되지 않습니다
히랄

5
교수가 한 말의 소금으로 가져 가라. 그가 이산 수학을하는 사람이라면, 프로그래밍이나 소프트웨어 공학에 대해 이야기 할 때가 아니라 이산 수학에 대해 이야기 할 때 진지하게 받아들이십시오.
David Thornley

1
이산 수학자들은이 분야에서 가장 중요한 것들 중 하나이며, 이론은 코더에 의해 구현되며,이를 입증하기 위해 구현할 필요는 없습니다. 소금 꼬집음.
Orbling

@Orbling 그리고 비슷한 선량의 판단과 상식을 가진 프로그램을 말하는 사람들 (광범위한 그룹)이 취하는 것을 취하십시오.
Mark C

@Mark C : 그렇습니다. 나는 모든 사람이 그 복용량을 가진 사람이 말하는 모든 것을 가져갈 것을 촉구합니다.
Orbling


2

이론을 이해하는 것만으로 벗어날 수는 있지만 알고리즘을 코딩 한 후 알고리즘과 1000x를 더 잘 이해한다는 것을 항상 알았습니다 (예 : 버블 정렬 대 Quicksort, Big-O를 아는 것이 좋지만 실제로는 큰 데이터로 보는 것이 좋습니다. -sets는 계산 복잡성을 측정하는 데있어 실제적인 가치를 제공합니다.)

내가 찾은 흥미로운 점 중 하나는 컴퓨터 과학의 이론적 아펫을 더 많이 연구할수록 코딩이 쉬워진다는 것입니다. 어떤 시점에서는 특정 언어로 생각하는 것을 멈추고 오히려 더 넓은 컴퓨터 사이언스 개념으로 생각합니다.


2

이것은 모든 영어 교수가 영화, TV 시리즈, 소설, 연극 및시를 내 마음에 쓸 수 있는지 묻는 것과 같습니다. 마찬가지로, 똑같이 터무니없는 아이디어에 숫자를 사용하지 않는 수학 교수를 상상해보십시오. 다시 말해서 기본적인 컴퓨터 과학을 가르 칠 수있는 데있어 코딩에 중요한 일부 기본 요소가 있다는 것입니다. 따라서 교수는 기본 언어 구문과 교수가 가르치는 과정만큼 정교한 프로그램을 작성하는 방법을 알아야합니다. 교수가 컴파일러 설계에 대해 가르치고 있으며 이전에 컴파일러를 작성하지 않은 경우 이는 중대한 문제가 될 것입니다. 이전에 케이크를 요리하거나 먹지 않은 케이크를 요리하는 요리사를 상상해보십시오. 예 카 룸바.

알고있는 알고리즘을 구현하면 몇 가지 장점을 알 수 있지만 이것이 요구 사항인지 의심합니다. 결국, 구현의 토끼 구멍이 얼마나 멀리 떨어져 있는지 알고 알고리즘이 어떻게 구현되는지 이해할 수 있을까요? 예를 들어 누군가가 알고리즘을 가져야 실제로 그것을 알고 절차 적, 객체 지향 및 기능적 프로그래밍과 같은 다양한 패러다임 아래에서 알고리즘을 구현해야합니까? 그들은 컴파일러가 어떻게 모든 코드를 번역하고 전자별로 전자 레벨에서 비트를 움직여서 그것에 대해 다소 비판적인지를 알아야합니다.


"나는 결코 코딩하지 않는다"는 방식으로 과거와 현재 시제를 포함한다는 의미가있다. 또한 "코딩"에 대한 암시적인 가정이있을 수 있는데, 이는 일부 서클에서는 잘 진행되지 않을 수있는 다소 부정적인 말을 할 수있는 진술을 볼 수있는 다른 방법으로 교수 아래에 있습니다.


3
영어 교수는 영화 스크립트 작성 방법을 다른 사람들에게 가르치는 경우 영화 스크립트 작성 방법을 알아야합니다. 그러나 모든 영어 교수는 실제 책이 아니라면 아주 좋은 논문을 쓸 수 있어야합니다.
Robert Harvey

2
@Robert Harvey : OP 교수는 코드 를 작성할 수 없다고 말하지 않았으며 코드 를 작성할 수 없다고 말했습니다 . 그는 대부분의 시간을 연구하는 데 쓰는 이론적 인 컴퓨터 과학자 일 수 있습니다. JB King이 지적했듯이, 컴파일러 설계 나 소프트웨어 엔지니어링을 강의하지 않는 한, 그는 자신의 분야에서 경험이 풍부하고 유능 할 수 있습니다.
mipadi

@Robert Harvey : @mipadi가 거기에 요점을 가지고 있다고 생각합니다. 교수는 방금 "나는 결코 코딩하지 않습니다"라고 말하지 않았습니다 .
Orbling

@JB King, @Orbling : 따옴표가 번역본 인 것 같습니다. 문자 그대로 지나치게 분석하지 마십시오.
Javier

@ 하비에르 : 잘 될 수 있습니다.이 경우 훨씬 덜 명확한 컷입니다.
Orbling

2

교수는 코딩이 필요하지 않지만 이론에 대해 많이 알고 있다는 점에서 교수님이 약간 옳을 수도 있습니다. 그러나 그것은 대학 주변에서 작동하지 않습니다.


1

전문 소프트웨어 개발자 임에도 불구하고 기계 공학 학위를 받았습니다.

부품 제작 및 가공 경험이 거의없는 훌륭한 기계 설계자가되어 해당 작업을 기계공에게 맡길 수 있습니다. 그러나 부품을 제작하고 가공하는 방법을 알면 설계하는 모든 것을 제조하고 조립하는 데 관련된 어려움을 예측할 수 있기 때문에 엔지니어의 능력이 크게 향상됩니다.

소프트웨어도 마찬가지입니다. "코더"는 기계 기술자 또는 기술자이며 소프트웨어 엔지니어는 엔지니어입니다. 많은 곳에서 한 사람이 두 가지 일을합니다. 불가능하지 않으며 매우 추상적 인 문제의 경우 "엔지니어링 만"위치가 작동 할 수 있습니다.

그러나 대다수의 경우 코드를 거부하면 아무런 이점이 없습니다.


2
그러나 당신이 말했듯이, 당신은 기계 엔지니어 이고 소프트웨어 공학 에 대해 이야기하고 있습니다 . 엔지니어는 물건을 만듭니다. 그러나 문제의 교수는 컴퓨터 과학을 가르칩니다 .
mipadi

1

고민하지 않고 중단 문제를 끝내지 않는 한 컴퓨터 과학의 모든 측면에서 코딩에 항상 사용됩니다.

프로그래밍이 전혀없는 유일한 CS 클래스는 이론이었습니다. 나는 "실험을하지 않는다"고 말하는 물리학 자들이 많이 있다고 생각할 것입니다. 그러나 그들은 "아무 것도 발견하지 않습니다"라고 말하는 사람들 일 것입니다. 그리고 그들이 걱정한다면 놀랄 것입니다.


1
저의 컴퓨팅 학위 (대학에서 국제적으로 상위 10 개 대학에 엉망진창이 아니기 때문에)는 수업의 3 분의 1 이상이 그들에 대한 프로그래밍이 없었습니다. 컴퓨팅은 코드 그 이상입니다.
Orbling

좋아, 분명히 나는 ​​상위 10 개 대학에 갔다. 심지어 우리는 심지어 같은 대학에 가서 우리 자신이 좋아하는 것과 싫어하는 것에 따라 다른 수업을 들었을 수도있다.
피터 터너

0

컴퓨터 과학 학생으로서 처음에는 소프트웨어 개발과 관련된 개념을 이해하는 것이 좋습니다. 소프트웨어의 기본 개념과 컴퓨터와의 상호 작용 방식을 배운 후에는 코딩을 시작하고 특정 구현 문제를 해결해야합니다.

이것은 "소프트웨어 예외"와 같습니다. 처음에는 허용되지 않은 작업을 수행했기 때문에 처리합니다. 그런 다음 배우면 코드와 동일하게 시작하여 더 자세하게 만듭니다.

글쎄, 응용 프로그램에서 예외를 일반적인 워크 플로로 사용하는 프로그래머와 같은 개념에 관심이없는 사람들은 생각합니다. 그들은 HOW를 알고 있지만 실제로는 얻지 못합니다.


-6

교수님을위한 또 다른 관용구가 있습니다.

할 수있는 사람들, 가르 칠 수없는 사람들.

imo, 대화는 싸다. 누구나 '이론'에 대해 끝없이 열중하고 그것을 '컴퓨터 과학'이라고 부를 수 있습니다. 그러나 실제 실행에 이르기까지 이론은 그것을 검증 할 방법이 없기 때문에 그다지 유용하지 않습니다. 내가 뭔가에 대한 교수의 의견을 줄 훨씬 더 심각하게 나는 그가 실제로 것 알고 있다면 해결 그는 단지 또는 어떤 뒷받침하는 감사 증거에있을 수도 있고 없을 수도 있습니다 '이론'역류 인 경우보다 코드의 특정 문제를 백업 그의 관점을.


6
아인슈타인, 아리스토텔레스, 웹스터, 에인 랜드, 소로, 공자, 부커 티 워싱턴이 교사였습니다. 교육받지 않은 진술
JeffO

4
-1 교사들에게 매우 모욕적 인 의견. 종종 내가 아는 인용했지만 항상 말도 안됩니다. 조지 버나드 쇼 (George Bernard Shaw)의 원래 발언은 "할 수있는, 할 수있는, 할 수없는, 가르치는 사람"이었습니다. 1903 년 Man and Superman 으로부터 -그는 또한 "나에게 인간 구원의 유일한 희망은 가르침에있다"고 말했다. London School of Economics (LSE)의 공동 창립자 였으므로 그의 견해를 판단하십시오.
Orbling

2
아인슈타인은 자신의 인생에서 실제 실험을 한 적이 없었습니다. 그는 다른 사람들이 수행 한 몇 가지 생각 실험에 대해 설명했습니다. 아인슈타인이 "교실 밖에서 상당한 성과를 달성하지 못했다"고 말 하시겠습니까? 왜 교수가 최종 사용자가 직접 사용할 수있는 것을 구현하지 않았기 때문에 해당 분야의 프로그래머 사용 하는 새로운 알고리즘을 연구하지 않았다고 가정 하십니까? 실제로, 교수의 직업은 학생들 에게 코딩하는 방법을 가르치는 것이라고 가정하는 것 같습니다 !
ShreevatsaR

3
야, (MIT에서) 내 컴퓨터 과학 교수의 많은 굉장했고, 사회에 막대한 기여, 그들은 어떻게 "자신의 분야에서 물건을 할"- 많이! 그러나 그들의 분야는 코딩과 관련이 거의 없으며, 거의 모든 경우에 거의 코딩하지 않습니다. (양자 적으로, 양자 계산을하고있는 누군가가 존재하지 않는 양자 컴퓨터를위한 코드를 작성하기를 기대하십니까?) 컴퓨터 과학에 대한 관점은 매우 좁아 보입니다. ( 공학이 아니라 컴퓨터 과학이라는 것을 기억하십시오 .)
ShreevatsaR

2
@GrandmasterB : 컴퓨터 과학 교수가 계산 이론에 중점을 둔다면 코드를 작성하지 않아도 될 가능성이 높습니다. 그렇다고해서 자기 분야에서 아무 일도하지 않는다는 의미는 아닙니다. 그는 계산 이론에 관한 논문을 출판하고있을 것입니다! 당신은 컴퓨터 과학과 프로그래밍 을 혼동 하고 있습니다 .
mipadi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.