“바퀴를 재발 명하지 마십시오”라는 문구가 학생에게 적합합니까?


115

나는 SO에 대해 몇 가지 질문을 할 때 "바퀴를 재발 명하지 마십시오"또는 "바퀴를 재발 명하지 마십시오"라는 표현을 끊임없이 발견합니다. 일부 프레임 워크 또는 기존 패키지를 사용하도록 지시합니다. 다른 사람들이 이미 해결 한 것에 시간을 낭비하는 것이 현명하지 않기 때문에이 태도가 어디에서 오는지 알고 있습니다. 아니면 그렇게?

학생으로서, 나는 다른 사람이 내 문제를 해결하기 위해 작성한 코드를 사용하여 내가 배우고 싶은만큼 배울 수 없으며 통찰력이 떨어집니다. 그리고 때때로 나는 그 문구가 주로 마감일에 직면 한 일하는 프로그래머를위한 것이지 저와 같은 학생들을위한 것이 아니라고 생각합니다.

"바퀴를 재발 명"하는 것이 나쁜가요? 어쩌면 내가 잘못 생각하고 있습니까? 바퀴를 재발 명하지 않고 동시에 많은 것을 배울 수있는 방법이 있습니까?


51
다른 사람들이 당신을 위해 무게를 들어 올리면 체육관에 가입하면 큰 이익을 얻지 못할 것입니다 (구유자가되는 법을 배우지 않는 한).
Charles E. Grant

82
바퀴를 만들 때 바퀴를 재발 명해도 좋습니다. 집을 지을 때는 휠 빌더가 자신보다 더 잘하는 것을 알고 있다고 가정하는 것이 좋습니다.
zzzzBov

22
적어도 바퀴를 만들어보십시오! 그렇지 않으면 왜 조립식 제품을 사용해야하는지 알 수 없습니다.

59
절대를 언급하는 것은 결코 적절 하지 않습니다 . :)
CVn

2
매우 최적화 된 코드를 생성 할 때 휠을 재창조하는 것이 좋습니다. 표준 라이브러리는 매우 유용하지만 덜 일반적이지만 더 빠른 것을 만들 수 있습니다.
Leo

답변:


126

나는 당신이 좋은 지적을 생각합니다. 이 사이트의 프로그래머 대부분은 가능한 한 빨리 양질의 소프트웨어를 만드는 것이 목표 인 작업 전문가 일 것입니다. 바퀴를 재창조하면이 목표는 두 가지로 실패합니다.

  1. 존재하는 코드를 다시 작성하면 시스템의 고유 한 부분에서 사용할 수있는 노력을 낭비하고 프로젝트를 필요 이상으로 오래 걸립니다.
  2. 모든 코드의 첫 번째 버전에는 버그 / 예상치 못한 문제가있을 가능성이 높습니다. 대부분의 라이브러리와 재사용 가능한 구성 요소는 전투 테스트 및 여러 번 패치되었습니다. 해싱 알고리즘을 다시 발명하거나 자체 RDBMS를 만들려고하면 (프로젝트가 아닌 경우) 더 자주 결과가 나빠질 수 있습니다.

즉, 학업 환경에서 목표는 예산으로 소프트웨어를 제공하지 않고 배우는 것입니다 . 스포크 또는 차축 작동 방식을 이해하기 위해 휠을 다시 발명하는 것이 그 목표를 달성하는 좋은 방법입니다. 그렇기 때문에 많은 프로그래밍 커리큘럼에는 프로그래머가 거의 필요하지 않을 때 컴파일러 작성에 대한 클래스가 포함됩니다.


37
프로그래밍 학교가 교과 과정에서 제 3 자 라이브러리를 사용하는 방법과 왜 해야하는지 배우는 데 시간이 걸리기를 바랍니다.하지만 어떻게 작동하는지 이해한다는 아이디어에 동의합니다. 나는 이것을 할 수없는 전문 프로그래머의 개발자와 개발자를 끊임없이 찾고 결국 바퀴를 재발견한다.
Spoike April

3
컴파일러에 대한 좋은 점
Chani

1
내가 생각 학습 바퀴를 재발견하지 않는 것이 더 중요하다. 이미 만들어진 것을 만들지 않고도 할 수있는 일이 많이 있습니다.
토마스 보니 니

