이 프로젝트 중 하나에 코드를 기여하고 싶습니다. 시작하려면 어떻게해야합니까??

블록 체인에 특별히 사용되는 언어가 있습니까??

프로그래밍 방법을 모르겠습니다. 블록 체인 프로그래밍으로 바로 이동할 수 있습니까??

몇 달 전, 저는 샌프란시스코 NEO Dev Conference에서 네 명의 활발한 NEO 프로그래머 패널을 중재하는 기쁨을 누 렸습니다. 패널의 주제는 일반적인 블록 체인 프로그래밍 이었지만, 추가적인 경고로 인해이 특정 참가자 패널이 매우 흥미로 웠습니다. 네 명의 프로그래머 모두 NEO 프로젝트 작업을 위해 다른 언어를 사용했습니다..

하나는 구식 C # 언어를 선호했고, 다른 하나는 Python 스크립트를 생성했으며, 세 번째는 인기있는 자바 스크립트 구현을 전파했습니다. & 네 번째 참가자는 다가오는 도메인 별 NEO 언어에 대해 흥미롭게 논의했습니다..

포스트 패널에서 두 가지 생각이 떠 올랐습니다.

  1. NEO 컴파일러는 심각한 다국어 개발 지원을 제공합니다.
  2. 블록 체인 프로그래밍의 학습 곡선은 특히 신규 개발자의 경우 조직화 된 리소스의 부족으로 잔인하고 격분합니다.

이 기사는 2 번 문제를 해결하는 것을 목표로합니다.이 가이드의 효과를 극대화하려면 예상 대상을 좁은 틈새 시장으로 축소해야합니다. & 특히 블록 체인 공간에 침입하고자하는 주니어 프로그래머. 베테랑 개발자, 프로그래머, & 소프트웨어 엔지니어가 숙독하고 있습니다. 다음 섹션은 약간의 이점을 제공 할 수 있지만 초보적이라고 생각할 것입니다. 선임 엔지니어는 익숙한 언어로 스크롤하여 시간을 최대화 할 수 있습니다., & 첨부 된 학습 자료를 분리하기 시작했습니다. & 선적 서류 비치.

그래서 당신은 블록 체인 프로그래밍에 침입하고 싶다고 생각하십니까? 블록 체인 프로그래밍이 무엇을 수반하는지 정확히 정의하여 시작하겠습니다..

새로운 산업

일반적으로 개인적으로 관심있는 주제 & 당신의 가치와 일치하는 것은 명확한 동의없이 무언가를 암기하는 것보다 배우기 더 쉽습니다. 이 원칙이 적용된다는 점을 매우 강조합니다. 점점 더 블록 체인 프로그래밍과 같이 타고난 복잡하고 빠르게 발전하는 분야에서. 시작하기 전에 급성장하는 산업에서 블록 체인 개발자가 직면 한 몇 가지 과제를 확인하겠습니다..

먼저 & 가장 중요한 것은 정확히 “블록 체인”이 수행하거나 수반하지 않는 것 사이의 지속적이고 공개적인 불일치입니다. crypto-twitter에서 시간 보내기 & 어떻게 부족의 암호 화폐 커뮤니티가, & 단번에 그들의 개발 커뮤니티가되었습니다. 확인되지 않은 부족주의는 자연스럽게 객관적인 콘텐츠에 대해 편향된 대화를 유도하여 들어오는 개발자를위한 또 다른 난독 화 계층을 추가합니다..

다음으로 대부분의 프로젝트가 테스트 넷 단계에 있습니다. & 라이브 프로젝트가 지속적으로 업데이트되고, & 해킹의 희생양이되고 불완전한 문서를 보는 것은 놀라운 일이 아닙니다. & 미완성 된 튜토리얼. 땅의 위치는 빠르게 진화하고있어 일관된 반복이 필요합니다. 어떤 팀도 쉬운 작업이 아닙니다..

마지막은 블록 체인 프로그래밍이 완전히 복잡하다는 진정한 오명입니다. & 경제학, 암호화, 통화, 데이터 구조, 금융 정책에 대한 기초적인 이해가 필요한 여러 교차 필드로 구성 & 물리학. 블록 체인 프로그래밍과 관련된 이러한 분야의 일부만 배우면 이해하는 데 많은 시간이 걸립니다. 여기에는 지름길이 없습니다..

