코드 카타의 단점


41

코드 카타 (Code kata) 는 각 반복마다 코드를 개선하기 위해 작은 문제를 여러 번 수행하여 프로그래머의 기술을 연마하도록 제안하는 개념입니다. 그 이름은 형태 (일명 카타)가 계속해서 개선되는 관행 인 무술 카타 와 유사하다 .

이 주제에 대한 마지막 질문 에 대한 반응 에서이 접근법의 단점이 무엇인지 알고 싶습니다.


비생산적인 -1을 적용하기 위해 +1. Code kata에 대한 내 의구심이있는 유효한 질문처럼 보이지만 그 이유를 정확히 알 수는 없습니다.
mattnz

9
오늘까지 나는이 카타가 무엇인지 전혀 몰랐습니다. 이제 나는 그것을 확인했고 모든 고급 프로그래머가 연습하는 동안 자동으로 배우고 배우는 무언가에 대한 멋진 이름 일뿐입니다. 따라서 나에게 단점은 : 그렇지 않으면 사용할 수있는 추가 시간이 걸립니다.
stijn

11
흠… 분명히 코드 카타의 한 가지 주요 단점은 사람들이 코드 카타가 무엇인지 이해하지 않고 코드 카타를 비판하는 것 같습니다 :-)
Jörg W Mittag

19
@ JörgWMittag- '카타'라는 용어는 실제 상황에서 실질적인 의미가 거의없는 단단한 형태의 연습을 의미하기 때문에 나쁜 유추이기 때문입니다. "블랙 벨트"또는 "카타"와 같은 무술 단어를 프로그래밍 또는 비즈니스 상황에 적용하면 나에게 영향을 미칩니다.
jfrankcarr

답변:


22

원칙적으로 코드 카타에는 단점이 없습니다. 다른 접근 방식과 다른 언어로 동일한 작업을 여러 번 수행하려고합니다. 그러나

  1. 직장에서 소개하기는 다소 어렵습니다. 귀하는 일반적으로 능숙하거나 합리적으로 생산적이어야합니다. 나는 그것이 유용하지 않을 것이라고 말하지는 않습니다 (새로운 시간에 쓸 좋은 코드를 지불하는 것보다 새로운 고용 기술을 향상시키는 데 시간을 투자하는 것이 좋습니다).
  2. 실제로 어떤 의미에서 개선을 시도 해야합니다 . 동일한 코드를 같은 방식으로 천 번 작성해도 향상되지는 않습니다 (대신 둔하게 만듭니다). 이전 오류, 잘못되었거나 예상대로 해결되지 않은 문제를 이해해야합니다. 이것이 가장 중요한 부분입니다. 자기 공부의 한 형태이므로 공부 해야합니다 .

1
이 답변은 "카타"용어 대신 질문을 직접 다루고 코드 카타 연습의 잠재적 문제에 초점을 맞추기 때문에이 답변을 수락했습니다. 이것은 다른 답변이 좋은 답변이 아니라고 말하는 것은 아닙니다. 사실, 나는 둘 이상의 것을 기꺼이 받아 들일 것입니다!
Sardathrion

43

무술 카타와 같은 카타 프로그래밍은 주로 형태 오버 기능에 관한 것입니다. 우아한 코드를 작성하도록 지시 할 수도 있지만 코드를 작성하는 문제를 해결하도록 지시하지는 않습니다. 프로그래머로서 개선하는 더 좋은 방법은 실제 문제 해결이 필요한 퍼즐을 풀고 코드 카타가 결코 가르쳐 줄 수없는 방식으로 잘 짜여진 코드의 가치를 가르쳐 줄 더 큰 프로젝트에서 작업하는 것입니다.

따로, 나는 '코드 카타'와 '소프트웨어 장인 정신'과 같은 용어는 소설이나 유용한 것을 묘사하는 것보다 직업을 낭만적으로 만드는 것에 관한 것이라고 생각합니다.


4
그 문장에 대해 +2로 만드십시오.
Erik Dietrich