@Krelp 하나는 학생이지만 개념은 가장 중요한 부분입니다. 많은 교수들이 코드 샘플을 사용하여 브리지 이론과 응용을 허용합니다. 이것들은 도서관을 재발 명 할 프로그램의 유형이지만 학생들이 자료를 이해하도록하는 것입니다.
Jetti April

2
학생은 휠의 속도가 빠른 이유를 알기 위해 휠을 재발 명해야하지만, 전문가는 상용 휠을 사용해야 최대한 빨리 갈 수 있습니다. 안타깝게도 SO는 주로 학생들이 아닌 전문가를위한 사이트입니다 ([숙제]를 한동안 금지하지 않았습니까?)
Tacroy

19

답은 상황에 따라 크게 다릅니다. 해시 테이블을 구현할 때 데이터 구조를보다 심층적으로 이해하려면 "휠 재개발"이 최선의 방법입니다. 컴파일러 작성 방법을 배우고 기호 테이블이 필요한 경우 표준 라이브러리에서 재사용하는 대신 고유 한 해시 맵을 구현하는 것은 시간 낭비입니다.


17

학생으로서 먼저 휠을 복사하거나 휠을 복사 한 다음 휠의 작동 방식을 확인하고 제한 사항을 이해 함으로써 프로그래밍 교육을 시작해야합니다 . 나중에 디자인을 향상시킬 수 있는지 또는 코스 감독자에게 관련 개념에 대한 이해를 보여주기 위해 자신 만의 새로운 을 만들 수도 있습니다 .

그러나 실무 전문가로서 주어진 문제를 해결하기 위해 어떤 을 사용해야하는지, 그리고 문제를 부분적으로 만 해결하는 경우 기존 을 수정하는 것이 적절한시기를 알게 될 것 입니다. 어디에서나 휠을 찾을 수 없다면 , 시장 틈새를 식별했거나 충분히 탐색하지 않았을 , 새로운 을 만드는 것이 언제 적절한 지 알아야 충분한 경험이 있어야 합니다. 개인적인.

솔루션을 다시 발명하는 것이 적절한시기의 문제는 복잡하며 이전에 이미 수행 된 새로운 버전의 제품을 만드는 것이 더 나은시기를 배우기 위해서는 시간과 경험이 필요합니다. 짧은 시간 동안 만 개발 한 경우 기존 솔루션을 사용하고 멘토에게 옵션을 제안하도록 요청하는 것이 좋습니다. 프로젝트에 마감일이 촉박하고 불확실성이 많은 경우 기존의 것을 사용하면 시간을 크게 절약 할 수 있으며 항상 첫 번째 선택입니다. 나중에 바퀴 를 재발 명하기 위해 돌아온다는 의미가 있더라도 나중에 다른 솔루션을 사용하도록 나중에 리팩토링 할 수 있습니다 .


12

교사 나 프로그래밍을하는 동안 저는 문제의 반대편과 끊임없이 싸우고 있습니다. 학생들에게 언제 바퀴를 재발 명하라고 요청합니까?

다음과 같은 간단한 상황을 생각해보십시오. 우리는 정렬 알고리즘을 연구하고 있으며 데이터를 정렬하는 프로그램을 작성하는 작업을 설정했습니다. 날짜 기능으로 작업하고 있고 달력을 요청합니다.

이 두 가지 모두 사용할 수있는 수많은 기성품 라이브러리와 기능이 있습니다. 그러나 나는 학생들이 그것들을 피하고 정렬 알고리즘이나 달력의 자체 버전을 개발하기를 원합니다.

이제 다른 하나를 선택하십시오. 약속 예약과 같은 간단한 응용 프로그램을 작성하는 작업을 설정했습니다. 정렬 및 달력 등이 필요할 수 있습니다. 이번에는 "바퀴를 재발 명하지 마십시오"가 적용됩니다. 학생들이 해결 된 문제로 어려움을 겪고 싶지는 않지만 기존 기능을 조립하여 결과를 얻습니다.