부족주의, 우연한 문서 & 복잡한 기본. 가파른 상승의 모든 경고 신호가 전방으로 올라갑니다. 이러한 진입 장벽을 통해 자신에게 적절하게 동기를 부여하기 위해 정확히 무엇에 대한 명확성을 파헤치는 것이 도움이됩니다. 블록 체인 프로그래밍 처음에 의미합니다. 또한 발견하는 데 도움이 될 수 있습니다…

블록 체인 프로그래밍을 배우고 싶은 이유는 무엇입니까? 특별히 작업하고 싶은 프로젝트는 무엇입니까? 해결하려는 문제는 무엇입니까??

블록 체인 프로그래밍 해체

열렬히 작업하고 싶은 프로젝트가 무엇인지 이미 알고 있다면, GitHub 리포지토리로 이동하거나 여기에서 선택한 언어를 Ctrl-Fing하여 미리 읽어 보는 것이 좋습니다. 다음 섹션은 정확히 어떤 프로젝트를 정확히 파악할 수없는 사용자에게 가장 유용합니다. & 필요한 기술 / 언어는 앞으로의 잠재적 인 학습 로드맵을위한 출발점으로 가장 적합합니다..

일반적으로 블록 체인 프로그래밍은 세 가지 다른 의미를 가질 수 있습니다.

  • 초기 코인 오퍼링 (ICO) 배포
  • 스마트 계약 또는 분산 앱 (DAPP) 구축
  • 기존 블록 체인에 기여하거나 새로운 블록 체인 배포

위에 설명 된 세 가지 옵션은 각각 다양한 언어를 제공하므로 강력하게 고려하십시오. & 학습 곡선. 또한 정확한 우선권. 언어 기준에 대한 추가 세분화는 바로 모퉁이에 있습니다. 그러나 새로운 기술을 배우고 동기를 부여하는 데있어 개인적인 취향이 가장 중요하다는 것을 잊지 마십시오..

1 일 소프트웨어 엔지니어가 세 가지 유형의 블록 체인 프로그래밍 모두에 대해 똑같이 배우는 데 관심이 있다고 가정하면 가장 친근한 경로를 비추기 위해 다른 기준으로 전환 할 수있는 것은 무엇입니까??

  • 범용 언어와 도메인 별 언어
  • 구문 가독성 & 학습 곡선

이 세 가지 기준을 개괄하면 마침내 언어 목록에 적용 할 견고한 컨텍스트 프레임을 갖게됩니다..

범용 vs 도메인 특정

질적 특성에 따라 도구를 분류하는 것은 명확하지 않습니다. 프로그래밍 언어도 다르지 않습니다. 여기서는 가능한 모든 블록 체인 프로그래밍 언어를 도메인 별 언어라는 두 가지 범주로 나눌 것입니다. & 범용 언어.

일반적으로 DSL (도메인 특정 언어)은 설계된 컴퓨터 언어입니다. & 특정 애플리케이션에 특히 적합합니다. 이름에서 알 수 있듯이 범용 언어 (GPL)는 여러 프로그래밍 도메인에서 광범위하게 적용 할 수있는 언어입니다..

범용 언어

범용 언어는 Java, Javascript, Ruby, C와 같이 들어봤을 가능성이있는 언어입니다.++, & 파이썬. 범용 언어 중 질적에 따라 더 분류 할 수있는 무한한 방법을 찾을 수 있습니다. & 양적 차이 & 가독성, 컴파일, 엄격 유형, 프런트 엔드 / 백엔드 등과 같은 유사점… 처음 사용하는 경우에 대한 좋은 경험 규칙은 다음과 같습니다.

자바 스크립트, Python, & Ruby는 일반적으로 C를 배우는 동안 학습 곡선이 적기 때문에 초보자에게 더 쉽습니다.++ & Java는 일반적으로 즉시 학습하는 데 더 많은 시간이 걸립니다..

