스크립팅 언어가 주니어 프로그래머에게 어떤 영향을 미칩니 까? [닫은]


18

요 전날 선생님 중 한 명과 토론을했습니다.

우리는 파이썬이나 루비와 같은 간단한 스크립팅 언어 가 주니어 프로그래머 에게 미치는 영향에 대해 토론했습니다 .

그는 스크립팅 언어가 초보 코딩 기술을 만들어 낸다고 주장했다. 또한 스크립팅 언어로 인해 프로그래머가 효율성, 메모리 관리, 운영 복잡성 등에 대한 우려를 무시하는 방법에 대한 다른 예를 인용했습니다.

저급 언어는 일부 사람들에게는 너무 많을 수 있으며 프로그래밍에 대한 열정을 개발하기 전에 포기할 수 있다고 주장했습니다. 첫 프로그래밍 언어 (C)를 배우기 시작했을 때, 나는 개념이 너무 어려웠 기 때문에 (포스팅에서는 14 세 밖에되지 않았기 때문에) 포인터를 포기하고 포기했습니다. Java가 아니었다면 프로그래머가 아니었을 것입니다! 더 간단한 언어로 시작한 다음 깊이 파고 들었다면 포기하지 않았으며 C로 시작한 것만큼이나 배웠을 것입니다.

수업은 양쪽이 완전히 탐구되기 전에 끝났습니다.


이 시점에서 저는 초보자가 스크립팅 언어로 시작한 다음 깊이 파고 들도록 설교했습니다. 그러나 그 토론 후에, 나는 이것이 잘못된 생각인지 궁금해하기 시작했다.

그렇다면 스크립팅 언어가 주니어 프로그래머에게 어떤 영향을 미칩니 까?


8
나는 엉덩이가 아니라는 것을 의미하지는 않는다. grammar.quickanddirtytips.com/affect-versus-effect.aspx
Singletoned

4
나는 자동 변속기로 자동차를 운전하는 법을 배웠습니다. 나중에 수동 변속기를 가지고 있습니다. 배우는 데 약간의 시간이 걸렸으며 클러치를 배우지 않고 다른 모든 것들과 함께 움직일 필요가 없었기 때문에 운이 좋았습니다.
David Thornley

2
@Singletoned : 맞습니다. 어떻게 든 xkcd.com/326 을 생각 해야 했지만 ...


4
개인적으로 나는 낮고 높은 프로그램을 배우는 것이 부자연 스럽다고 생각합니다. 우리는 기어 다니면서 걷기, 달리기, 말하기, 쓰기를 배웁니다. 대학에서 자연 질서의 반전에 대한 논리가 무엇인지 확실하지 않습니다. 나는 보통 사람들이 "내가 배우기가 어렵다면 당신을 위해 열심히 머물러야하기 때문에"결론을내는 것을 듣는다. 조엘조차도 이렇게 말했습니다. 사이클이 끝나지 않을 것 같아요.
P.Brian.Mackey

답변:


26

동의하지 않습니다. 첫째, 스크립팅 언어는 더 높은 수준의 추상화이며 이에 아무런 문제가 없습니다. 처음에는 원칙을 배우려고 노력하고 있습니다. 실제로 저수준 언어를 선택하면 이해하기 전에 일부 세부 사항을 처리해야하므로 잘못된 코딩이 필요할 수 있습니다. 대신 더 간단한 언어로 처음부터 깨끗하고 간결한 코드 작성을 시작할 수 있습니다.

둘째,이 언어들에서 배울 것이 많습니다. 언어를 배우는 한 C는 Python보다 쉽습니다. 포인터를 다루거나 문자열을 처리해야하지만 Python에서 배울 수있는 더 많은 개념이 있습니다. 이해력, 객체 지향성, 반사, 마법 방법, 일급 함수, 람다, 반복자 및 생성기, 메타 클래스 :이 모든 것이 언어의 일부입니다.

파이썬으로 시작하면 프로그래밍과 부드러운 학습 곡선에 대해 훨씬 더 많이 배울 수 있다고 생각합니다. 낮은 수준의 언어는 추상화가 적을 수 있으므로 일반적인 개념은 배우지 않아도되며 초보자도없이 세부 정보를 얻을 수 있습니다.