저의 어려움은 기존의 재생산을 얼마나 요청해야하는지 배우고 배우게되며 공예를 연습하는 데 사용할 수있는 어려움을 알고 잘 배치 된 문제의 이점이 있습니다. 바퀴가 재발 명되지 않은 실제 환경에서 당신은?

귀하의 질문에보다 직접적으로 대답하기 위해 두 가지 제안 :

  • 교사가 "바퀴를 재발 명하지 말라고"지시하면 문제를 그런 식으로 설계했기 때문에 그렇게 말할 것입니다. 어쩌면 그들은 당신이 라이브러리를 시도하고, 누군가가 직접 알고리즘을 작성하는 대신 알고리즘 구현으로 어려움을 겪기를 원할 것입니다.
  • 알고리즘을 개발하는 대신 라이브러리 호출을 조립하는 연습이 너무 많은 경우 교사와 함께 이러한 활동 간의 균형에 대한 문제를 제기 할 수 있습니다. 예를 들어 정렬 및 병합과 같은 고유 한 알고리즘을 작성하라는 요청을받은 적이 없습니다. 커뮤니케이션은 결코 사라지지 않을 것입니다.

6

연습 나는 누군가가 작성한 최초의 1000 줄의 코드가 매우 독창적이라고 의심한다.

툴셋 확장 프레임 워크를 사용하면 프레임 워크를 사용하는 것이 무엇을하고 있는지 (직접 스스로 할 수있는 시점까지) 이해하는 데 더 많은 이점이 있으므로 적용 방법을 알 수 있습니다.

"바퀴"이해 잘못 구성되고 마모 된 휠 또는 맞지 않는 휠을 사용하는 것은이 썸네일을 맹목적으로 고수 할 이유가 아닙니다. 시간, 자금, 전문 지식이 부족할 수 있으므로 패치하고 여행을 마치기 만하면됩니다.

절대 값이 거의 없습니다 .


1
+ 특히 마지막 요점.
Mike Dunlavey

누구나 작성하는 처음 1000 줄의 코드 는 창의적인 실수로 인해 매우 독특합니다.
leftaroundabout

@ leftaroundabout-그 문장을 컴파일 할 수있는 코드 줄로 제한해야한다고 생각합니다.
JeffO

3

학생들은 과제를 완수 할 예산이 없지만 고려해야 할 기한이 있습니다.

최근까지 학생이었던 사람으로서, 적절한 바퀴 재발견의 양은 과제를 수행하는 수업에 달려 있다고 생각합니다. 당신은 (당신이 할 수 있다면 웹 개발 및 디자인 클래스에 대한 자신의 소켓 라이브러리를 쓰고 싶지 않아 하고 , 그러나 당신이 누락 될 것입니다 무엇을 당신은 쉽게 사용할 수 있나요? 클래스 복용하고있는 시간에의 할당을 설정)을 그것이 네트워크 수업을위한 과제라면 많은 일입니다. 물론 교수는 과제를 만들 때 일반적으로 이러한 사항을 고려하므로 수업과 관련된 작업을 수행하지만 때로는 자신이 작성 하지 말아야 할 내용을 아는 것도 중요합니다.

즉, 일단 학교를 떠난 후에는 이미 존재하는 것들을 지을 시간을 찾기가 어렵습니다. 학교에있는 동안 가능한 한 많은 기회를 얻으십시오.

SO에 "라이브러리 X / 프레임 워크 Y 사용"브러시 오프가 표시되면 "자신이 X를 작성하여 더 배우고 있습니다"라는 질문을 시작하십시오.


"X에 대해 더 많이 배우기 위해 X를 쓰고 있습니다"라는 질문에 머리말을 붙이십시오. 이. +1.
boisvert

2

프로젝트 IMO에 대한 기한이 설정되어 있지 않으면 휠을 재발 명하는 것이 좋습니다. 직업이 없거나 돈을 벌기 위해 프로그래밍 을 배우고 자 한다면, 더 좋은 프로그래머가되지 않는 바로 가기, 프로젝트를 더 빨리 끝내는 바로 가기를 사용하는 요점은 무엇입니까? 이것이 사실이지만, 라이브러리, 프레임 워크 및 다른 사람들의 코드를 사용하는 방법을 아는 것은 확실히 좋은 기술입니다.