편집자는 두 번째에 대한 논평을 자제하고 있습니다. & 한 그룹의 언어 또는 다른 그룹으로 시작하는 신규 이민자의 세 번째 수준 결과. 블록 체인 공간에 엄격하게 접근하는 새로운 개발자를 위해 여기서 사용을 극대화하기 위해 여기서 우회하는 엄격한 유형의 언어를 통해 신규 이민자가 변수 유형을 먼저 이해하도록하는 것과 같이 이러한 언어의 추가 기능에 대한 여러 논쟁이 있습니다..

범용을 선택하는 신규 이민자들에게 가장 큰 장점은 블록 체인 프로그래밍 외부의 방대한 분야에서 해당 언어를 즉시 적용 할 수있는 능력입니다. 안타깝게도 같은 동전의이면은 구직 시장에 합류하려는 신규 이민자들에게 단점이됩니다. & 다년간의 범용 언어 사용 경험이있는 다른 도메인의 베테랑 소프트웨어 엔지니어.

도메인 별 언어

컨텍스트를 제공하기 위해 블록 체인 프로그래밍에서 뒤로 물러서겠습니다. 상당히 새로운 프로그래밍 분야이지만 새로운 프로그래밍 분야의 개념 자체는 그다지 새로운 것이 아닙니다. 최근 유행어를 너무 많이 지나칠 필요는 없습니다. 기계 학습 이것을 보려면. 하나 이상의 도메인 별 언어의 자연스러운 진화를 목격 한 몇 가지 추가 프로그래밍 분야는 통계 (R, MatLab), 데이터베이스 쿼리 (SQL), 웹 UI (HTML, CSS)입니다..

도메인 별 언어 블록 체인 프로그래머는 매우 적은 공급으로 수요가 매우 높습니다. 위에 나열된 세 가지 블록 체인 프로그래밍 옵션 중 하나 이상만을 목적으로하는이 젊은 언어는 의심 할 여지없이 경력 산업 배치를위한 가장 명확한 경로를 제공합니다..

이러한 언어는 처음부터 블록 체인으로 설계 되었기 때문에 & 스마트 계약 엔지니어링을 염두에두고, 숙련 된 개발자는 다른 언어의 이전 참조 프레임을 재조정하는 데 어려움을 겪을 수 있습니다..

새로운 프로그래밍 습관을 가진 신규 사용자는 현재 또는 미래의 프로젝트에서 코드 배포를 시작하는 데 필요한 모든 것을 기울입니다..

다시 말하지만, 범용 언어에서 발견되는 매우 실제적인 프로그래밍 기본 사항을 우회함으로써 자신이 선택한 도메인 별 언어가 어떻게 든 더 이상 사용되지 않는 경우 그 자신이 심각한 불이익을받을 수 있습니다..

다음 다이어그램은 DSL / GDL 세분화에서 가능한 블록 체인 프로그래밍 진입 점 풀을 분류합니다. 투명 / 먼 언어는 언어입니다. 아니 길이로 덮여 :

구문 가독성 & 학습 곡선

프로그래밍 언어마다 얼마나 단순하거나 복잡한 지에 따라 다양한 수준의 가독성을 제공합니다. 통사론 이다. 구문은 지정된 철자를 나타냅니다. & 프로그래밍 언어의 문법 규칙. 일반적으로 구문 가독성은 학습 곡선의 가파른 정도와 관련이 있습니다. 읽기 어려운 코드는 코드를 배우기 어렵게 만듭니다. 다시 말하지만,이 규칙에는 확실히 예외가 있습니다. 그러나 우리의 목적을 위해이 선형 관계는 사실입니다..

우리는 두 가지 핵심적이지만 일반적인 프로그래밍 언어 구문 기능을 사용하여 특히 새로운 개발자를위한 가독성 이해를 생성합니다. & 블록 체인 프로그래밍 언어. 이러한 개념 중 가장 일반적인 것은 느슨한 대 엄격한 변수 유형 지정입니다..

느슨한 타이핑 vs 엄격한 타이핑

