태그 보관물: intellisense

intellisense

초보자는 IDE 자동 완성 (Intellisense)을 사용해야합니까? [닫은] 같은 것들을

프로그래밍을 처음 접하거나 처음 배우는 사람을 도울 때 종종이 문제가 발생합니다. 나는 정말 새로운 초보자에 대해 이야기하고, 여전히 OOness에 대해 배우고, 객체를 생성하고, 메소드 호출과 같은 것들을 배우고 있습니다. 일반적으로 키보드가 있으며 지침을 제공합니다.

한편으로, IDE의 자동 완성 기능은 IDE가 올바르게하고 있다는 피드백을주고 빠르게 좋아하고 의존하게합니다.

반면, IDE 자동 완성에 대한 초기 의존성으로 인해 개념을 실제로 이해하지 못하거나 언젠가 간단한 편집기로 자신을 발견하면 기능을 수행 할 수 없을 것 같습니다.

이와 관련하여 더 많은 경험을 가진 사람이 의견을 공유 할 수 있습니까? 초보자, 자동 완성 또는 수동 입력 중 어느 것이 더 낫습니까?

최신 정보

입력 해 주셔서 감사합니다.

많은 답변은 메서드 완성, 메서드 조회 및 문서 제공 등 자동 완성의 주요 사용에 초점을 맞추는 것 같습니다. 그러나 오늘날 IDE는 훨씬 더 비슷합니다.

  • List 유형의 객체를 만들면 IDE가 오른쪽의 새 ArrayList로 자동 완성됩니다. 왜 새 목록이 될 수 없는지 초보자에게는 분명하지 않을 수도 있지만, 잘 작동합니다.
  • 상황에 따른 로컬 변수를 기반으로 메소드 매개 변수 작성.
  • 객체 캐스트 수행
  • ‘import’또는 ‘using’문 자동 추가

그리고 훨씬 더. 이것들은 내가 의미하는 것들입니다. 프로그래밍 101을하고있는 사람들에 대해 이야기하고 있다는 것을 기억하십시오. 나는 IDE가 그들이 알지 못하는 이러한 일을하는 것을 보았지만 그냥 수행했다.

언어의 뉘앙스를 깊이 이해하고 이해하기 전에 프로그램 흐름에 집중하고 사물을 익히는 데 도움이 될 수는 있지만 확실하지 않습니다.



답변

IDE를 사용하면 학습 과정에서 도움이된다고 생각합니다. 방법, 속성, 파라미터, 과부하 등을 발견 할 수 있습니다. 압도적으로 거대한 라이브러리를 갖춘 Intellisense는 JIT 지식을 속이는 데 도움을줍니다. 오늘날의 코딩 환경에서는 모든 것을 미리 배울 수 없으며, JIT 학습은 종종 생산성을 높이는 유일한 실용적인 방법입니다.

IDE를 사용하는 것이 맹목적으로 사용하면 버팀목이 될 수 있다는 것을 알고 있지만 이점이 부정적인 점보다 훨씬 크다고 생각합니다.

반면에 사전 구축 된 내용을 이해하지 않고 템플릿을 사용하는 것이 더 큰 문제입니다. 개발자가 템플릿 코드를 읽는 데 시간이 걸리면 학습 도구로 사용할 수 있다고 생각합니다. 그러나 대부분의 사람들은 귀찮게하지 않습니다. 그래도 훌륭한 학습 도구가 될 수 있습니다.


답변

개념을 이해하고 수백 개의 어리석은 라이브러리 클래스와 메소드를 암기하는 것은 완전히 다른 것입니다. Intellisense는 모든 쓸모없는 지식을 마음에서 완전히 발산하도록 도와줍니다. 유용한 개념을위한 더 많은 공간을 남겨두고 제한된 리소스를 API에 낭비하지 마십시오.

질문의 업데이트 된 부분에 대답하기 위해 : 구문 세부 사항, 파일 레이아웃, 컴파일러 및 링커 호출은 일반적인 프로그래밍 개념과 비교할 때 중요하지 않습니다. 일단 그들이 초보자를 이해하면 저급 물건이 실제로 어떻게 작동하는지 더 깊이 이해할 수 있습니다. 이미 기본 사항을 알고있을 때 수행하는 것이 좋습니다. 그렇지 않으면 여러 가지 위험한 마법 미신을 선택할 수 있습니다.