이것은 코드 Katas의 개념을 뒷받침하는 아이디어로, 코드를 개선하고 배우기 위해 반복해서 코드를 다시 작성합니다. 직장에서도 코드를 반복해서 다시 작성하는 것이 좋으며 더 나은 경우 많은 패턴을 구현할 수 있다고 말합니다.
Bill K

2

실제로 휠은 계속해서 다시 만들어졌습니다. 이유를 찾으면 프로그래밍에서 휠을 재창조해야 할 때와 같은 통찰력을 찾을 수 있습니다.

수메르 시대부터 많은 것들이 바뀌 었습니다.

  • 바퀴를 만드는 데 사용되는 재료 : 돌, 목재, 금속, 탄소, ...
  • 바퀴가 필요한 물체의 크기-의료 기기의 나노 미터 크기 및 100m 크기의 갈탄을 얻기위한 바퀴 크기
  • 생산 환경-수공업 또는 산업 생산
  • 필요한 바퀴의 정밀도
  • 바퀴 주위의 올바른 상황. 당신의 직업을위한 완벽한 휠이있을 수도 있지만 특허를받을 수도 있습니다.
  • 휠을위한 광택과 광택. 캐딜락은 폭스 바겐 골프 이외의 다른 바퀴를 가질 자격이 있습니다.
  • 유모차를위한 최적의 바퀴는 유모차의 크기와 무게 (유아 / 플러스 포함), 기후 상황, 석유 또는 천연 고무의 자원 가격, 바퀴와 장인을 만드는 기계, 생산 가능한 여러 가지 매개 변수에 따라 다릅니다. 간단히 말해 : 세계 경제.

이것이 어떻게 소프트웨어 세계로 해석됩니까? 잘,

  • 웹 서버가있을 수 있지만 불행히도 PHP로 작성되었습니다. 당신은 당신이 유창한 언어로 그것을 선호합니다
  • 정렬 알고리즘은 10 개 요소에 대해 크기가 커지지 만 최대 1T 요소로 확장되지는 않습니다.
  • 두 번째 프로그램에서 자체적으로 생성 된 솔루션이 필요할 수 있습니다.
  • 알고리즘이 목록을 정렬하는 경우 알고리즘이 목록을 정렬하는 경우 대부분 정렬되지는 않지만 소프트웨어 토지에서 정밀도는 디지털 문제입니다. 그러나 성능 외에도 코드 크기, 메모리 사용량 또는 기타 제한이 발생할 수 있습니다.
  • 특허는 추가 설명이 필요하지 않습니다.
  • 모양과 느낌은 무언가를 재발 명하는 끊임없는 이유입니다. dropDownList (ComboBox)를 생각하십시오.
  • 글로벌 경제 상황은 소프트웨어 휠에 영향을 줄 수 있습니다. 클라우드 휠, 오픈 소스 휠, 브라우저 휠 또는 앱 휠일까요?
  • 물론 자신 만의 바퀴를 만들어야하는 가장 유명한 이유는 바로 배우는 것입니다.

2

나는 새로 교육받은 학생입니다. 학교에서 우리는 교육을받은 2 년 동안 asp.net과 C #을 '학습'했고, 우리 자신의 이메일 시스템, 로그인 시스템 또는 CMS를 만들려고 시도한 적이 없었습니다. .

우리는 102 명의 학생들을 시작했고 23 명이 완료했습니다. 4 명이 일을하고 있습니다. 이유는? : 저를 포함한 4 명은 실제로 교육을 시작하기 전에 프로그래밍하는 방법을 알고있었습니다.

나머지 사람들은 길을 잃었습니다. 우리는 결코 '바퀴를 재발 명'하지 않았기 때문입니다. 코드가 실제로 어떻게 작동하는지 알 수 없었습니다. 사용자 관리 기능을 사용하여 전체 로그인 시스템을 구축하는 것은 매우 간단합니다. 그러나 교육을받은 학생들은 그렇게하는 방법을 모릅니다. 로그인 시스템이 실제로 어떻게 작동하는지 모르기 때문입니다.