모든 프로그래밍은 변수를 광범위하게 사용합니다. 그러나 단순한 단일 일반 변수 유형이 아닙니다. 각각 고유 한 속성을 가진 많은 유형이 있습니다. 문자열, 정수와 같은 몇 가지 변수 유형을 들어 보셨을 것입니다., & 부울. 모든 프로그래밍 언어는 구문에서 이러한 자연 유형을 활용합니다. 그러나 각 언어는 이러한 변수 유형을 고유 한 변수 참조 논리로 계층화합니다. Python과 같은 일부 언어 & 자바 스크립트, 개발자가 단일 “var”변수 만 사용하도록 허용 : var =“coincentral.” 이러한 유연성 덕분에 개발자는 각 변수 유형이 모든 행에 적절하게 설정되어 있는지 확인하는 지루한 프로세스를 피할 수 있습니다.. 낮은 수준의 변수 할당을 숨기는 언어를 느슨한 유형 언어라고합니다..

후자의 범주 인 엄격하게 형식화 된 언어는 더 자세한 설명이 포함 된 구문이지만 더 자세한 내용으로 구성됩니다. 엄격한 유형의 언어로 변수를 선언하는 것은 개발자가 사용하려는 원래 변수 유형을 구체적으로 선언하는 것으로 구성됩니다. =“coincentral.” 이것을 이전 변수 선언과 비교한다면 굵게 표시된 “문자열”에주의를 기울이십시오. 이 엄격한 변수 유형은 느슨한 유형 언어 간의 구문의 주요 차이점입니다. & 엄격하게 입력 된 언어. 구문의 차이는 단순히 변수를 선언하는 것으로 좁혀지는 것이 아니라 각 언어 전체에 널리 퍼져있는 핵심 언어 디자인 기능입니다..

둘 다 느슨하게 입력 & 엄격한 형식의 언어는 많은 전문가를 제공합니다. & 단점. 신규 이민자를 위해 고려해야 할 가장 중요한 절충점 중 하나는 두 유형과 관련된 학습 곡선입니다. 일반적으로 느슨한 유형의 언어는 신규 이민자에게 더 친숙한 구문을 제공합니다. & 따라서 진입 장벽이 낮아집니다. 그러나 고려해야 할 가장 큰 즉각적인 단점은 변수 유형과 상호 작용할 때 기본적인 소프트웨어 엔지니어링 지식의 심각한 격차입니다..

이 정보를 활용하여 적절하다고 판단되면 느슨한 형식으로 블록 체인 프로그래밍 언어 풀을 시각적으로 분리합니다. & 엄격한 형식의 구문은 다음과 같습니다.

언어 풍경

드디어이 문서의 핵심 섹션 인 상위 수준 카탈로그에 있습니다. & 사용 가능한 블록 체인 프로그래밍 언어에 대한 설문 조사. 각 섹션에서 우리는 언어를 간략하게 소개하고, 블록 체인 환경 내에서 의도 된 목적을 요약하고, 현재 생산중인 프로젝트 또는 프레임 워크를 개괄합니다., & 마지막으로 추가 정보를위한 학습 리소스 목록.

씨++

C ++

목록에서 가장 오래된 언어 인 C ++부터 시작하겠습니다. 1985 년 Mr. Bjarne Stroustrup이 처음 소개 한 C ++는 원래 C 언어의 확장으로 만들어졌습니다. 아이디어는 유연성과 보안을 유지하는 것이 었습니다. & C의 효율성이지만 더 많은 객체 지향 프로세스를 위해 언어를 간소화합니다. 따라서 C ++는 객체 지향 언어가되고 C는 프로세스 지향 언어로 유지됩니다..

C ++는 핵심 블록 체인 프로그래밍에 매우 인기있는 특히 강력하고 구식의 도메인 일반 언어입니다..

그러나 새로운 개발자는 경고를받습니다. 동료에 비해 상대적으로 오래된 구문을 사용하는 엄격한 유형의 언어로서 학습 곡선은 다음과 같습니다. 대단히 험한. 새로운 개발자가 시작하기 가장 어려운 언어 일 것입니다. 그러나 C ++ 학습 곡선을 밀어서 얻은 기본 지식은 누구에게도 뒤지지 않는다는 점을 분명히해야합니다. 앞서 언급했듯이 블록 체인 세계는 C ++에 크게 의존하므로 학습 리소스가 부족하지 않습니다.