1
+1이지만 C가 파이썬보다 배우기 쉽다고 생각합니다. 전체적으로 배울 개념이 적을 수도 있지만 Python을 사용하면 같은 시간에 더 많은 것을 배울 수 있습니다. 물론 C가 너무 쉬운 경우에는 항상 C ++이있어서 고급 언어와 저급 언어의 복잡성을 가르쳐줍니다. ;)
Martin

+1, 이것은 내 생각이었다! 나는 수업 전에 이것을 읽었 으면 좋겠다 :)
joe_coolish

22

어디서부터 시작하든 상관 없습니다. 시작한 어디로 가느냐가 중요 합니다.

BASIC은 지구상에서 가장 우아한 언어는 아니지만 절차 적 프로그래밍의 기본 사항을 포함하므로 시작하기에 충분합니다.

나는 BASIC으로 시작했다. 나는 거기에 머물지 않았다 .


완벽한 답변을 얻으려면 +1-원래 질문이 얼마나 잘못 배치되었는지 간결하게 표시하십시오! (사실상 우연히도 BASIC으로 시작했습니다 ;-)
Péter Török

5
얼마나 많은 사람들이 그곳에 머무르는 지 놀랍습니다 .. : o /
Gary Willoughby

1
정답을 대답하십시오. 간단하고 정확하며 요점. 나는 또한 베이직으로 시작했다.
마이클 라일리-AKA Gunny

11

선생님은 자신의 결과가 나쁜 것이라고 생각하는 것을 제외하고는 정확합니다.

컴퓨터 학습 방법을 배우기 위해 언어를 순전히 학업 활동으로 본다면, 그는 맞습니다. 당신이 일을 끝내는 방법으로 그것들을 본다면 당신은 맞습니다.


6
당신이 동의하지 않습니다. 결과는 무지이기 때문에 결과 나쁜 것입니다. 이것은 결국 무언가가 깨지고 문제가 당신이 이해하는 것보다 더 낮은 추상화 수준에있을 것이므로 문제를 해결하는 방법을 모를 것입니다. 그것은 항상 나쁜 일입니다.
메이슨 휠러

6
동의합니다. 후드에서 무슨 일이 일어나고 있는지 알지 못하는 결과는 하드웨어 뉘앙스에 대해 걱정하지 않고 표현의 심오한 단순성과 직접성입니다. 낮은 수준의 추상화는 응용 프로그램 개발자가 아닌 언어 디자이너를위한 것입니다.
S.Lott

1
@Mason : 물론입니다. 한 번은 실제로 어떤 일이 벌어지고 있는지에 대한 개념이 없었기 때문에 프로그래머 팀의 엉덩이를 절약하기 위해 상당한 양의 돈을 벌었으므로 생산 시스템이 제대로 작동하거나 안정적으로 작동하지 못했습니다. (이런 종류의 일 때문에 짜증이 난다. 인생이 너무 짧다!)
William Pietri

1
@Mason-나는 당신이 말한 것에 동의합니다. 당신이 전문적으로 프로그램을하려고한다면 그 지식을 갖는 것이 중요합니다. 포인터, 이산 구조 및 람다 미적분학에 대한 지식이 매우 중요하다는 것을 알았습니다. 팀원들이 이러한 기술을 가지고 있지 않은 팀에 갇혀있어서 지나치게 복잡하거나 버그가 많은 코드를 만들었습니다. 그들이 더 잘 몰랐기 때문에 그것은 단지 대학이 CS 학생들에게 너무 많은 우유와 충분한 육류를 공급하지 않는 것처럼 보이지만 반대로 프로그래머가 초기 육류를 먹이면 탈락의 위험이 있습니다.
joe_coolish

1
@Joe : Joel에 따르면, 그것을 처리 할 수없는 사람들을 제거하는 것이 요점입니다. 그리고 컴퓨터 프로그래머뿐만 아니라 컴퓨터 사용자 뿐만 아니라, 내가 생각할 수없는 끔찍한 프로그램으로 정기적으로 작업해야하는 사람이 무능한 코더들에 의해 만들어 졌기 때문에, "드롭 아웃 (drop out)"비트가 더 성공적 이었으면 좋겠다.
메이슨 휠러

