로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!==프로그래밍을 배우고 싶은데, 무슨 언어를 배워야 하나요?== [[프로그래밍 언어]] 문서에서 볼 수 있듯 세상에는 정말 많은 프로그래밍 언어가 존재한다. 언어마다 장단점과 적합한 분야가 있어 무엇을 만들 것인가에 따라 언어 선택이 달라지긴 하지만, 첫 언어를 선택하는데에 부담을 갖진 말자. 어떤 프로그래밍 언어를 익히던간에 하나만 잘 익혀두면 다른 언어도 금방 익힐 수 있다. <br /><br /> 다음은 언어 선택 가이드이다. * 상황에 따른 선택 가이드 ** if 주변에 프로그래밍을 가르쳐줄 사람이 있다 and 그 사람이 친절하게 잘 가르쳐줄 사람이다. *** 그 사람의 주력 언어를 따라 선택한다. ** else *** 많은 사람들이 사용하는 언어를 선택한다. (관련 자료를 찾기가 수월하다) *** C/C++, [[C#]], [[Java]], Object-C, Swift, [[JavaScript]], Python, Ruby <del>어셈블리</del> 등의 언어가 있다. **** 이 중 [[Python]]이 첫 시작으로 무난하다.<ref>파이썬이라고도 하는데 프로그래밍을 쉽게 배우고 싶다면 추천할 만하다.</ref> **** [[Java]]와 [[C#]]도 나쁘지 않다. **** C/C++은 첫 시작으로는 추천하지 않는다. <ref>국내외를 막론하고 C/C++ 기초 서적에서 첫 언어로 이것들을 추천하는데 믿지 않는게 좋다. C와 C++은 난이도가 높은 언어로 손꼽히기 때문이다.</ref><ref>이 두 언어는 성능과 기능이 최우선이라 뭘 만들던 일일히 하나씩 다 상태를 관리해줘야 한다. 다른 언어들에서 자동으로 처리해주는 걸 굳이 하나하나 빼먹지 않고 추가로 써야 한다면? 초보에게 이런 언어는 머리만 아플 뿐이다. 단지 컴퓨터의 구조를 익히게 한다고 [[컴퓨터공학과]]에서 '''매우''' 높은 확률로 이것만 배우게 될 뿐…. 그렇다고 책장에 모셔두진 말고 그냥 훑어보기라도 하면 도움된다. 특히 컴파일러 부분은 python을 선택했다면 모르고 넘어가기 때문에 알아두는 게 좋다.</ref> * 목적에 따른 선택 가이드 ** 윈도우즈 응용 프로그램을 만들고 싶다 → 온갖 언어로 가능하다. C#을 추천한다. ** 리눅스 프로그램을 만들고 싶다. → 마찬가지로 온갖 언어로 가능하다. C++,C#을 추천한다. ** 안드로이드 애플리케이션을 만들고 싶다 → Java를 추천한다. (C++, C#, Python으로도 가능하긴 하다. [http://www.bloter.net/archives/253414 자마린을 무료로 쓸 수 있게 됐다.]) ** iOS 애플리케이션을 만들고 싶다 → Object-C / Swift를 선택한다. (C#, Python으로도 가능하긴 하다.) ** 웹 페이지를 만들고 싶다. → 언어 하나 선택하라고 하기가 좀... 여러 가지 언어를 복합적으로 사용하며, 대표적으로 HTML<ref>정확히는 프로그래밍 언어의 범주에는 속하지 않고, 마크업 언어라고 한다.</ref>이 있고, 동적 웹 페이지를 만들고 싶다면 PHP, ASP, JSP 중에 하나 골라서 배워보자. HTML만 배우지는 말고, CSS, 자바스크립트도 배워봐야 나쁠 것 없다. ** 게임을 만들고 싶다 → [[유니티 엔진]](C#), [[언리얼 엔진]](C++), 그 외에도 다양한 게임 엔진들이 많다.<ref>입문용으로 뭘 쓸지 고민한다면 유니티 엔진을 써라, 하지만 유니티는 퀄리티가 언리얼보다 한참 뒤떨어지는데 최근에 그 격차가 좁아졌기는 했지만 유니티에서 고퀄리티로 개발한다하면 이때는 언리얼보다 난이도가 높아지는 단점이 있다. 언리얼이 전체에서 필요없는 것을 빼는 식이라면 유니티는 최소에서 필요한 것을 첨가하는 식이다. 초보가 고퀄리티를 낼 때는 언리얼, 빨리 배우고 게임을 내놓고 싶다면 유니티를 선택하라.</ref><ref>C#으로 개발하면 성능이 떨어지지 않을까?라는 걱정하는 사람들이 있을 것이다. 하지만 그렇지 않은데 최근에 C#을 C++로 번역하는 기능도 추가되었고 C#의 부족한 성능을 메우기 위한 기능도 꾸준히 출시되어 성능 문제를 따지는건 의미가 없을 것이다. 그런데 초보가 성능 문제를 따질 필요가 있는가. 유니티의 C#은 쉽지만 공식 비주얼 스크립팅 기능이 없고 언리얼의 C++은 어렵지만 비주얼 스크립팅 기능이 있어 뭐가 더 쉬운지 깊이 생각할 필요가 없다.</ref> ** 소켓 프로그래밍<ref>컴퓨터와 컴퓨터, 즉 컴퓨터를 네트워크에 연결하여 다른 사용자(서버, 클라이언트 등)와 연결하는 영역을 다루는 프로그래밍</ref>을 하고 싶다. → 언어는 어지간한 고급언어를 다룰 수 있다면 아무거나 사용해도 상관없다. 단 네트워크 관련 지식이 필요하며, 아래의 시스템 프로그래밍과도 일부 공유된다. ** 시스템 프로그래밍<ref>컴퓨터를 구성하는 하드웨어 및 이를 제어하는 OS와 드라이버를 다루는 프로그래밍</ref>을 하고 싶다. → C/C++<ref>위에서 서술되었듯이 성능과 기능을 최우선으로 하는 언어이다. 이 때문에 태생부터 효율적인 시스템 자원(메모리 등) 관리에 사용되었고 현재까지도 사용<del>노인학대</del>되고 있다.</ref>를 추천한다. 여기에 [[어셈블리어]]도 수준급으로 다룬다면 금상첨화. <del>물론 이쯤 되면 취미의 영역을 벗어나 코딩덕후 or 현업 경력자 쯤 될 때 해볼만 할 것 같다.</del> ** 해킹(...)을 하고 싶다 → <del>하지마라</del> 무슨 해킹을 하고 싶은지에 따라 분야는 다르지만, 거의 대부분 해킹하면 생각하는 수준이 남의 네이버 아이디 훔치는 정도…일테니, 간단히 설명하자면 위의 웹페이지 만들기, 소켓 프로그래밍, 윈도우즈 응용프로그램… 등등을 정말정말 열심히 공부하면 된다.<ref>농담이 아니라 실제 현실의 해킹은 프로그램/홈페이지 상의 취약점을 찾아서 공격하는 것이 거의 대부분이기 때문에, 이것들을 열심히 수련하여 코드 상의 취약점을 찾아내어 공격하면 된다.</ref> 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다. 취소 편집 도움말 (새 창에서 열림) | () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |} {{lang|}} · {{llang||}} · {{인용문|}} · {{인용문2|}} · {{유튜브|}} · {{다음팟|}} · {{니코|}} · {{토막글}} {{삭제|}} · {{특정판삭제|}}(이유를 적지 않을 경우 기각될 가능성이 높습니다. 반드시 이유를 적어주세요.) {{#expr:}} · {{#if:}} · {{#ifeq:}} · {{#iferror:}} · {{#ifexist:}} · {{#switch:}} · {{#time:}} · {{#timel:}} · {{#titleparts:}} __NOTOC__ · __FORCETOC__ · __TOC__ · {{PAGENAME}} · {{SITENAME}} · {{localurl:}} · {{fullurl:}} · {{ns:}} –(대시) ‘’(작은따옴표) “”(큰따옴표) ·(가운뎃점) …(말줄임표) ‽(물음느낌표) 〈〉(홑화살괄호) 《》(겹화살괄호) ± − × ÷ ≈ ≠ ∓ ≤ ≥ ∞ ¬ ¹ ² ³ ⁿ ¼ ½ ¾ § € £ ₩ ¥ ¢ † ‡ • ← → ↔ ‰ °C µ(마이크로) Å °(도) ′(분) ″(초) Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ(뮤) Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω · Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ · Ϊ ϊ Ϋ ϋ · ΐ ΰ Æ æ Đ(D with stroke) đ Ð(eth) ð ı Ł ł Ø ø Œ œ ß Þ þ · Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź · À à È è Ì ì Ǹ ǹ Ò ò Ù ù · İ Ż ż ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û · Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ · ǘ ǜ ǚ ǖ · caron/háček: Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž · breve: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț