프로그래밍에 관심이있는데 어떻게 시작햬야 할까요?
프로그래밍에 관심이 생기기 시작했어요 프로그래밍을 처음 접해보는거라 아직 아무것도 잘 몰라요 프로그래밍을 배우기 위해 어떤곳으로 시작하는게 좋을까요? 어떤식으로 공부를 해야하고 진출할 수 있는 분야나 직업은 뭐가 있나요?
- 안녕하세요. - 각자 프로그래밍 언어별로 개발 분야가 조금씩 다릅니다. 언어별 특성을 보고 하고 싶은 언어를 선택하시면 될것같습니다. - 보통 프로그래밍 입문은 파이썬, 자바, C 로 많이 시작합니다. 그리고 화면 쪽에서 사용하는 언어로 자바스크립트도 있습니다. - 파이썬은 데이터통계 등에 많이 사용되고 비교적 쉽게 배울 수 있는 언어이고 자바는 웹이나 안드로이드 등 다양한 분야에 많이 사용 되는 언어입니다. 정부에서 사용하는 전자정부프레임워크에서도 쓰입니다. C는 하드웨어제어나 게임등에 사용되는 언어로 기초를 다지기에 적합한 언어입니다. - 자바스크립트는 제일 배우기 쉬운 언어이기도 하지만 기능이 막강합니다. 또한 간단하게 화면을 만들어서 바로바로 테스트를 해 볼수 있는 장점도 있습니다. - 모든 언어가 알고리즘이나 로직은 다 똑같습니다. 그 로직을 구현하는 문법이 조금씩 다를 뿐이죠. 그 언어를 배우는 것도 좋지만 그 안에 로직이나 알고리즘을 구현하는 연습을 많이 하시면 다른 언어를 배울 때도 큰 도움이 됩니다. - 인터넷이나 유튜브 검색해 보면 관련자료가 많이 나와 있습니다. 아래 관련 사이트 참고하시길 바랍니다. 
- 안녕하세요. 답변드립니다. - 프로그래밍에 대해 아무것도 모르는 사람들이 이 분야에 호기심을 가질만한 - 질문이 대부분 뭐부터 해야되냐, 무슨 언어가 좋냐 등의 내용을 물어보시기때문에 - 공통된 답변을 드리기위해 작성한 글입니다. - 0. 프로그래머가 뭐하는 사람이에요?- 프로그래머라는 직업은 광범위한 업무내용을 담고 있지만 통상적으로 - 컴퓨터의 운영체제 위에서 어떠한 목적을 가진 응용프로그램 을 개발하는 사람입니다. - 1. 코딩? 프로그래밍?- 프로그래밍은 어떠한 데이터를 입력해서 산출하기까지의 전 과정에 대해 설계하고 구축해나가는 행위입니다. - 이것을 컴퓨터를 이용한 응용프로그램을 만드는 일을 말합니다. - 현대에는 컴퓨터가 발명되어서 널리 쓰이고 있으므로 프로그래밍이라 함은 - 의도된 루틴에 따라 데이터를 입력하고 컴퓨터가 알아들을 수 있도록 명령어(코드)를 작성해 실행하고 - 목적하는 결과를 산출하기까지의 행위를 말합니다. - 하지만 컴퓨터가 발명되기 전의 과거에도 프로그래밍은 있었습니다. - 공학적인 방법론에 의해서 입력과 출력에 관한 설계구축은 어느 분야에나 필요하기 때문에 - 계산기의 발명을 하던 시절부터 프로그래밍은 있었다고 봐야할 것입니다. - 그러므로 프로그래밍이란 행위의 근본적인 이해를 하려면 컴퓨터와 연관짓는 범주를 넘어서서 - 통합적으로 생각해봐야할 필요가 있습니다. - 코딩은 그러한 프로그래밍 행위의 일부인 명령어 실행을 위한 입력 작업입니다. - 그러면 코딩을 할줄 알면 프로그래밍을 할줄 아는 것이냐? 라고 생각할 수도 있는데, - 프로그래밍은 위에도 말했다시피 더 큰 범주의 작업 행위에 해당하기 때문에 - 코딩만 할줄안다고 프로그래밍을 할 수있는 건 아닙니다. - 물론 코딩을 계속하다보면 프로그래밍에 대한 기본 소양들을 자연스럽게 몸에 익히게 됩니다. - 2. 난 스크래치 좀 해봤는데?- 프로그래머의 업무에 적합한 소양중에는 프로그래머의 공학적 사고방식이 필수입니다. - 학교에서 가르쳐주는 스크래치같은 도구는 그런 프로그래밍에 필요한 사고방식을 익히기 위한 목적의 도구입니다. - 그것만으로는 코딩이나 프로그래밍을 했다고 할 수는 없습니다. - 3. 그럼 뭐부터 해야되나?- 일단 개발언어의 선택이겠죠? - 컴퓨터가 세상에 나오고 대중화 되면서, 그 안에 있는 소프트웨어를 만드는 데에 여러 시도가 있었습니다. - 위에서도 말했다시피 코딩은 컴퓨터가 알아들을 수 있는 명령어를 작성하는 것이고, - 그런 컴퓨터와 대화하는 명령어는 수천개에 달할 정도로 엄청나게 많습니다. - 그 수천 개 중에 어떤 개발언어를 익히는지는 순전히 개인의 선택이지만, - 국가별로, 산업군별로, 세부 분야별로 선호되는 언어가 있습니다. - 본인이 어떤 분야에 관심이 가는지에 따라 추천되는 개발언어는 다르다고 할 수있습니다. - 사례를 들어봅시다. - 가. 우리나라는 통상적으로 전자정부표준프레임워크라는 것을 도입해서 배포했고, - 관공서, 공기업. 일반 기업 등 많은 부문에 퍼져있습니다. - 그리고 그것이 자바 언어를 사용하기 때문에 , - 그 수요에 맞춰 자바 개발자를 많이 교육하고 배출했으며 - 현재 업계에서 자바언어를 다루는 개발자를 많이 찾아볼 수 있습니다. - 나. 몇년 전부터 빅데이터, 인공지능이 대두되면서 이 데이터들을 핸들링해서 - 결과를 도출하는 프로그램을 만드는 데에 쓰이는 언어로서 파이썬이 각광받습니다. - 다. 스마트폰이 세상에 나온 뒤로, 득세를 한 것이 안드로이드 운영체제인데, 수년간 자바언어를 써왔습니다. - 당연히 그 위에 올라가는 앱도 자바였지만, 여러 사정상 언어를 코틀린으로 바꾸게 되었습니다. - 라. 하드웨어에 돌아가는 펌웨어는 CPU에 직접적인 접근을 해서 연산작업이 이루어지기 때문에, - C, C++, C#이 많이 쓰이고 있습니다. - 이러한 업계의 수세부분야, 수요와 트렌드에 따라, 필요로하는 언어와 기술 소양은 각기 다릅니다. - 그러무로 본인이 뭘 하고 싶은지부터 생각해보고 언어를 선택하는 것이 순서입니다. - 그리고 그 선택한 언어데 따라 개발환경, 도구가 모두 상이하므로 이런 언어선택의 방향을 잡는 것이 매우 중요합니다. - 4. 프로그래머 돈 많이 버나요? 안정적인가요?- 이것도 매우 다양한 답이 돌아옵니다. - 하지만 결론부터 말하자면 프로그래머는 안정적인 직업이 아닙니다. - IT기술이 년단위로 크게 변화하고 있고, 그에 맞춰서 업계의 입맛이 바뀌기 때문에 - 필요로하는 개발자의 소양도 바뀝니다. - 저같은 경우 PHP로 시작해서 자바 언어를 다루고있고, 필요에 따라 - javascript, node.js, go, python을 더 다루게 되었습니다. - 그러니까 '난 이거 한가지로 계속 밥벌어먹고 살아볼테야' 라는 인생전략이 통하지 않는 분야라고 볼 수 있습니다. - 수입도 정규직이냐, 프리랜서냐에 따라 다르고, 경력에 따라 또 다릅니다. - 그리고 수도권 대기업에서 일하느냐, 지방 중소기업에서 일하느냐에 따라 또 큰 차이가 있구요. - 하지만 다른 어느 개발자들을 붙잡고 물어봐도 공통적인 답이 돌아올겁니다. - '이 분야는 계속 공부 안하면 살아남을 수 없다'는 답이요. - 5. 영화나 드라마 보면 프로그래머나 해커가 엄청 멋져보이던데...- 뭔가 엄청 복잡한 것들이 화면에 나오고 그걸 엄청난 속도의 타자로 처리하는 모습이 일반적으로 나올겁니다. - 그리고 그것을 단 몇분만에 처리하구요. - 그런 모습을 보고 환상에 젖어 이 분야에 호기심을 갖는 청소년도 있을것으로 압니다. - 하지만 그건 영화나 드라마일 뿐이구요, 그런 매체에서 보이는 작업하는 모습은 허구입니다. - 실제로 그렇게 타자를 빨리 치는 일도 별로 없으며, - 뭔가 복잡해보이는 것은 없습니다. 그 복잡해보이는 것도 결국은 어디선가 누가 만드는 과정이 있었겠죠? - 그리고 통상 개발자가 코드를 대하는 화면은 편집기와 콘솔창입니다. - 그리고 프로그래머의 속성은 끈기있게 노가대하는 겁니다. - 코드 하나를 잘못 작성했거나, 알고리즘이 틀려서 몇날 며칠을 허비하고, - 원하는 결과하나를 보기 위해 몇시간을 모니터를 들여다보고 있기도 합니다. - 이게 통상적인 프로그래머의 모습이고, 매우매우 지루한 과정을 참아가면서 일하는 겁니다. - 그러니까 '프로그래머는 컴퓨터를 가지고 끈기있게 일하는 노동자'이지 - 무슨 컴퓨터를 지배하는 자가 아님을 말씀드립니다. - 호기심을 갖는 것은 좋으나 일단 진지하게 일을 하고 싶은지, - 그리고 그러한 과정들을 감내할 수있을지 먼저 생각해보는 것이 좋습니다. - 6. 배우기 쉬운 언어좀 가르쳐줘요. C는 어려워.. 더 쉬운것좀..- 입문자의 기분은 이해하겠지만 C 이상으로 프로그래밍의 공학적 기본이 잘 잡혀있고 컴퓨터 사이언스에 적합한 언어는 없습니다. 컴퓨터의 발전 역사에서 개발언어의 많은 충족요건의 정수들만 수렴한 결과 나온 언어이기 때문입니다. - 꼭C를 배우라는건 아니지만, 최근 업계에서 쓰이고 있는 거의 모든 개발 언어들이 C의 개념에서 크든 작든 영향을 받았습니다. 한마디로 정리해드릴게요. - "C도 못할 정도라면 어떤 다른 언어를 배워도 똑같이 막힌다."- 그렇습니다. C가 어렵다고 하면 그 개념을 물려받은 대부분의 다른 언어를 해도 마찬가집니다. C의 개념에 더 확장을 가한 C++, C# 당연히 못합니다. 더 어렵습니다. C의 기본프로토타입을 그대로물려받은 JAVA? 못하겠죠? - 그렇다면 여기저기서 주워듣기로 쉽다고 하는 언어는 될까요? 유감스럽게도 이건 언어의 난이도 문제가 아닙니다. 파이썬, php? javascript? ruby? 프로그래밍의 기초 개념부터 안잡혔는데 할수 있으려나요? 설마요. - 그냥 프로그래머의 공학적 사고방식이 결여되어있는거입니다. 학교에서 스크래치같은걸 가르친 이유가 그런 사고방식으로 접근하라고 가르치는 겁니다. 개발 언어는 도구에 불과합니다. 중요한건 프로그래머의 논리적이고 공학적인 사고방식을 기르는겁니다. - 가벼운 기분으로 더 쉬운언어로 만족할만한 프로그램결과물을 만드려는 생각이라면 그냥 포기하시는게 좋습니다. 그 과정이란게 언어와 상관없이 매우 험난하거든요. 아마 대부분 그런 이유때문에 쉬운언어 없냐고 물어보는 거겠지만. 쉬운언어 찾는건 이미 제대로 도전해볼 생각도 없이 도망칠 궁리를 하고 있다는 겁니다. 
- 프로그래밍을 배우기 위해서는 먼저 프로그래밍 언어를 배우시는 것을 시작으로 하시면 됩니다. - 프로그래밍 언어들 중 초심자에게 많이 추천되는 언어인 파이썬을 먼저 배우는 게 좋을 듯 싶구요. 또는 다른 언어인 C언어를 배우셔도 좋습니다. 시중 서점에 파이썬이나 C언어 관련 서적들이 많이 있으니 직접 보고 구입하여 학습하시면 될 것으로 보입니다. - 또는 온라인에 찾아보시면 공개된 무료 강의들이 있으니 그 강의를 통하여 공부하셔도 됩니다. - 진출할 수 있는 분야라면 인공지능 분야나, 서버 분야 등이 있고 직업의 경우는 서버 프로그래머, 웹 프로그래머, 등이 있습니다. 
- 스크래치에서 문제를 못풀고 헤메신다면? 실전 프로그램에선 더 헤멜수 있습니다 - 그러니 스크래치를 통해 본인의 적성을 꼭 확인해보시기 바랍니다 - 우선 코딩과 알고리즘의 맛을 아래 링크에서 접해보시기 바랍니다! - https://scratch.mit.edu/ 여기를 추천드리구요 - https://scratch.mit.edu/explore/projects/all <== 여기는 다른사람들이 스크래치로 만든 게임등을 - 플레이할 수 있는곳이데요 - 나름 재미있을거라 생각합니다 ( 본인이 직접 만들수도 있음 ) - 경우에 따라 이 사이트가 너무 시시해 보일수도 있습니다 - 근데 여기서 얻은 알고리즘은 타언어 배울때도 당연히 적용이 됩니다 - 열심히 해보세요 - 그리고 열심히 하다가 스크래치에서의 코딩이 자신의 적성과 잘 맞다고 생각되면 - 그때 프로그램 개발을 어떤 목적으로 할것이냐에 - 따라서 배워야 할 언어가 틀려지기때문에, - 스크래치에서 경험을 쌓은후 다시 재 질문해주시기 바랍니다! 
- 요즘에는 인터넷에 잘 정리된 프로그래밍 관련 강의와 책들이 많이 있기 때문에 학원에 다니지 않아도 왠만한 기초적인 내용들은 배울 수 있습니다. - 처음에 배워두면 좋은 언어는 자바, 자바가 어렵다면 파이썬 배우는 것을 추천드립니다. - 구글이나 유튜브에 관련 강의 검색해보시고 강의를 보면서 프로그래밍 기초 개념들을 익히고 강의에 나오는 실습들을 따라해보시면 됩니다. - 프로그래밍 관련 직업만 해도 엄청 많이 있는데요, 크게 분야를 나누어서 보면 다음과 같습니다. - 1. 게임 개발자: 게임 프로그램 개발 - 2. 웹 개발자: 웹 사이트(클라이언트, 서버) 개발 - 3. 응용 소프트웨어 개발자: 컴퓨터 내에서 사용되는 프로그램 개발 - 4. 임베디드 개발자: 컴퓨터 이외의 장치에 사용되는 프로그램 개발 - 5. 앱 개발자: 스마트폰 애플리케이션 개발 - 6. 인공지능 개발자: 인공지능 개발 - 7. 정보보안 개발자: 해킹 방지 프로그램 개발 - 등이 있습니다. 
- 프로그래밍을 해보기 위해서는 프로그래밍 언어를 다룰줄 알아야 합니다. - 프로그래밍 언어를 선택하기 위해서는 어떠한 것을 목적으로 하는지에 따라서 달라질 수 있습니다. - 앱개발을 한다면 코틀린이나 자바를 먼저 하는 것을 추천합니다. - 하지만 아직은 프로그래밍이 더 궁굼하다고 한다면 파이썬 프로그래밍을 추천합니다. - 이유는 프로그래밍 언어 중에서 배우기 쉬운 언어가 파이썬입니다. - 파이썬을 배우고나서 웹 개발, 데이터분석, AI 등 실습을 해볼만한 예제가 많이 있습니다. - 많은 사람들이 데이터 분석 분야에 관심을 가지고 있어 유튜브에 강의도 많이 올라오고 있습니다. - 무료로 들을 수 있는 강의도 많다보니 처음 배우기 좋을 것 같습니다. 







