• 회원
  • 동물
  • 게임
  • 사회
  • 자동차
  • 유머
  • 컴퓨터
  • 정보
  • 영화
  • 시사
  • 연예
   
[PC]

어떤 프로그래밍 언어를 배워야 할까

글쓴이 : 반일애국 날짜 : 2021-01-24 (일) 16:42 조회 : 6703 추천 : 37  



1. 코딩을 처음 접하는 분은 코딩이 무엇인지 물어봅니다.

코딩은 소프트웨어(같은 표현으로 Program, Application)를 만드는 것을 말합니다. 윈도우, 안드로이드, 카카오톡, 게임, 파워포인트 모두 소프트웨어 입니다.

좀 더 정확히 이야기 하자면 윈도우, 안드로이드는 해당 전자기기 내부를 통합(하드웨어, 소프트웨어 모두) 관리하는    운영체제 소프트웨어   (Operating System,    OS   )이며, 카카오톡, 게임, 파워포인트는 응용소프트웨어(   App   lication) 라고 분류합니다.

운영체제 소프트웨어는 각종 앱도 관리해야 하며, 모니터, 메모리, 하드디스크 등 하드웨어  기기도 모두 관리해야 하는 막중한 역활을 담당하고 있습니다.

따라서, 운영체제 소프트웨어(이하 OS)를 만드는 것은 응용소프트웨어(이하 앱)을 만드는 것에 비해 상당한 시간과 기술이 필요합니다.

우리가 알고있는 OS는 윈도우즈, iOS, Android, Unix, Linux 등 몇 가지 없습니다. 그만큼 상용화하기 어려운 기술이며, 표준화(대중화) 시키기도 쉽지 않습니다.



일반적으로 우리가 말하는 코딩은 앱(카카오톡, 게임, 파워포인트 등)을 만드는 것을 의미합니다. 좀 더 자세히 표현하면    어떤 OS에 설치되어 동작하는 특정한 목적을 가진 소프트웨어를 만들는 것   이라고 설명드리고 싶습니다.


OS든 앱이든 그것을 만들기 위해서는 2진수 기반(전기의 있음 1, 없음 0, 즉 디지털)으로 동작하는    컴퓨터에 내가 원하는 목적에 맞게 동작하도록 명령   을 내려야 하는데요, 이런 명령어들의 조합을 0과 1로만 인간이 작성한다면 굉장히 복잡한 형태가 될 것입니다.

예를 들면 이런 형태의 명령이 될 것입니다.

01110010111111001101110111....  (난해합니다)

왜냐하면 컴퓨터는 정말 0과 1만 아는 바보이기 때문이죠. (빠르긴 합니다)

만드는 사람도 어렵고, 유지보수는 더욱 어렵고, 모두가 어렵습니다.

이런 기계어 기반으로 컴퓨터와 대화, 명령하는 것이 어렵기 때문에,    인간은 컴퓨터 기계어를 좀 더 인간의 언어 형태로 바꾸어야 할 필요성   을 느끼게 되었고 바로 프로그래밍 언어가 탄생하였습니다.

대표적으로    C(1972년), C++(1983년), Java(1995년), Python(1991년)    등이 있습니다.

C++는 C를 포함한 객체지향언어이기 때문에 만약 C계열 언어을 배운다면 C보다 C++을 배우는 것을 추천드리고 싶습니다.

이제 코딩이 무엇인지, 왜 프로그래밍 언어가 탄생되었는지 배경을 설명 드렸고, 본 주제인 어떤 프로그래밍 언어를 배워야 하는지 알아 보겠습니다.


2. 어떤 프로그래밍 언어를 배워야 하는가?

먼저 결론을 말씀드리면 정답은 없습니다.    무엇을 배워도 상관없습니다   . 그런데 한 언어를 잘하면 다른 언어는 금방 배울 수 있습니다.

다만 현재 가장 각광받는 소프트웨어 개발 방법론인    객체지향프로그래밍을 지원하는 언어를 선택   하는 것이 좋습니다.

C++, Java, Python 모두 객체지향언어입니다.

