반업주부의 일상 배움사

갓 티어 개발자 로드맵 :: ChatGPT 정리 본문

IT 인터넷/일반

갓 티어 개발자 로드맵 :: ChatGPT 정리

Banjubu 2023. 3. 25. 07:43
반응형


> English Summary

> English Full Text

 

[ 요약 ]

사랑받고, 미움받고, 컴파일되고, 해석되는 다양한 프로그래밍 언어와 그 사이의 모든 것을 살펴봅니다.
초보자가 주니어 프로그래머로 취업하기 위한 로드맵을 제공합니다.
또한 개발자가 되기 위해서는 끊임없는 학습과 개선이 필요하다는 점을 강조합니다.

웹 개발에 필수적인 자바스크립트와 함께 베이직과 파이썬도 초보자 친화적인 언어로 언급됩니다.
이러한 고급 언어 중 하나를 배우면 거의 모든 것을 만들 수 있습니다.
학습 여정을 시작하고 프로그래밍 기술을 지속적으로 향상시킬 것을 권장합니다.

언어를 여러 계층으로 분류했는데, 첫 번째 계층에는 초보자에게 좋은 출발점이 되는 파이썬과 같은 언어가 포함되어 있습니다.
두 번째 계층은 Bash, PowerShell, HTML, CSS, SQL, PHP, Lua, Ruby, R, Julia와 같이 보다 전문적이면서도 널리 사용되는 언어로 구성됩니다.

복잡한 소프트웨어를 구축하기 위해 이러한 언어에서 동적 유형 시스템의 중요성을 강조합니다.
프로덕션 코드에서 널리 사용되는 Java, C-sharp, TypeScript와 같은 정적 유형 시스템을 사용하는 언어를 배우기 위한 권장 사항으로 마무리됩니다.

배울 언어를 선택하기 전에 프로젝트 요구 사항을 고려해야 합니다.
모바일 앱을 빌드하는 경우 Android용 Kotlin, iOS용 Swift 또는 Flutter가 포함된 Dart로 작업할 가능성이 높습니다.

Go는 Google에서 C를 대체하기 위해 개발한 고성능 언어입니다.
하스켈은 함수를 추상화하기만 하면 되는 것으로 유명한 함수형 언어입니다.
Microsoft에서 개발한 F-sharp는 하스켈보다 더 접근하기 쉬운 함수형 언어입니다.
스칼라와 클로저는 객체 지향 프로그래밍과 함수형 프로그래밍을 모두 지원하는 인기 함수형 언어입니다.
Elm은 웹 앱 개발을 위해 JavaScript로 컴파일할 수 있는 순수 함수형 언어입니다.
C는 운영 체제 커널과 컴파일러를 구축하는 데 사용되는 전설적인 저수준 시스템 언어입니다.
알고리즘과 컴퓨터 아키텍처에 대한 광범위한 지식이 필요하지만 오늘날에도 여전히 관련성이 있는 대중적인 C부터 시작하여 다양한 프로그래밍 언어에 대해 설명합니다.
C++는 객체 지향 프로그래밍 패턴을 추가하기 위해 C의 확장으로 만들어졌지만 학습 곡선이 가파르다는 단점이 있습니다.
Rust는 포인터 대신 차용 검사를 사용하여 메모리 안전 프로그램을 쉽게 작성할 수 있기 때문에 현재 저수준 프로그래밍에 선호됩니다.
V는 바둑과 유사한 고성능 시스템 언어이지만 가비지 컬렉터를 사용하지 않고 혁신적인 오토프리 기능을 갖추고 있습니다.
Zig는 저수준 프로그래밍을 단순화하고 효율적이며, Nim은 Python처럼 표현력이 풍부하고 가비지 컬렉터를 조정할 수 있습니다.

Google은 기존 C++ 코드베이스와 잘 연동되는 C++의 후속 버전인 Carbon을 발표했습니다.
이러한 최신 언어를 살펴보고 프로그래밍 작업에 적합한 언어를 선택하라는 권장 사항으로 마무리합니다.
결정을 내리기 전에 각 언어의 방법과 인수를 조사하는 것이 좋습니다.

솔리디티, 핵과 같은 최신 언어부터 포트란, COBOL, 파스칼과 같은 역사적으로 중요한 언어에 이르기까지 다양한 프로그래밍 언어를 살펴봅니다.
Lisp, APL, Simula, Erlang과 같은 영향력 있는 언어에 대해서도 언급합니다.
국방부에서는 여전히 Ada Lovelace의 이름을 딴 Ada를 사용하고 있습니다.
여전히 은행 시스템의 40% 이상에서 사용되고 있는 COBOL을 배우는 것이 유리한 선택이 될 수 있다고 제안합니다.

프로그래밍 기술을 확장하거나 프로그래밍의 역사에 대해 배우기 위해 이러한 언어를 탐구하고 싶을 수도 있습니다.
인터칼, 브레인, 브레이크백, 말불지아, 셰프, 셰익스피어, 피에트, 롤코드, 이모티콘 코드 등 난해한 프로그래밍 언어의 세계를 파헤쳐봅니다.
이러한 언어들은 독특하게 설계되어 예술 작품과 닮은 경우가 많습니다.
일부는 스택 기반 시스템을 사용하는 반면 다른 일부는 장황한 키워드를 사용합니다.

재미와 도전 또는 호기심 때문에 이러한 언어를 사용해 보도록 권장합니다.
문서에 이모티콘을 사용하는 것부터 양자 전기역학을 이해하는 것까지 다양한 코딩 언어와 수준을 살펴봅니다.
C--는 휴대용 어셈블리 언어로, Holy See는 TempleOS를 구축하는 데 사용되는 C의 방언으로 강조 표시되어 있습니다.
어셈블리는 그 다음 단계로 CPU의 아키텍처를 나타내며 간단한 명령어를 사용하여 값을 조작합니다.

머신 코드는 바이너리로 표현되며 컴퓨터 아키텍처에 대한 깊은 지식이 필요합니다.
양자 전기 역학은 전자기 양자 진공에서 작동하는 입자를 탐구하며, 인식론의 렌즈를 통해 지식 자체에 의문을 제기합니다.
현실은 오직 자신의 마음 속에만 존재한다는 생각에 대해 성찰하게 됩니다.
방법이나 논증을 제공하지 않습니다.

 

반응형

 

 

 

God-Tier Developer Roadmap

https://www.youtube.com/watch?v=pEfrdAtAmqk 

 

 



 

[ 한글 전체 ]