5

나는 "스크립트 언어"가 끔찍한 단어라고 생각합니다.이 단어는 매우 구식이거나 도메인 특정 언어 클래스에 가장 적합합니다. 선생님은 자신이 이해하지 못하는 모든 것을 악의 축에 맞추는 것뿐입니다.

눈에 띄는 차이점은 고급 언어와 저급 언어 사이 또는 정적으로 동적으로 입력되는 언어 사이에서, 실제로 직교하는 것입니다.

어셈블러는 동적으로 형식이 낮은 하위 수준입니다 (유형을 말하면 어떤 의미가있는 경우). Java는 높거나 낮은 수준의 정적으로 유형이 없으며 C ++은 높고 낮은 수준의 정적으로 유형이 있습니다. 등등.

토론은 엔트리 레벨 프로그래머에게 더 적합한 패러다임 일 수 있습니다.
저수준 프로그래밍은 아마도 하나가 아니라고 확신합니다. 90 년대 초반에는 합당한 시간에 재미있는 결과를 만들어 낼 수 있었을 것입니다.
그러나 프로그래밍은 열정에 의해 촉진됩니다. 열정은 보상으로 영양분을 공급받습니다. 따라서 엔트리 레벨 프로그래머는 보람 도구로 시작해야합니다. 낮은 수준의 도구는 더 이상 보람이 없습니다. 막대한 시간 내에 동일한 결과를 얻을 수있는 광범위한 고급 도구가 있기 때문입니다.

인간의 사고는 추상적입니다. 우리가 세상을 이해하는 것을 배우면서 우리는 매우 거친 추상화로 그렇게하고 필요에 따라 자세하게 설명합니다.
어린이가 환경을 이해하기 위해 수학, 물리, 화학, 생물학, 역사, 사회학 및 철학을 가르치지 않을 것입니다. 젊었을 때 끝까지 다가 가고 나중에 당신의 권위를 완전히 부정 할 때 끝없이 다가오는 질문에 대처하기 위해 오랫동안 세계에 대한 아주 간단한 모형을 제시합니다.

그렇게 생각합니다. 인간의 뇌는 제한된 양의 정보 "단위"만을 처리 할 수 ​​있지만, 추상화 정도는 정보의 양자화에 거의 영향을 미치지 않습니다. 예를 들어, 표현 '34 * 75 '를 계산하는 것이 계산하는 것보다 간단하지만 컴퓨터의 경우 다른 방법입니다. 많은 검은 색 픽셀을 구불 ​​구불 한 선으로 인식 (및 추상화)하여 개별 숫자로 인식 (및 추상화)하는 것은 엄청난 양의 작업입니다.
할머니는 파일을 여는 아이디어를 이해하고 있습니다. 그러나 그녀는 그 수준 아래에 대한 이해가 없습니다. 그리고 솔직히 하드웨어와 운영 시스템의 내부 작업과 그렇지 않은 것을 먼저 연구하여 이것을 배워야한다면 결코 그곳에 도착하지 않았을 것입니다.

명확하고 간결하며 그에 따른 우아한 솔루션이라는 관점에서 생각하는 법을 배운 적이 없었기 때문에 교환 할 수있는 낮은 수준의 세부 사항을 다루고 그에 대한 문제를 해결하는 데 너무 많은 시간을 소비했습니다. 사람들이 컴퓨터처럼 생각하도록 가르치는 것은 프로그래밍에 대한 최악의 접근법입니다.
프로그래밍의 가치는 문제에 대한 해결책을 찾는 데 있습니다. 코드로 코드를 표현하는 것은 실제로 무딘 기계적인 작업 일 뿐이며 어떤 도구를 사용하든 간단하게 수행해야합니다.