참고로 저는 C++을 먼저 공부한 후 Python, Java를 배웠습니다.

하지만,    프로그래밍 언어들의 장, 단점이 존재   하므로 이를 코드로 비교하며 설명드리고자 합니다.

저는 중 3때 아스키코드(미국정보교환표준부호)를 이용해 게임의 저장 데이터를 수정(치트)하는 것에 흥미를 느껴 컴퓨터에 관심을 갖기 시작하였으며 대학 컴퓨터 전공, 중견기업 연구소에서 근무하며 약 20년 정도 프로그래밍을 공부해 왔습니다.

하지만 아직도 모르는 것이 많아서 하루하루가 늘 흥미롭습니다.

너무 잡담이 길었습니다.

요즘 머신러닝 분야에서 독보적인 Python 언어의 코드를 한번 살펴볼까요.

참고로 프로그래밍 언어의 코드는 위에서 아래로 순차적으로 수행됩니다

a = 5
b = 3
print(a+b)

결과는 8   을 출력합니다.

a라는 저장공간을 만들고 5를 넣고, b에는 3을 넣어서 a+b를 출력(print 명령)하는 코드입니다.

참고로 대부분의 프로그래밍 언어에서 '   =' 기호(수학의 같다가 아닙니다)는 오른쪽(우변)의 내용을 왼쪽(좌변)으로 대입하라는 의미   입니다.

다음은 같은 내용의 C++코드 입니다.

int   a = 5;
int   b = 3;
cout << a + b;

출력결과는 8   로 같습니다만, Python에 비해 조금 복잡해 보입니다.

C++에서는 a라는    공간(변수)에 값을 저장하기 위해 어떤값을 담을 공간인지 프로그래머가 직접 정해   주어야 합니다. (물론 C++에도 대입 시 타입이 결정되는 auto키워드가 존재합니다)

int 의 의미는 영어의 integer, 즉 정수이므로 정수 5, 3을 정수형 값을 담을 수 있는 공간에(변수) 저장하라는 의미입니다. 그리고 a+b를 출력(cout) 하라는 의미이죠.

간단한 코드이지만, 여기서도 두 언어의 철학이 느껴집니다.

파이썬은 인생은 짧으므로 간단, 명료를 추구한다면 , C++은 명확, 엄격하고, 좀 더 많은 책임을 프로그래머에게 부여합니다.

한마디로,    파이썬은 배우기 쉽지만 실행 속도는 느립   니다. (C++ 대비)
C++은 배우기 어렵지만 빠릅   니다. (Python 대비)

또, 두 언어는 인터프리터, 컴파일 방식의 차이점도 존재하나 이에 대한 설명은 여기서 생략하겠습니다.

위 코드는 그것이 파이썬으로 만들어 졌든, C++이든 상관없이    결국 010101010.. 형태의 기계어로 바뀌어 실행   됩니다. 하지만 프로그래밍 언어는 위의 예제 처럼 기계어를 인간이 이해하기 쉬운 형태의 명령어로 번역해 사용하고 있습니다. (   인간과 기계를 중간에서 통역   한다고 이해하시면 좋을 것 같습니다)

저는 개인적으로 두 언어를 모두 배우는 것을 추천드리고 싶습니다.

하지만    어느 정도 한 프로그래밍언어에 익숙해 지기 전까지는 하나만 공부   하세요.

익숙해지는 시기는 스스로 공부하다보면 자연스럽게 느끼게 됩니다.

나의 공부에 대한 성향이 집요하고, 뿌리부터 그 배경을 이해해 나가며 천천히 깊이 있게 지식을 완성시켜가는 스타일이라면    C++을 공부하고 Python을 공부   하세요.

나의 공부에 대한 성향이 흥미를 느끼는 것을 위주로 공부하며, 빠르게 지식을 습득하고 적용해보는 스타일이라면    Python을 공부하고 C++   을 공부하세요.


3. 코딩을 배워서 도움이 될까

이 부분은 여러분이 판단해야 할 문제입니다.

코딩이 아니라도 세상은 넓고 할 일은 많습니다.

