과학

[C++] 프로그래밍 - 왜 프로그래밍을 배워야 하지?

이 삭막한 한국이란 나라에서 IT로 밥벌이를 하려면.. 


또는 어느 직장에서 노동을 하는데 있어서... 


프로그램밍을 왜 배워야 하나..?


여러 유명 게이들이 한마디씩 하더군.. 일딴 닥치고 보자


 

"이 나라 모든 사람들이 프로그래밍을 배워야 하는 이유는 사고하는 법을 배워야 하기 때문이다"

- 스티브 잡스(애플 창업자) -



 

"제가 프로그래밍을 처음 배우기 시작한 이유는 컴퓨터 공학을 완습하거나 그 분야의 최고가 되고 싶어서가 아니라 매우 단순한 이유 때문이었어요. 저를 포함한 저희집 남매들이 재미있게 할 수있는 뭔가를 만들고 싶었어요"

"간단한 프로그램을 짜고 조금씩 기능을 추가했어요. 그리고 새루운 것을 배워야 한다는 상황이 닥치면, 책을 보거나 인터넷을 찾아보면서 배우고 거기에 저만의 방식을 추가했어요"

"생각해보세요! 대학교 기숙사 방안에서 회사를 한번도 세워본적 없는 사람들 몇명이 모여서 10억명 인구가 일상적으로 사용하는 서비스를 만들었어요. 생각하면 생각할수록 골때리는 일이죠? 안그래요? 너무 경이롭고 놀라운 일입니다."

- 마크 주커버그(페이스북 창업자) -


 

"프로그래밍은 악기를 연주하거나 스포츠를 하는것과 별반 다를게 없어요"

"자신만의 아이디어를 생각해 내고 그 아이디어를 자기 손으로 직접 실현시킨 후 버튼 하나로 그것을 수백만 사람들이 사용할 수 있게 하는것... 인류 역사에서 그것이 가능했던 것은 우리 세대가 처음입니다."

- 드류 휴스턴(드롭박스 창업자) -


 

"처음에는 막막하지만 시간이 지나면 감이오거든요"

"프로그래밍은 누구나 배울 수 있는 거에요. 물론 처음엔 겁이 나죠. 하지만 그것은 비단 프로그래밍에만 해당되는게 아닙니다"

"처음 배울때 겁이 안나는게 어디있겠습니까"

- NBA 농구선수 크리스 보쉬 -


 

"프로그래밍은 천재들만 할 수 있는게 아니에요. 책을 읽으려면 천재여야 하나요?"

- 브론웬 그림스 밸브 -


"2013년 현재 우리 모두 기술에 의존하는 삶을 살고있습니다. 소통을 하거나, 은행 업무를 보거나, 정보를 검색할때... 하지만 우리 일반인 중 컴퓨터 언어를 읽고 쓸줄 아는 사람이 아무도 없어요"
- 프로듀서 윌아이엠 -


< 출처 :http://makand.tistory.com/entry/%EB%AA%A8%EB%93%A0-%EC%82%AC%EB%9E%8C%EB%93%A4%EC%9D%B4-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%84-%EB%B0%B0%EC%9B%8C%EC%95%BC-%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0 >


여러 유명 게이들이 하는 말은 공통적으로 "누구나" , "쉽게"  라는 비슷한 리앙스를 풍기느 말들을 하자낭


우리들이 현대사회에서 살면서 비전공자의 프로그래밍은 알아둘만한 지식 일꺼 같다는 생각이 들어


우리 모두가 사용하는 원도우 , 웹 브라이저 , 미디어 플레이어 등 모두 프로그래밍에 대한 산물이지, 


컴퓨터도 몹시 복잡해 보이지만, 그 원리는 상당히 간단하지, ( 사실 나도 잘 몰라 헤으헤으흐헤으 ㅠㅠ ㅅㅂ )


아아 먼저 프로그래밍에 대한 정의가 필요할꺼 같네 ..?


컴퓨터는 0 과 1 빠게모른다고 하자나, 나도 설마 설마 했는데 진짜 더라군,, 구지 0 과 1 뿐이라는 말보다,


어떤 형태를 지닌 0 과 1 의 집합 이라고 말하는게 나을꺼 같구, 이를 다른말로 명령어 집합 이라고해 


예를 들면 2개의 숫자를 더하라 라의 0과1의 집한은  0001010100101010101001010 이러식으로의 2진수 나열된 형태인데 


엄청나게 길자나 구래서 우리는 16진수로 표현할 필요가 있지 ( 2진수 4자리씩 쪼개면 16진수 한자리가 됨 , 그리고 뒤에서부터 4자리씩 쪼개야 되 )


구래서 저걸 4비트씩 쪼개는 거얌 0 / 0010 / 1010 / 0101 / 0101 / 0100 / 1010 구러면 이런형태인데 이를 16진수로 쓰면


                                          0      2      A       5        5      4         A


02A554A 라구 쓸수 있을수있지, 근데 저러케 16진수로 쓰면 길이는 줄지만 생각해 보면 복잡한건  마찬가지야 구래서 어떠한 상징있는 의미를 가진 단어로 바꾸게


되었지 요것도 예를 들면 mov a,b 와 같이 표현이 되어.. 이는 b 의 어떤한것을 a로 옮겨라 라는 뜻이 되는거야, 전자보단 이해할수 있지만........


간단한 프로그램을 개발하려면 저정도에 mov a,b 문장표현력이면 충분하지만,  프로그램 의 규모가 커지고 복잡한것이 커질때 마다 저정도의 표현력 만으로는


부족하지 구래서 고급 언어라는게 세상에 나왔어, 흠.... 간단한 예를 들면 이런식이야


0 부터 10 까지의 합을 구해줘 . 라는 프로그램이 있다면 기계어 , 어셈블리어 , 고급 언어는 이런식으로 표현될수 있어 ( 물론 등차수열(?) 의 합으로 구할수 있지만 )


1. 기계어


55                  

8B EC               

81 EC D8 00 00 00   

53                  

56                  

57                  

8D BD 28 FF FF FF   

B9 36 00 00 00      

B8 CC CC CC CC      

F3 AB               

C7 45 F8 00 00 00 00

C7 45 EC 00 00 00 00

EB 09               

8B 45 EC            

83 C0 01            

89 45 EC            

83 7D EC 0A         

7F 0B               

8B 45 F8            

03 45 EC            

89 45 F8            

EB E6               

33 C0               

5F                  

5E                  

5B                  

8B E5               

5D                  

C3                  



2. 어셈리어

push        ebp  
mov         ebp,esp  
sub         esp,0D8h  
push        ebx  
push        esi  
push        edi  
lea         edi,[ebp-0D8h]  
mov         ecx,36h  
mov         eax,0CCCCCCCCh  
rep stos    dword ptr es:[edi]  
mov         dword ptr [n],0  
mov         dword ptr [i],0  
jmp         main+37h (0BF13B7h) 
mov         eax,dword ptr [i]  
add         eax,1  
mov         dword ptr [i],eax  
cmp         dword ptr [i],0Ah  
jg          main+48h (0BF13C8h) 
mov         eax,dword ptr [n]  
add         eax,dword ptr [i]  
mov         dword ptr [n],eax  
jmp         main+2Eh (0BF13AEh) 
xor         eax,eax  
pop         edi  
pop         esi  
pop         ebx  
mov         esp,ebp  
pop         ebp  
ret  


3. 고급언어 ( C++ )

int main()
{
int n = 0;
for ( int i = 0 ; i <= 10 ; ++i ) 
{
n+= i;
}
return 0;
}

어때? 고급언어는 그나마, 괴기 하게 생긴 영어가 있긴 하지만, 읽기에는 그마나 무난하지 ? 기계어와 어셈블리어 보다 ..?