6
프로그래머가 문제를 해결하는 것이 좋은 방법이라는 데 동의하지만, 우아한 코드 작성을 배우는 것도 가치있는 일이 될 수 있습니다. 현재 유지 관리하고있는 코드 개발자 중 일부는 작업을 수행하기 위해 복사 및 붙여 넣기보다는 우아한 코드를 작성하는 데 시간과 노력을 기울 였기를 바랍니다.
Mike Partridge

1
Mike의 댓글에 +3 일반적으로 코드를 작성하는 데 걸리는 시간보다 코드를 유지하는 데 훨씬 많은 시간이 소요됩니다. 누군가가 당신의 집을 지을 때 장인 정신이 적용될 것이라고 기대할 것입니다. 누군가가 소프트웨어를 만들 때도 마찬가지이지만, 그렇지 않은 경우가 많습니다.
Kaleb Brasee

@KaptajnKold : 당신은 당신의 경험에서 말하고 있습니까? CodeKata를 통해 실력을 향상 시키려고 노력했지만 실패한 사람의 의견을 듣고 싶습니다.
dzieciou

2
@ dzieciou : 나는 몇 년 동안 가라테를 연습 한 무술 카타에 경험이 있습니다. 그리고 나는 카타에서 배울 수있는 몇 가지 유용한 전투 측면이 있다고 생각하지만, 궁극적으로 훈련하기에 매우 효율적인 방법은 아니라고 생각합니다. 그들이 말한대로 싸울 때 훈련해야합니다. 당신의 목적이 더 나은 전투기가되는 것입니다. 어떤 사람들은 카타를 연습하는 것이 즐거운 일이라고 생각합니다. 그것에 아무런 문제가 없습니다. 결국 그들 중 일부는 매우 좋아집니다. 카타에서.
KaptajnKold

20

코드 카타는 시간이 걸립니다.

풀 타임 개발자이자 아버지이기 때문에 컴퓨팅을 취미로 만들고 싶지 않습니다.

그리고 내 상사가 현재 프로젝트와 관련이없는 응용 프로그램을 개발하는 데 비용을 지불한다고 생각하지 않습니다.


10
시간이 걸리지 않는 학습이 있습니까? 운이 좋으면 매번 그린 필드 프로젝트에 참여할 수 있습니다.
Den

38
프로그래밍 기술을 정기적으로 향상시키기 위해 최소한의 자유 시간을 소비하지 않으면 전문 경력에 큰 위험이 따릅니다.
Ladislav Mrnka

7
+1합니다. 나는 프로그래밍을 절대적으로 좋아하고 내가 좋아하는 일로 돈을 벌 수는 있지만, 일 이외의 프로그래밍을 더 많이 할 수는 없다. 나는 다른 취미 (DJing, 음악 제작, 역도, 그림 그리기 및 거리 춤)가 너무 많아서 이미 40 시간 / 주로하는 일에 더 많은 시간을 소비한다는 점을 알지 못합니다.
Andreas Johansson

7
@mouviciel : 그리고 그것은 정확히 문제입니다 : 프로젝트에서 필요 하다면 당신의 상사는 당신의 전문적인 개발 비용을 기꺼이 지불 할 것이지만 현재 프로젝트와 관련이없는 기술을 기꺼이 향상시켜야합니다. 플랫폼. 그것이 당신의 경력 / 사회 보장을 구축하는 것입니다.
Ladislav Mrnka

6
@LadislavMrnka-동의합니다. 그럼에도 불구하고 Code kata는 그 문제에 대한 답이 아닙니다.
mouviciel

13

권투 선수로서, 나는 카타 뒤에있는 원칙에 동의하지 않아야합니다. 실제로 유용하기에는 너무 단단합니다. 링에서, 당신은 자유 유동 환경에서 배운 원리를 적용하는 방법을 이해해야합니다.

이것은 기술의 학습과 개선이 수행되어서는 안된다고 말하는 것은 아닙니다. 가방을 연습하면 펀치를 사용하고 던지는 방법을 느낄 수 있습니다. 카타와 같습니다. 그러나 그것은 엄격하지 않습니다. 당신은 동시에 많은 것들을 연습하고, 가방 주위를 이동하고, 안정된 플랫폼에서 던지고, 조준하고, 호흡하며, 목록이 계속됩니다.