아, 포인터를 이해하지 못하는 것에 대해 걱정하지 마십시오. 나는 같은 나이에 같은 문제가 있었다. 여기서 문제는 또한 추상화가 부족하다는 것입니다. 일반적으로 일부 C 책에서 포인터에 대해 배우고 이해하기 위해 고심하는 동안 메모리 할당과 스택 및 힙 메모리 등이 함께 진행됩니다. 포인터 뒤에있는 추상적 인 개념은 간접적입니다. 특정 배열에 인덱스를 보유하는 변수는 (실제로 특정 배열이 주소 공간 인 C에서 동일) 실제로는 포인터 산술이 필요하지 않습니다.
이것은 높은 수준의 추상화를 선택하면 이해하기가 훨씬 쉽다는 것을 보여주기위한 것입니다.

편집 : 입력 할 때 정적으로 입력 된 언어를 선호합니다. 그리고 엔트리 레벨 프로그래머는 타입의 개념 (추상적 인 개념)을 명확하게 이해해야한다고 생각합니다.


3

파이썬에 대한 간단한 것은 없습니다. 유니 코드 및 메타 프로그래밍을 살펴보십시오.


나는 파이썬이 매우 복잡하고 매우 강력 할 수 있다는 데 동의합니다. 그러나 기본 (문자열 조작, 배열 조작 등)은 Python에서 C보다 훨씬 쉽습니다.
joe_coolish

1
파이썬은 시작하기가 매우 간단하고 많은 일상적인 작업은 시스템 언어에서보다 훨씬 간단합니다. 아니요, 언어 전체, 세부 사항 및 고급 기능은 간단하지 않습니다 (모든 비토이 언어에 적용됨). 그러나 그것은 질문이 아닙니다.

1
그렇다면 왜 filecontent.lower ()의 if searchstring.lower ()가 작동하지 않았습니까? Python2.7을 사용하는 Windows의 UTF-16LE SQL 파일에서 tfs의 bom 때문에 재미 있지 않았다. 작동했습니다. 몇 시간이 걸렸습니다. string.find ()도 작동하지 않습니다 ... Argghhh!
Christopher Mahan

1
C에서 유니 코드를 처리하는 것이 어떻게 더 간단합니까?
dan04

3

또 다른 더 깊은 문제가 있습니다.

통일 된 언어는 유형에 대해 생각하고 유형에 대해 생각하도록 강요하지 않습니다. 작은 문자열과 숫자가있는 작은 스크립트가있는 한 잘 알 수 있습니다. 그러나 이것이 깨질 날이 올 것입니다. 갑자기 프로그램이 중단되고 모든 빠른 수정으로 인해 다시 중단됩니다.

또는 초보자 프로그래머가 튜플 목록 대신 목록 튜프가 필요하지만 "이 작업을 수행하는 방법"에 대한 최소한의 아이디어는 없으며, 절대적인 무력감을 보여주는 스택 오버플로에 대한 질문을 할 것입니다.


6
그러나 파이썬과 루비는 강력하게 타이핑됩니다. 이것은 동적으로 입력되는 것과 직교 합니다. 문자열과 숫자 암시 적으로 서로 변환 되지 않습니다 .
dsimcha

3
@ dsimcha : 예-그리고 @ Ingo가 말한 것을 어떻게 반박합니까?
Jim G.

1
이 질문은 대부분 루비와 파이썬에 관한 것이기 때문입니다. 나는 그가 루비와 파이썬이 약하게 타이핑되었다고 생각한다는 것을 암시한다고 생각했다. 이것은 일반적인 오해이다.
dsimcha

1
@ davidk01-그것은 내 요점입니다 : 값은 원하는지 여부에 관계없이 유형이 있습니다. 그러나 동적으로 유형이 지정된 (언어가 더 만족할 경우) 언어에서는 변수가 없습니다. 대신, 타입 검사는 Unitype의 많은 변형을 구별하기 위해 런타임에 수행됩니다.
Ingo

2
@Ingo : 정적 타이핑이 부족하다고 생각하는 Common Lisp 사용자를 찾을 수있었습니다 (실제로 선택적 정적 타이핑, 오류 검사 또는 성능 목적으로 사용할 수 있음). 정적 타이핑을 피했을 때의 실수는 실제로 찾아서 고치기 어려운 것으로 밝혀지지 않았습니다. 나는 어떤 식 으로든 의견 외에는 아무것도 보지 못했습니다.
David Thornley