부자가 되고 싶다면 지금 당장 배워야 할 최고의 프로그래밍 언어를 알려주는 동영상을 YouTube에서 본 적이 있을 것입니다.
하지만 오늘은 그런 얘기가 아닙니다.
대신 소프트웨어 엔지니어링 분야의 가장 깊고 어두운 곳으로 들어가 사랑받고, 미움받고, 아름답고, 추하고, 컴파일되고, 해석되고, 유용하고, 이상하고, 그 사이의 모든 것을 가진 프로그래밍 언어를 알아볼 것입니다.
끝까지 완주하면 주니어 프로그래머로 취업하기 위해 알아야 할 모든 것에 대한 로드맵을 갖게 될 것입니다.
2023년에 개발자가 되는 것은 빙산의 일각에 불과하기 때문에 극도로 우울해질 수 있습니다.
어떤 언어를 선택하든 그 안에는 만델브로트 세트처럼 영원히 계속되는 또 다른 빙산이 있습니다.
아이러니하게도 지금부터 설명할 언어 중 어떤 언어로도 이를 표현하고 코딩할 수 있습니다.
시작하기 전에 프로그래밍 빙산은 여러 가지가 있지만, 이 글에서는 초보자가 학습할 때 접할 수 있는 언어를 기준으로 순위를 매겼습니다.
"처음부터 코딩하는 방법: 각 레벨에는 고유한 테마가 있으므로 바로 시작하겠습니다.
프로그래밍을 최대한 쉽게 할 수 있도록 설계된 언어가 많기 때문에 프로그래밍에 대해 전혀 모른다면 스크래치부터 시작하는 것이 가장 좋습니다.
이 목록에 있는 다른 언어와 마찬가지로 MIT에서 개발되었습니다.
코드를 입력하는 대신 레고 블록처럼 블록을 끌어다 놓아 변수, 제어 흐름, 연산자 등을 표현할 수 있습니다.
프로그래밍의 사고 과정에 훨씬 더 쉽게 접근할 수 있습니다."
한 영어 전문가는 다음과 같이 설명합니다."실제로 스크래치로 무엇을 만들 수 있는지 알고 나면 놀랄 것입니다.
하지만 스크래치보다 훨씬 이전에는 1964년 다트머스 대학에서 나온 베이직 또는 초보자용 다목적 기호 명령어 코드가 있었습니다.
당시에는 포트란이 대세였지만 초보자에게 친숙하지는 않았습니다.
Basic은 인쇄, 이동, for와 같은 기본 명령을 제공하며 대부분의 개인용 컴퓨터에 포함되어 있어 향후 50년 동안 코딩을 배우는 사람들이 가장 많이 사용하는 옵션이 되었습니다.
이제 다음 단계로 넘어가면 매우 인기 있는 동적..."
고급 언어: 오늘날 대부분의 사람들이 가장 먼저 시작하는 언어는 최소한의 구문으로 이루어진 Python입니다.
중괄호, 세미콜론 또는 이와 유사한 요소가 필요하지 않습니다.
대신 들여쓰기를 사용하여 서로 다른 코드 블록을 표현합니다.
또 다른 인기 있는 고급 언어는 JavaScript입니다.
구문상으로는 매우 추악하지만 웹 개발을 하려면 반드시 필요한 언어이며, 거의 모든 개발자가 커리어의 어느 시점에서 자바스크립트를 접하게 될 것입니다.
자바스크립트로 작성할 수 있는 모든 애플리케이션은 그럴 것입니다.
결국에는 자바스크립트로 작성할 수 있게 될 것입니다.
이 언어 중 하나를 배우면 상상할 수 있는 거의 모든 것을 만들 수 있습니다.
빙산 밑으로 더 내려가지 않고도 소프트웨어 엔지니어로서 경력을 쌓을 수 있습니다.
하지만 죽음을 앞두고 PHP를 사용해 볼 걸 그랬다고 후회하고 싶지는 않으실 겁니다.
이 다음 단계에서는 매우 인기 있지만 조금 더 전문적인 언어가 있습니다.
프로그래머는 터미널에서 작업을 수행하는 것을 좋아하며, Bash 및 PowerShell과 같은 스크립팅 언어가 있습니다.
같은 명령을 반복해서 입력하는 대신 프로그래밍 방식으로 컴퓨터와 상호 작용할 수 있는 배시 스크립트를 작성하면 재현성을 높일 수 있습니다.
웹 개발에 뛰어든다면 HTML과 CSS를 배워야 하는데, 이 두 가지를 합치면 튜링(Turing) 프로그래밍 언어를 완성할 수 있습니다.
이 언어들은 전통적인 의미의 프로그래밍이 아니라 웹사이트의 구조와 스타일을 정의하는 데 사용됩니다.
HTML이 프로그래밍 언어가 아니라고 말한다면 즉시 취소될 것입니다.
기술 커뮤니티는 대부분의 앱에 데이터베이스를 필요로 하며, 데이터베이스 작업에 가장 일반적으로 사용되는 언어는 구조화된 쿼리 언어(SQL)입니다.
SQL은 일반 프로그래밍이 아닌 관계형 데이터베이스에서 데이터를 읽고 쓰는 데 사용되는 턴완결형 언어입니다.
Python도 훌륭하지만 특정 프로젝트에 더 적합할 수 있는 다른 동적 언어도 많이 있습니다.
예를 들어, PHP는 90년대에 서버 측 웹 앱을 쉽게 구축할 수 있게 해주었고 오늘날에도 여전히 인기가 있으며, Lua는 더 쉽고 빠릅니다.
Python보다 더 쉽고 빠르며 Roblox 및 World of Warcraft와 같은 많은 엔진에 내장되어 있습니다."라고 말합니다.
Ruby는 배우기 쉬운 객체 지향 언어로, Rails 프레임워크로 웹 앱을 빌드하는 데 일반적으로 사용됩니다.
데이터 과학 분야에서 일한다면 통계 및 데이터 시각화에 사용되는 R이나 과학 컴퓨팅에도 사용되는 최신 옵션인 Julia를 접하게 될 것입니다.
이 모든 언어의 공통점은 동적 유형 시스템입니다.
하지만 더 복잡한 소프트웨어를 구축하다 보면 좀 더 견고한 프레임워크가 필요하다는 것을 깨닫게 될 것입니다."
이를 달성하는 가장 좋은 방법은 정적 유형 시스템을 사용하는 것입니다.
이 시스템은 전 세계에 존재하는 프로덕션 코드의 대부분을 구성합니다.
그 첫 번째는 Java 가상 머신을 통해 프로그래밍에 혁명을 일으킨 Java입니다.
이 시스템은 JVM에서 실행할 수 있는 바이트코드를 컴파일하므로 개발자는 단일 코드베이스를 사용하여 모든 컴퓨터 아키텍처에 맞게 코딩할 수 있습니다.
초보자에게는 구문적으로 어렵지만 코드에 명시적인 유형이 있으면 이해하고 리팩토링하는 데 도움이 될 수 있습니다.
IntelliJ와 같은 최신 IDE를 사용하면 Java 코딩이 훨씬 쉬워집니다.
Java는 전설적인 언어이지만, Microsoft는 Java와 유사한 C-sharp를 후속으로 내놓았습니다.
하지만 특히 Unity를 사용하여 게임을 빌드하고 웹 및 데스크톱 애플리케이션을 제작할 때 사용자들 사이에서 더 인기가 있습니다.
"마이크로소프트의 또 다른 인기 도구는 타입스크립트입니다.
자바스크립트에 타입 시스템을 추가하여 대규모의 복잡한 프로젝트에서 훨씬 쉽게 작업할 수 있습니다.
현재 모바일 앱을 빌드하고 있다면 Android용 Kotlin, iOS용 Swift 또는 Flutter 프레임워크가 포함된 Dart로 작업하고 있을 것입니다.
이러한 언어는 모두 정적으로 유형화되지만 상용구 코드를 최소화하는 유형 추론과 같은 기능을 통해 현대적이고 간결한 방식으로 작업을 수행합니다.
다음은 고성능 언어인 Go가 있습니다."
저수준 시스템을 구축하기 위해 Google에서 개발한 언어입니다.
C를 대체하기 위해 설계되었으며, C의 최초 개발자 중 한 명인 Ken Thompson이 설계를 도왔습니다.
구문이 간결하고 초보자도 쉽게 접근할 수 있으며 가비지 콜렉터가 있습니다.
C와 달리 개발자는 수동 메모리 관리에 대해 걱정할 필요가 없습니다.
지금까지는 표면적인 부분만 살펴봤습니다.
많은 개발자가 겁을 먹고 이 주제에 대해 더 깊이 파고드는 것을 주저합니다.
더 깊이 들어가면 상황이 조금 더 복잡해지기 시작할 수 있습니다.
무거운 객체 지향 언어보다 더 나은 방법을 찾고 있다면 함수형 언어가 있으며, 가장 유명한 것은 하스켈입니다.
클래스, 상속 및 다양하고 복잡한 디자인 패턴을 사용하는 대신 필요한 추상화는 함수뿐입니다.
하스켈은 미란다 언어에서 영감을 받아 수학자 하스켈 커리의 이름을 따서 명명되었습니다.
특히 변수는 불변이며 함수는 부작용이 없습니다.
놀랍게도 이러한 제한에도 불구하고 거의 모든 것을 구성할 수 있습니다.
하지만 대부분의 프로덕션 코드는 이러한 접근 방식을 사용하여 작성되지 않습니다.
대부분의 사람들은 모나드가 무엇인지 파악하려고 할 때 문제에 직면합니다.
쉽게 설명하자면, 모나드는 n-팩터 범주에 속하는 모노이드일 뿐입니다.
하스켈은 훌륭하지만, 마이크로소프트는 F-sharp에서 C-sharp라는 기능적 자매 언어를 개발했습니다.
순수 함수형인 하스켈과 달리 F-sharp는 명령형이고 객체 지향적이기 때문에 빙산의 일각에 있는 개발자들이 더 쉽게 접근할 수 있습니다.
Java가 마음에 들지 않는다면 Scala가 좋은 대안이 될 수 있습니다.
F-sharp와 마찬가지로 객체 지향 프로그래밍과 함수형 프로그래밍을 모두 지원합니다.
JVM에서 실행되는 프로그래밍은 정적으로 유형화됩니다.
그러나 기능적이고 동적인 Clojure라는 또 다른 JVM 언어가 있습니다.
따라서 작업을 빠르게 수행하는 데 더 적합하지만 유형 안전성이라는 단점이 있습니다.
다른 인기 있는 함수형 언어로는 Facebook에서 광범위하게 사용되는 OCaml과 Ruby와 유사한 구문을 가지고 있으며 고성능 실시간 웹 애플리케이션을 구축할 수 있는 Elixir가 있습니다.
또한 웹 앱 구축에 사용할 수 있는 JavaScript로 컴파일되는 순수 함수형 언어인 Elm도 있습니다.
"런타임 오류 없이 프런트엔드 UI를 구축했지만 이제는 한 단계 더 깊이 들어가 빙산의 일각까지 살펴볼 때입니다.
이러한 언어는 수동으로 메모리를 관리하고 최적화할 수 있는 로우레벨 시스템 언어이며, 다른 모든 소이 기반 언어를 가능하게 하는 운영 체제 커널 및 컴파일러와 같은 것을 구축하는 데 사용됩니다.
그 중 가장 전설적인 것은 C입니다.
윈도우, 맥, 리눅스 운영 체제 커널을 구축하는 데 사용되었으며 중괄호 구문은 이 목록에 있는 다른 많은 언어에 영감을 주었습니다."
놀랍게도 배우기가 그리 어렵지 않고 외워야 할 키워드도 비교적 적습니다.
그러나 효과적으로 사용하려면 알고리즘과 컴퓨터 아키텍처에 대한 광범위한 지식이 필요합니다.
예를 들어, C에는 해시 맵이나 사전이 없으므로 데이터 구조를 코딩하는 방법을 직접 배워야 합니다.
C는 1969년에 처음 나왔을 때 완벽한 프로그래밍 언어였지만 절차적 프로그래밍만 지원했습니다.
결국 개발자들은 더 많은 것을 원했고, C++가 탄생했습니다.
클래스 및 상속과 같은 객체 지향 프로그래밍 패턴으로 확장하도록 설계된 C의 상위 집합입니다.
C와 달리 배우기가 매우 어렵고 발에 총을 맞을 뿐만 아니라 다리 전체를 날려버릴 수 있는 기회가 많습니다.
이것은 포인터를 사용한 수동 메모리 관리를 의미하며, 누군가에게 총을 겨누는 것만큼이나 위험하기 때문에 그 이름을 얻었습니다.
학습 곡선이 가파르지만 게임 엔진이나 컴파일러와 같이 고도로 최적화된 소프트웨어를 구축하는 데 매우 많이 사용되는 언어입니다.
"따라서 D와 C++는 오늘날에도 여전히 관련성이 매우 높습니다.
그러나 현대 차드는 저수준 프로그래밍에 Rust를 선호하는 경향이 있습니다.
Rust에는 가비지 컬렉터가 없지만, C 및 C++와 달리 메모리 관리를 위해 포인터 대신 차용 검사라는 기술을 사용합니다.
따라서 메모리 안전 프로그램을 훨씬 쉽게 작성할 수 있으며 세계에서 가장 사랑받는 언어 중 하나입니다.
이 계층에 속한 언어들은 매우 인기가 높습니다.
하지만 이제 여러분이 들어보지 못한 최신 언어에 대해 더 자세히 알아보겠습니다.
먼저, V가 있습니다."
V는 바둑과 매우 유사한 느낌의 고성능 시스템 언어이지만, 바둑과 달리 가비지 컬렉터를 사용하지 않습니다.
Rust와 달리 차용 검사를 수행할 필요는 없지만, 자체적인 오토프리 혁신을 통해 메모리에 안전한 애플리케이션을 만들 수 있습니다.
이 혁신에서는 컴파일러가 모든 것을 정리합니다.
어떻게 작동하는지는 모르겠지만 멋져 보입니다.
C를 대체하는 또 다른 최신 언어는 Zig입니다.
매크로 및 메타 프로그래밍과 같은 기능을 제거하여 저수준 프로그래밍을 단순화하도록 설계되었으며 매우 효율적입니다.
언급할 가치가 있는 또 다른 언어는 Rust입니다.
메모리 관리와 관련하여 명시적이며 Clang과 마찬가지로 CNC++로 교차 컴파일할 수 있습니다.
Zig를 Python처럼 표현력이 뛰어나지만 정적으로 타입이 지정된 또 다른 고성능 언어인 Nim과 혼동해서는 안 됩니다.
흥미롭게도 Nim에는 수동 메모리 관리를 위해 가비지 컬렉터를 완전히 끌 수 있는 조정 가능한 가비지 컬렉터가 있습니다.
최근 Google은 C++의 후속 버전으로 설계된 Carbon을 발표했는데, 기존 C++ 코드베이스와 완전히 상호 운용할 수 있다는 점에서 특별합니다.
언급할 가치가 있는 또 다른 저수준 언어로는 Rust가 있습니다.
이더리움 블록체인에서 스마트 콘트랙트를 구현하기 위해 특별히 고안된 정적 타입의 객체 지향 언어인 솔리디티는 전문 언어입니다.
다음으로, PHP와 원활하게 통합하기 위해 만들어진 페이스북의 핵(Hack)이 있습니다.
원래 웹사이트는 PHP로 구축되었지만, 현재 규모를 처리할 수 있는 뛰어난 성능과 타입 시스템을 갖춘 언어가 필요했습니다.
그 외에도 Crystal, Hacks, Pharaoh와 같은 우수한 최신 언어가 많이 있습니다.
하지만 수면 아래에는 아직 발견되지 않은 더 많은 언어가 있습니다.
이제 다음 단계로 넘어가서 여전히 널리 사용되고 있거나 역사적으로 중요하지만 프로그래밍에 선호되지 않을 수 있는 언어를 살펴볼 차례입니다.
최초의 고급 프로그래밍 언어인 포트란은 오랫동안 큰 인기를 끌었습니다.
얼마 지나지 않아 인텔 C가 등장했습니다.
1958년에 발명된 Lisp는 동적 타이핑, 고차 함수, 재귀, REPL과 같이 지금은 보편화된 많은 컴퓨터 과학 개념을 도입했습니다.
다른 많은 언어에 영감을 주기도 했습니다.
라켓, 스키마, 그리고 어느 정도는 자바스크립트에도 영향을 미쳤습니다.
또 다른 영향력 있는 언어는 알고리즘 언어였는데, 이 언어는 크고 복잡했지만 포트란만큼 큰 인기를 얻지는 못했습니다.
그러나 이 언어의 유형 체계와 표현식 사용은 이듬해 C와 C++ 개발에 큰 영향을 미쳤습니다.
1959년, COBOL이 탄생했습니다.
2020년대에 돈을 벌고 싶다면 은행 시스템의 40% 이상이 여전히 COBOL을 사용하고 있으며, 현재 2,000억 줄 이상의 코드가 생산되고 있기 때문입니다.
1962년에 APL이 처음 소개되었습니다.
프로그래밍 언어의 약자인 APL은 다차원 배열 또는 행렬을 중심 데이터 유형으로 사용하여 선형 대수를 언어에 직접 구현합니다.
이로 인해 수학 표기법과 유사하고 그리스 알파벳을 많이 사용하는 매우 간결한 코드가 만들어졌습니다.
1970년 파스칼이 발명되어 프로그래밍 세계를 강타했습니다.
파스칼은 친숙한 구문을 가진 절차적 언어이며 컴파일 시간도 매우 빠릅니다.
결국 1980년대 초에 가장 인기 있는 언어가 되었으며, 그 이전에는 ...
C가 등장한 지 몇 년 후, 이 기간 동안 다른 중요한 언어들이 많이 등장했습니다.
예를 들어, 최초의 객체 지향 언어인 Simula는 Smalltalk에 영감을 주었으며, 이 언어 자체는 Python, Java, Ruby와 같은 다른 많은 객체 지향 언어에 영감을 주었습니다.
또한, 통신 산업 전반에 영향을 미쳤으며 오늘날에도 여전히 사용되고 있는 동시 함수형 프로그래밍 언어인 Erlang도 있습니다.
또한 일반적으로 세계 최초의 컴퓨터 프로그래머로 여겨지는 에이다 러브레이스의 이름을 딴 범용 언어인 에이다(Ada)도 있습니다.
이 언어는 1980년대에 매우 인기가 많았으며 오늘날에도 국방부에서 사람들을 폭파하는 데 사용되고 있습니다.
또한 논리 프로그래밍을 개척한 언어인 프롤로그와 하스켈과 같은 다른 정적 유형 함수형 언어에서 사용되는 다형성 유형 시스템을 개척한 메타 언어도 언급할 수 있습니다.
이 외에도 역사적인 언어에 대해 이야기할 수 있는 것이 많지만, 이제 엔지니어링 도구라기보다는 예술 작품처럼 느껴지는 희귀하고 기괴한 언어를 찾아볼 수 있는 난해한 언어의 영역에 대해 알아볼 시간입니다.
1972년에 처음 알려진 난해한 언어는 "발음할 수 있는 약어가 없는 컴파일러 언어"의 약자인 Intercal이라고 불렀습니다. 이 언어는 당시의 언어인 Algol과 Fortran을 조롱하기 위한 패러디로 고안되었습니다.
이 언어에는 말이 안 되는 역설적인 참조 설명서 전체가 있으며 "Please"와 "Mingle"과 같은 흥미로운 키워드가 있습니다. 제발은 실제로 아무 일도 하지 않지만 더 예의 바른 프로그래머가 될 수 있습니다.
다음은 Brain입니다.
Brain은 극도로 미니멀한 것으로 가장 잘 알려져 있습니다.
어반 뮬러가 만들었습니다.
브레이크백은 대학에서 사용하는 프로그래밍 언어입니다.
배열을 초기화한 다음 포인터와 배열의 메모리를 조작할 수 있는 8개의 다른 문자를 제공하는 방식으로 작동합니다.
그 결과 두뇌에 도전하는 코드베이스가 만들어집니다.
이는 "신곡" 또는 단테의 "지옥"에 나오는 지옥의 여덟 번째 원에서 이름을 따온 "말불지아"라는 또 다른 언어에 영감을 주었습니다. 브레이크백이 어렵다고 생각했다면 이 언어는 완전히 다른 차원의 언어입니다. 말불지아 프로그래밍은 한 문장으로 어떻게 작동하는지 요약할 수도 없을 정도로 어렵습니다.
"이 문장이 너무 어렵다면 스택 기반이며 코드를 요리 레시피처럼 보이도록 설계된 훨씬 더 재미있는 언어인 Chef를 사용해 보세요.
간결한 키워드 대신 '재료를 믹싱볼에 넣다'와 같은 문장을 사용하여 스택에 값을 밀어 넣습니다.
이러한 명령어를 조합하여 '안녕하세요' 수플레를 만든 다음 표준 출력에 기록할 수 있는 수플레의 개수를 지정할 수 있습니다.
꽤 멋진 방법이지만, 지식인에게는 다소 우스꽝스러워 보일 수도 있습니다.
반면에 셰익스피어 프로그래밍 언어는 코드를 문학 작품처럼 보이게 해줍니다."
셰익스피어 희곡은 16세기 시의 장황함과 함께 낮은 수준의 어셈블리 제어 기능을 제공합니다.
하지만 단어가 마음에 들지 않는다면 피에트 몬드리안의 이름을 딴 피에트를 선택하는 것도 좋은 방법입니다.
이 언어도 스택 기반이지만 비트맵 이미지에 20가지 색상의 패턴을 사용하여 코드를 작성합니다.
최종 결과물은 추상 미술처럼 보이는 코드베이스입니다.
고양이 밈과 비슷한 개발자 경험을 제공하는 LOLCODE는 고양이 마니아라면 정말 좋아할 만한 언어입니다.
"안녕하세요"라고 말하며 프로그램을 연 다음 "고마워요"로 끝내세요.
"I'm in"으로 루프를 실행할 수 있고 "I'm out"으로 루프를 종료할 수 있습니다.
이해하기 쉽지만 이모티콘을 포함하면 더 좋을 것 같습니다.
이모티콘 코드는 구문이 전적으로 이모티콘을 기반으로 하는 언어입니다.
요즘 개발자들은 문서에 이모티콘을 너무 많이 사용하기 때문에 이 언어를 사용하면 전체 프로세스를 간소화할 수 있습니다.
코드를 정의할 수 있는 모든 기능을 갖춘 객체 지향 언어입니다.
포도와 수박이 있는 블록, 토끼가 있는 클래스, 껍질과 가지가 있는 제네릭이 있습니다.
난해하지 않은 또 다른 언어는 C--입니다.
C에서 많은 부분을 차용했지만 많은 기능을 생략한 휴대용 어셈블리 언어로 설계되었습니다.
하지만 C의 궁극적인 방언은 교황청(Holy See)인데, 이는 Terry A.
데이비스가 하나님의 지시에 따라 작성된 운영 체제인 TempleOS를 구축하는 데 사용되었습니다.
Holy C는 실제로 C처럼 작동하지만 운영 체제에서 적시에 컴파일되기 때문에 정말 멋집니다.
이 문장은 정확한 문법을 가지고 있습니다.
그러나 명확성을 위해 더 짧은 문장으로 나누는 것이 좋습니다. 즉, 운영 체제 커널과 직접 상호 작용할 수 있는 스크립팅 언어로 사용할 수 있습니다.
이제 소프트웨어 엔지니어로서 도달할 수 있는 절대적으로 가장 낮은 단계인 마지막 단계에 도달했습니다.
어셈블리는 CPU 아키텍처에 직접적으로 대응하는 다양한 변형이 있는 언어입니다.
x86 및 ARM과 같은 다양한 CPU 아키텍처에는 서로 다른 기계어 코드 명령어가 필요합니다.
어셈블리를 사용하면 값을 조작하는 간단한 명령어로 이 코드를 표현할 수 있습니다.
CPU의 레지스터가 너무 쉬워 보인다면, 그 다음 단계는 머신 코드입니다.
이 단계에서는 일반적으로 16진수 형식으로 표현되는 1과 0, 즉 원시 바이너리를 살펴봅니다.
이 수준의 코딩을 하려면 컴퓨터 아키텍처에 대한 깊은 지식이 있어야 하며 이진수로 계산할 수 있어야 합니다.
하지만 기계어 코드를 넘어서면 이제 CPU에 있는 수십억 개의 트랜지스터를 살펴봐야 합니다.
하나의 트랜지스터는 전기의 양을 제어하여 1 또는 0과 같은 1비트를 나타냅니다.
유용한 작업을 수행하려면 실리콘 조각을 통과하는 전기의 흐름이 아닌, 또는, 배타적 또는 등과 같은 논리 게이트로 구성되어야 합니다.
궁극적으로 전 세계에서 초당 수십억 번씩 전기를 입력으로 받아 다른 전기를 출력으로 만들어내는 기적을 수행하는 것은 바로 이러한 단순한 논리 덩어리이며, 이를 통해 우리는 지구 반대편에 있는 누군가와 비디오 게임을 할 수 있습니다.
너무 쉬웠다면 양자 전기 역학 분야를 살펴보는 것도 좋습니다.
전자기 양자 진공에서 입자가 어떻게 작동하는지를 완전히 이해하면, 여러분의 기술을 사용하여 차세대 초고속 양자 컴퓨터를 구축하고 역사상 가장 부유한 사람이 될 수 있습니다.
이 시점에서 남은 곳은 단 한 곳, 가장 무서운 곳인 우리 자신뿐입니다.
모든 것을 알게 되면 "지식이란 무엇인가?"라는 질문이 생깁니다. 인식론은 지식에 대한 이론이며, 철학자들은 오늘날까지도 좋은 답을 찾지 못하고 있습니다.
현실은 오직 내 마음 속에만 존재합니다.
우리가 알고 있는 모든 외부 세계와 우리가 습득한 모든 지식은 자아가 만들어낸 환상과 투영일 뿐입니다.
어쩌면 당신의 마음이 받아들이는 모든 감각과 지식을 통제하는 신과 같은 존재가 있거나, 당신의 실제 몸은 끈적끈적한 물통이 아니며 이미 주커버그의 메타버스에 살고 있을지도 모릅니다.
아니면 10년 전에 떠났던 아야와스카 여행에서 결코 깨어나지 못했을 수도 있습니다.
당신이 정말로 아는 유일한 것은 당신이 아무것도 모른다는 것입니다.
시청해 주셔서 감사드리며 다음 편에서 뵙겠습니다.

 

 

