프로그램 학습을 향한 대부분의 사람들의 여정은 심야 Google 검색에서 시작됩니다.
일반적으로 "Learn ______"과 같습니다.
그러나 검색 할 언어를 어떻게 결정합니까?
“그들은 실리콘 밸리의 자바에 대해 항상 농담을합니다. 나는 그것을 배워야한다고 생각한다.”또는:
“Haskell. 지금 너무 덥다. Haskell.”또는:
“저 고퍼는 너무 귀여워요.”
그리고 나머지 우리도 있습니다. 아마도 다음과 같은 것을 검색 할 것입니다.
"먼저 어떤 프로그래밍 언어를 배워야합니까?"전체적인 인포 그래픽 처리를받을 정도로 자주 묻는 질문은 거의 없습니다. 그러나 이것은 그들 중 하나입니다.

첫 번째 프로그래밍 언어를 결정하는 것은 재미있는 과정이 될 수 있습니다. 마치 "당신은 어떤 Quentin Tarantino 캐릭터입니까?" 성격 퀴즈.
하지만 어렸을 때 Play-Doh와 놀았 기 때문에 Ruby를 배우기 전에 먼저 상기시켜 드리겠습니다.
첫 번째 프로그래밍 언어를 원격으로 능숙하게 사용하려면 수백 시간의 연습이 필요합니다.
따라서 다음 요소를 고려해야합니다.
- 언어 구직 시장
- 언어에 대한 장기적인 전망
- 언어가 얼마나 쉬운 지
- 학습하는 동안 구축 할 수있는 프로젝트 (동기 부여를 유지할 수 있도록 친구와 공유)
매년 새로운 프로그래밍 언어와 함께 새로운 학술 논문이 제공됩니다. 그리고 새로운 웹 만화.
진지하게. 지난달의이 보석을 확인하세요 :

첫 번째 프로그래밍 언어를 선택할 때 옵션이 부족하지 않습니다. 범위를 좁히기 위해 지난 12 년 동안 학습 프로그래밍과 관련된 가장 일반적인 Google 검색은 다음과 같습니다.

자바는 기복이 있었다.
Python은 점차적으로 가장 인기있는 선택이되었습니다.
그러나 이것들 아래에는 지난 몇 년 동안 천천히 인기를 끌고있는 Little Engine That Can이 있습니다. 그리고 그 엔진은 JavaScript입니다.
이러한 프로그래밍 언어에 대해 이야기하기 전에 다음을 명확히하겠습니다.
- 나는 어떤 언어가 다른 어떤 언어보다 객관적으로 낫다고 주장하지 않습니다.
- 개발자가 결국 하나 이상의 언어를 배워야한다는 데 동의합니다.
- 나는 먼저 그들이 하나의 언어를 잘 배워야한다고 주장합니다. 제 헤드 라인의 거꾸로 된 텍스트에서 짐작할 수 있듯이 해당 언어는 JavaScript 여야합니다.
현재 학교에서 프로그래밍이 어떻게 가르치고 있는지 살펴보면서 시작합시다.
컴퓨터 과학 101

대학은 전통적으로 컴퓨터 과학의 우산 아래에서 프로그래밍을 가르쳤으며, 이는 종종 그 자체가 수학의 확장으로 간주되거나 전기 공학 학위와 연계됩니다.
물론 지금 쯤 들어 보셨을 것입니다.
"컴퓨터 과학 교육은 누구를 전문 프로그래머로 만들 수 없습니다. 붓과 안료를 공부하면 누군가를 전문 화가로 만들 수 있습니다." — 에릭 S. 레이몬드2016 년 현재 많은 대학은 여전히 프로그래밍을 컴퓨터 과학처럼 취급하고 컴퓨터 과학은 수학처럼 취급합니다.
결과적으로 많은 입문 프로그래밍 과정은 C와 같은 낮은 수준의 추상화 언어 또는 MATLAB과 같은 수학 중심 언어에 중점을 둡니다.
그리고 부서장은 일반적으로 코스에 머물며 TIOBE Index와 같은 연간 프로그래밍 언어 리더 보드 또는 IEEE의 다음 리더 보드를 가리 킵니다.

