아마도 최전선에서 일해 온 프로그래머들, 특히 풀스택 엔지니어들이 이 타이틀에 콧방귀를 뀌고 있을 것입니다. 이 글은 주로 아이디어를 소개하고 향후 기술 방향을 예측하는 글입니다. 또한, 기사 내용에 잘못된 표현이 있을 수 있으니 정정해 주시기 바랍니다. 미래만 보고 싶다면 중간부터 시작하세요.
컴퓨터의 출현 이후 산업은 급속도로 발전했으며, 새로운 문제를 해결하기 위해 끊임없이 새로운 기술이 생산되고 있습니다. 여기서는 컴퓨터 언어의 업그레이드를 기술의 변화로 간주하지 않습니다. 컴퓨터 프로그래밍 언어는 새로운 문제를 해결하는 것 외에도 일부 언어의 출현과 인기에도 역사적인 이유가 있습니다.
컴퓨터가 처음 만들어졌을 때 컴퓨터는 계산 문제를 해결했습니다. 며칠 만에 계산을 완료하려면 많은 사람이 몇 달이 걸립니다. 이 세대의 엔지니어는 하드웨어 문제 해결에 더 중점을 둡니다. 프로그래머(또는 소프트웨어 엔지니어)는 문제를 컴퓨터 언어(사실 프로그래머가 항상 해왔던 방식), 즉 판지로 번역합니다. 아마도 당시에는 프로그래머가 컴퓨터 시스템에서 핵심적인 역할을 하지 않았을 것입니다. 대부분의 문제와 과제는 하드웨어 시스템과 알고리즘에 있기 때문입니다.
컴퓨터 가격이 떨어지면서 세계 대전 이후 전쟁의 필요성이 줄어들고 경제 발전이 시작되었습니다. 하드웨어 솔루션 비용이 문제가 되기 시작했고, 범용 컴퓨터가 생산되기 시작했다. 범용 컴퓨터는 점차적으로 하드웨어 표준을 통합하고 소프트웨어에 더 많은 유연성을 부여합니다. 기본 모델은 다음과 같습니다. Big Mac 하드웨어 제조업체는 컴퓨팅 리소스 제공을 담당하고 프로그래머는 문제 해결을 담당합니다. 이때 프로그래머의 봄이 왔습니다. 동시에 소프트웨어 개발 이론은 끊임없이 진화하고 있습니다. 다양한 언어의 출현으로 기본적으로 누구나 명령어, 데이터, 기본 프로그램 흐름, 라이브러리 기능 등 다양한 컴퓨터 개념을 인식하고 있습니다.
앞으로 컴퓨터 애플리케이션의 범위가 점점 더 넓어질수록 도전도 점점 더 많아질 것입니다. 시스템 복잡성이 증가함에 따라 더 이상 소수 또는 수십 명의 프로그래머만으로는 많은 시스템을 완성할 수 없습니다. (오늘날의 운영 체제와 검색 엔진은 수천, 심지어 수만 명의 사람들이 수십 년간 열심히 일한 결과입니다.) 소프트웨어 엔지니어링, 복잡한 시스템을 보다 효율적이고 예측 가능하게 개발하고 유지 관리하는 방법이라는 새로운 과제도 발생했습니다. 여기에는 전통적인 프로젝트 관리 경험을 소프트웨어 프로젝트 관리에 적용하는 방법, 프로그래머가 다양한 표준화된 프로그래밍 스타일을 채택하도록 하는 방법, 적합한 팀 구조를 구축하는 방법 등이 포함됩니다. 이때 프로그래머의 중요성이 부각되었으며, 산업체인 내에서의 위상도 높아졌습니다. 역사를 통틀어 수만 명의 사람들이 육체 노동이나 전쟁을 위해 모였습니다. 인류가 지능을 모아 이렇게 대규모 문제를 해결한 적은 이전에 결코 없었습니다.
동시에 해결되는 문제의 규모와 유형도 더욱 늘어났습니다. 그중에서도 인간-컴퓨터 상호작용이 인기 있고 도전적인 방향이다. 입력 측면에서는 타자기에서 파생된 키보드 외에 마우스, 디스플레이, 스피커 등 다양한 인간-컴퓨터 상호작용 장치도 발명됐다. 프로그래머는 기본 드라이버 코드를 구현하는 것 외에도 인간과 컴퓨터의 상호 작용 수준에서 편리하고 사용하기 쉬운 대화형 환경을 구현해야 합니다. 이때 알고리즘 및 디자인 문제 외에도 인체공학적, 문화적 문제도 있습니다. 예를 들어, 중국인이 널리 사용되는 중국어 키보드와 대중적인 입력 방법을 만드는 데는 수년이 걸렸습니다. 결국 영어 키보드 병음이 가장 주류 입력 방법이 되었습니다. 이는 한자 자체의 특성에 기인하며, 프로그래머들은 이러한 문화 법칙을 구현하기 위해 많은 인력과 물적 자원을 투입해 왔다. 이와 함께 인터넷도 또 다른 화제다. 프로그래머는 가장 낮은 수준에서 컴퓨터를 함께 연결하고 강력한 네트워크 기능을 사용하여 사람들이 원격으로 통신할 수 있도록 합니다.
최근에는 빅데이터, 사물인터넷 등의 화두가 등장했습니다. 프로그래머는 빅데이터의 일괄 처리, 전송, 저장을 최하위 수준에서 구현하여 성능, 신뢰성 등 다양한 문제를 해결합니다. 빅데이터의 정확성과 완성도는 일반적으로 100%에 도달하지 않기 때문에 빅데이터를 통해 많은 프로그래머는 불확실한 문제 해결을 시작할 수도 있습니다.
다른 사람들의 프로그래머들은 다양한 분야와 유형의 문제를 해결해 왔습니다. 개발 및 테스트부터 아키텍처 설계, 경험 최적화, 프런트엔드 개발, 백엔드 개발, 드라이버 개발, 데이터베이스 개발, IT 등에 이르기까지 프로그래머의 역할이 차별화되기 시작했습니다(그리고 많은 역할이 프로그래머와 차별화되었습니다). 셀 수 없이 많습니다. 프로그래머 직업의 그리 길지 않은 역사를 통해 이러한 역할은 끊임없이 나타나고 사라지고 있습니다. 이는 프로그래머가 세대에서 세대로 계속 배우거나 업계를 떠나는 것을 의미합니다(그것에는 아무런 문제가 없으며 많은 부자가 프로그래머가 되었습니다). 역사적으로 프로그래머가 해결하는 문제, 사용하는 구성요소, 사고방식은 끊임없이 변화해 왔습니다. 하지만 프로그램의 기본적인 흐름, 디자인 패턴, 소프트웨어 엔지니어링 등 변함없이 유지되는 것들도 있습니다. 너무나 많은 프로그래머들이 새로운 문제를 해결하기 위해 끊임없이 새로운 것을 배우고 있습니다.
그렇다면 현재와 미래에는 어떤 변화가 일어나고 있을까요? 여기서는 인간-컴퓨터 상호작용 방법과 인간-컴퓨터 상호작용 수준의 혁명을 포함한 인간-컴퓨터 상호작용의 혁명 하나만 논의하고 싶습니다. (인간적으로 말이에요!) 글쎄요, Kinect, HoloLens, Cortana가 가져온 새로운 상황입니다. 이러한 새로운 제품이 결합되면 기존의 인간-컴퓨터 상호 작용에 파괴적인 혁명을 가져올 것입니다. 한 문장 요약: 미래에는 사람들이 기술을 사용하는 방법을 배우는 데 더 적은 시간을 투자해야 하며, 프로그래머는 사람들이 기술에 적응하는 것보다 기술을 사람들에게 적응시키는 데 더 많은 시간을 투자해야 합니다. 예를 들어 외발자전거는 바퀴 하나로 균형을 잡는 방법을 배울 필요가 없고, 쿼드콥터는 회전하거나 안정화하는 방법을 배울 필요가 없습니다.
1. 인간-컴퓨터 상호작용 방식. 사람들은 3차원 공간에 살고 있고, 프로그래머들은 다양한 입출력 방식으로 3차원 공간을 끊임없이 시뮬레이션하고 있습니다. 우선 디스플레이 화면이 2차원 출력이기 때문에 마우스나 각종 터치 방식도 2차원으로 설계됐다. 여기서 2차원성은 평면 입출력만 하는 것이 아니라 실제로는 물리적인 평면일 뿐입니다... 모니터는 어디에 놓아도 모니터에 터치가 완료되어야 하고, 마우스도 필요합니다. 비행기로 이동하게 됩니다. 키보드는 어떻습니까? 그 차원은 심지어 1차원적이지도 않다고 할 수 있습니다.
미래의 입력장치는 무엇일까? 여기에는 홀로그램 입력 및 출력 장치와 핸즈프리 입력 방법이 포함됩니다.
(1) 홀로그램 입력 장치. Kinect와 같은 체성 감각 및 제스처 입력 장치는 홀로그램 입력 장치입니다. Kinect는 멋지지만 홀로그램 입력 장치의 프로토타입에 불과하다고 해야 할까요? 이는 아직 미지근한 상태이기 때문이기도 하지만 아직 개선의 여지가 많기 때문이다. 한편으로는 장치 자체가 충분히 정확하지 않고 사용 범위가 사각지대 없이 360도가 아닙니다. 반면에 이를 지원할 강력한 인공 지능이 없습니다. (인공 지능은 대화형 수준 섹션에서 논의됩니다. 여기서는 홀로그램 입력 장치에 대해서만 설명합니다. 미래의 입력 장치는 공간 전체를 포괄하고, 사람들의 미세한 움직임과 미세한 표정을 정확하게 감지하고, 심지어 사람들의 건강 상태까지 감지할 수 있어야 합니다(보안과 개인 정보 보호는 고려해야 할 측면입니다). 단일 기술 관점에서 보면 극복할 수 없는 문제가 없어야 하지만, 이를 통합하여 완벽한 장치를 만드는 데는 여전히 막대한 투자가 필요합니다.
(2) 홀로그램 출력장치. 홀로그램 디스플레이 기술은 많은 SF 영화에서 시연되었습니다. 홀로렌즈(HoloLens) 등 증강현실 기기와 각종 가상현실 기기는 홀로그램 디스플레이 기기이다. 이러한 장치는 아직 초기 단계이지만 이미 큰 인기를 얻고 있습니다. 물리적 기술에 획기적인 발전이 있기 전에 이러한 종류의 웨어러블 장치는 홀로그램 기술의 주요 운반체였습니다. 또한 다양한 미각 및 촉각 장치도 있을 예정이며, 이는 인간의 모든 감각 기관을 포괄하며 홀로그램 출력 장치라고 할 수 있습니다.
(3) Cortana와 같은 음성 비서. 가장 혁신적인 점은 손이 더욱 자유로워진다는 것입니다(왜 그렇게 친숙하게 들리나요?). 이는 인간이 직립보행을 할 수 있는 손의 자유와는 비교할 수 없지만 그 혁명적 성격 역시 주목할 만하다. 다시 말하지만, 이러한 유형의 음성 도우미는 아직 초기 단계에 있으며 음성 인식 외에도 주요 과제는 주로 나중에 논의할 상호 작용 수준에 있습니다. Cortana는 마우스나 키보드와는 달리 사용법을 배워야 하는 반면, 고정된 위치나 고정된 자세로 움직여 사용해야 합니다. Cortana는 현재 전화를 사용하여 사용해야 하지만 사물 인터넷의 추가 개발을 통해 더욱 발전할 수 있습니다.
프로그래머의 과제는 다음과 같습니다.
(1) 이러한 장치를 제조 및 통합하거나 새로운 장치를 발명하는 것입니다. 이러한 장치는 완벽한 경험을 제공하고 인간의 움직임 및 감각과 원활하게 통합되며 사람들이 자연스러운 느낌을 갖도록 해야 합니다.
(2) 더 높은 수준에서, 퍼지적이고 많은 양의 입력을 수집하여 컴퓨터가 처리할 수 있는 명확한 명령으로 변환하는 방법. 기존의 입력 방식에 비해 공간이 3차원화되었을 뿐만 아니라 정보의 양도 수십 배로 늘어났습니다.
(3) 입력 효율성을 높이고 학습 비용을 줄이는 방법은 무엇입니까? 프로그래머가 고려해야 할 것은 입력 효율성을 파괴적으로 향상시키는 방법입니다. 단순히 마우스와 화면의 좌표가 2차원에서 3차원으로 바뀐 것만은 아니다. Iron Man이 어떻게 입력했는지 생각해보십시오.
(4) 장치 출력을 가장 자연스러운 경험으로 만드는 방법은 무엇입니까? 특히 홀로그램 디스플레이 장비의 경우 현기증과 같은 문제를 해결하려면 많은 디버깅과 연구가 필요합니다.
(5) 가장 중요한 것은 이러한 장치를 어떻게 사용하여 새로운 경험 모델을 구축하는지입니다. 예를 들어, 다양한 유형의 애플리케이션을 어디에 배치하고 어떻게 표시해야 합니까? 어떤 동작 동작이 가장 효율적이고 자연스러운가요? 이를 위해서는 새로운 경험에 대한 이해를 심화하고 차세대 홀로그램 장치의 기능을 활용하기 위해 세대에서 세대로 제품을 지속적으로 반복해야 합니다.
2. 인간-컴퓨터 상호작용 수준. 현재의 인간-컴퓨터 상호 작용 방법의 관점에서 볼 때 많은 제품이 매우 좋은 경험을 제공한다고 주장하지만 사람들은 여전히 장비에 적응해야 합니다. 입력 및 출력 방식뿐만 아니라 사고 방식도 현재의 인간-컴퓨터 상호 작용 경험에는 개선의 여지가 많습니다.
예를 들어 여행을 가고 싶다면 먼저 온라인으로 어디로 갈지 검색하거나, 다른 사람의 말을 듣거나, 여행사에 가서 직접 예약해야 합니다. 물론 여행사에 가는 것이 가장 쉽지만 직접 경험하지 않으면 비용이 더 높아집니다. 스스로 조사하고, 장소를 선택하고, 날짜를 확인하고, 항공권과 호텔을 구매하고, 가이드를 찾으려면 그 과정에서 많은 검색 엔진과 다양한 예약 웹사이트를 사용하고 이메일을 보내야 합니다. 처음부터 기본적으로 며칠이 걸리며, 다양한 도구를 사용하는 데에도 몇 시간이 걸립니다. 그러면 부자는 어떻습니까? 전체 과정을 완료하는 데 5분밖에 걸리지 않습니다. 보조자에게 나가서 놀고 싶다고 말하세요. 도우미가 어디로 가고 싶은지 물어볼 수도 있습니다(특정 장소가 아닐 수도 있음). 며칠 동안 플레이할 수 있나요? 언제 갈 거예요? 그런 다음 기본적으로 확인된 후 준비 사항을 보고하십시오. 두 프로세스의 핵심 차이점은 상호 작용 수준입니다. 평범한 사람들은 작업 수준에서 상호 작용하기 위해 컴퓨터에 의존하는 반면, 부자는 의도 수준에서 상호 작용합니다. 이는 다양한 상호 작용 수준이 효율성에 미치는 영향입니다.
Cortana와 같은 음성 비서는 손을 자유롭게 할 뿐만 아니라 매우 자연스러운 입력 방법이기도 합니다. 이를 통해 프로그래머와 과학자는 사람들의 언어 뒤에 숨은 의도에 대해 더 많은 연구를 시작할 수 있으며, 이를 통해 컴퓨터와 인간 간의 상호 작용 수준이 향상됩니다.
Project Oxford 및 Azure Machine Learning과 같은 개방형 인공 지능 구성 요소는 수년 동안 실험실에 있었던 장난감을 실제로 전 세계로 가져왔습니다. 이는 당시 시리(Siri)가 출시된 것과 같다. 최고는 아니지만, 그것이 없었다면 구글나우(Google Now)와 코타나(Cortana)의 빠른 출시는 없었을 것이다. 자, 다시 말씀드리겠습니다. 프로젝트 옥스퍼드(Project Oxford)는 단지 프로토타입일 뿐이지만 프로젝트 옥스퍼드(Project Oxford)의 출시는 업계의 인공 지능 구성 요소에 대한 더 높은 수준의 인터페이스 표준을 정의하여 인공 지능의 학습 및 적용에 대한 문턱을 낮췄습니다. 특히 언어 모델. 인공지능 컴포넌트 공개와 더불어 주요 기업의 빅데이터 기반 다양한 데이터 모델도 곧 공유될 것으로 예상된다. 이를 바탕으로 인공지능 애플리케이션은 곧 모든 곳에서 꽃피울 것이며, 모든 프로그래머는 더욱 스마트한 애플리케이션을 만들어 모두가 자신만의 개인 비서를 가질 수 있게 될 것입니다. 개인 비서의 가치에 대해 이해할 수 없다면 영화 "Her"를 보고 인공 지능이 전화 통화와 이메일을 처리하는 데 어떻게 도움이 되는지 확인하세요.
한편, 이러한 인공지능 열풍 속에서 하드웨어 업체들도 인공지능 알고리즘을 활용한 프로세서를 생산하기 시작했는데, 이는 차세대 프로그래밍 언어의 인기가 시작되고, 개념.
상호작용 수준 측면에서 프로그래머에게는 더 큰 과제가 있습니다.
(1) 가장 큰 과제는 새로운 프로그래밍 개념을 배우고 적응하는 것입니다. 이전 프로그램은 모두 if..else while과 같은 결정론적 구조의 프로그램이었습니다. 프로그래머는 메타프로그램 작성 방법을 배우기 시작해야 합니다. 모든 사용자에게 적응할 수 있는 프로그램을 작성하기보다는 개별 사용자의 요구에 스스로 적응할 수 있는 프로그램을 작성하십시오. 프로그래머의 코드는 세부 사항의 스택이 아닌 방향성과 조정성을 갖습니다.
(2) 상상력을 펼치고 홀로그램 상호 작용, 사물 인터넷 등의 기술을 결합하여 인간과 컴퓨터의 상호 작용 수준을 향상시키는 방법을 탐색해 보세요. 사람들이 10단계와 5단계, 5단계와 1단계로 일을 할 수 있도록 도와주세요. 예를 들어, 어떤 상황에서 특별한 조치를 취하지 않고도 손을 들어 물을 마시고 싶다는 뜻을 표시하거나, 머리를 들어 불을 켜고 싶다는 뜻을 나타낼 수 있습니까? 이는 사람들이 시간을 관리하고 일정을 조정하는 데 정말로 도움이 됩니까? , 단순한 일정이 아닙니다.
여기에 설명된 미래는 전체적으로 10년, 20년 또는 그 이상이 걸릴 수 있습니다. 어쩌면 우리 세대의 프로그래머들은 세상에서 물러났을 수도 있습니다. 더 이상 뜨거운 주제는 다양한 언어의 발명, 다양한 엔지니어링 관리 방법 및 소프트웨어 설계 모델의 발견이 아니라 기술이 어떻게 사람을 최우선으로 생각하고 생산성 개발을 촉진할 수 있는지가 될 것입니다. 프로그래머의 과제는 새로운 입력 및 출력 방법을 배우고 탐구하는 것뿐만 아니라 인공 지능과 같은 전혀 다른 프로그래밍 개념을 배우는 것입니다.
LAMP Brothers의 원본 PHP 비디오 튜토리얼 CD/"Essential PHP in Detail"을 무료로 받아보세요. 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요.
http: //www.lampbrother.net
|