코딩을 배우는 것은 운동을 하고, 악기를 연주하는 것과 다르지 않다고 생각합니다. 야구를 보는 것도 즐겁고, 음악을 듣는 것도 즐겁지만 내가 직접하면 더 재미있습니다.

로봇과 인공지능으로 대표되는 4차 산업혁명시대라고 다들 이야기 합니다.

게임을 즐기고, 앱 사용법을 배우는것도 좋지만 거창하진 않더라도 직접 한번 만들어보면 더 즐겁습니다.

감사합니다.

C++로 만든 코드(팩맨, 테트리스,  스네이크게임 등 )들을 많이 공개하고 있으니, 관심있으신 분은 자유롭게 다운로드 받아 공부하시기 바랍니다.


친일파를 척살하자
다카끼마사오:
-민족엔 반역,
-사상은 남로당,
-민주주의엔 쿠테타.

스콧 2021-01-24 (일) 20:40
30대에 늦게나마 코딩에 관심을 가지고 정보를 찾아보는 입장에서 도움되는 글 올려주셔서 감사합니다 ^^
김삼식기 2021-01-24 (일) 21:41
경험에서 나온 실질적인 글 잘 읽었습니다. 그런데....객체 지향 언어라는 말이 잘 이해가 안되는데 쉽게 설명해주시면 안될까요?
     
       
pnca 2021-01-28 (목) 02:24
차아칸앙마 2021-01-25 (월) 01:45
컴파일러 언어나 인터프리터 언어로 돈 벌기에는  오래 걸립니다.
아직 언어나 개발로 직업을 본격적으로 하려고 하면 짦은 기간은 약합니다.

C, C++, 파이선 다 좋습니다만,
그냥 재미삼아 배우는 코딩은 HTML5, CSS, Javascript 배우는 것이 좋습니다.
내부 로직은 뒤에 백엔드(DB+storage)와 프론트엔드가 다 처리하는데, 실제 디자인은 마크업언어가 처리하는 경우가 많습니다.
써니민 2021-01-25 (월) 12:13
생각대로 결과가 안나오면
어디가, 어떻게 잘못됬는지 찾는게 일
되면,
왜 되는지 찾는게 일
나중에 수정할때
어딘지 찾는게 일

운전하면서도 "왜??" 를 항상 되뇌이는게 일... ㅜ.ㅜ

p.s "어떤 놈이 이따우로 해놨어?" 하다보면 예전에 내가 만든거....
너굴너굴너구… 2021-01-25 (월) 21:49
30대에 코로나 때 통수치는 사장이 있는 직장 때려쳤습니다. 그 뒤 국비학원에서 마스크끼고 여름에 에어컨 고장난 찜통학원에서 코딩 공부했습니다.

코로나 때메 몇번이나 휴강했다가 다시하길 반복했는데, 어렵다고 조금씩 중도포기자도 나오고 적성에 안맞아서 그만두기도 하니 결국 반도 안남았었습니다.

끝까지 남았더니
C/C++, Java, Python을 비롯해
HTML/CSS, Javascript, jsp도 배웠습니다.

빅데이터와 AI도 좀 배우고
100개 넘는 곳에 원서를 썼더니 결국 취직했네요.

아직도 어렵지만 배우길 잘했다는 생각이 듭니다 ㅎ
RemyMartin 2021-01-26 (화) 05:25
잉..한 30년 된글인가요 ㄷㄷ
다른걸 떠나 범용성이나 돈을 벌기위한 수단으로 배우는거라면
JAVA를 추천할줄 알았는데
사마타 2021-01-26 (화) 07:52
옛날 사람 옛날 글임
요즘 트랜드를 반영하자면 JS 빼곤 말 하지 못할텐데
국내 SI 하려면 자바도 필요하고

무슨 C++ 로 시작하라니 ㅋ
아니 2021-01-26 (화) 08:22
제가 알아본 바는
어플개발이나 개발자 같은거 웹이나 등등은 GO
데이터 분석은 python
둘이돌돌 2021-01-26 (화) 09:55
아무 언어나 배워도 된다가 틀린건 아니지만 단순 코더를 벗어나려면 정답은 아니라고 생각합니다.

