필자는 IT가 세상을 바꿀 수 있다고 아직 믿고 있다. 이런 망상도 해 본다. 만약, 이더리얼이나 비트코인(둘 다 가상화폐의 종류이다)을 쓰는 사람들끼리만 마을을 만들고, 진짜 일을 하는 사람들(농축산업 종사자, 가공자, 음식점, 교사, 의사, 군인 등)만 모아 두고 화폐를 통용시키게 하면 국가 조차 필요 없게 된다. 모든 사람들을 하나의 공동체에 포함하지만 상위 10%의 재산을 가진 사람들은 제외한다면, 상위 10%의 사람들은 그 안에서 자기 똥을 치워줄 사람, 밥을 해줄 사람들을 찾아야만 할 것이다. IT에 어느 정도 있었던 사람이라면 망상이지만 만들 수는 있다고 생각할 것이다. 이 책 중간중간에 필자가 소송을 당할만한 내용도 들어가겠지만 Dirty Play를 모르고는 돈에 근접할 수도 없을 것이다. 정작 중요한 것은 돈에 얼마나 근접하고, 많이 버느냐가 중요한 것은 아니다. 돈을 정말 하나의 수단으로 볼 수 있는 능력자가 되느냐 마느냐는 사실, 당신의 마인드와 이 책을 충분히 소화해서 멋진 것을 만들어 내는 데에 달려 있다.
----
컴퓨터 언어는 우리가 일상적으로 쓰는 언어와 같다. 컴퓨터와 소통하기 위한 언어이다. 수백 개의 언어를 할 줄 아는 것은 커리어에 도움이 되겠다. 그러나 생활 영어를 구사하는 실력보다는 TED에서 발표 및 원어민들 대상으로 세미나를 할 수 있다면 분명 더 높은 LEVEL 에 위치한다고 말할 수 있다.
프로그래머가 되기 위해서는 앞서 말했 듯 코드를 열심히 쳐야 한다. 2~3일이면 첫 번째 마일스톤에는 도달했을 테니 초급 프로그래머가 추가로 공부할 Keyword는 다음과 같다.
절차 지향 프로그래밍
객체지향 프로그래밍
전자는 컴퓨터의 탄생과 함께 온 개념이고, 후자는 명확한 날짜는 모르지만 중학생 때(23년 전) Borland 사의 Trubo C++ 3.0을 구입했던 기억이 있으니 최소 20년은 넘은 개념이다. 그러나 많은 전공 학생들이 아직도 제대로 모르는 부분이 있어서 명확하게 적어 보려고 한다. 두 시간 코드 설명이면 전공자 모두가 고개를 끄덕였으니 말이 빠른 편임을 고려했을 때. 3~4시간의 직접 강의라면 일 년 정도, 스스로 공부할 지도를 얻을 수 있는 셈이다. 세부적인 내용까지 들어가더라도 10시간을 넘지 않았다.
객체지향 프로그래밍은 다음의 개념을 알면 된다.
추상화
값 전달
객체지향 5대 개념
추상화는 다음과 같이 나눠진다.
모델링 및 설계 방법
코드를 줄이는 방법
값 전달은 다음과 같이 나눠진다.
메모리를 통해 전달하는 방법
API를 통해 전달하는 방법
객체지향 5대 개념은 다음과 같이 나눠진다.
class, object, 다형성, 상속, 캡슐화
절차 지향과 객체지향 이야기
C는 절차 지향이고 C++ 은 객체지향 언어라고 한다.
틀렸다. 이 뿐 아니라 "~은 절차 지향 언어다. 객체지향 언어다."라고 말하는 것 자체가 틀린 내용이다. 객체지향은 대상을 추상화하는 방식이 절차 지향과 달라서 프로그래밍을 할 때 설계를 바라보는 생각의 흐름이 달라지는 것을 말한다. 객체지향, 절차 지향 언어를 말하는 것은 무의미하다고, 이미 십수 년 전부터 학원 강사 활동하며, 많은 설파를 했지만 잘 전달되지 않는 이유는 잘 모르겠다. C++ 창시자(비얀 스트라 스트럽)는 C로 번역되는 번역기를 먼저 만들었다. 만약, 객체지향 절차 지향을 나눈다고 하면 객체 지향 프로그래밍이 절차 지향 프로그래밍 언어로 번역되는 프로그램을 창시자가 먼저 만든 것이다. 논리적으로 태생을 달리하려는 세력 때문에 C와 C++은 C/C++처럼 묶어버리고 또, 가짜 객체지향 언어라고 하는 사람들도 보인다. 2016년 명확히 이야기하면 C와 C++ 은 분명히 다른 언어이다.
그러나 모든 언어는 같다고 말하고 싶다. 밥을 달라고 하던 I'm hungry라고 하던 おなかすいた라고 하던 언어를 이용해서 밥만 먹으면 된다. 영문법 책을 보면 한국어와 영어가 같이 있는데 왜 JAVA & C, PYTHON & JAVA 등과 같은 책은 없는 것일까?
그것은 그것들을 설명할 수 있는 언어를 사람들이 모르기 때문에 그렇다고 보인다. 필자 역시 배우는 단계에서 다른 언어로 이해하고자 할 때 선임자들이 그 방법이 잘못되었다고 말해서 안개 속을 오래도록 걸었었다. 프로젝트를 진행하면서 선임자들보다 잘한다는 것을 깨닫기 시작했을 때 확실하게 말할 자신이 생겼다. 이것은 무언가에 비유해서 설명할 것들이 아니다.
1065 git clone --depth=1 https://github.com/linagora/hublin.git && cd hublin
1095 base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo mv /tmp/docker-machine /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
1098 base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo mv /tmp/docker-machine /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
1821 git config --global user.email "mynameis@hajunho.com"
1822 git config --global user.name "joe"
1761 ssh-keygen
1762 ls
1763 cat id_rsa.pub
'[집필] 실무프로그래밍 초급편' 카테고리의 다른 글
my books -> 비대면 서비스 프로젝트 게시판 용도 변경 (0) | 2020.08.11 |
---|---|
메모리와 CPU (0) | 2019.01.09 |
초안 내용 중 (0) | 2019.01.09 |
책 내용중 & + (0) | 2019.01.09 |
실무 프로그래밍 초급편 해답 (0) | 2019.01.03 |
최근댓글