게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
코딩 입문하시는 분들께 팁
게시물ID : programmer_19973짧은주소 복사하기
작성자 : IR
추천 : 11
조회수 : 1719회
댓글수 : 37개
등록시간 : 2017/03/14 21:03:04

일단은 표준적인 C/C++을 배운다는 가정하에 작성했습니다.



1. 컴파일 에러 잡아줄 노예 한명을 구하세요. 치킨으로 고용을 해서라도.

 초보자들이 흥미를 잃는 대부분의 순간이 분명히 예제를 따라 쓰던 내가 직접 쓰던 실행해볼려고 하니까 겉잡을 수 없이 나타나는 에러 때문인 경우가 많아요. 일반인은 평생 타자에서 이모티콘 외에 써볼일 없는 세미콜론은 왜이리 많이 들어가는지 빼먹기 십상인데, 


 에러코드 쳐서 구글에 치면 해결방법이 다 나온다지만, 코딩 입문할만한 사람들은 이제 막 구글신의 존재를 인지할 뿐인 시기에 지나지 않아서, 거기서 나온 설명 보고 수정하는것도 최소한의 지식이 쌓인 다음에야 할 수 있는 경우가 많아요. 여러분이 똑같은 실수를 연발하더라도 포커페이스를 유지하며 오류수정하는 셔틀을 해 주며 왜 이런 오류가 발생했는지, 앞으로 어떻게 해야 하는지 "반복적으로" 설명할 수 있는 사람을 구하는게 사실 문법 진도를 팍팍 나갈 수 있는 방법이에요.


 본삭금과 답례인사 원칙만 지켜주신다면 프게에서 꾸준히 질문/검색하시는것도 괜찮겠지만, 정말 즉각적인 피드백이 오갈 수 있는 사람이 있는게 가장 좋아요.



2. #include 헤더 파일을 왜, 어떻게 쓰는건지 잘하는 분께 가서 집요하게 물어보세요.

 일반적인 코딩 다루는 과에서도 끝까지 헤더 파일이 왜 있는지 모르고 그냥 부르라는 헤더 불러다 메인파일에 코드들을 다 쑤셔박아서 돌리는 사람들이 꽤나 수두룩해요. 이런 경우엔 메인에서 500줄만 넘어가도 가독성이 엄청 떨어져서, 저걸 왜, 어떻게 쓰는지 확실하게 알고 가는것이 좋아요.

 


3. "자료구조"를 익힙시다.

 보통 데이터형 하나만 가지고 산술 연산을 하는 경우는 조금만 복잡한 걸 구현하려고 해도 드문 경우가 많아요. 당장 2차원 게임을 만들려고 해도 캐릭터의 위치는 x, y 2개의 좌표로 나타내야 하는데, 이때 필요한 것이 "구조체", "클래스"에요.


근데 후술할 "지렁이 게임"을 만들더라도 현재 꼬리가 어느 좌표들에 걸쳐 늘어나 있는지, 이 "구조체"정보를 여러개 담을 수 있는 것들이 필요한데 그게 바로 자료구조에요.


어느정도 문법을 뗀 상태에서 할 수 있는 입문 중에서도 중급 레벨이라 할 수 있지만, 쓰고 안쓰고 차이가 코딩 효율 측면에서 큰 차이가 나서 반드시 알고 가는게 좋아요.


크게 배열/링크드리스트/스택/힙 등등으로 나뉘는데, "링크드리스트"와 "스택"은 꼭 한번쯤 직접 구현해보시는걸 추천합니다.

"링크드리스트"로 "지렁이 게임"을 한번 만들어보시고

"스택"으로 미로 길찾기를 만들어보시면 자료구조에 대한 기본 지식은 졸업한다고 볼 수 있어요.


이후에 C++ 기준으로 STL이라는 자료구조를 무지 편하게 쓰게 해주는 라이브러리가 있는데, 이거까지 익히고 나면 그래픽 작업같은걸 제외하고 자기가 직접 코딩해야하는 상황이 올 때 왠만한 로직들은 (효율적으로)구현할 수 있어요.



--------------------------------------------------


그외에 무엇에 중점을 둘 지는 자신이 뭘 위해서 코딩공부를 하는지 우선 확실히 해야 합니다.


1. 알고리즘 구상한걸 구현 / 실험하는 목적으로 하는 경우 : 대학원생이나 학문하는사람들이 검증용으로 하는 그런거

- 이런건 메모리고 뭐고 실질 수행시간 측정하고 퍼포먼스 확인하고 그런게 우선이라 for if문만 잘 쓰고 자기 쓸 함수만 제대로 구현 잘 하면 문제없어요. 사실 이런건 오히려 MATLAB같은게 적합하죠.

 

2. 윈도우창 띄우고 UI같은거 만들어서 간단하게 가시화 하고싶은경우.

- 1번이랑 연결되는 경우가 많긴 한데, 간단하게는 MFC라는 VisualStudio에 내장되어 있는 기능을 사용해 구글링해가며 만들면 되겠지만, 그냥 심심풀이로 창띄우는거 아닌 이상 대부분 가시화를 위해서 최소 OpenGL이든 OpenCV든 그래픽 라이브러리를 수반하니까 어쩔수 없이 남의 코드를 빌려 써야합니다. 이 라이브러리를 가져다 쓰는 과정이 제일 세팅이 쉽다는 Visual Studio에서도 미리 만들어진 Binary(.dll)파일 안쓰고 새로 라이브러리 빌드해서 쓰려면 초반에 고생하는 경우가 많아서, 


 일단 사용하고싶은 라이브러리에 "빌드"라고 검색해서 좀 귀찮은 작업을 수반하지만 자기 버전에 맞게 .dll파일을 만들어 적용하는법을 좀 습득할 필요가 있고, 유명한 라이브러리 아니면 레퍼런스 보면서 함수명이랑 인자보고 얘가 뭐하는 함수인지 지레짐작해서 하는것도 익숙해질 필요가 있어요.

 

 

3. 전자장비 만들고 싶다 (임베디드)

- AND OR XOR & | 같은 비트연산 써먹을 일이 정~말 많고, 요즘 전자기기도 메모리가 빵빵해서 그렇게 아껴쓸 필요까진 없지만, 공간최적화 관련 지식이 좀 필요합니다.

- 아두이노라고 있는데, 사서 한번 만져보는거 추천해요 (사실 Atmega kit같은거 사서 레지스터 레벨에서 다뤄보는걸 더 추천하지만) 

 

4. 앱 만들고 싶다

 안드로이드인지, 윈도우인지, 앱등인지 플랫폼 하나 정하고 나서 

 보통 객체지향(OOP) 맞춰서 제대로 설계하는게 이상적인데, 진짜로 진지하게 앱을 만들 단계가 온다면 좀 중형 프로젝트가 될 것 같으니 코딩을 해보면서 자기 자신 코드를 끊임없이 갈아엎어서 가독성을 향상시키는 연습을 해야해요.

 

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호