C언어 베이스가 없는 상태에서 C++을 배우기 힘들까요???
안녕하세요. 얼마전부터 프로그래밍에 관심을 갖기 시작했습니다.
주변에 프로그래밍을 해본 친구들이 '나도 C 안배우고 바로 C++ 했는데 할만해', '굳이 C를 하고 C++ 안해도 되던데?' 라고 말합니다.
프로그래밍을 처음 접하는 입장에서 C와 C++ 중 뭘 먼저 하는게 효율적일지 여쭤보고 싶습니다.
안녕하세요.
친구분들 말처럼 C 언어를 배우지 않고 C++을 바로 공부해도 배우는 데는 문제는 없습니다.
하지만 아무래도 C++은 C를 기반으로 해서 만들어진 언어라 C언어를 먼저 시작하고 나서 공부하시면 더 효율적이지 않을까 생각합니다.
C++은 C언어에다가 객체지향이라는 개념을 적용한 것이라고 보시면 됩니다.
C++을 먼저해도 상관은 없습니다만
C언어를 먼저 배우는게 확실히 C++을 배울때 이해하기가 좀 더 쉽습니다.
두개의 가장 큰차이가 객체지향이나 절차지향이냐 입니다.
C언어가 절차지향 C++이 객체지향
C++의 베이스인 것이 C언어 입니다.
C언어에서 쓰는 것이 C++에 다 쓰이니 말이죠
시간적 여유가 되시면 C언어부터 하시고
여유가 없으시다면 C++부터 하시는 걸 추천드립니다.
처음 접한다면 C언어를 먼저 하고 나서 C++을 해도 되지만 굳이 그럴 필요는 없을 듯 싶습니다.
C++로 시작하여 C언어로 넘어가셔도 되고 또는 다른 프로그래밍 언어로 넘어가도 되지 않을까 싶습니다.
처음 배우는 프로그래밍 언어를 어느정도 능숙하게 다룰 줄 알게 되면 다른 언어들을 배울 때 도움이 많이 되기 때문에 굳이 C언어로 시작하는 것보다는 필요한 프로그래밍 언어를 먼저 시작하시는게 좋을 듯 싶네요.
안녕하세요, 코가 딩딩한 코딩쟁이입니다.
C언어랑 C++은 성격이 다릅니다.
C언어
C언어는 절차지향으로 TOP-DOWN 접근 방식입니다.
쉽게 말해서 원하는 기능을 함수형태로 작성하고 main부터 순차적으로 작성해 나가는 것을 말합니다.
C++언어
C++은 C언어를 기본적으로 포함하면서 객체지향으로 BOTTOM-UP 접근 방식입니다.
쉽게 말해서 세부적인 기능들을 설계하고 구현한 뒤 조립해나가면서 작성해 나갑니다.
이렇게 두 언어의 성격은 달라서 제 개인적인 경험으로는 C++ 먼저 해도 무방하다고 생각합니다.
C언어를 배우고 C++을 배우는 것이 보통이기는 합니다.
배우는게 좀더 어려울수는 있어도 C++을 먼저 배워도 문제는 없기는 합니다.
목적에 따라서는 빠르게 사용해야하는 경우라면 C++을 먼저 배워도 되기는 합니다.
C++을 먼저 배우게 되면 C언어에서는 어렵게 만드는 것도 쉽게 만들수는 있기는 합니다.
이유는 C++에서 제공하는 많은 기능들로 인해서 쉬워지는 것이다보니 상황에 따라서는 C언어가 필수는 아닐수 있습니다.
일단 답변을 하기 전에 "C++는 C와 프로그래밍 패러다임와 크게 다르다"라는 말씀을 드리고 싶습니다.
최초에 C++가 나왔을 때는 C with classes라는 명칭을 사용했습니다. (1979년) 기존에 존재했던 C에 객체지향적인 요소인 클래스를 넣었다는 이야기입니다.
하지만 2021년 현재 시점에는 초기 명칭과는 달리 C++ 커뮤니티에서는 C++가 단순히 객체지향 프로그래밍 언어라고 분류되는 것을 잘못되었다고 생각하는 것이 우세합니다. 왜냐하면 C언어를 부분집합으로 갖고, 객체지향 프로그래밍 뿐만아니라 템플릿을 이용한 일반화 프로그래밍이 폭넓게 사용되고 있기 때문입니다. 그래서 C++을 멀티 패러다임을 지원하는 프로그래밍 언어라고 합니다.
따라서, 초심자 입장에서는 C와 C++는 완전히 다른 언어로 파악하고 접근하는 것이 좋습니다.
C언어에 객체지향의 개념을 더한 것이 C++입니다.
C언어를 먼저 배우고 C++를 배우는 것이나 C++를 배우고 C를 배우는 것은 많은 차이가 없습니다.
그러나 먼저 C언어를 배우고 프로그래밍 문법에 대한 개념을 알고 나서 C++의 차별점과 객체지향에 개념으로 나아가신다면 조금 더 효율적으로 공부할 수 있다고 생각합니다.