'프로그래밍언어'에 해당되는 글 2건

  1. 2020.10.06 가장 기본이 되는 프로그래밍 언어
  2. 2020.10.05 코딩을 어떻게 배우나요?

안녕하세요 콩딱입니다.

오늘은 가장 기본이 되는 프로그래밍 언어라는 주제로 이야기를 나눠볼려고 합니다.

사실 정답은 없습니다.

 

여러분이 생각하는 가장 기본적인 프로그래밍 언어는 무엇이 있나요?

 

C언어, 자바, 파이썬, 자바스크립트, PHP, 펄, 루비, 스위프트, 코트린, 베이직, C++, C#등 우리는 무수히 많은 프로그래밍 언어와 만나고 있습니다.

과연 이중에 무엇을 가장 기본적으로 배우고 읽히는것이 좋을까요? 한번쯤 고민해 볼만한 주제인것 같습니다.

 

물론 언어에 따라서 직업의 선택에도 틀이 정해지는 경향이 있습니다. JavaScript는 요즘 서버사이드 프론트엔드-백엔드에서 사용하게 됩니다, Java는 전통적으로 서버 백엔드쪽에서 많이 사용하는 언어고, C, C++등은 Low Level프로그래밍에서 기본이 되는 언어입니다. 간단한 프로그램을 작성할때는 파이썬도 많이 사용하며, 스위프트는 iOS를 위한 언어죠.

이렇게 다양한 틀이있음에도 현업 프로그래머들이 추천하는 언어는 매우 심플합니다.

저는 사람을 2분류로 나누어서 언어를 추천해 볼려고 합니다. 첫번째 분류는 프로그래밍은 취미로 할려는 사람, 두번쨰는 프로그래밍을 업으로 삶을려는 사람입니다.

 

 

프로그래밍을 취미로 시작하는 사람


위에 그림에서도 확인하셨듯이 바로 파이썬이라는 언어를 취미로 하려는 분들께 추천드립니다. 물론 업으로 삼으시려는 분께도 처음 시작으로 나쁜언어는 아닙니다. 모든 언어에 나쁜언어란 없고, 단지 그들만의 철학이 있을뿐입니다.

 

왜? 파이썬을 추천하는가

첫째로 파이썬은 상대적으로 다른언어에 비해서 익히기 쉬운 언어입니다.

익히기 쉽다는 말은 간단한 언어라는 의미인 동시에 이것으로 무언가를 만들어 보기도 매우 편리하다는 의미입니다. 스크립트 언어인가 컴파일 언어인가 하는 특성을 제외하고 순수하게 접하기 쉽기때문입니다.

취미로 즐기시는 분들께 복잡한 구조등에 대해서 이해하고 프로그래밍은 하라고 하는것은 취미로 헬스하는데 보디빌더 되라는것과 동일한 것 이라고 생각됩니다.

 

그리고 많은 커뮤니티가 존재하며 손쉽게 자료들을 찾아볼수 있다는것도 그만의 큰 장점입니다.

저를 포함한 대다수의 프로그래머들도 간단하게 테스트를 하거나 무언가를 만드는 상황에서 파이썬을 주로 이용합니다.

(하지만 저는 파이썬을 잘 몰라서 매번 인터넷은 찾아서 코드를 작성합니다... 요즘은 조금 익숙해 지고 있지만)

 

파이썬은 또한 유튜브 강의도 많이 있습니다. 거의 대다수의 언어가 많이있겠지만, 6시간 하루면 익힐수 있다는 이야기도 많이있죠. 취미로 시작하기에 가볍고 무리없이 시작하기 너무나도 좋은 언어같습니다.

 

 

 

프로그래밍을 직업으로 할 사람


이번에도 그림에서 찾낼수 있습니다. 바로 C언어 입니다.

사실 언어에는 크게 2가지 틀이... 요즘은 3가지 틀이라고 해야 할까요. 객체지향 프로그래밍 언어, 절차지향 프로그래밍 언어, 함수지향 프로그래밍 언어(?) 이렇게 있습니다. 함수형 언어는 제외하고 이야기 하겠습니다. 제가 잘 모르는 부분입니다.

 