어셈블리언어와 고급언어는 0 과 1의 집합이 아니고 우리 인간이 이해하는 어떠한 의미론을 지니고 있자나, 구래서 이것을 기계어로 번역하는 과정이 필요해. 


이 과정은 여러가지 단어로 표현되는데 "컴파일 , 인터프린트 , 어셈블 " 공통적인 특징은 인간이 이해가능한 문장을 컴퓨터가 이해할수 있는 구조로 


한발자국 다가간다 이지 ! 이와 같이 프로그래밍이란것은 컴퓨터에게 명령을 내기리 위해서  0 과 1을 어떠한 도구 ( 기계어 , 어셈블리어 , 다른 언어들 ) 를 통해서 만


드는 과정을 프로그래밍이라고 하며 오만가지의 프로그래밍 언어가 존재하구 있어.


대표적인 프로그래밍 언어로는 assembly , C , C++ ,  C# , JAVA , Objective C 등 엄청나게 많지만, 현대적인 프로그래밍언어 들의 문장구조는 대표적 하나의 언어


로 부터 파생된 형태이므로 하나의 언어를 빠삭하게 공부하게 되면 다른 언어들을 쉽게 이해할수 있어 


지금 거론된 언어로 따지면 C언어를 열심히 공부하면 C++은 비교적 쉽게 ( 하지만 엄청나게 어러운 언어 ) 이해가능하고 C++을 열심히 공부하면 JAVA 와 C# 은


비교적 쉽게 이해할수 있어. ( 이런식이야 ㅋ)  


여담이지만 아이폰 개발 언어는 Objective C언어인데, C언어로부터 파생된 언어이고 , 안드로이드는 대표적으로 JAVA 하고 C언어를 쓰고 있지


C언어가 현대 세상에서 끼친 영향은 스마트폰 저리가라 인데..말야 슬픈 진실은 잡스가 죽을때. 영화 , 뉴스 , 책 등에서 그를 엄청나게 추모했어, 하지만 C언어를 만든


