C++에 관해...

canuyes의 이미지

요즘들어 과하다 싶을 정도로 이 곳에 질문을 하게 되네요..
초보자 입장에서 일련의 공부를 마무리하고 새로운 공부로 옮겨가는 중이라
조금 더 예민해져서 인것 같습니다.
저는 컴퓨터공학과 1학년을 마치고 휴학한 말 그대로 생초보인 사람입니다.
C와 C++공부를 막 끝낸 상태입니다.
C를 공부하고 나서 따로 C++를 공부하긴 했지만 성취도가 너무도 아쉬울 따름입니다.
사실 C와 C++의 문법만을 공부한것 같다라는 생각이 들 정도입니다...
객체 지향의 개념이랄까? C++의 패러다임이 전혀 손에 잡히지도 않고 말입니다.

C++의 약한 개념을 보강할 공부는 어떻게 하는 것이 좋을까요?
참고로, 현재는 자료구조/알고리즘과 python 공부를 예정중에 있습니다.

shint의 이미지

쌩뚱맞은 답변일지 모르지만.
문법은 문법이라고 생각됩니다.

어셈으로 만들든
플래시로 만들든
자바로 만들든
뭘로 만들든. 상관없다는 생각입니다.

대부분의 프로그램은. 변수(메모리) 와 함수 만 알면. 기능 구현이 가능하다는 생각입니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

snowall의 이미지

자료구조/알고리즘 열심히 공부하시면 될 것 같은데요.

거기서 연습문제 푸는걸 C/C++/Python/Java로 모두 풀어본다면 도움이 될수 있을지도 모르겠네요

피할 수 있을때 즐겨라! http://melotopia.net/b

익명 사용자의 이미지

OOP는 패턴을 통해 공부하시면 좋습니다. 디자인 패턴 공부를 하시면 도움이 될 겁니다. 찾아보시면 책 많습니다.
C++의 template meta programming 쪽을 공부하시려면 modern c++ design 이라는 책이 고전입니다. 최근에 나온 다른 책들도 있을 것 같으니 한 번 찾아보세요.

HDNua의 이미지

제 생각엔, 이 시기는 UI를 막 공부하고 싶어지는 시기라고 생각합니다.
어떻게 하면 다른 개발자들처럼 그래피컬한 창을 만들 수 있을까가 순수하게 궁금해지는 시기요.
(그림판, 메모장은 어떻게 만들었을까, 게임은 어떻게 만들었을까, 더 나아가서 화면에 그림을 어떻게 뿌릴까와 같은)

Visual Studio는 응용 프로그램을 편리하게 만들 수 있게끔 "Windows Form 응용 프로그램"이라는 템플릿을 지원합니다.
(Windows 8에 Visual Studio 2012를 깔았더니, 여기엔 C#에 대한 Windows Form 템플릿만 있고 C++에 대한 Windows Form 템플릿은 없어져버렸네요.)
Windows Form에 대해 찾아보시면 재밌게 공부하실 수 있으리라 생각합니다.
아니면 저처럼 iMac을 사고 Objective-C를 배워서 Cocoa 또는 Cocos2D와 같은 Framework를 이용해 응용 프로그램을 만들어보는 것도 좋지요.

일단 뭐든 눈에 보이는 게 있어야 흥미도 붙고 그러잖아요.
저는 이렇게 생각했습니다.

저는 이렇게 생각했습니다.

yielding의 이미지

python을 선택하셨네요. 좋은 언어입니다.

1. c++ 책
영어를 잘 하신다면, 그리고 굳이 C++ 자체에 많은 애착이 가시면, 우선 The C++ Programming Language 최신판을 한 번 정독하실 것을 권합니다. c++의 전반에 대해 아주 깊이 있고 충실하게
설명하고 있습니다. (4판이 나왔네요 저는 1st, 2nd, 3rd를 몇 번씩 읽었던 것 같습니다.)
분량이 꽤 되는 책이므로 호흡을 길게 가지시고 공부하시길..

그리고 지난 번 포스트에서 언급하신 Nicolai Justis의 The C++Standard Library 2nd도 좋아보입니다. (14882-2011표준에서는 더이상 STL이라고 쓰지 않고 그냥 standard library라고 합니다)

2. c++ 컴파일러
clang 3.1과 gcc 최신 버전 그리고 MSVC 2012가 구하기도 공부하기도 좋은 컴파일러 일듯 합니다.

3. 프로그래밍 연습
두 언어를 하기로 마음을 먹으셨으니 먼저 작은 문제부터, 내게 필요한 프로그램을 작성하시고 먼저는 python으로 풀고 그 다음 c++로 풀어볼 것을 권유 드립니다.
(저는 ruby로 먼저 풀고 c++로 풀어봅니다.)

4. 내친김에 에디터
저는 맥, 윈도우에서 mvim, gvim을 주로 사용하지만 emacs, vim 중 맞는 걸 하나 고르셔서 생각과 편집이 똑같아지도록, direct mapping이 될때까지 연습하시면 좋을 듯 합니다.
(맥이라면 textmate, sublime도 좋아보이고요 eclipse도,...)

5. 자료구조
자료구조를 1학년이 베우나요? 독학을 하시는 것이라면 자료구조를 제대로 하는 것 만으로도 생각보다 쉽지 않을 수 있습니다. 중요한 과목이라서 좋은 선생님에게 잘 베우는 것도 중요합니다.
자료구조를 공부할때는 책에 나오는 예제를 하나하나 타이핑해서 돌려보는 것에서 부터, 이론을 정확히 이해하는 것, 연습문제를 유사문제를 다 스스로 작성해보는 것 모두가 중요합니다.

Life rushes on, we are distracted

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.