가장 중요한 것은 모든 것이 실제로 사용될 방식으로 함께 학습된다는 것입니다. 가장 아름다운 for 루프를 작성할 수 있지만 프로그램에 맞추는 방법을 이해할 수 없다면 어떤 것이 좋습니까?

연습을 원한다면 도구를 직접 만들거나 사용하는 도구를 사용하는 것이 더 좋습니다. 그것은 당신의 모든 기술을 연습해야하며 결국 당신은 유용한 무언가를 가질 수 있습니다.


에 딱 맞다. fwiw, 나는 또한 권투 선수 / 프로그래머입니다 :).
Paul Sanwald

1
코드 카타는 엄격한 반복에 관한 것이 아닙니다. 문제를 해결하기 위해 노력한 다음 만족할 때까지 솔루션을 개선하기 위해 노력합니다. Kata One에서 : "이 kata의 목표는 더 느슨한 실험 모델링 스타일을 연습하는 것입니다. 가능한 한 많은 문제를 처리하는 방법을 찾으십시오. 각각의 다양한 장단점을 고려하십시오. 이러한 모델을 탐색하는 데 가장 적합한 기술은 무엇입니까? 모델을 어떻게 합리적으로 검증 할 수 있습니까? "
Mike Partridge

4
나는 '카타'라는 용어가 불완전하지만 그 이름 때문에 그 요점을 놓치지 않는다는 데 동의합니다. 또한 그것들은 모든 단어 문제가 아닙니다. Kata Two로부터 : "선택한 언어와 기술로 이진 검색 루틴 (아래 사양을 사용하여)을 구현하십시오. 내일, 완전히 다른 기술을 사용하여 다시 구현하십시오. 다음날 완전히 고유 한 5 가지가 될 때까지 동일하게 수행하십시오. (예를 들어, 하나의 솔루션은 전통적인 반복적 접근 방식 일 수 있고, 하나는 재귀적일 수도 있고, 배열 슬라이스를 전달하는 기능적인 스타일을 사용할 수도 있습니다. ")
Mike Partridge

3
@MikePartridge 내 요점을 잘 보여줍니다. kata는 줄이 적거나 처음부터 작성하는데 걸리는 시간이 줄어든 매일 개선되는 바이너리 검색 방법 중 하나를 포함합니다. 개념을 설명하는 방법은 개념을 정의하는 데 중요합니다. 그는 잘못된 수하물을 가져 오지 않고 기사를 작성하는 연습 프로그래밍이라고 불렀습니다. 저자는 자신의 아이디어를 올바르게 정의하는 단어와 개념을 선택해야하며, 대상은 은유의 선택으로 인해 잘못된 연관성을 당기고 있다고 불평하지 않습니다.
스펜서 Rathbun

3
@ MikePartridge 필자의 경우 모든 프로그래머가 항상 배우거나 개선하고 있다고 생각합니다. 따라서 코드 kata는이 목표를 달성하는 데 도움이되는 기술이며 내 대답은 내가 본 기술이 가치가 없다는 것입니다. 나는 목표에 전적으로 동의하지만 그것은 문제가 아닙니다.
스펜서 Rathbun

11

내 관점에서 볼 때 가장 큰 단점은 끔찍하게 지루하다는 것입니다. 또한 프로그래머는 유용하거나 멋진 기능을 수행하는 소프트웨어를 개발하는 데 번창하는 것 같습니다. 코드 카타 접근 방식은 그 반대입니다.


2
Katas는 새로운 것을 가르쳐줍니다. 프로그래머가 목표로하는 것과 어떻게 반대가 될 수 있습니까? 또한 훌륭한 프로그래머 대부분이“지루한”것으로 인식하는 것이 아니라 퍼즐을 풀고 있습니다. 실제로 이것은 해킹의 핵심입니다.
Konrad Rudolph

4
@KonradRudolph 반복이 카타의 핵심이라고 생각 했습니까? 따라서 문제를 한 번만 해결하면 (새롭고 흥미 진진한) 같은 문제를 계속 반복해서 해결할 수 있습니다. 나는 Katas를 간신히 보았 기 때문에 내가 틀릴 수 있었다.
Kevin D