보통은 2가지로 많이 나뉘게 되는데 절차지향 프로그래밍 언어의 대표주자가 바로 C언어 입니다. 사실 직업으로 삼으려는 분들은 절차지향언어 1개, 객체지향 언어 1개, 스크립트 언어 1개정도 익혀두는게 좋습니다.

 

저를 예로 들면 저는 C언어가 주 언어인 프로그래머 입니다. 그래서 한떄 왜? 굳이 스크립트 언어를 알아야 하지라는 생각을 품었으나, 아주 헛된 생각이였습니다. 파이썬을 실제로 사용해보니 간단한 테스트나 정보를 취합하거나 할떄 이만큼 편리한 경우가 없었습니다. 그리고 객체지향 언어는 Java조금, C++조금 할줄 아는 상태입니다.

 

제가 C언어가 주 언어이기 떄문에 C언어를 추천드린게 아닙니다.

C언어는 아주 자유도가 높은 프로그래밍 언어입니다. 그렇기 떄문에 다루기 까다롭습니다. C언어는 일종에 자유방임주의와 같다고 생각하시면 됩니다. "너가 하고싶은 모든것을 해! 단 책임도 너가 지면된다" Java와 같은 언어는 "내가 정해준 틀안에서 움직여, 대신에 책임은 내가 질께"와 같다고 생각하면 가장 편리할것 같네요.

 

그럼 이렇게 까다롭고 프로그래머들이 싫어하는 언어인 C언어를 왜? 추천드리는 걸까요?

 

왜? C언어를 추천하는가

C언어 강의 정말 많이 있습니다. 개나소나 컴퓨터 전공한 대다수의 학생이 가르킬 수 있는 언어가 C언어라는 말이 들릴정도니까요. 하지만 정말로 C로 작업을 하는 사람은 소수에 불과하긴 합니다.

 

실제 작업에서 많이 사용하지도 않는 C언어를 추천드리는 이유는 여러분이 프로그래밍을 직업으로 삶으려는 사람들이기 떄문입니다.

 

C언어는 기본적인 컴퓨터 구조에 대한 이해를 요구하는 언어이기 떄문입니다.

예를들어 다른 프로그래밍 언어들은 메모리를 신경쓰지 않고 알아서 관리해주는 편리한 기능이 있습니다. 하지만 컴퓨터에서 메모리는 아주 중요한 자원이며, 이것을 다루는 것이 매우 중요한 개념중 하나입니다. 이것을 알수 있게 해주는 언어가 바로 C언어라고 저는 개인적으로 생각합니다.

 

그외에도 파일시스템 포맷등 다양한 구조들이 내포되어 있습니다.

그렇기에 직업으로 도전하는 분들에게는 저는 당당히 C언어를 추천드리고 싶습니다. 우선 밑바닦을 한번 경험해 보기를 추천드리기 때문입니다.

 

 

 

 

 

마무리


오늘의 글은 매우 두서없이 적힌것 같습니다. 프로그래밍 언어에서 사실 정답은 없습니다. 자신이 사용하는 분야에 맞는 언어를 사용하는 것이 매우 중요합니다.

 

하지만 위의 2가지 언어는 저희 직장동료들에게 물어보아서 채택된 언어였습니다.

 

여러분이 원하는 개발자의 포지션이 있다면 그 언어를 선택하는게 오히려 현명한 선택일수 있습니다. 실제로 서버개발자 분들중에서 C언어를 다루지 못하는 분들도 많이 있습니다.

안드로이드 개발자 중에서도 C언어를 다루지 못하는 분들이 많이 있듯이요.

 

오늘도 저의 글을 읽어주셔서 감사합니다.

Posted by 콩딱파파
,

안녕하세요 콩딱입니다.

오늘은 무려 2개의 글을 적게 되었는데요. 아침에 한경 컨센서스를 통해 주식관련 글을 적다가 오늘은 이러한 글을 적게 되었습니다.

코딩을 어떻게 배우는가?라는 주제로 이야기를 나눠볼려고 합니다.

 

