책을보면 기초적인 프로그램밍은 이해가 가는데, 실제 활용하는 프로그램밍은 왜 이해조차 안될까요?
예전에 책을 보면서
c++ 과 자바스크립트를 공부한적이 있습니다.
그런데 기초적인 프로그래밍은 이해가 가지만,
막상 시계를 만드는 프로그램이나 어떤 활용을 하려면 책을 보아도 이해가 가지 않습니다.
원래 이해가 안되는것인지, 아니면 다른걸 공부해야하는것인지. 아직도 알지를 못합니다.
프로그래밍을 실제 활용하여 앱이나 컴퓨터 제어 프로그램, 또는 제가 만들고 싶은것들을 만들수 있는 방법은 없나요?
안녕하세요. 현직 웹, 전산자입니다.
저도 질문자와 마찬가지로 학교 및 아이티 교육센터에서 교육을 수료받고 같은 고민에 빠진적이 있습니다.
현업에서와 다르게 교육은 이론을 가르쳐주는 곳 이기에 실제 앱을 만들거나 컴퓨터 프로그램을 만드는데는 한계가 있습니다.
질문자님이 하고싶은 개발 방향 선택 (응용프로그램, 웹 , 앱) 등을 결정
(저는 웹개발로 예를 들겠습니다.) 웹 개발을 선택했다면 어느 방향으로 개발을 할것 인지 결정 서버단을 만지는 백앤드개발자가 될것인가, 사용자가 보는 화면을 개발하는 프론트단 UI, UX를 개발할것인가.
서버단 개발을 선택했다면 어떤언어로 개발을 해보고싶은지 구글에서 검색및 선택 . (검색어: 웹 백앤드개발 언어) 자바, 자바스크립트, 파이썬 등등... 언어를 선택할때 가장 많은 고민을 해주셔야합니다.
기본기가 있다면 도서및 구글로 배우거나, 기본기가 없으면 해당 언어를 교육하는 IT교육원에서 1~2달정도 기초를 배워보기.
5. 동아리나 취업을 통해 실제 서비스되는 프로그램들을 접해보기. - 나이가 어리거라 학생신분이면 동아리를 추천드립니다.
질문자에게 많은 도움이 되셨을지 모르겠습니다.
어느 직군이든 마찬가지로 마음만 급하다고 진행할수 있는것은 없습니다. 특히 개발자로 성장하시길 원하신다면 정말 많은 검색과 주변분들의 도움이 필요합니다. 제가 위에 적어둔 순서데로 시간을 투자해서 구글에서 검색해보시면서 한단계 한단계 나아가신가면 많은 도움이 될꺼라 생각됩니다.
감사합니다.
모든 학습의 발전과정은 계단과 같은 형태입니다.
현재 다음 단계로 도약이 되지 않고 있다는 것은 다음 단계로 도약하기 위해 반드시 필요한 개념(또는 원리)을 아직 이해하지 못하고 있을 확률이 높습니다.
보통 프로그래밍 언어를 처음 배울 때 변수 -> 연산자 -> 함수 등의 순서대로 프로그래밍의 문법과 기능들을 배우게 됩니다. 설명을 보고 예제를 따라하면 곧잘 따라합니다. 아주 단순한 예제들이기 때문이죠. 이러한 예제들이 중고등학교에서 배우던 방식과 유사하게 문제풀이 방식으로 설명이 되어 있어 문제풀이에 익숙한 분들에게 어려운 건 없습니다. 마치 영어 단어 암기하는 것처럼 그냥 암기하는 정도의 수준인 것이라고 생각하면 됩니다.
하지만 실제 프로그래밍은 영어 회화와 급이 유사합니다. 실제로 컴퓨터와 대화를 하는 것입니다. 이전에 배운 단어들...변수, 연산자, 함수 등을 조합하여 문장을 만들어 내야 합니다. 영어에서도 내가 원하는 대로 단어만 조합한다고 해서 대화가 되는 것은 아니죠. 상대방이 이해할 수 있게 조합해야 합니다. 물론 이 문법에 대해서도 아주 잘 이해하고 다룰 수 있다면 좋겠지만 우리에게는 시간이 필요합니다.
영어공부를 할 때 보통 단어와 약간의 문법을 외우는 것 외에 자주 쓰이는 표현을 외우는 걸 많이 합니다. 또 외운 표현에 여러 가지 단어를 바꿔가며 표현하기도 하죠. 조금 자신감이 붙으면 두 가지 이상의 표현을 연결해서 표현하기도 합니다. 대부분 이걸 알지만 교재에서 친절하게 변형들을 제공하지 않으면 스스로 하지 않죠?
아마 이러한 단계가 생략되지 않았나 생각됩니다. 단어암기, 문법암기에서 바로 회화단계로 넘어간 것처럼 프로그래밍의 기본기를 교재 위주로 공부를 하다보니 다양한 표현들을 익히지 못하고, 바로 윗단계가 아니라 2~3단계 윗단계로 도약을 하려다보니 힘들었을 수도 있습니다. 조금 귀찮고 시간이 낭비되는 듯 해도, 배운 것들을 스스로 응용해보면서 다양한 표현을 익히고, 책 이외의 다른 사람들이 자주 사용하는 표현법들을 인터넷을 통해 배운다면 조금씩 높은 단계로 성장하실 수 있을 것이라 생각됩니다.
사고방식의 차이와 숙련도의 차이입니다.
수학도 공식을 안다고 문제를 풀 수 있는 것이 아니듯, 프로그래밍도 단순히 해당 용어를 안다고 만들기는 어렵습니다.
처음엔 예제를 통해 해당 로직을 숙지하신 뒤에 기능을 하나씩 추가를 해보는 것도 좋은 방법입니다.
천천히 프로그래밍적 사고로 바꾸신다면, 어느새 자신이 원하는 프로그램을 만들 수 있을 겁니다.
앱이나 컴퓨터 제어는 사실 고급기술에 해당할 수 있습니다.
전반적으로 앱이나 컴퓨터 명령체계 및 OS 설계를 디컴파일을 통하거나 알려진 소스를 통해 접근해야하는데 일반적인 프로그래밍으로는 한계에 부딪힐 수 있습니다.
일반적인 시계를 만드는 프로그래밍이나 계산기를 만드는 프로그래밍은 사실 초보자 단계로
책을 따라 기초프로그래밍을 실습하고
예제를 그냥 보기만 하는 것이 아닌 이해하면서 코딩을 하고,
소스를 보고 논리적인 구조- (시계를 예를 들자면 1초마다 화면에 보이는 초 증가, 60이 되었을 때는 분 증가 후 초를 0으로 바꿈 분 증가시 60이 되면 시간을 조정하고 분을 0으로 바꿈 ) 를 파악하고 프로그래밍을 단계적으로 그려내야 합니다.
단순하게 시계는 어떻게 하지? 가 아닌
시계가 동작하는 기본적인 프로세스를 생각하고 그에 맞추어 프로그래밍을 하셔야 합니다.
모든 개발이 Flow Chart를 머리속에 그리든 맵에 그리던지 한 뒤에
해당 Flow를 따라 개발을 해 나가는 것이 단계적으로 잘 할 수 있고 실수를 줄이는 방법일 것입니다.