대부분의 리더 보드는 10 년 전과 거의 동일하게 보입니다.
그러나 변화는 일어납니다. 학계에서도.
2014 년 Python은 미국 최고의 컴퓨터 과학 프로그램에서 가장 인기있는 교육 언어로 Java를 추월했습니다.

그리고 또 다른 변화는 ... 결국 ... 일어날 것입니다.
인력이 실제로 사용하는 언어를 보면 매우 다른 그림을 그릴 수 있기 때문입니다.

모든 개발자의 절반 이상이 JavaScript를 사용합니다. 프론트 엔드 웹 개발에 필수적이며 백 엔드 개발과 점점 더 관련이 있습니다. 그리고 게임 개발 및 사물 인터넷과 같은 영역으로 빠르게 확장되고 있습니다.
채용 공고에는 Java 이외의 프로그래밍 언어보다 JavaScript가 더 많이 언급됩니다.

우리가 JavaScript를 중심으로 오픈 소스 커뮤니티의 커리큘럼을 구축 한 것은 우연이 아닙니다. 지난 2 년 동안 5,000 명이 넘는 사람들이 Free Code Camp를 사용하여 첫 번째 개발자 직업을 얻었습니다.
나는 자바 스크립트를 가르치기 때문에 옹호하지 않습니다. 저는 자바 스크립트가 첫 번째 개발자 직업에 대한 가장 확실한 길이 기 때문에 가르칩니다.
하지만 JavaScript가 당신에게 적합할까요? 첫 번째 프로그래밍 언어가 될 가치가 있습니까? 앞서 언급 한 요소들을 살펴 보겠습니다.
요인 # 1 : 취업 시장
순전히 지적 호기심에서 프로그래밍하는 방법을 배우고 있다면이 요소를 건너 뛰어도됩니다. 그러나 프로그램을 배우는 대다수의 사람들처럼이 기술을 사용하여 일자리를 얻고 싶다면 이것은 중요한 고려 사항입니다.
앞서 언급했듯이 Java는 다른 프로그래밍 언어보다 더 많은 채용 공고에서 언급됩니다. JavaScript는 가까운 두 번째입니다.
하지만 여기에 JavaScript가 있습니다. 20 년이 지났지 만 최근에야 Netflix, Walmart 및 PayPal과 같은 회사가 전체 애플리케이션을 구축 할 수있는 심각한 도구가되었습니다.
결과적으로 많은 회사가 JavaScript 개발자를 고용하고 있지만 구직 시장에는 그다지 많지 않습니다.

모든 오픈 자바 포지션을 놓고 경쟁하는 2.7 자바 개발자가 있습니다. PHP 및 iOS 작업에 대한 경쟁도 마찬가지로 치열합니다.
그러나 모든 열린 JavaScript 위치에는 0.6 JavaScript 개발자 만 있습니다. JavaScript 기술을 가진 개발자를위한 판매자의 시장입니다.
요인 # 2 : 장기적인 전망
평균 자바 스크립트 프로젝트는 평균 자바, Python 또는 Ruby 프로젝트보다 두 배 많은 pull 요청을받습니다. 또한 JavaScript는 다른 인기있는 언어보다 빠르게 성장하고 있습니다.

JavaScript의 생태계는 또한 Google, Microsoft, Facebook 및 Netflix와 같은 회사의 막대한 자금 투자와 엔지니어링 인재의 혜택을받습니다.
예를 들어 TypeScript (JavaScript의 정적으로 형식화 된 상위 집합)에는 100 명 이상의 오픈 소스 기고자가 있으며, 이들 중 상당수는 Microsoft 및 Google 직원이 작업 대가를 받고 있습니다.
이러한 유형의 회사 간 협력은 Java로 찾기가 더 어렵습니다. Sun Microsystems 인수를 통해 Java를 효과적으로 소유하고있는 Oracle은 Java를 확장하려는 기업을 고소하는 경우가 많습니다.
요인 # 3 : 배우기 어려움

