ProgramingTip

프로그래머는 왜 도서관을 피하는 것 같습니까?

bestdevel 2021. 1. 8. 23:07
반응형

프로그래머는 왜 도서관을 피하는 것 같습니까?


나는 여기에서 라이브러리를 사용하여 발견 한 새로운 프로그래머로부터 많은 질문을 발견했습니다. "X 라이브러리를 사용하고 싶지 않습니다"라고 대답합니다. 이것이 학습 곡선입니까? 또는? 그냥 궁금해!


많은 새로운 프로그래머가 여전히 매우 낮은 수준의 추상화에서 작업하는 동안 거래를 배우고 있습니다. 그것은 모두가 집어 야 할 일입니다. "스택 위로 이동"하는 데 시간이 있습니다.

프로그래머가 다른 사람이 이미 것과 같은 것과 동일한 문제를 해결하는 데 대부분의 시간을 소비하고 목표가 "비즈니스 가치"를 실현하는 것을 알게되면 좋은 라이브러리가 제공되는 가치를 진정으로 인식 할 수 있습니다.


여전히 새로운 언어가 많은 것들이 라이브러리를 사용하는 방법을 사용하는 방법을 배워야하는 너무 많은 작업처럼 보일 수 있습니다. 또한 라이브러리는 잘못 문서화되는 경향이 있거나 또는 초보 프로그래머에게 완전히 불투명 해 보이는 문서가 있습니다.

그래서, 문제 X를 풀려고 할 때 "라이브러리 사용"이라고 말하는 것은 "문제 Y THEN 문제 x"와 대화하게 들릴 수 있습니다.

나는 STL이 존재한다는 것을 배우지 않고 C ++로 나의 학부생을 요리 했어.)


어떤 사람들은 문제에 직면했을 때“알아요, 도서관을 사용할 거예요”라고 생각합니다. 이제 두 가지 문제가 있습니다.

진지하게-이것은 이미 새로운 언어, 프로그래밍 환경, 패러다임, 키 입력 의해 압도 된 하나가 라이브러리 제안에 반응하는 합리적인 방법. 안 오류 원인이 많이 있습니다. 올바른 분류하는 것은 도전입니다. 추가 하는 것은 비합리적으로 보일 수 있습니다.

"라이브러리 사용"은 라이브러리를 찾아 다운로드하고 프로젝트에 설치하고 필요한 기능을 호출하는 것을 의미합니다. (그리고 이에 대한 기업 정책이없고 공급 업체를 사용하는 이유가 있고 라이브러리 자체에 최소한의 기술 등이 있음)이 있습니다. 그러나 그것이 당신에게 완전히 새로운 경우, 프로그래밍 질문 받을 때 시스템 구성에 대한 답변을 받을 때 도움이되지 않을 수 있습니다 (사실 것이 보장되지 않습니다).


항상 거의 모든 언어 교수가 할 수 있습니다.

가끔은 스스로 배우고 싶어서 일 때도, 드물다고 말하고 싶습니다.


학습 곡선입니다.


라이브러리를 사용하는 것은 아마도 학습 프로그래머가 할 수 있는 최악의 일 중 하나 일 것 입니다. 코딩 방법을 배우는 대신 다른 사람들이 구현 한 특정 API를 사용하는 방법을 배우고 있습니다. 모든 프로그래머가 자신이 사용하는 모든 것을 이해해야한다는 것입니다., 컴퓨터 (디지털 방식으로, 연산 코드를 조립하는 등)는 일반적으로 시작하는 것을 아는 프로그래머는 일반적으로 시작하는 것입니다. Java Swing과 같은 라이브러리를 함께 던지고 있습니다.

생산에서 이것은 물론 다른 문제입니다. 하지만 교육의 가장 좋은 과정은 한 번은 '모든 것을 말하는 것'이라고 생각합니다. 처음부터 웹 애플리케이션 프레임 워크를 작성하면 프로그래밍 기술과 추상 능력이 크게 향상되었습니다. 구현하는 경우 고용하여 애플리케이션을 구축하는 경우 해당 프레임 워크를 사용 의미는 사용하는 것의 '거대한'프레임 워크가 사용하는 것의 장단점 및 이유를 알고 특정 프레임 워크를 선택하는 데 도움이 될 수 있습니다. 특정 상황에 대해.


나만의 알고리즘을 만들 수 있는지보고 싶었 기 때문에 여러 라이브러리를 피했던 기억이납니다. 나는 그냥 포기하고 누군가가 나를 일하게하고 사고 고 위해 내 실수로부터 배우고 싶었다. 만족스러운 조사를 받았습니다.

그래서 나에게는 내가 할 수 있고 싶었습니다.


나는 항상 자신의 한계를 볼 수 있습니다. 최근에 PDF 문서를 만들기 위해 라이브러리를 다운로드했지만 그게 제가 기억할 수있는 유일한 시간입니다.

포기 나에게 (자신을 시도하는) 학습 방법은 내 방식입니다.

내 인상은 많은 프로그래머가 다른 사람의 라이브러리를 사용한다면 자신의 작업이라고 생각하지 않을 것입니다.


나는 반드시 나쁜 생각하지 않습니다. 라이브러리를 사용하는 것은 훌륭합니다. 시간, 노력, 버그 등을 절약 할 수 있습니다. 그러나 그 과정에서 배우는 거의 모든 것이 새로운 프로그래머에게는 목표입니다. 그에 대한 답하기 때문에 그들은 도서관을 사용하는 데 익숙하지 않고 아마도 그들이 존재하는지 모르기 도서관에서 부끄러워하는 경향이 있다는 생각합니다.


느슨하게 구현 된 포함 및 가시성을 잘 제어 할 수없는 언어로 된 문서화되지 않은 많은 라이브러리의 경우 라이브러리 사용 방법을 추측하기가 매우 어렵습니다.

한동안 사용 해본 후에는 문제에 익숙해 지거나 올바른 방법을 알려주는 다른 소스 코드를 읽었습니다. 그러나 그런 것이 아니라는 것이 아니라는 것이 아니라는 것을 사용하는 것입니다. (또는 끔찍하게 잘 문서화되지 않은 것으로 잘 것).

라이브러리에 대한 소스 코드가 이는 또 다른 문제입니다. 프로그램이 계속 작동하는 기능을 제어 할 수 없습니다. 요즘은 훨씬 드물지만 라이브러리를 구매 한 경우에도 여전히 발생합니다.


대부분의 요점은 다루어졌지만 (나에게 주된 점은 학습 곡선입니다) 다른 점이 역할을 생각합니다.

라이브러리에 대해 배우는 것과 동일한 기능을 직접 코딩하는 것보다 흥미 롭기 때문입니다.


더 많은 라이브러리 = 청구 가능한 시간 감소.


도서관의 목적을 이해하는 데 많은 시간을 투자해야한다고 생각합니다. 예, 학습 곡선입니다.하지만 프로그래머는 더 많은 경험을 쌓을 때까지 필요한 것이 무엇인지 모를 것입니다.


재미 있기 때문에.


개발자로서의 성숙하는 과정의 일부는 라이브러리 또는 기존 솔루션으로 실현할 수 있고 개인적인주의가 필요한 문제를 빠르게 이미지하는 방법을 배우는 것입니다.


일을하는 방법을 배우려고 할 때 AwesomeClass.doAwesomeStuff ()를 호출하여 "마 법적으로"무언가를 수행 할 때마다 제어의 일부를 포기하게됩니다. 당신이 "신규"이고 당신이 무엇을 제공하는지 또는 왜 불안 할 수 있는지를 모를 때. 이것이 Rails에 대한 나의 주요 노크였습니다. 너무 많은 것들이 그냥 "작동"하고 Rails 소스를 많이 파헤 치지 않고는 이유를 랐습니다 (일반적으로 할 시간이 없었습니다).

그것은 내 생각입니다.


경험 많은 개발자들이하는 것과 같은 이유-

필요한 부분을 작성하는 것만 큼 라이브러리를 사용하는 방법을 배우는 것이 어려울 수 있기 때문입니다. 그리고 작동 작동 작동하지 않습니다.

숙련 된 개발자는 라이브러리 사용 방법을 이해 한 경험이 있으므로이를 고려할 가능성이 높습니다. 경험이없는 개발자라면 배울 것이 하나 더 있습니다 ...


저는 심리학자가 아니라 프로그래머입니다! :)

저에게는 아주 오래전 일이지만 배우고 경험하고 싶었 기 때문입니다. 내가 이해하지 못하는 것을 사용하고 싶지 않았기 때문에 내가 라이브러리를 이해하지 못하고 직접 프로그래밍 할 수 있다고 생각하지 않으면 사용하지 않으려 고했습니다. 약간의 두려움도있을 수 있습니다. 프로그래밍은 제어 감을 제공하고 라이브러리를 사용하는 것은이 제어권을 포기하는 것과 같습니다.


멍청한 사람의 대답- "라이브러리를 사용하는 방법이나 라이브러리에 액세스하는 방법 또는 작동 방식을 잘 모르겠습니다."


라이브러리는 종종 일부 API를 학습하는 오버 헤드를 동반하며 이는 패러다임입니다. 상당히 빠르게 복잡해질 수 있으며 초보자가 자신의 편안한 영역에서 조금 더 선호하는 것을 쉽게 이해할 수 있습니다. 내 경험으로 볼 때 대부분의 라이브러리와 프레임 워크가 지루한 루틴을 추상화하는 데 훌륭한 역할을하는 것 같지만이 기능을 확장하거나 의도하지 않은 방식으로 사용해야하는 경우 몇 가지가 될 수 있습니다.

"연습이 완벽하게 만드는"것 중 하나라고 생각합니다.


글쎄, 초보자의 목적은 솔루션을 구현하는 것보다 문제를 해결하는 것일 수 있습니다. 아마도 그들이 정말로 원하는 것은 문제를 해결하는 방법 을 찾는 것입니다. 내 말은, 그들이 여전히 학습 단계에 있다면 쉬운 대답을 그들에게 전달하고 싶지 않을 수도 있습니다.


교수님들은 그들이 기본에 충실하기를 바랍니다. 학부를 졸업 할 때 C ++, Java 및 기타 언어를 알고 있었지만 회사에서 사용되는 라이브러리와 프레임 워크에 대해서는 전혀 몰랐습니다. java..yes .. 서블릿을 작성할 수 있는지 아는 것과 같았습니다 ..no.


속도 악마의 경우 타사 라이브러리를 거의 사용하지 않으며 새로운 프로그래머는 일반적으로 코드 속도를 매번 짜내려고합니다. 코드를 제어 할 수 없으면 원하는 성능을 얻을 수 없다고 생각합니다. 적어도 그것이 내가 처음 프로그래밍을 시작할 때 라이브러리를 피한 이유입니다.

나는 내 코드가 최고 속도로 수행되기를 원했기 때문에 첫 번째 DAL을 프로그래밍하고 웹에서 다른 모든 무료 라이브러리를 피했습니다. 나중에 나는 일반적으로 데이터베이스가 문제가되는 코드가 아니라는 것을 발견했습니다.


일부 오픈 소스 라이브러리는 버그가 있거나 다른 라이브러리만큼 효율적이지 않습니다.


내 눈에 또 다른 요소는 추가 라이브러리가 복잡성을 추가한다는 것입니다. 프로그램은 더 복잡해지면 이해하기 어렵고 유지 관리하기 어렵고 버그가 커지는 경향이 있습니다. 특히 새로운 프로그래머가 라이브러리를 꺼리는 이유는 라이브러리 코드를 추가하는 것이 자신의 코드를 추가하는 것보다 복잡성을 증가 시킨다는 점이라고 생각합니다. 단순히 라이브러리가 작동하는 방식을 이해하는 것은 아직 이해가되지 않기 때문입니다. 그래서 그것은 기술과 심리학의 문제인 것 같습니다.


