안녕하세요 콩딱입니다.

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

사실 정답은 없습니다.

 

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

 

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 콩딱파파
,

안녕하세요 콩딱입니다.

오늘은 코딩학원을 다녀야 하는지에 대해서 이야기 해보는 시간을 가지겠습니다.

 

많은 전공자 혹은 비 전공자가 코딩학원 혹은 국비지원 컴퓨터학원을 다니게 됩니다.

이것에 대해서 자세히 이야기 해볼려고 하는데요. (제 글의 불만이 있으신 분이 있을수 있습니다)

 

우선 결론부터 말씀드리겠습니다.

"독학으로도 충분하지만 다닐 수 있다면 다녀라."

이제 하나하나 알아보도록 하겠습니다.

 

 

 

코딩학원이나 국비지원 학원이라는게 뭔가요?


여러분이 일반적으로 다녔던 영어,수학,국어 학원과 같은 개념이라고 생각하시면 편리합니다.

일정의 수업료를 지불하고 교육을 받는 학원입니다. 단 컴퓨터와 관련된 부분들에 대해서 알려주는 학원이라고 생각하시면 됩니다.

 

전문학원 vs 국비지원

이 2가지는 학원비를 내가 낼것인가? 국가가 조금 도움을 주어서 배울것인가의 차이라고 생각하시면 됩니다. 물론 강사진에 대해서 이야기를 할떄는 조금 다른관점이 들어가긴 합니다만, 일단은 그렇게 판단하시면 됩니다.

 

 

 

전공자들이 왜? 수업을 듣나요?


사실 어떠한 대학이건 졸업을 했다는것은 큰 의미를 지닙니다. 관련분야에 어느정도 인정을 받았다는 것을 의미합니다. 하지만 실상으로 들어가면 그렇지 못한경우가 대다수 입니다.

쉽게 말하면 컴퓨터학과를 나왔지만, 개판을 친거라고 생각하시면 됩니다. 2~4년간 컴퓨터학과에서 공부를 했는데 취업 할 실력이 되지 못한사람들이 막판에 가서 부랴부랴 다시 찾는곳이 바로 국비지원학원입니다.

전공자들의 대다수는 크던 작던 취업을 하게되지만, 아예 공부와 담을 쌓은 친구들이 다시 공부를 하기위해 찾는곳이 바로 국비지원, 전문교육 학원이라고 생각하시면 됩니다. 물론 반론을 제기하시는 분들이 많을 수도 있습니다. 학교에서 진도가 거기까지 뿐이 나가지 못했다. 흔히들 개소리라고 표현하는 말들이요. 국비지원 6개월 과정을 2년의 시간이면 독학도 충분히 가능하니까요.

 

그러게 대학생때 공부 열심히 했으면 그럴일 없었을텐데요.

 

 

 

비 전공자가 듣기에는 어렵지 않을까요?


비 전공자가 듣기에도 손쉬울정도의 수업을 진행하는것으로 알고 있습니다. 물론 저는 학원을 다녀본적이 없지만, 직장인 교육으로 가끔 들으로 갈떄가 있습니다. 저도 컴퓨터에서 저만의 분야가 있고 다른분야는 모르기 때문에 가끔 이용했었습니다.  그때의 느낌은 "프로그래밍은 모르는 사람이 대상인가?" 정도 였으니 충분히 어렵지 않으실거라고 생각됩니다.

 

 

 

 

초보자가 포기하는 이유


 

저는 포기하지 않았기 떄문에 정확한 이유를 모르나 제가 경험한 부분에 대해서 말씀드리겠습니다.

 

첫번쨰는 의미를 알수없는 난잡한 기호들 때문입니다.

+, - 와 같은 부분은 이해하기 쉬우나, 그것들과 이상한 영어들이 혼잡한 경우에 외계어 같은 느낌을 받습니다.

 

두번째는 논리의 부족.

흔히들 이과생과 문과생의 차이라고 말하는 부분일수도 있습니다. 하지만 저는 많은 문과생도 봐왔기 떄문에 그 차이는 분명히 아닙니다.  컴퓨터와 관련된 부분들은 전부다 논리적인 부분을 다루게 됩니다. 그 과정에서 힘듬을 느끼시는 분들이 많은것 같습니다. 특히 주입식으로 때려 밖으면, 나중에 자신만의 해결방안들에 대해서 떠올리지 못하는 경우가 많습니다.

 

 

 

 

 

왜 추천을 하는건가요?


 

여러분이 컴퓨터를 배우지 않은 상태에서 무작정 따라하면서 익히기에는 많은 어려움이 있습니다.

그리고 유튜브등을 통해서 익힐 수 있지만 자신의 땡땡이 실력을 과신하면 않됩니다.

 