예를 들어 DrScheme IDE는 프로그래밍 교육 분야에서 뛰어난 실적을 보유하고 있으며, 그 성공은 주로 중요한 것에 집중할 수있는 능력 덕분입니다.


답변

자동 완성을 사용하는 것은 전혀 나쁜 것이 아닙니다.

그것은 단지 속도를위한 것이고, 저에게는 IDE를 이해하고 그것을 잘 사용하기 시작하는 누군가의 징조가 될 것입니다.

나는 그것을 사용하지 않으면 그들이 예를 들어 OO를 배우는 데 어떻게 도움이되는지 이해하지 못합니다.


답변

프로그래밍에 익숙하지 않은 학생들을 가르치고지도 해 본 결과, 자동 완성 / 지능이 때로는 좋은 것보다 더 큰 해를 끼친다는 것을 알았습니다. 예, 그들은 그것을 사용하여 프로그램을 작성할 수 있습니다. 예, 컴파일하고 실행하며 요청한 작업을 수행 할 수도 있습니다. 그러나 그들은 자신이하는 일을 이해하지 못합니다.

그들이 무슨 일이 일어나고 있는지 이해하지 못하면 프로그래밍이 줄어들고 솔루션을 해킹하여 점수를 얻습니다. 나는 우리가 그들에게 요청한 것이 더 어려워 짐에 따라 학생들과 많은 일이 벌어 졌다는 것을 알았습니다. 그들은 무언가가 작동 할 때까지 해킹당했습니다. 이것은 중간기가 다가오고 학생들이 손으로 간단한 방법을 쓰라는 요청을 받았을 때 항상 분명해졌습니다.

예. 자동 완성 / 지능형은 우리 (전문 개발자)에게 많은 도움을줍니다. 우리는 모든 다른 방법과 매개 변수 목록을 기억할 필요는 없지만, 동시에 우리가 알고있는 프로그래밍 경험이있는 방법이 어떤 매개 변수를 취할지 추측 할 위험이 있습니다.

초보자는 그렇지 않습니다. IDE가 메소드 목록을 가져올 때까지 기다렸다가 필요한 목록을 찾을 때까지 해당 목록을 스크롤하고 필요한 매개 변수를보고 전달해야하는지 확인합니다. .. 그리고 결국 그들은 함께 할 수있는 무언가를 해킹했을 것입니다.

그리고 과정이 끝날 무렵, 그들은 얕은 승리로 프로그래밍 클래스에서 멀어 질 것입니다. 많은 사람들은 자신이 한 일을 이해하지 못했거나 왜 그랬는지 이해하지 못하고 다른 CS 수업을 다시는 가져 가지 않습니다. 그것.


답변

일반적으로 IDE와 개발 환경의 문제는 많은 “흥미로운”일들이 이미 수행되었고 다양한 정도로 숨겨져있는 템플릿 솔루션 (file | new | project)을 사용하는 것처럼 자동 완성과 같은 것이 아닙니다. .

전반적으로 무슨 일이 일어나고 있는지 이해하는 사람에게는 이것이 도움이되지만 필요한 것을 배우는 사람은 오히려 적습니다.

헤비급 IDE를 시작하는 데 걸리는 시간에 대한 질문도 있습니다 …

따라서 가벼운 텍스트를 사용하고 모든 코드 줄을 직접 작성한 응용 프로그램을 실행할 수 있다는 것은 특히 장점이 있습니다. 특히 텍스트 편집기와 컴파일러를 사용하면 IDE 를 사용하여 소프트웨어를 작성 하지만 오랫동안 텍스트 편집기를 사용하고 디버그 측면에서 문제가 있음을 의미하지는 않습니다. 중단 점을 수행하고 코드를 한 단계 씩 실행하고 싶습니다. 이것은 무슨 일이 일어나고 있는지 이해하기 쉽게 해줄 것입니다.

물론 “라이브”명령 행이있는 Python과 같은 것을 고려하여이 문제를 더 혼동 할 수 있습니다.

좋은 질문, 하나의 좋은 대답은 없습니다-당신이 진보를 배우고 텍스트 편집기와 컴파일러 (또는 명령 줄 인터프리터)로 시작한다는 것을 제외하고는 더 많은 것을 진행하기 전에 구문과 논리의 기초에 집중할 수 있습니다 보다 강력한 개발 환경으로 쉽게 할 수있는 복잡한 작업.