비트 코인 코어 : https://github.com/bitcoin/bitcoin

리플 데몬 : https://github.com/ripple/rippled

C ++ 튜토리얼 : https://www.cplusplus.com/doc/tutorial/

자바 스크립트

자바 스크립트

JavaScript는 모든 주요 브라우저에서 지원하는 웹을위한 느슨한 형식의 스크립팅 프로그래밍 언어입니다. 정적 HTML을 향상시키는 데 사용되는 기본 언어입니다. & 본격적인 UI에 대한 CSS 페이지. 이러한 일반적인 웹 UI 중 일부에는 애니메이션, 새로 고침 페이지, 사용자 메뉴가 포함됩니다. & 대화 상자, 대화 형지도 등…

최신 브라우저의 모든 웹 페이지 동작을 지원하는이 언어 인 Javascript는 웹 앱의 최고 수준의 프레젠테이션 레이어를 떠나서는 안됩니다. 그러나 자바 스크립트가 특히 신규 이민자들에게 전례없는 방식으로 등장한 것은 부인할 수 없습니다. Node.JS가 먼저 Javascript를 서버 측에 배치 한 다음 Angular / React / Vue가 기본적으로 HTML / CSS 스택 클라이언트 측을 다시 작성하면서 풀 스택 Javascript가 대세가되었습니다. 너무 깊이 탐구하지 않고 최소한 소수의 베테랑 개발자가이 권장 사항에 신음 할 것이라고 말하는 것이 안전합니다. 이러한 불만에 약간의 장점이있을 수 있지만 다음 문장을 거짓으로 간주하지는 않습니다.

Javascript는 매우 새롭고 성숙합니다., & 이제 최신 웹 스택의 모든 부분에 자리 잡고 있습니다..

자바 스크립트의 경우 블록 체인 지원의 선두 주자는 Lisk 블록 체인 프로젝트입니다. 그들의 랜딩 페이지는 자바 스크립트로 전체 블록 체인 생태계를 구축한다는 믿음의 관점에서 많은 것을 말하고 있습니다.“Lisk는 개발자가 자바 스크립트로 블록 체인 애플리케이션을 쉽게 구축하고 배포 할 수 있도록합니다.”

학습 자료

Lisk : https://lisk.io/

파이썬

파이썬

비교적 현대적인 프로그래밍 언어 인 Python은 종종 신규 이민자에게 가장 선호되는 언어입니다. 그럴만 한 이유가 있습니다! Python은 Guido van Rossum에 의해 구문 단순성 & 가독성 무엇보다도. 출시 이후 Python은 Flask와 같은 웹 UI 라이브러리에서 NumPy와 같은 기계 학습 필수 요소에 이르기까지 말 그대로 모든 곳에서 Python 통합으로 이어지는 대규모 커뮤니티 지원을 통해 단순하면서도 강력한 언어로 폭발했습니다..

네이티브 Python을 사용하면 기술적으로 기존 블록 체인에 기여하거나, 분산 된 앱을 작성하거나, 초기 코인 제공을 보유 할 수 없지만 거의 모든 단일 블록 체인 생태계에 하나 이상의 공개가 있으므로 Python을이 목록에서 제외하는 것은 실수입니다. 작성된 도구 & Python 용.

학습 자료

IBM Blockchain Foundations 튜토리얼 – https://developer.ibm.com/courses/all/ibm-blockchain-foundation-developer/

이더 리움 웹 래퍼 – https://web3py.readthedocs.io/

가다

가다

GO (GOLang의 줄임말) 프로그래밍 언어는 2007 년에 Google에서 개발 한 비교적 현대적인 도메인 일반 언어입니다. & 강력한 다목적 언어로 설계된 GO는 구문을 결합하려는 시도였습니다. & Python과 같은 현대 언어의 사용자 친 화성 & 성능과 함께 자바 스크립트 & C와 같은 오래되고 컴파일 된 언어의 보안 이점.