사람( 데니스 리치 http://ko.wikipedia.org/wiki/%EB%8D%B0%EB%8B%88%EC%8A%A4_%EB%A6%AC%EC%B9%98 )이 죽었을때는 별다른 반응이 없더라구, 


각설하구 프로그래밍은 어려운 분야야 하지만, 생각하는 힘을 얻고자 한다면 프로그래밍은 너에게 날개를 달아 줄꺼야 


말하고 싶은건 많지만 오늘은 여기 까지 피스 ~ !


마지막으로 한국 개발자들 화이팅 ㅋㅋㅋ



22개의 댓글

2013.10.27
잊고있었는데, 어렸을때 꿈이 프로그래머였어.
아무래도 다시 시작해야겠다
0
2013.10.27
프로그래밍은 외울게 많아서그렇지 기본적으로 알고리즘짜는 능력만 된다면 별로 어렵지는않더라
물론 알고리즘짜는능력이란게 본인의 논리나 지적수준에 의존하는거라 개인차가 천차만별인거같음.
0
2013.10.28
@7NYR7
외우는거라면 어떤걸 말하는거야?
플밍하는데 있어서 외워야되는게 있는지는 잘 모르겠는데??????
0
2013.10.28
@준가르
명령어 다 알아야되는데 그걸 안외우고한다니 그럼 뭐 메뉴얼보고할꺼야?
%@include 에서 @만빠져도 제대로 동작이안되서 세미클론하나하나 완벽하게 작성되어야하는걸..
void while int addbatch string excelubatch 등등.. 명령어만 백개는넘어갈텐데?
아는성님이 일명 화이트해커라고 보안쪽에서 일하시는데 기본적으로 어셈블리어부터 Java명령어까지 앵간한건 다 외워둬야한댔음
0
2013.10.29
@7NYR7
몇가지 이야기 해볼께...
jsp:include 하고 %@include 의 차이는 정확히 구분 할 정도라면
명령어를 외운 단계는 이미 지난 이야기지
사실 해더문 같은경운 대부분 라이브러리에서 뽑아쓰기때문에 굳이 뭐..

그리고 void, int, string 등등등 은 그저 변수 타입선언문인데 외울 필요가 없지
한국어 하려고 한국말을 외울 필요는 없잖아
C언어를 하기 위해서 C언어 명령어를 다 외워야 된다는 논리면
한국어를 하기 위해선 한국어의 모든 단어나 숙어
그리고 통용되는 숙어 문법을 다 외워야 된다는 소리와 마찬가지지

마지막으로 화이트해커...
hacker 면 hacker 이고 cracker 면 cracker 이지 참....
굳이 있는 단어를 새롭게 만들어서
화이트 해커 라는 둥 블랙 해커라는 둥
솔직히 왜 그렇게 나누는지도 모르겠고
외국 계열사들하고 이야기할때 후배 하나가 저 소리 했다가 개쪽 당했지...
화이트 해커는 뭐냐고.. ㅋㅋㅋ
0
2013.10.29
@7NYR7
글 쓰고 나서 본거지만..
excelubatch << 이건 뭐야???
batch 라면 일괄처리문같은데..
혹시 executeBatch 를 잘못 적은거야???
0
2013.10.27
이거 영상봤는대 지젼필요하긴함 근대 우리나라 대우가...
0
2013.10.27
나 컴공 대학생인데

선배들 말로는 프로그래머 수명이 길어야 40대 중반이랜다

40대 중반이면 아새끼들 한창 질풍노도의 시기일 텐데 - -

심각히 고민중
0
2013.10.28
@NiDiTi
아니다.
현업 선배분들. 아버지뻘 되시는 분들은 우리나라의 IT분야에 첫걸음 하신분들이다.
거기서 살아남으신 분들이고 IT가 급성장하면서
수요가 많아져서 공급도 많아 졌지. 과잉 공급으로 인하여 밥벌이가 어려워 졌어.
이놈 별로 맘에 안들면 다른사람 썼으면 되니까.
아직도 좋다곤 못하지만.특히 대기업 하청 SE 업체들... 구인구직 가보면 탄력근무 가 조건붙은곳이 많다.
예전에 비해선 많이 좋아졌다.

외국기업의 좋은 사례들로 인하여 우리나라 기업들도 많이 변화하고있지.
너가 능력만 된다면 40대 중반 이상도 간다.
30대 중후반부터 코딩에서는 손을 뗀다.
관리직을 하고 부하직원 팀들을 운용하며
프로젝트를 관리하고 설계 / 클라이언트를 관리하는 직책으로 넘어가고
그 이후에는 임직원 / 부장 / 차장 등으로 승급하게 되고
코딩 쪽 뿐만아니라 다른 부서로도 옮겨질수도 있다.

코딩은 단순 코딩하는 직무만 있는것도 아니며
수십 수백까지의 직무가 있다.
선배중에는 방송국에서 방송시스템 개발 / SBS, MBC pooq 개발하신분도 계시고
은행쪽에 계신분도 계시고. IDC도있고..
품질관리? 개발자가 개발한걸 역공학이라하지? 역으로 분석해서 취약점 찾아주는것들..
고런거 하시는 분도 계시고 KISA인터넷진흥원이나 네퉉쪽 서버쪽
으로 카테고리 안에도 카테고리가 있고 이런식으로 직무가 너무 많아서
그중에서도 적성에 맞는걸 찾는다면 승승장구 할 수 있다.
0
2013.10.28
@NiDiTi
좋다 아니다 라고 말할문제가 아니라
자기가 그만큼 역량을 키워가는데 있어서 다르다고 생각한다

내 학교 선배이야기를 하자면
나하고 10년이 넘게 차이나는 선배 한명이 홈커밍데이때 와서 이런 말을 해준적이 있다

"프로그래머는 코더로 시작해서 아키텍터를 삶을 살다가 디자이너로써의 인생을 만들다 디렉터가 된다"
(새내기때 들었던거니 거의 10년도 더 됬군...)

그리고 내가 격어봤던 플머라는 삶은...
사실 겉으로 보여지는 것처럼 매일같이 플밍만 하고 에러코드만 잡는 그런것이 아닌
클라이언트랑 죽어라 이야기하고 이야기 하고 또 이야기해서 그 사람이 원하는 프로그램을 만드는 사람이더라
프로젝트 하나를 맡게되면 코딩시간은 사실 개발시간의 20~30%정도 차지하고
나머지는 그 클라이언트랑 이야기하여서 프로그램을 보다 편리하게 만드는데 더 시간을 쏫는다

내 나이가 30대가 넘지 않고 40대는 아직도 멀리 바라보는 위치인지라
그 나이대의 플머들의 고통은 정확히 모르겠다만
같이 일했던 동료들이나 선배들 이야기를 들어보면
다들 한결같이 이야기 해주더라

"플밍하는데 J2EE 나 C++ 레퍼런스 메뉴얼 따위 암기하는거? 외우면 좋기야 하지
하지만 그딴거에 시간 쓰지말고 차라리 사람을 만나!
만나서 이야기 해보고 그사람 생각을 파악하고 니 사람으로 만드는게 중요해"

퍽퍽퍽퍽 << 이 개드립퍼가 말한것도 맞는거지만
어짜피 사람이 사람한테 해주는 일이야
플밍 능력은 어디가나 거기서 거기이니까
롱런을 하고 싶다면 저런 것을 키우는 것이 더 이득일 수 있어
어짜피 디자이너나 디렉터가 된다면
저런게 더 중요할테니까
0
2013.10.27
아 난 대학교 갈 돈으로 벤처 기업 세워서 롤처럼 떠가지고 돈 벌고 싶다
0
2013.10.27
데니스 리치 옹 돌아가셨다는걸 이제 알았네......ㅠㅠ
0
2013.10.27
첫부분은 원본영상으로 하지...
www.youtube.com/watch?feature=youtube_gdata_player&v=tSmPdqmpMmE&desktop_uri=%2Fwatch%3Fv%3DtSmPdqmpMmE%26feature%3Dyoutube_gdata_player
0
2013.10.28
다른 전공보다는 프로그래밍이 재미나긴 하징
0
잘쓴다 ㅊㅊ
질문 하나 할게
맘아이나 아이사랑같은 프로그램이 시스템타임을 이용해서 사용시간을 체크한다고 하던데 그러면 이런 프로그램쪽에만 인터넷접근을 허용하지 않게 하는 프로그램도 이론상으로는 만들 수 있을려나?

인터넷에 연결이 안되있으면 pc타임으로 체크를 해서 시간조정도 가능하다고 들은거 같거든
0
2013.10.29
@공대생이된문과생
이론상으로만 말한다면 가능하긴 한데..
조건이 3가지정도 있지

1. 인터넷 연결이 안되있어야한다.
(그런데 굳이 인터넷 안하는데 필요할까??)
2. 프로그램 자체에서 타이머가 없어야 된다.
(참.. 뭐같은 경우지.. 프로그램 실행된 순간 카운터를 세고 앉아 있으니.. 메모리를 쳐묵쳐묵 할수밖에)
3. Time input을 리얼타입이 아닌 after check 방식으로 되어있지 않아야 한다.
(에랏.. 안해 안해.. after check 이 뭔지 간단히 설명하면 read after write check 방식으로 읽어드린 뒤 쓴게 맞는지 확인 하는 방식이야)

이 3가지 조건이 아니라면
거짓정보를 주는 방식으로 가능은 하지
다만... 그 파싱 위치를 알아야한다는 단점이 있지만~
0
@준가르
수능 끝나면 여기저기 알아봐서 되면 한번 도전해 봐야겠네 ㅋ
친구가 자꾸 자기 맘아이 시간 걸려서 게임 못한다고 컴공간놈 실력 발휘해라고 하는데
내가 뭘 할 줄 아는게 있어야지 ㅋㅋ
0
2013.10.30
@공대생이된문과생
그냥 쳐 하지 말라고 하지 왜~
그딴거 해주면 나중에 더 골치아퍼~
그냥 그럴땐 난 모름쇠~ 넌 석쇠~ 라고 하면서
버리는게 나~
뭐 나오는것도 아니고 귀찮게..
0
@준가르
걍 수능 끝나면 할거 더럽게 없데서 학교에 노트북 들고다니면서
몇번 만지작 거리기나 하게 ㅎ
내가 게임을 많이 하지도 않고 집에오면 정말 할게 없어
그래서 개드립을 하지..
0
2013.10.30
댓글보니 멘붕할듯.
나도 프로그래밍 좀 배웠다고 생각했는데, 댓글의 말을 거의 못알아먹겠네 슈발;;
0
2013.10.30
나 이번에 컴공 지웠는데
어디라도 한군데 붙었으면 좋겠다
0
2013.11.29
IT쪽은 원래 급여가 센 대신에 직업 싸이클링이 짧다 (어찌보면 야금야금 오랜시간동안 버는것보단 좋은거)

그래서 중후년엔 대부분이 학원이나 대학에서 교수,강사하고 프리랜서로 뛰지
0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
563 [과학] 경계선 지능이 700만 있다는 기사들에 대해 34 LinkedList 12 21 일 전
562 [과학] 번역)새들은 왜 알을 많이 낳는가? - 후투티의 형제살해 습성... 7 리보솜 3 2024.03.23
561 [과학] 학계와 AI, 그리고 Bitter Lesson (쓰라린 교훈) 26 elomn 35 2024.02.17
560 [과학] 지구의 속삭임, 골든 레코드의 우주 9 Archaea 10 2024.02.16
559 [과학] 잔혹한 과학실험 이야기 <1> 절망의 구덩이 19 개드립하면안됨 37 2024.02.15
558 [과학] 스트레스를 받으면 술이 땡기는 이유 12 동식 16 2024.02.10
557 [과학] 지능은 모계유전이 아니다. 40 울릉특별자치도 35 2024.01.26
556 [과학] 진화를 생각할 때 고려할 것들 23 날씨가나쁘잖아 12 2024.01.17
555 [과학] 학문적(과학적) 접근과 유사 진화심리"학" 26 날씨가나쁘잖아 19 2024.01.15
554 [과학] 호모 사피엔스의 야릇한 은폐된 배란에 대한 남녀 학자의 다... 14 개드립하면안됨 15 2023.12.29
553 [과학] 김영하의 작별인사를 읽고 느낀 점 (스포있음) 21 장문주의 2 2023.11.28
552 [과학] 제4회 포스텍 SF 어워드 공모전 ( SF 단편소설 / SF 미니픽션 ) 2 따스땅 1 2023.11.25
551 [과학] 펌) CRISPR 유전자 가위 치료제 "최초" 승인 12 리보솜 7 2023.11.25
550 [과학] 러시아는 기술산업을 어떻게 파괴시켰는가(펌) 9 세기노비는역사비... 15 2023.11.18
549 [과학] 고양이에 의한 섬생태계 교란과 생물 종의 절멸 (펌) 2 힘들힘들고 6 2023.11.16
548 [과학] 번역) 알츠하이머병 유전자는 어떻게 살아남았는가? 12 리보솜 10 2023.11.15
547 [과학] 『우영우』의 자폐 스펙트럼 장애 개념이 왜곡인 이유 (펌) 47 힘들힘들고 10 2023.11.12
546 [과학] 흑수저 문과충 출신 구글 취직하는 파이썬 특강 -1 14 지방흡입기 11 2023.09.27
545 [과학] 국가별 당뇨 유병율 이거 뭐가 바뀐건지 아는사람? 8 LAMBDA 1 2023.09.27
544 [과학] 물샤워 ㅇㅈㄹ 하는 놈들 봐라 171 철동이 48 2023.09.23