어떤 프로그래밍 언어를 공부해야 할까요?
간혹 페이스북에 보면 어떤 언어를 공부할까요?하는 질문을 많이 보게 되는데, 그 것에 대한 제 생각을 적어 볼까합니다.
질문은 보통 이런 패턴입니다.
저는 지금 C언어를 공부하고 있는데, 다른 언어(Java나 javascript)가 더 도움이 될 것 같은데, 다른 언어를 배워 볼까요?
저는 지금 Java를 공부하고 있는데, python이 더 좋다고 하는데 그걸 배워볼까요?
저는 지금 OO언어를 공부하고 있는데, XX언어를 배워볼까하는데, 어떻게 생각하시나요?
어떤 분들은 현재 YYY 언어가 hot하기 때문에 현재 공부하시는 OO 언어 말고 YYY을 공부하시는게 앞으로 큰 도움이 될 겁니다.라고 말씀하시는 분들도 계십니다.
제 생각에는 하던 공부를 더 하는게 좋은 것 같아요. 어떠한 하나의 프로그래밍 언어라도 내것으로 만드셨다면 다른 언어를 사용해야 할 필요가 있는 경우에 쉽게 익히 실 수 있습니다.
저는 대학생 때 어셈블리 언어와 C언어를 배웠습니다.
첫 회사에서는 C언어/C++을 했었어요. 그 이후에는 Java, javascript, RDBMS, NoSQL, python, ruby를 하고 있습니다.
학교 다닐 때 주로 배우고 익혔던 언어가 C와 어셈블리였지만 다른 언어로 넘어가는데 큰 어려움이 없었습니다. 왜나면 저는 천재니까요는 아니고요. ㅎㅎㅎ
한 언어를 능숙하게 하시면 다른 언어를 활용하는데 큰 어려움이 없습니다.
프로그래밍 언어는 크게 봐서 딱 4가지 인 것 같아요.
asign - 할당
if - 조건
loop - 반복
call - 호출
이 외에 언어에 특화된 문법들이 있긴하지만 결국 중요한 건 언어는 크게 다르지 않다는 거죠.
그림을 그리는 것으로 비유를 할 수 있을 것 같아요.
그림을 연필로 그리느냐 포토샵으로 그리느냐의 차이인거죠.
저 처럼 그림의 '그'자도 모르는 사람에게는 둘 다 있으나 마나한 것 입니다. 하지만 그림에 재능이 있고 학습된 사람에게는 둘 다 훌륭한 도구가 될 수 있겠죠.
그림의 목적과 상황에 맞는 툴(연필/포토샵)을 선택할 뿐입니다.
간단한 스케치를 할 때는 연필로. 컴퓨터로 결과물이 필요 할 때는 포토샵으로 사용을 할 수 있겠죠. 또는 다른 이유가 있을 수도 있겠죠.
중요한 것은 연필이냐 포토샵이냐의 툴이 아니라 "그림"입니다.
프로그래밍 언어도 마찬가지입니다.
학습을 할 때는 원하는 결과물을 만들어 내기 위한 논리력이 중요한 것이지 어떤 툴을 사용하느냐가 중요한 것은 아닙니다.
언어는 결국 툴일 뿐이라고 말하면서 왜 공부하던 언어를 계속하라고 하느냐? 그 것은 학습의 깊이 때문입니다.
영어 공부를 하다말고 중국어가 뜰 것 같다면서 중국어 공부를 하다가 힌디어를 공부하다가 일본어를 공부하면 어찌 될까요?
4개의 외국어를 유창하게 잘하거나 제대로 하는 언어가 하나도 없을 겁니다. 후자로 수렴한다에 500원 걸겠습니다!
지금 이대로 공부하면 잘 될까?라고 고민이 되는 것은 어쩔 수 없을겁니다.
저 역시 그랬었으니까요.
반드시 기억하세요. 연필로 그리느냐 포토샵으로 그리느냐가 중요한 것이 아니라 "그림" 자체가 중요한 것 입니다.
결론.
언어의 종류는 우리가 생각하는 것 보다 더 다양하고 많습니다.
언어는 시대적 상황과 주변 환경에 의해 결정이 됩니다.
(그림 출처 : https://www.tiobe.com/tiobe-index/ )
지금은 Java 언어가 가장 많이 사용되네요.
하지만 3년 5년뒤에는 어떻게 될지 어느 누구도 장담 할 수 없습니다.
새로운 언어가 짜잔 나타나서 지구를 정복할지도 모르죠.
언어는 도구일 뿐입니다.
툴에 집착하는 것 보다는 논리적인 사고와, 데이터를 핸들링하고 좋은 구조를 고민하고
목적이 있을 때 해결 방법이 머리속으로 떠 오를 때까지 익혀야 합니다.
끝~~
잠깐!!
좀 더 나아가서 초심자의 프로그래밍 학습 방법 짚어보고 싶어요.
1단계는 언어 선정입니다.
초심자라면 쉽게 자료를 구할 수 있고, 구글링을 했을 때 쉽게 답을 찾을 수 있는 범용적인 언어를 선택하는 것이 좋습니다.
2단계는 기초 문법을 익히는 것입니다.
언어별로 asign, if, loop, call의 표현 방식이 다릅니다. 같은 것을 다르게 표현 하는 것이죠.
3단계는 연습입니다.
기초 문법을 익힐 때 책을 보거나 온라인 강의를 듣는 것만으로는 절대적으로 부족합니다.
태권도를 책을 통해서 온라인 강의를 통해서 배운다고 생각해보시면 됩니다.
어린 아이도 1달간 태권도 학원에 다니면 태권도 품세는 따라 할 수 있습니다. 그럼 그 어린 아이가 국가대표 태권도 선수랑 비등하게 대련할 수 있을까요?
어린 아이가 당연히 지겠죠. 왜 그럴까요? 당연히 신체적인 능력도 다르지만 수련의 시간과 깊이가 다르니까 당연한 결과입니다.
프로그래밍도 마찬가지에요.
책에 있는 연습문제를 따라해 보고. 이해하고, 책을 덮고 혼자서 짜 봐야 합니다.
진짜 진짜 마지막.!
로또에 당첨될 확률은 50%잖아요. 당첨 되거나 안되거나.
저는 당첨되지 않을 확률 100%입니다. 사질 않으니까요.
아무리 좋은 교제가 있어도 공부 안하면 끝이죠!
열심히 공부하세요!
저도 열심히 할께요!
'프로그래머로 살아남기' 카테고리의 다른 글
높은 금리의 은행 상품을 찾다. (12) | 2023.01.09 |
---|---|
일요일 저녁 커피숍에서... (0) | 2017.09.24 |
갈매기S (0) | 2016.10.06 |
임금 상습 체불 사업주 공개 (0) | 2013.09.06 |
[펌]"쭉정이 개발자들은 일찌감치 다른 길로" (3) | 2013.07.22 |
댓글