대부분의 프로그래머는 고급 스크립팅 언어가 상대적으로 배우기 쉽다는 데 동의합니다. JavaScript는 Python 및 Ruby와 함께이 범주에 속합니다.
대학은 여전히 Java 및 C ++와 같은 언어를 모국어로 가르치지 만 배우기가 상당히 어렵습니다.
요소 # 4 :이를 통해 구축 할 수있는 프로젝트
이것이 JavaScript가 실제로 빛나는 곳입니다. JavaScript는 브라우저가있는 모든 장치에서 브라우저에서 실행됩니다. 기본적으로 JavaScript로 무엇이든 빌드하고 어디서나 공유 할 수 있습니다.
JavaScript의 편재성 때문에 Stack Overflow의 공동 창립자 Jeff Atwood는 현재 유명한 법을 만들었습니다.
" JavaScript로 작성할 수 있는 모든 응용 프로그램 은 결국 JavaScript로 작성 될 것입니다."그리고 매월 Atwood의 법칙은 강력합니다.
Java는 한때 모든 곳에서 실행될 것이라고 약속했습니다. 자바 애플릿을 기억할 것입니다. 오라클은 올해 초 공식적으로 그들을 죽였습니다.
파이썬은 거의 동일한 문제를 겪습니다.
“내가 만든이 게임을 어떻게 친구에게 줄 수 있나요? 더 좋은 점은 학교에서 아이들이 설치하지 않고도 보여줄 수 있도록 이걸 휴대폰에 넣을 수있는 방법이 있을까요? 음.” — 제임스 헤이그 (James Hague), 교수 언어로서의 파이썬 은퇴이와 대조적으로 오픈 소스 커뮤니티의 구성원이 CodePen의 브라우저에 구축 한 일부 앱은 다음과 같습니다. 브라우저에서 바로 클릭하여 사용할 수 있습니다.




하나의 언어를 잘 배우십시오. 그런 다음 두 번째 것을 배웁니다.
언어에서 다른 언어로 계속 점프하면 멀리 가지 않을 것입니다.
기본을 넘어 서기 위해서는 모국어를 잘 배워야합니다. 그러면 제 2 언어가 훨씬 더 쉬워 질 것입니다.
거기에서 많은 언어를 배움으로써 분기하여 더 다재다능한 개발자가 될 수 있습니다.
- C는 컴퓨터가 실제로 메모리 관리 측면에서 어떻게 작동하는지 배우는 좋은 방법이며 고성능 컴퓨팅에 유용합니다.
- C ++는 게임 개발에 적합합니다.
- 파이썬은 과학과 통계에 아주 좋습니다.
- 대규모 기술 회사에서 일하려면 Java가 중요합니다.
그러나 먼저 JavaScript를 배우십시오.
좋습니다. 이제 불가능한 일을 시도해 보겠습니다. 댓글 섹션에서 반대 의견을 예상하고 예상하겠습니다.
이의 제기 # 1 :하지만 자바 스크립트는 느리지 않나요?
JavaScript는 가장 실용적인 목적을 위해 고성능 언어만큼 빠릅니다.
JavaScript (Node.js)는 Python, Ruby 및 PHP보다 훨씬 빠릅니다.
또한 C ++, Java 및 Go와 같은 고성능 언어만큼 빠릅니다.
다음은 가장 포괄적 인 최근 교차 언어 벤치 마크의 결과입니다.