@ 케빈 (Kevin) 나는 이것이 멍청하게 들린다는 것에 동의한다 (특히 문제를 해결하는 다른 방법을 찾으려고하지 않는 한). 나는 일반적인 프로그래밍 퍼즐과 같은 "카타"를 한 적이 없다.
Konrad Rudolph

어떻게 똑같은 일을 "새로운 것을 가르치는 것"입니까?

귀하의 질문에 제공된 링크를 읽지 않은 것이 분명합니다.
Mike Partridge

8

Kata는 당신이 노력해야 하는 것과 정반대 의 것을 의미합니다 .

훈련에 사용되며 기술의 기술을 보여주기 위해 고안된 무술 의 특정 운동 시퀀스 로 구성된 운동

무술에서 사용되는 Kata (원산지 : 1950–55; <일본어 : 모양, 패턴)라는 용어는 터치 타이핑 과 같은 근육 기억의 암기에 관한 질문 입니다.

원래의 가라테 키드 에서 자동차를 왁스 칠하고 바닥을 샌딩하고 울타리를 칠하는 것은 모두 카타 스였습니다. 선생님 이 들어 와서이 중공 활동에 상황을 알려주기 전까지는 아무 의미가 없었습니다.

여러 언어에서 잘못된 문제를 해결하는 컨텍스트 재실행 문제 에 대한 멘토가 없어도 동일한 내용이 여기에 적용된다고 생각합니다 . 멘토가 없으면 개선해야 할 부분을 알려주는 것이 시간 낭비입니다.

언어 나 플랫폼의 새로운 관용구와 의미를 배우면 문제를 창의적으로 해결하는 것과 정반대입니다.

System.out.println()가능한 한 쉽게 입력 할 수 있으려면 Kata를 연습하십시오.

다른 구현 에서 문제에 대한 솔루션을 개선하고 시간 및 / 또는 공간 요구 사항을 줄이거 나 더 관용적 인 원칙을 적용 하려는 경우 Kata가 도움 이되지 않습니다 .

재 구현하는 이상 같은 일을 통해 이미 작은 증분 개선과 완벽의 의심 혜택을 위해 노력 작동 후,이 호출에 대한 인정 업계 용어 이미 있습니다 골드 도금 !

이들이 사용해야하는 용어 는 동일한 언어 / 런타임 / 플랫폼에 적용될 때 리팩토링 입니다. 그리고 포팅은 다른 언어 / 실행 / 플랫폼으로 작동하는 프로그램을 이동할 때. 카타 는 의미를 완전히 이해하지 않고 힙 스터, 시원하고 신비로 들리기 때문에 잘못 선택되었을 것입니다.

계획, 경험 또는지도가 거의없는 다른 어려운 문제를 해결하는 것은 대부분의 개발자, 특히 주니어 개발자가 매일해야하는 일입니다.

특정 솔루션을 연마하기 위해 학계 만 동일한 운동을 반복합니다. 개발자로서 성공적인 경력을 쌓는 기술은 반복이 아니라 적응 에 있습니다.

누가 퇴근 후 공부할 필요가없는 현명한 사람들이없고, 직장에서 8 시간 동안 알아야 할 모든 것을 배울 수 있다고 누가 말합니까?


연습하고있는 것이 디자인을 다시 디자인하고 개선하는 것입니다. 디자인 프로세스를 반복하면이 용어를 적용 할 수 없습니까? 더 나은 것을 생각해 낼 수 있습니까?
Bill K

기존 시스템을 재 설계하고 개선하는 용어는 리팩토링입니다 (코드 리팩토링은 "기존 코드를 재구성하여 외부 동작을 변경하지 않고 내부 구조를 변경하는 기술"입니다). 그들은 의미를 이해하지 않고 시원하고 신비로 들리기 때문에 Kata를 선택 했습니다.

리팩토링 (refactoring)이라는 용어는 refacotoring을 잘하는 연습과는 매우 다른 용어입니다. 누구나 코드를 리팩토링 할 수 있는데, 어떤 식 으로든 코드를 잘 작성하거나 리팩토링 기회를 잘 인식하고 있다는 의미는 아닙니다. "실제 리팩토링"은 그 용어의 하강 용어이지만, Kata가하는 헌신을 전달하지 않으므로 Kata가 약간 더 나은 선택이라고 생각합니다.
Bill K

