[App 개발] 프로그래밍 공부하는 방법
본문
그냥 나름대로 정리해봄..
--------------------------------------------------------------------------------
1 전산개론 등의 컴퓨터 기초 습득
인터넷, 워드 등 어느정도 컴퓨터를 다룰 수는 있어야겠지.
관련 과목 : 전산개론(1학년)
추천 서적 및 참고자료:
2 프로그래밍 언어 기초 습득(C++, JAVA 추천)
프로그램을 짜는데 흥미를 느낄 수 있을 정도의 난이도로 학습하는 것이 바람직할듯 하다. 그런 면에서 웹 프로그래밍도 추천할만 하지만, 나중을 위해서 조 위에 추천하는 언어가 괜찮을듯.. 언어의 사용법(문법), 간단한 프로그램을 작성할 수 있는 능력을 기른다.
관련 과목 : C언어 및 실습, 프로그래밍 응용 및 실습, 프로그래밍 언어, 소프트웨어 응용
추천 서적 및 참고자료:
3 알고리즘, 자료구조
프로그래밍을 효율적으로 하기위해 컴퓨터의 기능을 충분히 살릴 수 있는 자료구조를 공부하고, 문제에 대한 올바른 해법을 위한 알고리즘을 배운다.
관련 과목 : 자료구조, 이산수학, 파일처리론, 알고리즘, 수치해석
4 객체지향적으로 프로그래밍 하기(OOP) + 자신이 주로 사용하는 언어 실력 확고히 다지기.
이때즈음 OOP에 대한 개념을 확실하게 깨우치고 프로그래밍 하는 것이 좋다. 사실 프로그래밍 언어 배울때 처음부터 OOP개념을 잡고 나가면야 더할나위없이 좋겠지만, 개념부터가 어려워 프로그램 처음짤 때에는 적당히 공부하다가, 이때즈음 개념을 확실하게 잡는것이 좋다. 그러면서 C++, JAVA 등에서 실제로 OOP개념을 적용시켜 프로그래밍 할 수 있는 기술을 습득한다. 또한 이때즈음 자신의 메인 랭귀지를 정하고 기술을 확고히 다지는 것이 좋다. C++사용자는 STL을 함께 배우는 것도 좋다.
관련 과목 : 소프트웨어 공학
추천 서적 및 참고자료:
5 리팩토링 학습
리팩토링이란 코드속의 나쁜 냄새를 찾아 없애는 방법론이다. 쉽게 말해서 이미 짠 코드를 예쁘게 다시 재조정하는 이야기인데, 사실 프로그래밍을 하다 보면 이게 꼭 필요하다. 어떤 사람은 함수하나에 모든 기능을 다 넣기도 하고, 코드를 이것저것 난잡하게 짜기도 하는데 리팩토링을 수련하여 나쁜 냄새없는 코드로 만들도록 하자.
관련 과목 : 소프트웨어 공학
추천 서적 및 참고자료: 리팩토링
6 디자인 패턴
우리의 앞선 선배들께서는 프로그래밍을 짜는데 대한(주로 클래스 설계방법) 이미 똑같은 문제에 대한 해결책을 정형화시켜서 만들어 놓았다. 수많은 선배들이 어떤 문제에 대해 고민하여 만든 정형화된 패턴들을 습득하고 실제 문제에 직면했을때 적절한 패턴을 사용하도록 하자.
관련 과목 : 소프트웨어 공학
추천 서적 및 참고자료:
==================================================================
예전에 공부를 하면서 방법에 대해 정리해본 것인데..
지금은 그때 생각과 많이 차이가 나는 것 같네요..
어떻게 하면 좀더 능률적으로 공부하고 작업할 수 있을까요?
Xcode를 접하면서 새로움에 매일같이 놀라는 영환군이었습니다..
최신글이 없습니다.
최신글이 없습니다.
댓글목록 3
hongjuny님의 댓글
영환군님의 말씀에 모두 동의하는 바입니다.
한 가지 추가해야 할 것이 있다면...
보기 좋은 소스코드가 잘 짜여진 코드는 아니라는 점...
함수 하나에 모든 기능을 때려넣는 것은 bottom-up 방식으로 코딩하는 사람들이 쉽게 저지르는 실수이죠. ^^ 기능별로 잘 구분해서 정리하는 것이 여러모로 유리하긴 합니다.
그러나, 동전에는 항상 앞뒤가 있죠.
너무 잘게 자르다보면 필요 이상으로 잘게 부수어뜨리는 실수를 범할 수 있습니다. 한 뭉치로 있을 때에는 파이프라인에 잘 정리할 수 있었을 코드가 점프/스택포인터 변경으로 깨어질 수도 있겠지요.
요즘은 정말 자신이 무슨 짓을 저지르고 있는지도 모른 채 그저 열심히 프로그램을 짜는 사람이 늘어났습니다. 열심히 짜는 건 좋은데, 잘 짜야죠. ㅎㅎ
더불어서, 유연한 사고방식도 많은 도움이 됩니다. 특히 여러 사람이 모여서 작성하는 대형 소프트웨어의 경우 사람마다 각각 다른 프로그래밍 방식 때문에 의견 충돌을 겪는 일이 잦습니다. 어떤 사람들은 프로그래밍을 예술이라고 말하기도 하는데, 이 부분에서는 약간 다릅니다. 예술에서야 자기 주장이 뚜렷한 작품이 호평을 받겠지만, 소프트웨어 업계에서는 왕따를 당합니다. ㅡㅡ;
영환군님의 댓글
그렇군요.
hongjuny님 말씀대로 자신의 스타일을 유지하는 것도 중요하지만
다른 사람의 스타일에 대해 이해를 하고 이어갈 수 있다는 것도 중요하군요.
공부하는 입장에서 요즘 딜레마에 빠지고 있습니다~
진도가 안나가네요.. @_@;;
최기영님의 댓글
해야하는 일은 프로그래밍이 아닌데, 그걸 하기 위해 어쩔 수 없이 프로그래밍에 손을 댄지가 상당히 오래 되었군요. 덕분에 주먹구구식 코딩만 자꾸 늘고 있습니다. :-(