SMALL




[ English Summary ]

A look at the various programming languages that are loved, hated, compiled, interpreted, and everything in between.
It provides a roadmap for beginners to land a job as a junior programmer.
It also emphasizes that being a developer requires constant learning and improvement.

Along with JavaScript, which is essential for web development, Basic and Python are also mentioned as beginner-friendly languages.
If you learn one of these advanced languages, you can create almost anything.
We encourage you to start your learning journey and continue to improve your programming skills.

We've categorized languages into several tiers, with the first tier including languages like Python that are a great starting point for beginners.
The second tier consists of more specialized and widely used languages like Bash, PowerShell, HTML, CSS, SQL, PHP, Lua, Ruby, R, and Julia.

These languages emphasize the importance of dynamic type systems to build complex software.
It concludes with recommendations for learning languages with static type systems, such as Java, C-sharp, and TypeScript, which are widely used in production code.

Before choosing a language to learn, you should consider your project requirements.
If you're building a mobile app, you're most likely working with Kotlin for Android, Swift for iOS, or Dart with Flutter.

Go is a high-performance language developed by Google to replace C.
Haskell is a functional language known for its ability to simply abstract functions.
F-sharp, developed by Microsoft, is a more accessible functional language than Haskell.
Scala and Closure are popular functional languages that support both object-oriented and functional programming.
Elm is a pure functional language that can be compiled into JavaScript for web app development.
C is a legendary low-level systems language used to build operating system kernels and compilers.
We'll discuss a variety of programming languages, starting with the popular C, which requires extensive knowledge of algorithms and computer architecture but is still relevant today.
C++ was created as an extension of C to add object-oriented programming patterns, but has the disadvantage of a steep learning curve.
Rust is currently preferred for low-level programming because it makes it easy to write memory-safe programs using borrowing checks instead of pointers.
V is a high-performance systems language similar to Go, but does not use a garbage collector and has innovative auto-free features.
Zig simplifies low-level programming and is efficient, and Nim is expressive like Python and has a tunable garbage collector.