2

나는 여전히 공식 교육과 멘토링이 초급 코드 품질에서 언어 선택보다 훨씬 더 큰 요소라고 주장합니다. 그러나 초보자를 위해 모국어를 선택해야한다면 자율적 인 프로그래머에게는 파이썬을, 대학에서는 C ++을 선택합니다.

그 이유는 당신이 유용한 일을하기 전에 몇 년 전에 강력한 이론적 토대를 세우기 위해 작고 사소한 프로그램으로 시작할 수있는 공식적인지도를 통해서입니다. 시간이 여유가 있다면 순서가 이상적이라고 생각하고 C ++은 강의 사이의 컴파일러 오류 및 분할 오류에 대한 많은 도움을 제공하여 기본 사항을 파악하고 있지 않은지 알려줍니다.

이러한 기본 사항 중 일부는 자신의 벨트에서 경험을 얻을 때까지 스스로 배운다면 배우기가 매우 어렵습니다. 또한 가능한 한 빨리 유용한 것을 만들어야하고 필요한 경우 이론적 토대를 얻을 수 있지만이 방법을 사용하면 최소한의 학습 만 할 위험이 없습니다. 그렇기 때문에 필자는 파이썬과 같은 언어를 권장합니다.


2

우리는 대학에서 다른 방법으로 그것을 보았고 그것이 유용하다고 생각합니다. * 낮은 레벨에서 시작했습니다. 포인터, 메모리 관리, 문자 배열 ... 그렇습니다. 우리는 C로 시작했습니다. 알고리즘과 동일합니다. 먼저 연결된 목록, 해시 테이블, 트리를 구현 한 다음 표준 라이브러리 만 사용하십시오.

그 후 우리는 Java, C # 또는 perl과 같은 더 강력한 언어로 올라갔습니다. 그러나 벨트 아래에서 무슨 일이 일어나고 있는지 알 수 있다는 이점이 있습니다.

이것이 작동하는 동안 스크립팅 언어에서 낮은 수준의 언어로 전환하는 것도 좋습니다. 고급 언어와 저급 언어를 모두 알고 있으면 고급 언어를 쉽게 사용할 수 있으며 진행 상황을 계속 이해할 수 있습니다. 그것들을 배우는 순서는 덜 중요합니다.


1

스크립팅 언어는 프로그래머를 느슨하게 만들지 않습니다. 문제 영역 (예 : 프로그램이 제공하는 비즈니스)을 이해하는 데 대한 명확성이 결여되어 문제가 발생합니다.

이전의 말처럼 "모든 언어로 COBOL을 작성할 수 있습니다."라고 말하지만 모든 데이터 유형 이 동일 해 보일 때 COBOL- 화.


1
의심하기 전에 사용해보십시오. 가장 큰 차이점은 당신이 A의 위치에 대한 저주주지 않는 것이 Foo거나 Bar또는 당신이 할 수있는만큼 뭔가 완전히 다른 .frobnicate()그 어느 쪽이든. 명시적인 인터페이스가 없습니다.

하루 종일 Ruby on Rails를 사용하기 때문에 동적 언어에 익숙합니다. 그리고 그렇습니다. 그것은 역동적 인 언어 공동체 내에서 중요한 규칙입니다. 일반적으로 이것을 '덕핑 타이핑'이라고합니다. 연구 문헌에서는이를 구조적 유형이라고하며, '쿼킹 가능한 유형'이 어떻게 보이는지 보여줄 수있는 구문 규칙이 있습니다. 뿐만 아니라, 그것들을 인식하고 프로그램이 오리를 친절하게 대우하고 있는지 검증 할 수있는 타입 시스템이 있습니다.
팔리 기사