1
실제로 금도금 은 "... 추가 또는 더 세련된 기능"을 의미합니다. 설명은 사실 후에도 조기 최적화 와 더 유사합니다 .
Joshua Drake

5

나는 "카타"라는 은유가 최고가 아니라는 데 동의합니다. 가라테의 카타는 완벽하고 선명하며 자동으로 수행 될 수있을 때까지 구체적이고 개별적인 움직임을 연습하기 위해 수행됩니다. 이것은 비판적 사고와 창의성이 필요한 활동으로 잘 해석되지 않습니다. (입력하는 것이 더 좋습니다).

즉, 이름의 실패는 활동의 실패가 아닙니다. 누군가가 더 나아지기를 원하는 것을 실천하는 데 가능한 단점은 무엇입니까? 기회 비용 관점에서 시간을 낭비하는 것이 단점이지만 실제로는 투자라고 말할 수 있습니다. 따라서 주식이나 채권에 소비되는 돈이 장기적인 보호기 / 투자자에게 있기 때문에 소프트웨어 개발 기술을 실행하는 데 소요되는 시간은 소프트웨어 개발자에게 있습니다. '결점'이 아니라 테이블 스테이크입니다.


3

어렵고 능력이없는 것을 시도함으로써 더 나아질 수 있습니다. 자신에게 도전. 무술 형태와 같이 동일한 "코드 카타"를 반복해서 수행하는 것은 그렇게하지 않습니다. 나는 당신의 능력을 향상시키는 대신 당신의 능력을 정체 시킨다고 생각합니다.

그것은 처음으로 실천 방법으로 사용되지만 제한적입니다. 나는 사람들에게 Euler 프로젝트를 대신 사용하라고 말한다 . 더 많은 문제와 도전.


동일한 프로그램을 반복해서 작성하는 것이 유용하고 흥미로울 수 있습니다. 예를 들어 매번 다른 알고리즘 및 / 또는 다른 언어를 사용하는 경우. 그러나 아마도 그것은 카타가 아닙니다.
9000

2
질문에 제공된 링크를 읽으십시오. 이름에서 생각한 것처럼 생각은 생각이없는 반복이 아닙니다.
Mike Partridge

@ 9000 실제로 이것이 Code Katas를 정확히 이해하는 방법입니다. 새로운 언어를 배우거나 이미 해결 된 문제에 대한 새로운 접근법을 시도 할 때 종종 사용됩니다.
Joshua Drake

3

내가 볼 때 기술의 주요 단점은 시간을 최적으로 사용하는 것입니다.

이 연습의 학습 가치도 의문의 여지가 있습니다. 연습을 통해 더 나은 결과를 얻으려면 전문가의 피드백이 필수적입니다. 고품질 피드백이 없으면 무언가를 배우게되지만 잘못된 것을 잘 배울 가능성이 있습니다.

실수하지 마십시오. 연습은 프로그래밍을 잘하는 유일한 방법이며, kata는 가장 확실한 연습입니다. 그러나 코딩 경쟁 문제 해결, 자신 만의 "재미있는 프로젝트"작성, 새로운 프로그래밍 언어 학습 등이 있습니다. 궁극적으로 가장 편한 기술을 선택하고 그 길을 따라 명확한 지침이 있는지 확인해야합니다.


지도를 어떻게 찾았습니까? 나는 같은 문제로 고심하고 있습니다.
CodeYogi

1

나는 어떤 형태의 카타가 없다면 위대한 코더가 될 수 없다고 믿는다. Kata는 연습입니다. 문자 그대로의 의미입니다. 예를 들어 이것을 예로 들어 보자. 운동 선수는 "100 미터의 대시, 나사 연습 만하면된다"고 말합니다. 이것이 승리 전략처럼 들립니까? 그것은되어 지금까지 이런 식으로 일을?

나는 사람들에게 밥 삼촌의 " 깨끗한 코더 "를 읽어 보라고 제안한다 .