솔찍히 말씀드리면 진짜로 공부를 한다면 오히려 독학이 도움이 될수 있습니다. 요즘은 유튜브등에서 너무 좋은 컨텐츠들이 많으니까요. (물론 임베디드등은 유튜브에 거의 없습니다.)

그로 인해서 학원의 과정들에서 드는 시간을 save할수 있습니다. 그리고 바로 기본기 쌓고 취업을 두드리며 공부해서 실무 경력위주로 쌓아나갈수도 있고요.

 

그런데 저러한 마음가짐으로 쭉~~ 하시는 분들이 얼마 없다는게 문제입니다.

그렇다면 차라리 학원이라도 다녀서 하루에 9시간정도씩 들어앉아 있으면, 주변 친구들 떄문이라도 공부를 하게 됩니다, 또한 협업이라는 과정도 거치게 되니 1석 2조가 되기도 합니다.

그렇기 떄문에 저는 학원을 추천드리는 겁니다, 교육의 질등을 떠나서 여러분이 최소한 땡떙이 치지않고 공부를 지속적으로 진행할 수 있으니까요. 그거에다가 취업까지 시켜주는 경우도 많으니 오히려 1석 3조가 되지 않나 생각됩니다.

 

 

 

국비지원 vs 전문학원 강사 비교?


 

이건 현실적으로 불가능 합니다! 학원들의 급에 따라서 천차만별이니까요!

단, 유명한 프로그래머가 강의를 잘하는건 아니라는 것을 기억하시기 바랍니다.

 

유명한 수학자가 수학을 잘가르치지는 않다는는것을 생각하시기 바랍니다.

제 경험을 바탕으로 말씀드리겠습니다.

 

국비지원 일반 초급과정

여기서 초급과정이라 칭함은 Java, C와 같은 언어를 다루는 과정 중 초급 및 중급을 의미합니다. 고급도 비슷할것 같긴한데. 사실 언어라는것의 등급을 나누는것도 이상하긴 합니다만...

 

여기에 강사분들은 조금 랜덤성이 강합니다. 경력이 많이 있으나 강의는 몇번 않해본것 같은분, 경력은 얼마 않되나 강의를 조금 해본거 같은분, 대학교 시간강사 같은분. 이렇게 다양하게 분포되어 있습니다.

개인적으로는 경력이 있으나, 강의를 조금 덜해본 분이 좋을것 같긴 합니다.

그런분이 열정적인 부분이 많을수 있으니까요..

 

 

국비지원 고급 과정.

고급과정은 프로젝트, 아키텍처등과 관련된 이야기인데.  아키텍처등은 잘들지 않을것 같긴 합니다. 아무튼 이러한 부분들에 대해서 가르치는 강사들은 나름 실무에서 인정받은 분들입니다. 경력 10~20년 수준의 업계에서도 인정받는 분들이 하는 경우가 많습니다.

거의 실무위주의 이야기를 많이하게 되며, 가끔 알아듣기 힘든경우도 많습니다.

이분들이랑 친해지면 도움이 될수도...

 

 

 

 

전문학원

전문학원도 조금 급이 나누어 지겠지만, 최고수준의 전문가부터 초짜들까지 다양한 곳입니다.

유명한 전문학원의 경우 국내에서 탑클래스로 인정받는 분들도 강의를 많이 하십니다. 제가 아시는 분 3일짜리 세미나가 100만원 정도였었습니다. 이런걸 제외하고, 일반적으로 여러분이 만나는 선생님들은 실무경력 대략 3년~7년 정도라고 생각합니다.

 

 

 

두곳의 대한 저의 생각.

사실 고급과정이 아닌 프알못분들께는 국비지원학원을 추천드립니다.

전문학원의 경우 강의비가 생각보다 비싸요. 일도 하고 있지 않는 상황에서 강의비까지 내가면서 투자하기 보다는 국비지원학원을 다니며 열심히 공부하면 됩니다.!  어짜피 두곳다 열씸히 공부하는 사람만이 성공하게 되어있습니다.

 

국비지원의 단점은 강사진이 나름 낡고 낡았다는데 있습니다. 그렇기 떄문에 강의의 질이 아닌 열정이 조금 떨어질수는 있지만, 필요한 부분들은 전부다 이야기 합니다.

 

전문학원은 강사진이 오래되었다고 하더라도, 강의의 열정이 떨어지지는 않아 보이도록 합니다.

왜냐하면 그것이 그 학원의 장점이니까요. 

 

초보자의 입장에서 선생님은 둘다 괜찮습니다, 다만 현실적인 비용등을 고려했을때 저는 국비지원과정이 보다 알맞지 않나 생각이 됩니다.

 

Posted by 콩딱파파
,