지난번 글에서 저는 코딩학원에 대한 이야기를 했었습니다. 관련 내용은 아래의 글을 참조해 주세요.

it-kkongdak.tistory.com/52

 

컴퓨터학원(코딩학원)을 다녀야 할까요? (광고X)

안녕하세요 콩딱입니다. 오늘은 코딩학원을 다녀야 하는지에 대해서 이야기 해보는 시간을 가지겠습니다. 많은 전공자 혹은 비 전공자가 코딩학원 혹은 국비지원 컴퓨터학원을 다니게 됩니다.

it-kkongdak.tistory.com

 

 

학원을 다니던 혼자 독학을 하던 중요한 부분이 있습니다. "코딩을 어떻게 배우나요?" 사실 이것보다 코딩을 어떻게 제대로 배우나요가 맞는 말이라고 생각합니다.

 

 

 

많은 분들이 코딩에 대해서 이야기를 할때 프로그래밍 언어라고 이야기 합니다. 즉 언어라는 관점으로 이야기를 많이 하게됩니다.

저도 당연히 해당 이야기를 하고 넘어갈 생각입니다. 왜냐하면 이것만이 코딩에 대해서 제대로 알려줄 수 있는 방법이기 때문입니다.

 

저희 아이도 요즘 엄마라는 말을 자주합니다. 하지만 아빠라는 말을 아직 못하는 상황입니다. (아빠라서 슬프지만...)

엄마라는 말을 하기위해서 아기는 무수히 많은 말을 들었을 것입니다. 그러고 나서 아!! 저 사람이 나의 엄마구나. 엄마라고 부르면은 나를 바라봐주네. 엄마라고 부르니까 내가 원하는것을 잘들어 주는구나 라고 생각하게 될것입니다.

 

여기에서 중요한 부분은 무수히 많은 훈련이 존재했다는 것입니다. 코딩도 동일하게 적용할 수 있습니다. 무수히 많은 코딩 훈련을 통해서 한 사람의 프로그래머로 거듭나게 되는것입니다. 사실 프로그래머 보다 코더?(낮은 표현이지만)가 된다는게 맞을것 같습니다.

그렇다면 우리는 어떠한 훈련을 거듭해야지 되는것일까요? 어린아이의 경우 알아서 부모님이 훈련을 시켜주지만 우리는 그렇지 않은경우가 많습니다. 또한 좋은 훈련이더라도 우리는 거부 할 수 있기 때문입니다.

 

 

 

옳바른 코딩에 대한 훈련


코딩에서 가장 기초가 되는것이 무엇일까요?

흔히들 문제해결 능력, 논리력, 이해력 뭐 기타등등의 것들을 이야기 하는경우가 많습니다. 하지만 코딩으로 들어와서 가장 기초가 되는것은 바로 문법입니다. 일반적인 언어의 경우 문법에 맞지 않는 말을 사용하더라도 문제가 없습니다. 그 언어를 받아들이는 대상이 알아서 받아들여주기 때문이죠. 이 글 또한 많은 맞춤법과 띄어쓰기가 틀릴것입니다. 하지만 여러분이 읽는데 거북함은 들수있지만 아무런 문제는 없습니다.  이 차이를 받아들여야 합니다. 우리가 말하고자 하는 대상은 생각하는 대상이 아닌 컴퓨터입니다. 그렇기 떄문에 컴퓨터와의 대화에는 옳바른 문법으로 대화를 진행해야지만 컴퓨터가 알아들을 수 있습니다.

 

때문에 가장 중요한 것은 문법입니다. if, for, switch, while, struct, class 등의 문법은 가장 기본이 되는 지식입니다.

지식을 활용하는 방법은 그 이후의 문제입니다. 여러분이 처음으로 수학을 배울때를 생각해 봅시다.

사과1개와 사과1개가 있다면 사과는 몇개인가 2개!! 이렇게 배우게 됩니다 이것을 식으로 나타내면 1+1 = 2라는 공식이 성립되는 것입니다. 여기서 +, = 는 문법입니다. 이 2가지 기호를 바탕으로 어떻게 문제를 풀어나가는지를 반복 숙달하는 과정이 공부라고 이야기 합니다.  여기에서도 +와 =는 당연하다고 생각하고 넘어가게 됩니다. 이 당연한것이 바로 문법이라는 것입니다.

 

