얼마전 자바 스크립트 프로그래밍 공부를 하기로
맘먹었습니다만..
손끝 하나 건드리지 않다가 이제 다시 마음을 다잡았습니다
3차 마음 다잡기 대회가 열리지 않도록
이를 포스팅으로 강제할 계획입니다.
이게 가장 효과가 좋더군요
프로그래밍이란
프로그래밍은
programming
라는 단어입니다. '계획짜기' 이라고 할 수 있죠
오늘저녁은 외식플랜이다! 라고 할때 그 플랜입니다.
입력이 왔을때 그것에 대응하여 무슨 행동을 할지
짜놓는 것을 말합니다.
해가 지고 저녁이라는 입력이 인간의 대가리로 들어오면
외식플랜이 발동되어 지갑들고 튀어나가는 것입니다.
위의 예를 보았듯이
이 프로그래밍이라는 것은 그렇게나 전문용어가
아닙니다. 세상자체가 프로그래밍되어 있죠
인간이라는 프로그램이 있고
세상에는 각종 입력이 존재합니다.
그중 치명적 입력에 대해서 오류를 내뿜는 인간 프로그램은
사라지고 그에 대해서 적절한 행동을 한 프로그램은
살아남았죠.
예를들어 불이라는 입력에 대해서 뜨거움을 느끼지
못하는 인간은 타죽고 뜨거움이라는 감각을 장착한
인간은 살아남아 그 기능을 기본 탑재한
후속버전을 생산합니다.
그렇게 자연환경에 디버깅 당하면서
자꾸 버전업 되어
생물이나 환경들은 매우 완성도가
높은 프로그램이 되었습니다
특히 인간은 말이죠.
그런 인간이 도구를 만들다 만들다
새로운 환경을 만들고 그안에서 입력에 반응하는
좀더 복합적 도구를 만들기 시작합니다
그냥 도구, 연계 도구, 공학적 도구, 기계..
그러다가 마침내 컴퓨터라는 환경을 창조합니다.
컴퓨터는 이전 도구들보다 훨씬 통제된 가상환경을
만들고 그 입력들도 최대한 불순물들을 제거했습니다.
키보드나 마우스 같은 입력도구를 눌러서
전기신호를 정제해 보내죠.
통제된 환경에서 극도로 제어된 입력이 가능해지자
이제 그 입력에 맞춰 움직이는 것을 만들기로 합니다
이렇게 그 입력에 따라 어떻게 반응하도록 계획을
짜는 것을 프로그래밍이라고 하고
그렇게 만들어진 놈을 프로그램이라고 합니다.
프로그래밍의 시작
프로그래밍이 어려운 이유는
새로 배워야하는 용어와 문법도 있지만
항상 익숙하고 완성된 환경에서
자연스럽게 반응하던 일들이
새롭게 꾸민 환경에선 당연하지 않기 때문입니다.
좀단 간단하게 말하면
인간은 워낙 잘 짜여져서 각종입력에 대해서
자동봇이 작동합니다.
예를들면 뛴다 라는 행위는 생각과 동시에 그냥
이루어지죠.
오랜세월 수정을 거쳐오면서 수동으로 작동하는 인간들은
전부 도태되고 봇이 장착된 애들만 살아남았기 때문입니다
하지만
이제막 창조된 세상에서
그런 오토메틱 설정이 있을리 없습니다.
뛸려면 뇌에서 화학물질 xx를 분비하고 전기신호를
어디에 어느정도 세기로 발사해서 중추신경계를
통해 어떤 근육에 얼만큼 전달하고
균형감각계에 정보를 넘겨받아 적절히 조절해줘야됩니다
http://www.foddy.net/Athletics.html
그래서 달리기를 제대로 하는 로봇들이 잘 없는겁니다
그거 난이도 장난 아니거든요.
제대로 걷고 서있는 것만으로
차세대 로봇이라는 칭호를 획득하고 있죠
초기의 프로그래밍은 진짜진짜 어려웠지만
그래도 이제는 그정돈 아닙니다.
많은 부분이 자동화되었고
조금만 계획해주면 됩니다.
하지만 그거 조금 짜주는 것도
해보지 않은 일이기에 어렵습니다.
대신 해보지 않은 분야에 대해서 이리저리 머리쓰고
창조해내는 작업이라 이런 프로그래밍을 해보는 것이
아이들에게 굉장히 도움이 되는 것이죠.
스크래치 같은 교육용 프로그래밍 도구도 있습니다.
프로그래밍의 본질은 얼마나 논리적으로 계획을
쌓고 처리하는가에 있으므로
아이들용 블록쌓기 프로그래밍이나
고급 프로그래밍도 근원적으로 통하는게 있습니다.
그래서 하나의 프로그래밍 언어를 익히기만 한다면
그 계획짜는 부분에 있어서 경험이 생기므로
다른 언어들도 금방 익힐 수 있게 됩니다.
자바 스크립트를 할려는 이유
각각의 언어들은 특기분야들이 있습니다.
C 같은 경우 어렵지만 속도가 빠르고
C# 같은 건 쉽게 윈도우창을 이용한 프로그래밍이 되고
AUTOIT 같은 건 간단한 매크로를 만들때 좋습니다.
자바 스크립트의 경우는 웹에 강점이 있죠.
브라우저에서 보이는 상황을 조작할 수 도 있어서
플로그인 만드는데도 쓰이고
스팀봇 같은데도 자바스크립트를 사용할 수 있습니다.
그러면서도 간단하고 쉽죠
전문 프로그래머가 아니면 프로그래밍 같은 건
쓸 일이 없을것도 같지만
간단한 도구를 만들어 쓸 정도의 실력만으로도
활용도는 무궁무진하죠.
그러므로 조금씩 익혀보고 어느정도 실력이 되면
결과물을 공유하거나 따라하기 같은 포스팅도
해볼려 합니다 +_+/