Command Palette

Search for a command to run...

휴가를 활용하여 내면의 힘을 키우고 프로그래밍 언어를 원활하게 전환하는 방법을 배우세요.

7년 전
정보
Dao Wei
Featured Image

프로그래머가 무기를 바꾸는 고통

프로그래머에게 있어서 이처럼 빠르게 변화하는 시대에 하나의 프로그래밍 언어에만 집착하는 것은 비현실적일 것입니다.

어떤 언어를 완벽하게 익힌 후에 갑자기 다른 언어로 다른 프로젝트를 만들어야 하는 경우가 종종 있습니다.

많은 프로그래머는 새로운 프로그래밍 언어를 배울 때 몇 가지 일반적인 어려움에 직면합니다. 예를 들어, 어떤 사람이 오래된 언어의 습관에 익숙하다면, 새로운 언어를 사용할 때 혼란스러워질 수 있으며, 이는 사용하는 동안 당혹스러움으로 이어질 수 있습니다.

게다가, 숙련도가 충분하지 않은 프로그래머는 새로운 언어를 이해하기 위해 비유를 사용하고자 한다면 잠시 어려움을 겪을 것입니다.

아직 무너지지 마세요.

새로운 프로그래밍 언어와 오래된 프로그래밍 언어 사이를 전환하는 데 도움이 되는 무술 비법서를 소개합니다. 사본당 0.50센트의 특별 휴일 가격으로 판매 중입니다. 확인해 보세요.

이 문제를 해결하기 위해 노스캐롤라이나 주립대학교(NCSU)의 엔지니어 3명이 좋은 해결책을 내놓았습니다.

그들은 한 논문에서 학습 전이를 기반으로 한 방법을 제안하고 유추 학습의 아이디어를 빌려 프로그래머가 새로운 언어를 더 빨리 배울 수 있는 학습 도구를 만들었습니다.

기존 분해 루틴 및 초보자용 에어월

베테랑 프로그래머들이 자주 사용하는 비유적 학습 방법은 새로운 기술을 익히는 좋은 방법입니다. 프로그래밍 언어 간의 공통점을 이용해 비유를 만들고, 이를 통해 새로운 언어의 기술을 더 쉽게 익힐 수 있습니다.

간단히 말해서, 기존 지식을 통해 새로운 지식을 배우는 것을 의미합니다.

이는 아무런 기술이 없는 사람도 쉽게 마법 기술을 터득할 수 있는 무술 소설의 설정과는 다릅니다. 이 방법을 사용하면 더 많은 프로그래밍 언어를 익힐수록 배운 내용을 다른 분야에 적용할 가능성이 커집니다.

하지만 유추 학습 방법은 경험이 거의 없는 초보 프로그래머, 특히 하나 또는 두 개의 프로그래밍 언어를 막 익힌 사람에게는 그다지 친화적이지 않습니다. 충분한 샘플이 없기 때문에 새로운 언어와 자신이 잘하는 언어 사이의 유사점을 발견하는 것이 어렵습니다. 그래서 새로운 언어를 접할 때마다 저는 항상 벽에 부딪히곤 했습니다.

예를 들어, 절차적 언어(예: C)에 익숙한 사람이 객체 지향 언어(예: C++)를 배우는 것은 매우 어렵습니다. 두 언어의 사상이 너무나 다르기 때문에 유추학습법을 사용하여 학습을 추론하기는 어렵습니다.

또 다른 예로, VB 프로그래머가 ASP를 배우는 것은 매우 어렵습니다. 하나는 C/S(클라이언트/서버) 아키텍처이고 다른 하나는 B/S(브라우저/서버) 아키텍처이기 때문입니다.

두 언어는 구문은 비슷하지만, 구조적 차이가 엄청나며, 경험이 부족한 프로그래머가 유추를 통해 학습하여 전환하기는 어렵습니다.

게다가 새로운 언어를 배우기 시작하면 실제 적용 시 다음과 같은 문제에 직면하게 될 것입니다.

1. 관성적 사고

여러 언어를 배우고 나면 종종 문법이 헷갈리고 혼동하게 됩니다. 예를 들어, 일부 언어에서는 ";"를 사용합니다. 다른 사람들은 "Enter"를 마지막 문자로 사용합니다. 익숙한 언어가 ";"으로 끝나면 관성적인 사고방식으로 인해 수정하기 어려울 것입니다.

2. 다양한 프로그램 실행 조건

exe 프로그램을 컴파일한 후 바로 실행되지 않을 수 있습니다. 다른 언어의 경우 추가 구성이 필요할 수 있습니다. 예를 들어, C 언어로 작성된 프로그램은 일반적으로 직접 실행할 수 있지만, VFP로 작성된 프로그램은 VFP 시스템의 DLL 구성 요소를 설치해야 하므로 VFP 프로그램에는 설치 디스크가 필요합니다. C 언어에 익숙한 프로그래머라면 VFP를 처음 접하면 키보드를 던지고 싶은 생각이 들 수도 있습니다.