이의 제기 # 2 :하지만 JavaScript는 정적으로 입력되지 않습니다.
Python 및 Ruby와 마찬가지로 JavaScript는 동적으로 입력되므로 편리합니다. 그러나 문제가 발생할 수 있습니다. 여기서 나는 exampleArray
배열이 되고자합니다. 값을 설정 한 다음 길이를 확인합니다. 포함 된 요소의 수를 의미합니다.
exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2
하지만 실수로 문자열로 할당했습니다.
exampleArray = “text” -> “text” exampleArray.length -> 4
이러한 종류의 오류는 동적으로 입력되는 언어에서 항상 발생합니다. 대부분의 개발자는이를 방지하기 위해 검사를하고 그에 따라 테스트를 작성합니다.
첫 번째 프로그래밍 언어로 정적 타이핑이 반드시 필요하다면 JavaScript를 먼저 배우는 것이 좋습니다. 그런 다음 TypeScript를 빠르게 선택할 수 있습니다.
"Typescript에는 학습 곡선이 있지만 이미 JavaScript를 알고 있다면 원활하게 사용할 수 있습니다." — TypeScript의 Alex Ewerlöf이의 제기 # 3 :하지만 모바일 앱을 만들고 싶습니다.
나는 여전히 JavaScript를 먼저 배우는 것이 좋습니다.
- JavaScript에는 Angular Cordova 및 React Native와 같은 네이티브 모바일 앱을 만들기위한 여러 도구가 있습니다.
- 모바일 앱이 실제로 흥미로운 작업을 수행하려면 적절한 백엔드가 필요할 것입니다. Node.js + Express.js와 같은 적절한 웹 개발 프레임 워크로 빌드하고 싶을 것입니다.
또한 모바일 앱 개발의 가장 좋은 날이 뒤쳐 질 수 있다는 점을 지적 할 가치가 있습니다.
우선 사람들이 모바일 앱을 사용하는만큼 개발자 작업의 거의 절반이 웹 개발입니다. 이를 모바일 앱 개발과 관련된 일자리의 8 %에 불과합니다.

"그것을위한 앱이 있습니다"라는 웅장한 비전은 실현되지 않았습니다. 대신 대부분의 스마트 폰 소유자는 새로운 앱 다운로드를 중단했습니다.
물론입니다. 여전히 앱을 사용합니다. 대부분 Facebook, Google Maps 및 기타 소수. 따라서 모바일 앱 개발자에 대한 수요의 대부분은 일부 대규모 고용주에 집중되어 있습니다.
이러한 모바일 개발 작업에 대한 전망은 예측하기 어렵습니다. JavaScript를 사용하면 모바일 앱 개발, 유지 관리 및 배포의 여러 측면이 더 쉬워집니다. 따라서 Facebook 및 Google과 같은 회사는 JavaScript를 사용하여이를 구축하기위한 더 나은 도구에 많은 투자를하고 있습니다.
2016 년 현재 거의 모든 개발이 웹 개발입니다. 모든 것이 "웹"이라는 큰 플랫폼에 영향을 미칩니다. 그리고 집에서 사용하게 될 차세대 기기와 학교에서 자녀를 데리러 오는 자동차는 모두 웹을 사용하여 함께 연결됩니다.
그리고 그것은 JavaScript를 의미합니다.
이의 제기 # 4 : JavaScript는 10 일 만에 작성된 장난감 언어가 아닙니까?
JavaScript는 기발한 역사를 가지고 있습니다.
의심 할 여지없이 사람들이 그 대가로 농담을하는 것을 듣게 될 것입니다.
사람들은 C ++도 싫어합니다. 그리고 JavaScript와 마찬가지로 C ++는 이러한 증오에도 불구하고 성공했으며 이제는 거의 모든 곳에 있습니다.
따라서 누군가가 당신에게 금주의 엘리트 언어 대신 JavaScript를 배우는 데 어려움을 겪는다면 C ++를 만든 사람의 유명한 단어를 기억하십시오.
"프로그래밍 언어에는 두 가지 종류가 있습니다. 그 사람들은 항상 욕하는 사람이고 아무도 사용하지 않는 언어입니다." — 비얀 스트 로스트 럽저는 프로그래밍과 기술에 대해서만 글을 씁니다. 트위터에서 나를 팔로우하면 시간 낭비하지 않을 것입니다. ?