과거 언어에서 최근 유행하는 언어로 바뀌는데 이유가 있습니다.  예를들어서 객체지향 언어라고 하면, 객체지향 언어의 장점 때문에 그렇게 바뀐겁니다. 그 장점을 이해하고 그 장점에 따라 코딩하는 습관을 잘 들였다면, 과거의 언어는 공부 안해도 무관합니다. 하지만 현실은 기껏 최신 언어를 쓰면서 과거의 방식데로 코딩하는 경우가 허다 합니다.
물론 동작은 하지만, 성능이나 유지보수 및 협업에 어려움을 겪을 수 있습니다. 자신이 개발하는 곳에 필요한 언어에 집중해서 공부하면 되고, 그러면 다른 언어도 쉽게 배울 수 있는건 맞지만, 그래도 언어 변천한 이유와 개념 정도는 개략적으로라도 이해하는게 더 더움될거라 봅니다.
하래 2021-01-26 (화) 20:50
개인적으로 다른일 추천 돈이 안됨... 하....
꼬마098 2021-01-27 (수) 11:00
C++이 입문자용일까요? 배우는 목적에 따라 입문언어는 천차만별로 달라질 수 있고 프로그래밍 단순입문자라면 파이썬이 맞겠죠.
공공칠빵빵빵… 2021-01-27 (수) 15:58
대학에서는 C++ 초보 수준으로라도 배우고
나머지 전공에 맞게 필요한 언어 배우는게 좋은듯...
놀아요2 2021-01-27 (수) 21:24
개발경력 20년차입장에서 생각해 보면
치매는 안걸리게 해주는 직업은 맞는거 같네요
고등어삼치 2021-01-28 (목) 00:19
수학을 잘해야 코딩 잘하지 똥멍충이는 배워도 한계. 그냥 어디누가만든거 복사 붙이기수준
호랭샤 2021-01-28 (목) 00:41
저라면 java 추천
초월함수 2021-01-28 (목) 14:22
이쪽업계 10년차인데..
자바는 절대 비추하구요..
C나 C뿔로 기본 개념 익히고
간단한 코딩하면서 파이썬 배워 써먹으면 됩니다

자바 개발자 차고 넘치는게 자바 코더들입니다
     
       
Alloien 2021-01-28 (목) 17:24
대신 자바 안하면 선택의 폭 확 줌
무난하게 가려면 자바만한게 없음

네이버 카카오 매출 합쳐도 SI 업계 탑인 삼성 SDS 매출 밑이고
SK C&C 매출이랑 카카오랑 비슷함
이 다음에 LG C&S 현대오토에버 롯데정보 ...
엥간한 대기업은 다 자회사나 계열사로 SI 회사 한 개 정도는 끼고 있음

지금 구직사이트가서 검색만해도 일자리 수는 배로 차이남

내가 진짜 게임이건 통계건 한 분야만 팔 생각이 아니라면
가장 무난한건 자바임...
     
       
SeriesN9 2021-01-30 (토) 15:24
저랑 거의 비슷한 년차이신데 아직도 이런 말 하시는 분 많네요
네카라중에 재직중인데 배움에 언어는 별로 중요하지않은 거 같아요.
저는 자바개발자지만 "무조건 자바가 최고야" 이게 아니고 목적에 맞는 언어선택이 우선이라고 생각합니다.
1차적으로 pseudocode와 알고리듬 개념을 배우고나서,
언어는 자신이 하고싶은 목적에 맞는 선택을 하고, 그 언어에 대한 특성도 공부를 해야겠죠.
게임/영상처리/음향 관련은 C계열, 데이터분석처리는 파이썬 등등 웹서비스는 무수히 많고