나는 어느 시점에서 실제로 2 년을 낭비하고 아무것도 배우지 못한다는 것이 슬프다. -전 세계의 교사들이 다음과 같이 말하고 싶습니다. 예, 우리는 코드가 존재하는 프레임 워크가 있다는 것을 알고 있습니다. 실제 생활에서 사용할 수 있습니다. 그러나이 교육에서는 프로그래밍 방법을 배우게됩니다.

많은 프로그래밍 교육은 매우 짧기 때문에 교육은 그 시간 안에 많은 것을 다루어야합니다. 나는 물건의 목록을 반으로 줄이고 프로그래밍에 더 많은 시간을 보내는 것이 더 좋을 것이라고 생각합니다. 사람들은 정상적인 '바퀴'를 만드는 방법을 알고 있다면 '새로운 종류의 바퀴'를 발명 할 수 있습니다. 사람들은 약간의 지식이 있다면 어리석지 않지만 자동차에 대해 전혀 모르는 사람에게 자동차를 만들도록 요청할 수는 없습니다. 그러나 자전거를 만드는 방법을 아는 사람에게 물어 보면 훨씬 쉬울 것입니다. 실제로 차를 세우는 것입니다.


1

그것은 실제로 당신이하고있는 것에 달려 있습니다. 바퀴를 이해하려는 경우 바퀴를 다시 발명하는 것이 좋습니다. 그러나 자동차를 이해하려는 경우 휠 또는 내연 기관을 재발 명하는 것은 일반적으로 낭비이며 산만합니다.

예를 들어, 전체 텍스트 검색 색인의 작동 방식을 이해하려는 경우 직접 롤업하는 것이 좋습니다. 문서 관리를위한 응용 프로그램을 구축하려는 경우 대부분의 작업에서 응용 프로그램 아키텍처와 사용자 경험을 동시에 얻는 것이기 때문에 기존 라이브러리를 다시 사용하는 것이 좋습니다.


1

그렇습니다. 학생들에게 바퀴를 재발 명하지 말라고 말하는 것이 좋습니다. 그러나 학생에게 어떤 의미가 있는지에 대한 명확한 이해가 필요합니다. 과제와 관련된 것을 작성하십시오. 할당이 버블 소트를 작성해야하는지, 위키피디아에서 복사하거나 프레임 워크 또는 언어가 제공하는 경우 array.sort 또는 이와 동등한 것을 사용한다는 의미는 아닙니다. 그러나 다양한 정렬 알고리즘을 다루고 자신의 bubblesort 및 quicksort를 작성한 후에는 각각의 새로운 할당에 대해 다시 작성하지 않고 내장 정렬 또는 사용 된 것을 사용하고 다시 같은 똑같은 일을하지 마십시오 .

바퀴를 재창조하는 것은 시간을 낭비하지 않는 것입니다. 이는 전문가만큼이나 학생에게 적용 할 수있는 것입니다. 차이점은 목표가 무엇인지에 있습니다. 학생들은 배우고 있어야하므로 더 이상 이해하지 못하는 것은 시간 낭비입니다. 하나의 버블 정렬을 작성한 후에는 그것이 무엇인지 알고, 왜 큰 세트에서 사용하고 싶지 않은지 알 수 있습니다. 그것을 다시 쓰는 것은 시간 낭비입니다. 25 번째 재 작성에서 새로운 것을 배우지 않을 것입니다.

학생들에게 그것은 다른 사람들이 쓴 것을 쓰지 않는다는 것을 의미하는 것이 아니라 이미 숙달 한 것을 다시 실행하지 않는 것을 의미합니다.


25 번째 재 작성이 새로 배우는 프로그래밍 언어에 대한 연습 인 경우를 제외하고.
leftaroundabout

1

많은 생각과 노력으로 바퀴를 만들었습니다. 조언은 "바퀴를 재발 명하지 말 것"이지만 휠을 리버스 엔지니어링하고 특정 작업이 수행되는 방식을 이해하는 것이 좋습니다. 그 후, 당신은 세 가지 논리적 인 결과 중 하나를 초래할 수있는 자신 만의 방식으로 휠을 구현해 볼 수 있습니다.

  1. 당신은 왜 사물이 자신의 방식인지 이해합니다.
  2. 당신은 그것을 최적화하고 더 나은 만들 수 있습니다
  3. 당신은 그것을 망치고 그 일을하지 않는 방법을 배울 수 있습니다.