아, 그리고 카타를 할 수없고 가족을 키울 수 없다는 주장은 단순히 변명입니다. 경험에서 말하면 : 아이들은 어느 시점에서 잠을 자고 ...


3
코딩! = 100 미터 돌진, 그 날 100 미터가 나무가 우거진 지뢰밭을 통과하고 다음날 지뢰가 가득 찬 논과 다음날 유독 바이퍼로 가득 찬 늪이 아니라면 저격 소총에서 패턴을보십시오. ... Kata는 의미 상 잘못된 용어 입니다.

2
-1 유급 시간에도 직장에서 교육을받을 수 있습니다 (사람들이 왜 이것을 잊어 버린지 잘 모르겠습니다). 모든 것이 순수한 일이나 순수한 학습이 아닙니다.
joshin4colours

@JarrodRoberson 당신이 방금 묘사 한 시나리오는 군인이 매일하는 일입니다. 그래서 당신은 다소 나쁜 비유를 선택했습니다. 솔직히, 나는 9-5 일을 한 다음 집에 가서 배우기를 멈추는 사람들에게 행복해야합니다. 그것이 경쟁 우위를 제공합니다.
ThaDon

3
마틴 파울러는 한 번 직원 교육에 돈을 지출에 대한 질문을 받았다 "당신은 그들이 종료합니다 그들을 훈련하는 경우는 두려워하지 않는다?" 그의 대답은 "아니오, 내가 그들을 훈련시키지 않으면 그들이 머무를 것입니다!" . 모든 고용주가 교육을 비용으로 보는 것은 아니며, 좋은 직원은 교육을 투자로 간주합니다!

계획, 경험 또는지도가 거의없는 다른 어려운 문제를 해결하는 것은 대부분의 개발자, 특히 주니어 개발자가 매일해야하는 일입니다. 나는 그것이 다소 정확한 비유라고 생각합니다. 특정 솔루션을 연마하기 위해 학계 만 동일한 운동을 반복합니다. 개발자로서 성공적인 경력을 쌓는 기술은 반복이 아니라 적응 에 있습니다. 누가 퇴근 후 공부할 필요가없는 더 똑똑한 사람들은 없으며 8 시간 안에 필요한 모든 것을 배울 수 있다고 누가 말합니다.

1

무술에서 카타 만하는 것은 쓸모가 없습니다. 앞서 언급했듯이 카타는 형태를 가르치는 운동의 안무입니다. 당신은 움직임을 알고 있지만 그것을 적용하는 방법을 모른다. 어떤 상황에서 유용한 지 알 수 없습니다. 실제로 유용한 것을 원한다면 Bunkai 응용 프로그램이 필요합니다 .

소프트웨어 컨텍스트에서 코드 kata는 알고리즘, 도구, 디자인 패턴 또는 기타 기술입니다. 그것을 아는 것은 좋지만 그것을 이해하려면 그것을 적용해야합니다. 실제로 마스터하려면 다른 컨텍스트에서 사용해야합니다. 분 카이는 그 카타나 카타의 일부가 유용한 구체적인 상황 일 것입니다.

나는 그 방법론에 잘못된 것을 보지 못합니다. 이것은 무엇이든 숙달 된 방법입니다 : 무언가를 배우고, 연습하고, 세부 사항을 추가하고, 연습하고, 다른 세부 사항을 추가하고, 연습하십시오.


-1

프로그래밍은 그림이나 음악과 같은 예술입니다. 누군가가 당신이 말할 수있는 돈을 위해 음악가 또는 예술가가되면 영감이 없으며 공연은 실제로 당신의 시간 가치가 없습니다. 당신이 예술에 빠져 있다면, 매일 그 기술을 연습하고 꾸미는 것을 막을 수있는 것은 아무것도 없습니다. 매일 대부분의 사람들이 볼 수없는 뉘앙스를 알아 채고 매일 하나의 기술을 수정합니다.