하지만 업계에서는 대규모용량 취급하는 곳은 대다수 JVM계열 언어 사용합니다.
소위 잘나간다는 4-5년전 스타트업들 중에는 빠른 생산성을 위해 루비/파이썬/노드로 백엔드로 작업했다가 결국엔 JVM계열로 갈아타더군요.
개인적으로 느끼기엔 대규모용량에 처리능력을 가진 개발자들 중 자바인력이 많기 때문에 그렇게 많이 바뀌고 있는 추세구요.
헬메스 2021-01-28 (목) 14:41
뭐든 하나를 제대로 하면 나머지는 백배 쉬워지니까, 가장 자료 구하기 쉬운 거, 쉽게 배울 수 있는 걸 하는 게 최곱니다.

시장도 그런 사람을 원해서 많이 유행하는 거니까...

다른 언어라고 해봤자, 프로그래밍의 본질은 똑같습니다. 구현 방식이 좀 다른 거야 거의 문제도 아니구요.
mr2sw 2021-01-28 (목) 21:24
돈벌려면 어셈블리 배워야함. 시스템 엔지니어 필수조건.
어셈블리가 언어라기보다는 디바이스에 직접 억세스하는 함수를 스스로 만들수있어야함.
C언어등과 같이 다른이가 제공하는 API에 의존하면 할수록 돈벌이가 시원치 않아짐.
그러다 보니 자바, 파이썬 같은거 하게되면 입에 풀칠정도하게됨
     
       
Alloien 2021-01-28 (목) 22:27
어셈도 그닥... 이 쪽은 너무 ㄱㅠ모가 작아서 대기업 or 중소라
어셈은 아님 오히려 포장잘하는게 나음
아님 진짜 괴물급이라 어셈으로 롤코타만든 수준이면 어셈추천함

그리고 그 입에 풀칠이라는 자바 파이썬도 it 업종 대기업이면 대우가 다름
네카라쿠 정도만해도 신입이 5년차 이상 연봉으로 시작함 5000 내외임
근데 어셈 중에 그정도 시작하는데? 거의 없을거임...

지금처럼 트렌드가 확확 바뀌는 시대에 어셈블리를 한다?
뒤쳐질 확률 높음

대신 어셈블리를 제대로 이해한다? 그럼 끝
언어야 하다보면 상관없다지만 씹어먹을 수 있음
     
       
SeriesN9 2021-01-30 (토) 15:44
네카라는 올해부터 신입 계약연봉 5000으로 진행하기로 하고 인센까지 더하면 거의 6000이ㅣ고
배달의 민족은 이미 2년전부터 5000, 쿠팡은 작년 하반기 기준으로 6000으로 조정했는데
제조사 대기업아니고서야 그정도로 주나요?
켈퓌 2021-01-28 (목) 23:17
프로그래밍으로 입에 그럭저럭 풀칠한지 20년은 안되었고, 10년은 넘은 시점에서 느끼는 점..
1. 어떤 언어인지는 그닥 중요하지 않음.
중요한 건, 코딩을 했을때 실제 서버든 PC든 메모리 상으로는 어떻게 처리되는지 알고 있는게 중요함.
이게 중요한 이유가, 같은 코딩을 하더라도 이해도가 차이가 남.
이해도의 차이가 결국, 오류나 버그의 위험을 낮추고 더 안정적으로 개발을 할 수 있게 해서 품질이 좋아짐.
2. 훌륭한 분들이 만들어 놓은 정말 좋은 API들이 정말 많음. 활용할 줄 알아야 함.
C로 개발을 배워서.. C 특성이 첨에 그럼.
없어? 뭐.. 그럼 내가 만들지 뭐...
근데, 그게 아님.
찾아보면, 훌륭한 사람이 만들어 놓은 API가 훨씬 좋고, 잘되어 있음.
내가 똑똑하다고 내가 만들면 잘된다고 생각하는건 멍청한거.
3. 내가 뭘 모르는지 알고 있어야 함.
뭘 모르는지 알면, 구글링해서 찾아서 해결할 수 있지만, 뭘 모르는지 모르면 찾아볼 수도 없음.
질문의 방식이 틀려짐.

나름, C언어로 입문해서 시스템, 네퉉플그램에 이런 저런 암호화 관련 업무도 했었고,
MDB니 KMS니 DB는 엥간한건 다 써봤고 했는데... 다 고만고만함.