나에게 학생은 바퀴를 재발 명해서는 안되지만, 리버스 엔지니어링을 시도하고 그 의미를 이해하려고 노력하십시오.


1

다른 작업을 수행하는 과정에서 휠이 어떻게 작동하는지 또는 휠을 재발 명하는지 재창조하는지 여부에 달려 있습니다. 모든 학생이 적어도 한 번은 스스로 구현해야하는 바퀴가 있습니다. 일부 기본 데이터 구조 및 알고리즘이 코드 성능에 어떤 영향을 미치는지 이해하거나 다양한 환경에서 사용할 알고리즘을 선택하려면 기본 데이터 구조 및 알고리즘의 작동 방식을 알아야합니다.

스택, 힙, 링크 된 목록, 트리 등은 한 번 구현하는 데 투자 할 가치가 있습니다. 그런 다음 프레임 워크에서 제공하는 것을 사용한 후에. jQuery 플러그인을 사용하는 모든 사람은 적어도 하나를 작성해야하지만, 사용할 다른 유형의 모든 유형을 작성할 필요는 없습니다. 작은 프로세스 스케줄러 또는 미니 OS를 작성하는 것이 도움이되지만 필요하지는 않다고 말하면 컴퓨터의 후드에서 일어나는 일을 이해할 수 있습니다. 프로세스, 스레드 등의 작동 방식을 이해해야합니다.

좋은 실무 지식을 가지고 나면 새로운 구조 / 알고리즘을 다시 구현하여 느낌을 얻는 것이 중요하고 재미있을 수도 있습니다. 그것이 당신의 일이거나 당신이 정말로 잘하지 않는 한, 나는 코드에서 기존 것들을 사용하는 것을 고수 할 것입니다.


1

답은 배우고 싶은지 아니면 창조 할 것인지에 따라 다릅니다 .

학습이 목표 인 경우 "바퀴 재개발"을 통해 기존 휠 (라이브러리 기능)을 사용하는 것보다 더 큰 통찰력과 이해를 얻을 수 있습니다.

그러나 복잡한 제품을 만드는 것이 목표라면 "바퀴를 재창조"하는 데 많은 시간이 걸리고 제품을 만드는 데 거의 도움이되지 않습니다.

그럼에도 불구하고, 영혼의 목표가 충분한 시간과 체력으로 제공되는 학습이라면, "바퀴를 재창조"하는 것이 모든 단일 기능을 사용자 정의하는 데 도움이되는 최선의 선택입니다.


1

이것에는 두 가지 측면이 있습니다.

첫째, 배우려고하는 경우 처음부터 몇 가지 작업 을 수행 하거나 필요보다 낮은 수준의 인터페이스를 사용 하는 것이 유용 할 수 있습니다 . 그러나 여전히 배우고있는 것을 식별해야합니다. HTTP 프로토콜에 대해 배우려면 소켓 프로그래밍을 직접 수행 할 필요가 없습니다. 당신이 배우고있는 것을 재창조하고 , 실제로 탐구하고 이해하기 위해서만 그렇게하십시오.

그러나 전문 프로그래머의 가장 중요한 기술 중 하나는 기존 소프트웨어를 선택하고 배우고 사용하는 것입니다. 이것은 또한 배워야 할 것입니다. SO에 대한 질문의 상당 부분은 문서를 읽을 수없는 사람들로부터 온 것 같습니다.

마지막으로, 프로그래밍은 실질적인 이론적 근거에 기초합니다. 이론을 배우기 위해서는 읽기와 함께 실용적인 연습을해야합니다.


동의한다. 많은이되는 이유 새로운 기존 소프트웨어 프레임 워크와 라이브러리 : 항상 생성되는
gbjbaanb

0

나는 같은 상황에 직면했다. 그것은 산업계와 학계에서 인식의 차이로 인한 것입니다.

"바퀴를 재발 명"하지 않으면 학교에서 아무것도 공부하거나 무언가가 어떻게 작동하는지 이해할 수 없습니다.

산업 분야의 목표는 최소한의 시간과 노력으로 제품을 출시하는 것입니다.