GO는 컴파일 된 언어로 운영 체제 내에서 직접 실행됩니다. 이 기능은 블록 체인 프로젝트의 여러 부분에 GO를 사용할 때 최대한의 유연성을 제공합니다. 기존 블록 체인에 직접 기여하고 싶으십니까? Ethereum에는 GO로 작성된 프로토콜 SDK가 있습니다. 스마트 계약을 작성하고 싶습니까? Linux-Foundation Hyperledger Fabric 블록 체인은.

학습 자료

Go 문서 – https://golang.org/doc/

이더 리움으로 이동 – https://github.com/ethereum/go-ethereum

Hyperledger Fabric – https://github.com/hyperledger/fabric-sdk-go

견고

견고

Solidity는 자바 스크립트와 유사합니다. 도메인 별 언어 Ethereum 팀 제작 (Gavin Wood, Christian Reitwiessner, Alex Beregszaszi, Yoichi Hirai & 기타) 이더 리움 플랫폼에서 분산 된 앱을 생성합니다. 지금까지 가장 적응 된 & Ethereum 커뮤니티 내에서 충분히 채택 된 주류 DSL & 블록 체인 산업.

dApp을 구축하거나 ICO를 보유하려는 모든 사람에게 Solidity는 모든 것의 핵심에 직접 뛰어들 수있는 가장 간단한 방법 중 하나입니다. 솔리 디티의 개발이 이더 리움 하드 포크 이전에 시작된 이래로, 두 Ethereum Classic에서 입증 된 바와 같이 고맙게도 시민 불일치의 일부에 대한 엔지니어링 효과를 피했습니다. & Ethereum은 Solidity 지원을 계속합니다. 또한 Cardano 팀은 최근 Solidity 지원을 발표했습니다. Solidity는 여러 블록 체인에서 지원되는 단일 블록 체인 프로그래밍 DSL이되었습니다..

언어 자체는 개발자 채택 우선 순위를 지정하여 생성되었으며, 이는 물론 몇 가지 변형이있는 항상 인기있는 Javascript와 의도적으로 유사한 구문을 만들었습니다..

학습 자료

Consensys Academy – https://consensys.net/academy/

Solidity 문서 – https://solidity.readthedocs.io/en/v0.4.24/

마무리 중

비트 코인 & 블록 체인 기술은 데이터 방식을 계속 혁신 할 것입니다 & 자산 이전 — 그 영향이 전 세계적으로 & 업계에 구애받지 않습니다. 어디서 시작하든 이러한 언어 중 하나를 배우는 첫 단계는 이미 상당한 첫 단계입니다. 이 스킬 셋에 대한 수요 공급의 불일치는 아무리 강조해도 지나치지 않습니다..

최적의 추정치는 활성 개발자 수 전 세계적으로 약 2,000 만. 그러나 업계 추산에 따르면 무려 1 미만 1000 적극적인 개발자는 자신을 블록 체인 프로그래머로 간주 할 수있는 기술에 자신감을 느낍니다. & 오픈 포지션에 적극적으로 지원하고 있습니다. 덜 산술적으로 기울어 진 사람들에게는 약 2 만 명의 블록 체인 프로그래머.

프로그래밍 1

그게 많이 보인다면 Microsoft를 살펴 보겠습니다. 대략 10 만 명의 인원으로 – 소프트웨어 엔지니어 당 최소 한 명의 지원 직원이 있다고 가정 해 보겠습니다. 이로 인해 약 5 만 명의 프로그래머가 남아 있습니다. 이면에, 은행의 거물 인 Goldman Sachs는 현재 약 9,000 명의 프로그래머를 고용하고 있습니다. & 엔지니어.

요점은 – 블록 체인 프로그래머의 부족은 매우 현실적입니다. & 내면의 대화에 대한 답 하지만 처음부터 배우기에는 너무 늦었나요?? 이다 아니. 개발자, 투자자, & 규제 기관과 관련된 모든 사람들은 아직 초기 단계입니다..

유일한 질문은 작업을 시작하고 싶은 프로젝트입니다. & 어떤 문제를 해결하고 싶습니까??