언어는 그냥 언어이고, 문제는 생산성과 안정성, 업무 이해와 요건 정리임.

나는 남들과 달리, 해커다. 내 재능은 어마무시하고 남들이 못하는걸 난 할 수 있다라고 착각은 금물.
내가 생각했던 거의 대부분은 이미 만들어져있고, 이미 있음.

컴퓨터가 미싱이다 생각하고, 옷 만듯이 플그램 짜는게 현실임.
     
       
SeriesN9 2021-01-30 (토) 15:07
이제 9년차 개발자인데 1..3 모두 항상 사수가 하시던 말씀이랑 비슷해서 많은 공감이되네요
rtf12 2021-01-30 (토) 01:54
개발자로 먹고 살거 아닌이상 재미로 공부하는거면 html, jsp, 파이썬이 무난하져

개발자로 먹고살꺼면 프로그래밍 언어를 뭘 하느냐가 중요한게 아니라 어느정도 수준까지 도달하느냐가 중요함.
어떤 언어로 개발하다가 다른 프로젝트에서 개발 언어가 달라지는것 때문에 개발을 못한다는건 말이 안되거든여..
물론 숙달도 차이때문에 초반에 조금 귀찮을 수 있으나, 그냥 금방 적응함니다.

개발언어 뿐아니라  mssql, oracle, mysql 같은 DB scipt도 마찬가지..
cro3mid3 2021-01-30 (토) 10:06
객체지향언어이기 때문에.  여기서부터 막힘 ㅋㅋ 이게 뭔소리야.
도쿄타워 2021-01-30 (토) 11:52
좋은 정보 감사합니다!
연료첨가제 2021-01-30 (토) 15:15
지금 자바 공부하는 지인동생녀석은 선택이 올바른걸까요?
     
       
SeriesN9 2021-01-30 (토) 15:37
무엇을 하고싶은지가 중요한거 아닐까요?
상황이 어떤지는 제가모르니 함부로 말하는 것같아서 먼저 양해드릴게요
제가 왜 이런얘기를하면, 각 분야마다 특성이란게 있어서
영상/음향 관련 처리는 C계열
웹서비스에 쓰는 언어는 너무많아요 간략하게 백엔드 기준으로만 C++ C# Java Scala Kotlin NodeJS Phyton Rupy Pearl 등등 이정도고
사실 내가 자바를 배웠어도 회사가 Phyton쓰면 Phyton을 해야합니다. PHP한다고하면 해야되고 이게 현실이에요.
그리고 한가지 팁드리자면 아직 학생이면 무조건 자소서하고 공채 코딩테스트 아니면 전환인턴 준비하는게 나아요.
떡빵s 2021-01-31 (일) 18:07
자바가 무난하고
트렌드는 파이썬이 좋아보입니다.

근데, 사실 무슨 언어를 배울지보다
뭘 하고 싶은지를 선택하는게 훨 좋음.

난 어플을 만들고 싶은데, 요즘 파이썬이 핫하다고 파이썬 열심히 배우면 효과가 적음.
위 처럼 C++추천 받았는데, 웹 페이지 만들고 싶다면 마찬가지로 효과가 적음.
또, 인공지능이 대세라고 하는데, 자바 배우고 있으면 역시 효과가 적음.

뭘 하고 싶은지부터 정하고 그와 관련된 무난한 언어 하나를 베이스로 배우는게 젤 좋음.

그리고 또... 회사업무는 별개일 확률이 높은게...
내가 A언어를 배웠어도 회사에서 B언어를 주로쓰면 어차피 B언어로 갈아타야됨.
그렇다고 A언어가 무용지물이 되는 경우는 드물지만, 굳이 본인이 배운 언어 한가지만 고집할 필욘 없습니다
   

정보게시판  주간추천순 | 월간추천순 | 월간조회순 | 월간댓글순 | 반기추천순
 
   
번호 제목 글쓴이 날짜 추천 조회
검색된 게시물이 없습니다.
검색은 2천건 단위로 끊어서 검색되오니
계속해서 검색을 원하시면 아래 다음검색 버튼을 눌러주세요.