개인적으로, 나는 토끼 구멍을 내려 가고 산업 철학을 싫어하지만 비즈니스가 수행되는 방식과 불평 할 수 없습니다.


0

해커 전문 용어 Lexikon은 에 아주 좋은 의견이 바퀴를 개혁를 :

기존 툴의 일부 또는 그와 동등한 툴을 설계하거나 구현하는 것은 어리 석거나 시간 낭비라는 의미입니다. 이것은 종종 유효한 비판입니다. 다른 한편으로, 자동차는 나무 롤러를 사용하지 않으며, 어떤 종류의 바퀴는 올바른 바퀴를 만들기 전에 여러 번 재발 명해야합니다. 세 번째로, 바퀴를 재발 명하는 사람들은 오프셋 차축을 가진 사다리꼴의 도덕적 동등 물을 생각해내는 경향이 있습니다.

따라서 바퀴를 재발 명하는 것이 좋을 수도 있지만 바퀴를 사용하기 전이나 후에 다른 사람의 해결책을 확인하십시오.


0

답 A : 바퀴를 재발 명하십시오. 데이터 구조와 알고리즘에 대한 이해가 깊어지고 좋은 자료를 작성할 가능성이 높습니다. Guido van Rossum이 Python에서 시작할 때 사람들은 그에게 바퀴를 재발 명하지 말라고 말했습니다. 이미 많은 언어가있었습니다. 이미 Yahoo! 클랑은 어때? 모두 배우십시오. 거인이 되십시오. 작은 사람들이 당신을 제한하지 못하게하십시오. 답 B : 강사가 무엇을해야하는지 알려 주면 어리석은 것처럼 보이더라도 원하는 것을 줄 수 있습니다. 당신은 또한 놀라운 솔루션을 만들고 그에게 링크를 줘서 미쳐 가고 싶다면 계속하십시오. 그러나 먼저 주어진 행복에 따라 제시된 요구 사항을 충족하십시오.


-1

학생이고 프로젝트 마감일이 정해지지 않은 경우 "바퀴를 재발 명"하는 것이 좋습니다. 돈을 벌지 않고 프로그래밍하는 법을 배우기 위해 지금 프로그래밍하고 있다면 왜 배우는데 도움이되지 않는 지름길을 택해야합니까? 왜 그렇게 어려운가요? 그러나 일하는 프로그래머가되면 프레임 워크 또는 라이브러리를 사용하는 방법을 모른다면 사람들은 회의적입니다.


10
어느 학교에 다녔는지 모르겠지만, 어디로 갔는지, 과제 마감일이 흔했습니다.
CVn

-2

과제 / 질문 / 시험에서 요청한대로하십시오.

몇 년 전 저는 C 프로그래밍 클래스의 TA였습니다. 시험 문제는 '파일 복사 프로그램 작성'이었습니다. 여러 학생들이 같은 유형의 질문을했습니다. 프로세스를 생성하고 OS cp 명령을 실행할 수 있습니까?

우리가 그들에게 물었던 것은 '프로그램이 파일을 복사 할 것인가?'였습니다.

시험 문제는 파일을 복사하는 코드를 작성하도록 요청했습니다. 응답에 파일을 복사 한 C 코드가없는 경우 (예 : 열린 입력, 열린 출력, 바이트 읽기 / 쓰기 루프, 입력 닫기, 출력 닫기) 파일을 복사하지 않았습니다.

교사가 프레임 워크 또는 라이브러리를 사용한다고 말하면 (예 : 그래픽 클래스에서 3D 라이브러리를 사용하도록 지시 할 수 있음) 사용하도록 지시 한 내용을 사용하십시오. 자신의 것을 발명하거나 다른 것을 사용하지 마십시오. 다른 것이 있으면 교사가 과제를 채점하기가 더 어려워집니다.

면접에서 인기있는 프레임 워크에 대한 지식이 질문에 대답하는 데 도움이됩니다. 배울 프로젝트를 직접 만드십시오. 당신의 공부에 행운을 빕니다.


그렇습니다. 그러나 만약 그들이 cp프로그램 을 생성 했다면 실제로 파일을 복사 할 것입니다.
Marcin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.