보다 근본적인 문제는 기존 도서관 이용을 방해하는 요인으로 인식 될 수 있다고 생각합니다.

  1. "초보 프로그래머"로서의 일부는 라이브러리에 대한 노출 부족입니다. 존재하는지 모르면 어떻게 사용하는지 알고 있습니까?
  2. 사용 가능한 옵션 수. 제가 MVC에 대해 더 많이 배우는 데 정말 관심이 있다고 가정 해 봅시다.하지만 cakephp와 smarty, zend 중에서 선택해야한다면 실험에 시간을 투자하지 않고도 목표를 달성하는 방법을 찾기 위해 기어가 작동하는 것을 빠르게 확인할 수 있습니다. . 사용 가능한 라이브러리의 엄선 된 선택에 대해 더 잘 이해하려면 Freshmeat 또는 SourceForge를 살펴보십시오.
  3. 라이브러리에 대한 스케치 / 오래된 문서와 결합 된 의심스러운 지원. 더 이상 작동하지 않거나 향후 중단 될 수있는이 도구를 사용 하시겠습니까? 프로젝트가 발전 할 가능성이 높으므로 도서관 프로젝트도 발전 할 것입니다. 그 유용성은 내 프로젝트의 수명 동안 지속됩니까? 아니면이 작업을 다시 수행해야합니까?

라이브러리를 사용하려면 라이브러리의 비교적 복잡한 디자인을 이해해야합니다. 새로운 프로그래머가 작성한 것은 단순한 / 절차 적 / 단일 목적 코드이기 때문에 마스터하지 않았을 수 있습니다. 예를 들어 숙련 된 프로그래머에게는 템플릿 방법, 관찰자 ​​및 명령과 같은 표준 디자인 패턴이 매우 분명해 보이지만 초보자에게는 모든 것이 마술 및 / 또는 불필요한 복잡성처럼 보입니다. 저에게 전환점은 디자인 패턴을 모색하고 몇 가지 기본적인 재사용 가능한 코드를 작성할 수있는 능력을 갖추었을 때였습니다.


오랜만에 대학을 졸업했을 때 도서관에 대해 전혀 몰랐습니다. 이것은 메인 프레임과 미니 컴퓨터 시대였습니다. 우리 대학에는 VAX가 있었고 관리자는 학생들이 시스템을 해킹하는 것에 대해 편집증 적이 어서 도서관 매뉴얼도 볼 수 없었습니다. 그래서 제가 처음 대학을 졸업했을 때 도서관이 있다는 생각조차하지 못했습니다.


초보자가 새 라이브러리를 사용하지 않는 데에는 많은 이유가 있다고 확신합니다. 하지만 시간이 충분하다면 도서관 이용의 이점이 무엇인지 보여줄 수있는 좋은 기회가 아닐까요? 나는 함께 일하는 사람들과 함께 그들의 접근 방식보다 무언가가 더 나은 이유에 대한 예를 제공 할 것입니다. 프로그래머로서 배우고 성숙하도록 도와줍니다.


것을 어떻게됩니까 noobs에 모르게 libs와 사용 ,하지만 그들은 수입해야하는 경우 / 상당히 적은 문서화되어 하나하는이 추가 알 수없는 두려움을 . 대부분 컴파일 된 언어에서 발생합니다!

해석 된 (또는 컴파일 된 IRT)에서 주로 콘솔이있을 때 그러한 두려움은 거의 존재하지 않습니다 . 요청하고 실패하는지 확인할 수 있으므로 메서드를 호출하고 반환되는 내용을 확인하십시오.

콘솔은 용기의 도구입니다!

참조 URL : https://stackoverflow.com/questions/1344304/why-do-newbie-programmers-seem-to-shy-away-from-libraries

반응형