사람들은 항상 바 뮤지션과 집 화가가되어 행복하게 여길 공간이 있지만, 그들은 완전히 다른 등급의 재능입니다. 나는 대부분의 집 화가들이 연습 아이디어에 대해 웃을 것이라고 생각하지만, 기술을 연구하고 연습 한 화가에게 내기를 걸었다. 예술로서의 직업을 본질적으로 인정하는 것은 집을 그리는 것과 같은 평범한 일에서도 눈에 띄게 더 나은 일을 할 것이다. .

어떤 사람들은 그렇지 않은 연습의 가치를 인식 할 것입니다. 평가할 위치에 있고 해결책이 아니라 예술 (간결하고 단순하며 이해하기 쉬운 코드)을 만들 수있는 사람들을 찾고 있다면 그 자체만으로도 가치가 있어야합니다.

추신. 나는 예술적으로나 다른 것을 부르지 않고있다. 추상적 인 문제에 대해서는 Kata를하지 않지만 그 가치를 인식하고 생산 코드를 상당히 리팩토링하려고한다.


과도하게 훈련 된 음악가는 이론적 완벽성에 의해 부정적인 영향을받을 수 있으며, 이는 소프트웨어 개발 경력에 매우 위험 합니다. 음악에는 표현 의 요소가 있으며 프로그래밍 소프트웨어에는 이러한 요소 가 없습니다. 당신은 애플 제품이이 표현을 주장 할 수 있지만, 즉 디자인 코드입니다, 표현 결코 볼 수없는 또는 인식 직접. 음악과 예술은 소프트웨어 개발에있어 나쁜 비유입니다. 그리고 당신은 그들이 일에 자부심을 갖지 않거나 품질의 가치를 보지 않는다고 가정한다는 점에서 블루 칼라 근로자에 ​​대한 현저한 편견을 보여줍니다.

연습과 연습을 혼합하지 마십시오. 과도하게 훈련 된 것은 과도하게 연습 된 것과는 매우 다르며, 코드의 표현 수준이 배달 시간과 코드 안정성에서 보이지 않는다고 생각되면, 우리가 토론의 ​​공통된 근거가 있는지 실제로 알 수 없습니다.
Bill K

내가 생각하는 것은 중요하지 않습니다. 대부분의 고객은 신중하게 제작 된 코드와 응용 프로그램이 대부분의 시간 동안 작동하는 한 그 코드가 얼마나 우아하게 인식되는지 신경 쓰지 않을 것임을 알고 있습니다. 대다수의 사람들이 VHS의 사운드 및 비디오 품질과 압축률이 높은 인터넷 비디오 또는 카세트 테이프, 이제는 불만없이 모든 뉘앙스를 제거하는 압축률이 높은 mp3에 관심을 갖지 않은 것과 같은 방식입니다. 과도하게 훈련 된 것은 과도하게 훈련 된 것보다 나쁘고, 과도하게 훈련되면 소프트웨어 산업에서 "충분히 좋은"것을 무시하고 비참하게됩니다.

프로그래밍은입니다 공예 없는 예술. 두 가지 모두 장인 정신과 미학이 있지만, 예술은 직업이 아니다. 소프트웨어 개발은 ​​직업이다. 많은 사람들이 오랫동안 예술가보다 소프트웨어를 작성하여 더 많은 돈을 벌고 있습니다. 소프트웨어는 주관적이지 않으며, 자신의 존재를 위해서만 존재하는 것이 아니며, 그림과 음악은 제작자를 기쁘게하기 위해 존재합니다. 미술 대학에 다니는 사람으로서 프로그래밍은 직업 기술 이며 예술 작품을 만드는 것과는 아무 관련이 없습니다.

잘 만들어진 소프트웨어가 장인이 만든 소프트웨어보다 더 빠르고 저렴하고 단순하게 제공된다고 생각하지 않는다면 제대로 작동하지 않은 것입니다. 아주 드물게, 얼마나 많은 사람들이 마스터 아티스트, 뮤지션을 보았거나 프로 스포츠 선수와 함께 연주했거나 그와 함께 연주 한 적이 있습니다. 결과도 마찬가지입니다. 한 예술가는 속도와 품질면에서 5 명의 장인을 능가 할 수 있지만, 그것이 존재하지 않는다고 생각할만큼 운이 좋은 사람은 거의 없습니다.
빌 K
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.