요즘 C++의 필요성과 자바만 해서는 안되겠다는 생각이 들어서
C++도 보고
오브젝트C도 접해볼 생각입니다.
아직 시작은 안했구요.
선배가 자바 했으면 접근하기 쉽다고 하길래요.
그냥 토론주제 던져봅니다.
그리고...하루에 핫식스 한두개 먹으면서 코딩하는데
몸에 안좋을까요?
삼성꺼 OS 개발 강의 들으러 갔는데
생전처음하는 C++ 이었는데
혼자서 강의 안 듣고 SDK 매뉴얼 보면서
객체 만들고 DB 에서 데이터 뽑아오고 해서 화면에 보여주는 거 했네요
언어는 수단에 불과하죠 ㅎ
자바 배우신분들은 C 문법 자체를 배우는건 쉽습니다. 어차피 자바가 C를 본뜬게 많기때문이죠.
하지만 C는 다릅니다. C를 하실꺼면 자바와는 기본 개념부터를 다시 잡아야합니다.
객체지향적이라는 부분은 비슷할지 몰라도 C를 네이티브 코드라하는 이유가 있습니다.
그저 문법만 보고 비슷하다고 하시는 분들은 C를 하는게 아니라 C++ 문법만 쓰시는 분들입니다.
C는 파워풀하죠. 자바랑은 많이 다릅니다.
언어는 언어일 뿐. 기본 문법을 익히고 나면 그 다음은 로직 싸움입니다.
어느 언어로 시작했더라도 하나의 언어를 통달(?)하고 나면 나머지 언어는 진입 장벽이 낮아집니다.
그냥 닥치는대로 열심히 ^^ 하면 되지 않을까요?
핫식스... 저는 먹어보지 않아서 잘 모르겠는데 뭐든지 과하면 안 좋겠죠.
예전에 의사한테 물어보니까 아무리 많이 먹어도 괜찮은 것은 이 세상에 물 밖에 없다고... T.T
언어는 로직이지만 C는 로직싸움이 아닙니다.
오히려 하드웨어 및 OS 아키텍쳐에 관련된 싸움이라고 봐야죠.
C를 로우레벨 언어, 혹은 기계어 라고 하는 이유가 있습니다.
C++은 그렇지 않지만요.
C와 C++은 그래서 다릅니다.
퍼포먼스를 필요로하는 곳에 C를 쓰는 이유가 있죠.
C++의 경우에는 객체지향적이지만 사용법에 따라서는 C에 가까운 퍼포먼스를 낼 수 있어서 유리한겁니다.
반면 자바는 그게 안되죠.
무슨 말씀인지는 이해가 되요. 저도 하드웨어를 다루니까요.
관점의 차이인 것 같아요.
언어는 단어 + 문법 + 내용인데 프로그래밍 언어에서 단어는 별 의미 없는 것 같고
문법과 내용이라고 보면, 문법을 제외한 나머지는 다 내용(여기서 제가 로직이라고 표현한)이라고 볼 수 있을 것 같아요.
하드웨어든 OS든 결국 내용이지 않을까요?
갸아악님께...
뭐든지 많이 배우면 좋아요. 열심히 하세요. 다 남는 것이니까요.
저도 C, C++, 자바, 스크립트 언어 등등 현재도 다 사용하고 있는데 어느 하나 버릴 게 없는 것 같아요.
안 수월해도 배워두시는게 길게 봤을때 현명합니다. C/C++ 은 현재까지 가장 머쉰과 개발자의 입장을 잘 절충한 언어입니다.
그보다 하이레벨 언어는 머쉰의 특성을 배우기 어렵고, 그보다 로우 레벨은 개발자의 정신과 시간을 황폐화 시킵니다.
자바와 C 는 대상이 다릅니다. 물론 언어문법 자체로 보자면은 자바가 C++ 의 그것을 많이 참고한것은 맞습니다만, C++ 에서 자바로 버전업된건 아닙니다. 언어자체를 공부하시려면은 둘다 하셔도 좋은데, 그전에 자바든 씨든 한가지를 어느정도 공부하시는게 좋을것 같다는 개인적인 생각입니다. 언어는 도구고, 자신이 뭘 할껀지 그 대상에 대한 사전지식과 이해가 우선인듯 싶습니다.
자. 자바를 한사람은 C++ 배우기가 수월 안.합니다. 오히려 더 혼동이 올수 있어요, 반대로 C++ 을 하던사람은 자바로 가기 수월합니다.
이유야 여러가지가 있겠지만,, 그중에 굳이 하나를 말한다면은 씨가 사용범위나 문법이 더 넓고 오랫동안 사용되었다는 점 하나정도..
여담 : 요즘은.. 아마도,, 하드웨어가 직접 알아볼수있는 네이티브코드를 생성하는 언어를 기계어라고들 하나보네요.., 어디선가 디버깅창보고 CPU 에러라고 하는사람들도 있다만..
다시 한번 말씀드리지만 기계어는 0 과 1 로 표현하는 머신코드를 말하는 겁니다. 어셈블리는 그 기계어를 그나마 문자로 매칭시킨 코드구요. 어셈블리는 네이티브 코드, 머신 코드로 만들때 c 나 기타등등의 언어와 달리 컴파일러라 하지않고 어셈블러라고 할 정도입니다.
cpu 나 메모리를 이해하려면 c 로도 부족합니다.
어셈블리를 배우시면 제대로 이해할 수 있습니다. 그 이후로 파생된 언어들이 왜 그런지도 이해하게 됩니다. (뭐 그런거 안해도 먹고사는데는 지장없긴합니다.)
그리고 언어를 배우는 것도 나쁘지는 않지만 차라리 공학적으로 이해하려고 생각하세요. 알고리즘, 아키텍처 부터해서 디자인패턴, 데이터베이스, 자료구조 등등 배워야 할거 많습니다. 물론 대학교에서는 기초적으로 다 가르치는 내용이긴 합니다만 학생때는 그 중요성을 모르죠. 실무오면 시간관계상 안하게되구요. 그러나 그냥 코딩알바냐 개발자냐 구분이 거기서 옵니다.
제가 적당히 C를 기계어라 한것이 이슈가 될지는 몰랐는데 달기살 님이 말씀하신대로 0 / 1로 표현된, 것이 기계어가 맞습니다.
기계어는 그렇지만 정확히는 C도 기계어로 실행파일을 만들게되고 이 과정이 컴파일이라고 하지요.
C가 컴파일을 통해서 기계어를 생산하는 것이 기계어이냐는 것의 답은 정확히 아니라고 할수있지만 네이티브코드와 바이트코드의
양분되는 근래는 C를 기계어로 생각하는 분들이 많은것 또한 사실입니다.
C를 공부하는 것은 정확히는 하드웨어와 OS의 연계방식을 공부하게 되는 것입니다.
C++과는 다르죠. 단순히 C++만을 사용하실꺼라면 자바 공부하는것 + 파워풀 하는 정도이지만 C는 엄연히 다른 언어입니다.
음.. 네이티브코드하고 바이트코드(MS$ 에저는 메니지드코드 라고 하더군요).. 기계어냐 아니냐 는 뭐.... 물론 따지고 들어가면은 옛날 전산학개론부터 들춰서 이야기해야하는데 그러다 보면 CPU 4사이클까지 나오는데, 그런 소모적인 논쟁은 옛날이야기고.. 저야 컴파일러란것을 배운세대이고.. 학교다닐때는 자바란것도 없었고, 그냥 그런가보다 라고 생각합니다. 세월이 흘러 환경도 복잡해지고 그에따라 언어도 환경에 맞게 진화되고 파생되고 생기면서 그런 옛날의 용어나 기준들이 애매모하게 되고 있습니다.. 용어야 뭐 정확하게 짚고넘어가는것도 좋지만,, 요즘엔 그 용어 기준이 저도 애매할때가 많습니다. 듀얼코어를 멀티프로세서냐 싱글프로세서냐 같은.. 뭐 시험보는것도 아니고,,
..
글쓴이 가야악 님이 구하고 싶은건 자바 하면은 씨를 하기 수월하는게 맞는건지 이야기하셨는데,, 이야기가 옆으로 흘러가네요 ㅎ.. , 핫식스까지 드셔가면서 일을 하시는게.. 식약청에서 성분규제를 하는데 이게 독하긴 합니다. 호기심에 한번 먹어봤는데 거의 밤을 꼴딱 셌다는..
일단 핫식스 자체가 카페인이 높아서
다량 섭취시 심부전증이나 심장발작(...)의 위험이 있습니다.