Google has announced Carbon, a successor to C++ that works well with existing C++ codebases.
We'll explore these modern languages and conclude with recommendations for choosing the right language for your programming tasks.
Before making a decision, it's a good idea to research the methods and arguments of each language.

We look at a variety of programming languages, from modern languages like Solidity and Hack to historically important languages like Fortran, COBOL, and Pascal.
Influential languages like Lisp, APL, Simula, and Erlang are also mentioned.
The Department of Defense still uses Ada, named after Ada Lovelace.
He suggests that learning COBOL, which is still used in over 40% of the banking system, could be a lucrative option.

You may also want to explore these languages to expand your programming skills or to learn about the history of programming.
Delve into the esoteric world of programming languages like Intercal, Brain, BreakBack, Malvulgian, Chef, Shakespeare, Piet, Rollcode, and Emoji Code.
These languages are uniquely designed and often resemble works of art.
Some use stack-based systems, while others use wordy keywords.

We encourage you to try these languages for fun, challenge, or curiosity.
From using emoticons in your documentation to understanding quantum electrodynamics, we'll explore different coding languages and levels.
C-- is a portable assembly language, and Holy See is highlighted as a dialect of C used to build TempleOS.
Assembly is the next level up, representing the architecture of the CPU and using simple instructions to manipulate values.