답변

어려운 방법을 배우는 것은 보통 당신과 함께 있습니다.

초보자는 IDE를 사용하지 마십시오. 커맨드 라인을 사용하여 실수로부터 배우십시오. 또한 컴파일러 및 링커 옵션을보다 자세히 이해하는 데 도움이됩니다.

언제 IDE를 사용합니까? 많은 클래스, 메소드 및 변수를 사용하여 거대한 무언가를 설계하거나 거대한 코드베이스에서 작업하는 경우.


답변

IDE의 단점에 대해 종종 불만을 제기하더라도 IDE가 생산성에 도움이된다고 말하는 것은 처음 일 것입니다. 그러나 BASIC, C, C ++, Java, Python, Perl, PHP 및 기타 언어를 텍스트 강조 편집기 및 언어의 컴파일러 / 인터프리터없이 배웠습니다. 실제로 메모장에서 Java를 배웠습니다!

IDE를 배우는 것은 “매직”을 장려합니다. “어떻게 작동하든 상관 없습니다.” 추상화가 좋습니다. 마법이 나쁘다. 프로그래머는 프로젝트에서 일어나고있는 모든 것을 알고 있거나 알아낼 수 있어야합니다. 좋은 IDE는 프로젝트를 제어하지 않고 부기를 관리하도록 설계되었습니다. 제대로 사용하면 훌륭한 도구입니다. 그러나 어떤 장인이 CNC 라우터를 사용하여 시작합니까?

IDE를 사용하기 시작했을 때 내가 배운 방식 (모든 것을 입력하고 컴파일러를 잘 알고있는)을 통해 나에게 엄청난 도움이되었다고 생각합니다. 예를 들어, Java 프로젝트는 Eclipse 프로젝트에서 작은 폴더가 아니라 경로, 구성 및 배치를위한 일부 XML 파일이있는 패키지 구조의 클래스 모음입니다. IDE없이 대규모 엔터프라이즈 응용 프로그램을 구축하고 싶지 않지만 소규모 응용 프로그램을 구축 할 수 있습니다. 그러면 큰 것의 구조를 이해하기가 쉬워지며 빌드에서 특정 동작을 원할 때 javac의 작동 방식을 알고 있으므로 실제 조합 프롬프트를 조정하여 실제 조합 프롬프트를 조정할 수 있습니다 빌드 구성에 존재하지 않습니다. 또한 오류 메시지와 오류를 찾고 수정하는 방법에 대해 더 깊이 이해하고 있다고 생각합니다.

IDE 사용을 가르치지 않습니다. 초기 프로젝트는 복잡성 관리에 대한 논쟁이 불충분 할 정도로 작을 것이라고 생각합니다. 예를 들어 Java를 가르치는 경우 모든 클래스를 같은 폴더에 배치 할 수 있습니다 javac *.java. 이를 위해 IDE가 필요하지 않습니다! 이것은 프로젝트를 개념 증명보다 작게 유지해야한다고 주장합니다. 오버 헤드를 최소화하고 학생들에게 필요한 개념을 가르치는 데 집중하십시오. IDE가 유용한 더 큰 프로젝트는 고급 SE 클래스 또는 전용 프로젝트에 속합니다.

클래스와 API 연구를 찾는 데 도움이되는 것은 프로젝트가 작게 유지되면 무례하다고 생각합니다. Java에서도 javadoc은 매우 읽기 쉽습니다. 아무도 어쨌든 머리 전체 API를 유지할 수 없다, 아플리케는 것입니다 당신이 IDE의 이익을하지 않고 API를 조회해야합니다 시간이 될. 다른 언어로 또는 IDE를 열 수없는 서버로 원격 이동하는 경우와 같습니다. ” ‘를 누르지 말고 문서를 찾는 방법을 가르쳐주십시오. 객체의 메소드가 무엇인지 볼 수 있습니다. “

모든 프로그래머가 IDE를 배울 수 있지만 IDE를 아는 것으로 좋은 프로그래머가되지는 않습니다. 블랙 유머를 제외하고는 “매직”은 프로그래머가 사용하기에 좋은 단어가 아닙니다.