나는 구조 유형에 대해 알고 꽤 깔끔한 생각으로 생각합니다. 그러나 원격으로 널리 사용되는 하나의 성숙하고 원격으로 사용되는 (O'Caml 수준의 사용자 기반은 좋은 출발점이 될 것입니다) 언어가 없으므로 동적 입력에 대한 실질적인 대안으로 생각하지 않습니다. 슬프지만 사실.

널리 사용되는 언어는 아니지만 자체 유형 시스템을 널리 사용되는 유형으로 부트 스 래핑하는 것을 막을 수는 없습니다. 동적 언어의 유형 유추와 같은 것들에 대한 논문을 보았을 것입니다.
팔리 기사

다시 말하지만, 나는 나와 옆 사람이 사용하는 것을 실용적인 대안으로 생각하지 않습니다 . 프로그래머에게는 라이브러리, 안정적인 구문, 툴링 등과 같은 것들이 필요합니다.

1

스크립팅 언어 부주의 한 기술을 장려 한다고 주장합니다 . (이것은 언어가 나쁘다 는 것을 말하는 것이 아니라, 언어로 큰 코드베이스를 유지하기가 어렵다는 것입니다.) 그러나 다른 대답과 다른 이유는 여기에 있다고 생각합니다.

나는 프로그래머가 프로그래밍에 대한 기본적인 이해를 필요로하는 언어를 사용하려고 생각한다. 벡터, 트리 및 해시 테이블과 같은 개념을 이해하지 못하면 어느 곳에서도 효과적이지 않을 것입니다. 그들은 반드시 이러한 것들을 구현할 필요는 없지만, 그들의 특성을 알아야합니다.

느슨 함이 작용한다고 생각하는 곳은 프로그래밍 기술이 아니라 재사용 가능한 구성 요소를 만들어야 할 때입니다. 이러한 언어는 라이브러리가 클라이언트에 제한을 두도록하는 코드 단위 또는 메커니즘 사이에 적절한 인터페이스를 정의 할 필요가 없습니다. 그러한 언어로 좋은 재사용 가능한 구성 요소를 만드는 것은 불가능하지 않으며 훨씬 더 어렵습니다.

스크립팅 언어는 초보자 프로그래머에게 더 짧은 시간에 더 많은 "일회성"작업을 수행 할 수있게 해주지 만, 동일한 프로그래머가 유지 관리 프로그래밍을 시작하면 종종 이러한 언어에 문제가 있습니다.

스크립팅 언어가 나쁜 것은 아닙니다. 그러나 막대한 수백만 줄의 코드베이스를 유지하기가 어렵습니다 (스크립팅 언어로 작성된 코드베이스를 보지 못하는 이유 중 하나입니다). 상대적으로 작거나 일회성 솔루션이 필요한 경우 더 적은 시간과 더 적은 코드로 더 많은 것을 달성 할 수 있습니다 (그리고 더 적은 코드가 거의 항상 더 좋습니다).

모든 작업에 가장 적합한 도구는 없습니다. 상황에 가장 적합한 도구를 선택하십시오. 그것은 모든 도구와 마찬가지로 프로그래밍 언어에도 적용됩니다.


0

선생님과 함께 있지만 @Singletoned와 함께 있으면 선생님이 결과에 대한 지식이 없다고 가정합니다 (예 : 성과에 대한 지식이 없음).

C로 시작하는 것이 스크립팅 언어로 시작하는 것보다 낫다고 생각합니다. 교사로서 저는 폰 노이만 전체 아키텍처 (ALU, 레지스터, 메모리, I / O 포트 등)에 집중 하고 포인터 로 바로 옮길 것입니다 (죄송합니다. 정말 중요한 개념입니다. VM 언어의 참조 (예 : 포인터)는 메모리 누수의 주요 원인입니다]), 일부 데이터 구조 (트리, 링크 된 목록, 해시 테이블 1 )를 누른 다음 추상화 수준을 다른 것으로 (OO, 함수형 프로그래밍, 무언가-강력한 정적 타이핑 규칙 , yo \ m /, "스크립트 언어"> :()가 없습니다.

1 흠, 어쩌면 나는 선생님과 함께 성과 고려 사항에 동의 할 것입니다.


조잡한 프로그래밍은 메모리 누수의 원천이며 사람들에게 파일 핸들과 같은 리소스를 추적하도록 가르치는 데별로 걸리지 않습니다. 메모리 누수가있는 수많은 C 프로그램이 있으므로 가능한 빨리 포인터에 대해 사람들에게 가르치면서 무엇을 얻고 있는지 잘 모르겠습니다.
davidk01

그것은 사실이지만 ... (a) 기본 사항을 이해하지 못하면 (해킹까지 딱딱하거나 거친 프로그래밍을 통해) 나쁜 코드가 생깁니다. (b) 포인터가 여전히 관련이있는 이유 를 동기 부여하려고했습니다. 메모리 누수 측면에서 C가 가비지 수집 언어보다 낫다는 주장. 포인터를 최대한 빨리 얻는 목표는 C에서
도피

0

가장 좋은 방법은 모듈 언어로 시작한 다음 더 복잡한 작업을 진행하는 것입니다. 제 시절에는 Pascal과 COBOL로 시작하여 서브 루틴, 제어 흐름 변수 등이 무엇을 의미하는지 이해하려고 노력했습니다. 파스칼에 익숙해 진 후에야 C / C ++와 같은 언어로 전환하고 주니어 프로그래머에게 추가되는 다른 모든 기술을 배우고 싶었습니다.


0

둘 다 맞아

스크립팅 언어는 초보자 개발자가 실제로 무슨 일이 일어나고 있는지 이해하기 어렵게 만듭니다. (데이터베이스, 프레임 워크 및 라이브러리도 마찬가지입니다. 아, 브라우저, 서버, 네트워크 및 파일 시스템) 어린 개발자를 인터뷰 할 때 컴퓨터가 실제로 어떻게 작동하는지,화물이 얼마나 잘 나올지에 대해 아는 사람이별로없는 경우가 종종 있습니다. 컬트 프로그래밍.

다른 한편으로, 인터뷰에서 내가 찾은 가장 중요한 것은 완벽하게 이해하는 것이 아니라, 그들이 물건을 만드는 것을 좋아한다는 것입니다. 내가 처음 시작했을 때, 컴퓨터가 무엇인가를하는 것은 꽤 인상적 이었기 때문에, 나의 작은 Apple Basic과 6502 어셈블러 일들이 정말 멋져 보였습니다. 그러나 요즘 컴퓨터는 놀라운 일을 많이하기 때문에 사람들이 훅에 걸리면 꽤 높은 수준에서 시작하는 것이 좋습니다.

기본적으로, 나는 당신이 결국 더 깊은 바닷물에 닿는 한 수영장의 얕은 끝에서 시작하는 것이 좋다고 생각합니다.


0

첫째, 나는 더 높은 추상화 수준의 언어로 시작합니다. 현재 저는 파이썬을 추천합니다. 스크립팅 언어를 모국어로 선택하는 가장 중요한 이유는 작동하는 것을 쉽게 조합 할 수 있기 때문입니다. Joe가 그의 질문에서 언급했듯이, 프로그래머가되는 동안 가장 중요한 것은 더 깊이 파고 드는 동기가 있다는 것입니다. 이 동기는 유용하고 유용한 소프트웨어를 만들 때 얻을 수 있습니다.

추상화 (높은 수준)를 이해하고 기본 구현 (낮은 수준)을 이해하는 점 외에 세 번째 점이 누락되었습니다. 요즘 좋은 프로그래머가 되려면 위의 두 가지 사항을 모두 숙달해야합니다. 또한 새로운 기술과 관점을 지속적으로 살펴 보는 것이 중요합니다. 어떤 추상화 수준에서 시작하든 관계없이 지속적으로 개선하고 현재 방법에 의문을 제기해야합니다.

프로그래밍 언어는 단지 작업을 수행하기위한 도구라는 것이 처음부터 분명 해져야합니다. 특정 작업에 맞는 도구를 선택하는 것이 매우 중요합니다. 초보자 프로그래머에게는 높은 수준의 스크립팅 언어 가이 점을 강조하는 데 도움이 될 것이라고 생각합니다. 높은 수준의 언어는 더 넓은 관점을 제공하고 프로그래머가 더 깊이 파고 들도록 동기를 부여합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.