그렇다면 문법은 어떻게 숙지하는게 좋을까요?

어떠한 언어를 공부하는 방법은 다양합니다. 패턴형식으로 공부도 하고, 마음에 새기는 방식으로 공부도하고, 암기도하고 다양한 방식을 활용합니다. 그것은 자신에게 맞는 방식을 사용하면 됩니다. 하지만 저는 실제로 언어를 어디에 사용하는게 맞는지에 대한 공부를 추천드립니다. "엄마, 아빠"라는 단어를 읽히면 엄마, 아빠라고 불러봐야 합니다.

 

동일하게 문법을 읽히면서 문법을 사용할만한 곳에서 사용을 해봐야 한다는 것입니다. 그를 통해서 실제로 머리로 이해하는것을 넘어서 체득을 하게 되는것이라고 생각됩니다. 그렇다면 어떻게? 라는 물음이 생기게 됩니다. 여기에서는 쉬운방법이 있습니다. 책 한권에 있는 예제를 모조리 작성해 보는것입니다. 문법을 읽히면서 나오는 모든 문제들을 직접 해결도 해보고 예제로 나온 모든것을 따라서 작성하는 것입니다.  책 한권이 나오기까지 쉽지 않고 저자가 필요없는 부분을 넣을만큼 멍청하지도 않습니다. 모든것에는 의미가 있으며 그것을 따라하는 방식이 가장 좋을 수 있습니다.

 

 

문법 넘은 세상은 어떠한 세상일까?

문법을 이제 완벽하게 숙지하였고 사용할 수 있다면 (사실 이런게 있다고 알고 찾아서 사용할 수 있으면 됩니다) 무엇이 문제일까요?

그떄부터 이제 프로그래머의 세계로 넘어가게 되는것입니다. 기초지식들이 필요합니다. 하지만 아직 여러분에게 기초지식이라는 것이 필요한지에 대한 의문이 들기 시작합니다. 왜냐하면 우리는 이제 걸음마를 시작했을 뿐이니까요. 걸음마를 시작했다면 이제 뛰어다녀도 보고, 계단도 오르락 내리락 해봐야 합니다. 그 과정에서 엎어지기도 하고, 무릎도 까져보고 새살도 돋아나고 하면서 정상적으로 걸어다닐수 있어지는게 아닐까 생각합니다.

 

그렇기 위해서 훈련을 거듭해야 합니다. 이 과정에서 좋은것이 복사 & 붙여넣기 입니다. 실제로 CTRL + C, CTRL + V를 하라는 것이 아닙니다. 우리에게는 많은 프로그래머들이 작성한 github라는 공간이 있습니다 이 공간에서 다양한 코드들을 확인해보고 작성해보고 코드의 의미를 파악해 보는 훈련의 시간을 거쳐야 합니다.

 

처음에는 작은것부터 시작하는게 좋습니다 기본이 되는 자료구조, 알고리즘등에 대해서 파악을 시작하는것입니다. 정렬알고리즘도 책을 통해서 익힌것이 있을것입니다. 자료구조 책을 사서 공부를 하는것도 좋고 인터넷 검색을 통해서 정렬알고리즘등을 찾아볼수도 있습니다. 여기서 중요한건 단순 복사&붙여넣기로 끝나서는 않되고 그것을 이해하고 활용할 수 있어야 한다는 것입니다.

 

처음은 복사&붙여넣기로 해보고 다음번 나온 알고리즘은 직접 작성해보고 github를 통해서 정답을 찾아서 비교도 해봐야 합니다.

남들의 방식과 나의 방식이 무엇이 차이가 있는지 알아과는 과정이 필요합니다.

 

이러한 과정속에서 차근차근 컴퓨터의 지식들이 들어오지는 않지만, 여러분의 코딩능력은 발전해 나갈것이라고 저는 믿습니다.

 

 

Posted by 콩딱파파
,