Machine code is expressed in binary and requires a deep knowledge of computer architecture.
Quantum electrodynamics explores particles operating in an electromagnetic quantum vacuum and questions knowledge itself through the lens of epistemology.
You'll reflect on the idea that reality exists only in your own mind.
It offers no methods or arguments.

 

 

 

[ English Full Text ]

You have likely seen videos on YouTube telling you the number one programming language to learn right now if you want to be rich.
However, that's not what we're doing today.
Instead, we're going to delve into the deepest, darkest depths of the software engineering field to discover the programming languages that are loved, hated, beautiful, ugly, compiled, interpreted, useful, weird, and everything in between.
If you make it to the end, you'll have a roadmap for everything you need to know to land a job as a junior programmer.
Becoming a developer in 2023 may potentially make you extremely depressed because what you need to learn is just the tip of the iceberg.
Choose any language and you will find another iceberg within it that goes on forever, like a Mandelbrot set.
Ironically, you can represent and code this with any of the languages we are about to discuss.
Before we begin, there are several programming icebergs out there, but this one ranks languages based on where a beginner may encounter them when learning.
"How to Code from Scratch: Each level has its own theme, so let's get right into it.
With languages designed to make programming as easy as possible, if you know absolutely nothing about programming, the best place to start in my opinion is Scratch.
It was developed at MIT like some other languages on this list.
Instead of typing out code, you drag and drop these blocks together like LEGO bricks to represent things like variables, control flow, and operators.
It makes the thinking process behind programming much more accessible."
An English expert would make the following corrections:"You might be surprised at what you can actually build with it.
Long before Scratch, though, we had Basic, or Beginner's All-purpose Symbolic Instruction Code, which came out of Dartmouth in 1964.
At the time, Fortran was all the rage, but it wasn't beginner-friendly.
Basic provides a bunch of basic commands like print, go-to, and for, and was included in most personal computers, which made it the go-to option for people learning to code for the next 50 years.
Now moving on to the next tier, we have the extremely popular dynamic..."
High-level languages: The language most people start with today is Python, primarily because of its minimal syntax.
It doesn't require curly braces, semicolons, or similar elements.
Instead, it uses indentation to represent different blocks of code.
The other popular high-level language is JavaScript.
Syntactically, it's pretty ugly, but it's a requirement if you want to do web development, and almost every developer will have to touch it at some point in their career.
Any application that can be written in JavaScript will.
Eventually, you will be able to write in JavaScript.
After learning one of these languages, you will be able to build pretty much anything that you can imagine.
You could have an entire career as a software engineer without going any further down the iceberg.
But, you don't want to be on your deathbed wondering if you should have tried out PHP.
On this next tier, we have languages that are extremely popular but a little more specialized.
Programmers like to get things done from the terminal, and there are scripting languages like Bash and PowerShell that...
Allowing you to interact with your computer programmatically instead of typing out the same commands repeatedly, writing a bash script can make it reproducible.
If you venture into web development, you'll need to learn HTML and CSS, which, when combined, arguably form a Turing complete programming language.
They're not used for programming in the traditional sense but rather to define the structure and style of a website.
If I were to say that HTML is not a programming language, I would immediately be canceled.
The tech community needs databases for most apps, and the most commonly used language for working with databases is Structured Query Language, or SQL.
SQL is a turn-complete language used for reading and writing data in a relational database, rather than regular programming.
While Python is great, there are many other dynamic languages that might be better suited for certain projects.
For example, PHP made it easy to build server-side web apps in the 90s and is still popular today, and Lua is easier and faster.
"than Python and is embedded in many engines such as Roblox and World of Warcraft.
Ruby is an easy-to-learn, object-oriented language that is commonly used to build web apps with the Rails framework.
If you work in data science, you'll come across R, which is used for statistics and data visualization, or Julia, a more modern option also used for scientific computing.
The one thing all these languages have in common is a dynamic type system.
However, as you build more complex software, you may realize that you need a more rigid framework and one..."
The best way to achieve this is through the use of a static type system.
This system comprises the majority of production code that exists in the world.
First on the list is Java, which revolutionized programming through the Java Virtual Machine.
This system compiles bytecode that can run on the JVM, allowing developers to code for any computer architecture using a single codebase.
While syntactically challenging for beginners, having explicit types in code can help with understanding and refactoring.
Modern IDEs like IntelliJ make coding in Java much easier.
Although Java is a legendary language, Microsoft followed up with C-sharp, which is similar to Java.
However, it is more popular among users, especially for building games using Unity, as well as for creating web and desktop applications.
"Another well-loved tool from Microsoft is TypeScript.
It takes JavaScript and adds a type system on top of it, making it much easier to work with on large, complex projects.
If you're building a mobile app today, you'll likely be working with Kotlin for Android, Swift for iOS, or Dart with the Flutter framework.
These languages are all statically typed, but they go about it in a modern, concise way, with features like type inference that minimize boilerplate code.
Next up, we have Go, which is a high-performance language."
Language developed at Google to build low-level systems.
It was designed as a replacement for C, and Ken Thompson, one of the original creators of C, helped design it.
The syntax is concise and approachable to beginners, and it has a garbage collector.
Unlike with C, developers don't need to worry about manual memory management.
At this point, we've only scratched the surface.
Many developers get intimidated and hesitate to delve deeper into this topic.
As we go further, things may start to get a bit more complex.
When looking for a better way than the weighty, object-oriented languages, there are functional languages, with Haskell being the most renowned.
Instead of using classes, inheritance, and various intricate design patterns, the only necessary abstraction is the function.
Haskell was inspired by the Miranda language and named after the mathematician Haskell Curry.
Notably, variables are immutable, and functions have no side effects.
Surprisingly, despite these limitations, it's possible to construct nearly anything.
However, the majority of production code isn't created using this approach.
Most of us encounter problems when trying to figure out what a monad is.
In layman's terms, it is just a monoid in the category of n-functors.
Haskell is great, but Microsoft developed a functional sister language called F-sharp to C-sharp.
Unlike Haskell, which is purely functional, F-sharp is also imperative and object-oriented, making it more approachable to developers coming from higher up in the iceberg.
If you dislike Java, a good alternative is Scala.
Like F-sharp, it supports both object-oriented and functional programming.
Programming that runs on the JVM is statically typed.
However, there is another JVM language called Clojure that is both functional and dynamic.
This makes it better suited for accomplishing tasks quickly, but with the trade-off of type safety.
Other popular functional languages include OCaml, which is extensively used at Facebook, and Elixir, which has a pleasant Ruby-like syntax and can build high-performance, real-time web applications.
There is also Elm, a purely functional language that compiles to JavaScript, which can be used for building web apps.
"Build front-end UIs with zero runtime errors, but now it's time to go one level deeper, to the heart of the iceberg.
These languages are absolute champs, they're low-level systems languages that can manually manage and optimize memory, and are used to build things like operating system kernels and compilers that make all the other soy-based languages possible.
The most legendary of which is C.
It was used to build the Windows, Mac and Linux operating system kernels, and its curly brace syntax inspired many other languages on this list."
Surprisingly, it is not all that hard to learn and has a relatively small set of keywords to memorize.
However, being able to use it effectively requires extensive knowledge of algorithms and computer architecture.
For example, C doesn't have hash maps or dictionaries, so you will have to learn how to code up that data structure on your own.
C was the perfect programming language when it came out in 1969, but it only supported procedural programming.
Eventually, developers wanted more, and C++ was originally created.
A superset of C, designed to extend it with object-oriented programming patterns such as classes and inheritance.
Unlike C, it is extremely difficult to learn and provides many opportunities to not only shoot yourself in the foot, but to blow your entire leg off.
This refers to manual memory management with pointers, which earned its name because it is just as dangerous as pointing a gun at someone.
Despite its steep learning curve, it is an extremely prolific language used to build highly optimized software such as game engines and compilers.
"Thus, D and C++ are still extremely relevant today.
However, the modern Chad tends to prefer Rust for low level programming.
Rust does not have a garbage collector, but unlike C and C++, it uses a technique called borrow checking instead of pointers for memory management.
This makes it much easier to write memory-safe programs and consistently ranks as the most loved language in the world.
The languages on this tier are extremely popular.
But now, we descend further into the modern languages that you probably haven't heard of.
First up, we have V."
Which is a high-performance systems language that feels very similar to Go, but unlike Go, it doesn't use a garbage collector.
Unlike Rust, it doesn't have to do borrow checking, but it can still create memory-safe applications with its own autofree innovation.
In this innovation, the compiler cleans everything up.
I have no idea how it works, but it looks cool.
Another modern replacement for C is Zig.
It's designed to simplify low-level programming by eliminating features like macros and meta-programming, and it's very efficient.
language that's worth mentioning is Rust.
It's explicit when it comes to memory management and can cross-compile to CNC++ just like Clang.
Zig is not to be confused with Nim, another high-performance language that's very expressive like Python but is statically typed.
Interestingly, Nim has a tunable garbage collector that can be turned off altogether to enable manual memory management.
Recently, Google announced Carbon, designed to be a successor to C++, which makes it special in that it can fully interop with a legacy C++ codebase.
Another low-level language that is worth mentioning is Rust.
Specialty language is Solidity, a statically typed object-oriented language designed specifically for implementing smart contracts on the Ethereum blockchain.
Next, we have Hack from Facebook, which was created to seamlessly integrate with PHP.
The original website was built with PHP, but they required a language with a superior performance and a type system to handle its current size.
There are numerous other excellent modern languages available, such as Crystal, Hacks, and Pharaoh, just to name a few.
However, there are many more languages yet to be discovered beneath the surface.
It's time to move to the next level, where we explore languages that are still widely used or historically significant but may not be preferred for programming.
Fortran, the first high-level programming language, was immensely popular for many years.
Intel C emerged soon after.
Lisp, invented in 1958, introduced many computer science concepts that are now commonplace, such as dynamic typing, higher-order functions, recursion, and the REPL.
It served as inspiration for many other languages.
Racket, Scheme, and to a certain extent, JavaScript.
Another highly influential language that came out was algorithmic language, which was big and complex but never gained as much popularity as Fortran.
However, its type system and use of expressions had a major influence on the development of C and C++ the following year.
In 1959, COBOL was born.
If you want to make money in the 2020s, learn COBOL because over 40 percent of banking systems still use it, with over 200 billion lines of code in production today.
In 1962, APL was first introduced.
Appeared, which stands for a programming language, implements linear algebra directly into the language with a multi-dimensional array or matrix as the central data type.
This leads to extremely terse code that resembles mathematical notation and makes heavy use of the Greek alphabet.
In 1970, Pascal was invented, taking the programming world by storm.
It is a procedural language with familiar syntax and also has very fast compile times.
Eventually, it became the most popular language in the early 1980s before the...
A few years after the rise of C, there were many other important languages that emerged during this time period.
Examples include Simula, the first object-oriented language that went on to inspire Smalltalk, which itself inspired many other object-oriented languages such as Python, Java, and Ruby.
Furthermore, there is Erlang, a concurrent functional programming language that essentially powered the entire telecom industry and is still in use today.
Moreover, there is Ada, a general-purpose language named after Ada Lovelace, who is generally considered to be the world's first computer programmer.
The language was extremely popular during the 1980s and is still being used today by the Department of Defense to blow people up.
Additionally, we should mention Prolog, the language that pioneered logic programming, and Meta language, which pioneered the polymorphic type system used by other statically-typed functional languages like Haskell.
There are many other historical languages that we could talk about, but now it's time to delve into the realm of the esoteric, where we find rare and bizarre languages that feel more like works of art than engineering tools.
The first known esoteric language came out in 1972 and was called Intercal, which stands for "Compiler Language With No Pronounceable Acronym." It was designed as a parody to make fun of the languages of the day, like Algol and Fortran.
It has an entire paradoxical reference manual that makes no sense and has an interesting choice of keywords like "Please" and "Mingle." Please doesn't actually do anything, but it makes you a more polite programmer.
Next up, we have Brain.
Brain is most well-known for being extremely minimal.
Urban Mueller created it.
Breakback is a programming language used in college.
It works by initializing an array, which then gives you a pointer and eight different characters to manipulate memory in that array.
This results in a codebase that will challenge your brain.
It inspired another language called "Malbulgia," which is named after the eighth circle of Hell in the "Divine Comedy" or Dante's "Inferno." If you thought Breakback was difficult, this language takes things to a whole other level - programming in Malbulgia is so difficult that I can't even summarize how it works in a single sentence.
"If that sentence is a little too dark, a far more fun language to try is Chef, which is stack-based and designed to make your code look like a cooking recipe.
Instead of concise keywords, it uses sentences like 'put ingredient into mixing bowl' to push a value onto the stack.
You can put these commands together to create a 'hello world' souffle, then specify how many it serves to write it to the standard output.
That's pretty cool, but it may seem kind of silly to intellectuals.
The Shakespeare programming language, on the other hand, will make your code look like a work of literature."
Shakespearean plays provide the low-level control of assembly with the verbosity of 16th-century poetry.
However, if words aren't your thing, a good language choice would be Piet – named after Piap Mondrian.
It is also stack-based, but you write code using patterns of 20 different colors on a bitmap image.
The end result is a codebase that looks like abstract art.
If you're a crazy cat lady, you're really going to love this next language - LOLCODE, which provides a developer experience similar to an LOLcat meme.
Open a program by saying "Hi" then end it with "K thanks bye".
Loops can be performed with "I'm in" and can be broken out of with "I'm out".
That's nice and easy to understand, but it would be even better if it included emojis.
Emoji code is a language where the syntax is entirely based on emojis.
Modern developers like to use so many emojis in their documentation that this language would just streamline the entire process.
It's a fully-featured object-oriented language where you can define code.
Blocks with grapes and watermelons, classes with rabbits, and generics with shells and eggplants.
Another language, that's not necessarily esoteric, is C--.
It's designed as a portable assembly language that borrows heavily from C but omits many of its features.
The ultimate dialect of C though is Holy See, which was created by Terry A.
Davis and used to build TempleOS - an operating system written under the direction of God.
Holy C is actually really cool because it works like C but it's just-in-time compiled on the operating system.
This sentence has correct grammar.
However, for clarity, I suggest splitting it into shorter sentences:This means that you can use it as a scripting language, which can interact directly with the operating system kernel.
This brings us to the final tier - the absolute lowest level you can reach as a software engineer.
Assembly is a language with various variations, corresponding directly to the architecture of the CPU.
Different CPU architectures such as x86 and ARM, require different machine code instructions.
Assembly enables you to represent this code with simple commands that manipulate values.
On the CPU's registers, now, if that looks too easy, the next level down is machine code.
At this point, we're looking at ones and zeros, or raw binary, usually represented in a hexadecimal format.
To code at this level, you'll need to have intimate knowledge of the computer's architecture and also be able to count in binary.
But if we go beyond machine code, now we're looking at billions of transistors on a CPU.
A single transistor represents one bit, like a one or zero, by controlling the amount of electricity.
In order to do anything useful, the flow of electricity through a piece of silicon needs to be organized into logic gates, such as not, or, exclusive or, and so on.
Ultimately, it is these simple chunks of logic that perform the miracle of taking electricity as an input and producing other electricity as an output, billions of times per second all over the world, enabling us to play video games with someone on the other side of the world.
If that was too easy, you may want to explore the field of quantum electrodynamics.
To fully understand how these particles behave in the electromagnetic quantum vacuum, you can use your skills to build a next-gen, blazingly fast quantum computer and become the richest person in history.
At this point, there's only one place left to go: the scariest place of all, yourself.
Once you know everything, the question becomes, "What is knowledge?" Epistemology is the theory of knowledge, and philosophers still don't have a good answer to this day.
Reality only exists within your own mind.
For all you know, the entire external world and all the knowledge you've acquired are just illusions and projections from your own ego.
Maybe there's a god-like being that controls all the sensations and knowledge received by your mind, or perhaps your real body isn't a vat of goo, and you're already living in Zuckerberg's metaverse.
Or maybe you never came out of that ayahuasca trip you took 10 years ago.
The only thing you really know is that you know nothing.
Thanks for watching, and I will see you in the next one.

 

 

 

반응형
LIST
Comments