3. 언어 문제 호출

언어에 포함된 호출 함수는 일반적으로 사용되는 수단이지만, 다양한 언어는 서로 다른 호출을 사용합니다. 따라서 새로운 언어를 시작할 때 프로그래머는 새로운 언어를 호출하는 방법에 세심한 주의를 기울여야 합니다.

대부분의 경우, 경험이 풍부한 프로그래머는 경험을 바탕으로 이러한 문제를 해결할 수 있지만, 초보 프로그래머는 이러한 문제를 해결하는 데 어려움을 겪을 수 있습니다.

새로운 도구는 새로운 세계로의 문을 열어줍니다

초보 프로그래머가 유추 학습 방법을 익히고 새로운 언어를 적용하는 과정에서 발생하는 문제를 해결하는 데 도움이 되도록, 노스캐롤라이나 주립대학교의 엔지니어 3명이 개발한 학습 도구인 Transfer Tutor가 좋은 보조 역할을 합니다.


이 도구를 사용하면 사용자는 기존 언어와 새 언어의 공통점을 찾아 새 언어에 더 잘 적응할 수 있습니다. 하지만 현재로선 이 도구를 사용하려면 요금을 내야 합니다.

이 방법의 기본 원리는 두 언어의 차이점을 문장별로 파악하고, 비교와 프롬프트를 통해 새로운 언어를 배우고 사용하는 데 어려움을 줄이는 것입니다. 이는 세 가지 유형의 구문 마이그레이션을 정의합니다.

1. 부정적 전이: 부정적 전이

새 언어와 옛 언어를 자세히 설명함으로써 두 언어의 차이점을 명확히 알 수 있고, 새 언어를 이해할 때 다른 언어의 간섭으로 인해 발생하는 오류를 피할 수 있습니다.

2. 긍정적 전이

두 언어 사이의 공통점을 찾아 사용자가 유추를 통해 새로운 언어를 빠르게 이해하고 학습 효율성을 높일 수 있도록 합니다.

3. 새로운 사실: 새로운 구문

새로운 언어의 고유한 문법에 대해 Transfer Tutor는 사용자에게 자세한 설명과 예를 제공하여 기억하는 데 도움을 주고 학습 시간을 단축합니다.

이 도구가 어떻게 작동하는지 알아보기 위해 일반적인 Python과 R 언어를 예로 들어 보겠습니다.

Python과 R 언어에 익숙한 사람이라면 두 언어 사이에 유사점이 있지만 차이점도 있다는 것을 알고 있을 것입니다.

예를 들어, 테이블을 선택할 때 Python에서는 행을 선택하는 데 "[ ]" 연산자를 사용하지만 R에서는 열을 선택하는 데 사용합니다. R에서는 행을 선택하려면 ","를 추가해야 합니다. Python의 잘라내기를 수행할 때, 아래 첨자는 0부터 시작하는 열린 구간(즉, [0:5], 결과는 0-4)인 반면, R 언어의 아래 첨자는 1부터 시작하는 닫힌 구간(즉, [1:5], 결과는 1-5)입니다.

Python과 R의 장벽을 허물다

Transfer Tutor는 어떻게 두 분야 간의 장벽을 허무는 데 도움을 줄 수 있나요?

먼저, Transfer Tutor는 Python과 R 언어의 모든 유사한 요소를 표시하고 비교할 수 있도록 표시합니다. 다음 요소로 이동하려면 클릭하세요. 이러한 요소별 비교 표시 방법은 사용자가 모든 핵심 지식을 얻는 데 도움이 될 수 있습니다.

그런 다음 Transfer Tutor는 다양한 언어 간의 차이점과 새로운 문법을 자세히 설명해 줄 것입니다.

마지막으로, Transfer Tutor의 자체 검사 기능을 사용하면 새 언어로 작성된 코드에 대해 단계별 디버깅을 수행할 수 있습니다. 이는 학습 성과의 정확성을 검증하고 두 언어의 차이점을 별도로 설명하는 데 사용됩니다.

실험적 운영 과정을 통해 판단하건대, 이 도구는 Python에서 R 언어로 학습을 전환하는 데 매우 효율적이며, 프로그래머가 이 두 언어에서 "1개 사면 1개 무료"라는 효과를 얻을 수 있습니다.

하지만 모든 언어에 적용이 가능한지는 아직 심도 있는 실질적 검증이 필요하다. 하지만 지금은 여러 언어를 배우는 데 사용할 수 있습니다. 서로 다른 언어로 인해 괴로움을 받는 인간에게 그것은 강 위에 던져진 갈대와 같습니다.

언제 AI 프로그래머가 등장하여 부처님의 빛처럼 코드를 작성하는 세상의 수많은 생명체를 구할 수 있을지에 대한 질문은 코드를 작성하는 큰 사람들에게 묻는 게 맞을 겁니다. 우리는 언제 AI의 특이점을 돌파할 수 있을까?