프로그래밍 배우려고 하는데 처음 배우

프로그래밍 배우려고 하는데 처음 배우

작성일 2018.12.30댓글 4건
    게시물 수정 , 삭제는 로그인 필요

프로그래밍 배우려고 하는데 처음 배우는거라서 도움이 필요합니다.

1. c언어,자바, 파이썬 등 있는거로 아는데 언어 별 특징이랑 배워야하는 순위 좀 알려주세요.
2. 코딩이 뭔가요?
3. 프로그래밍을 하는데 사용하는 프로그램은 어떤게 있고 어디서 설치할 수 있나요?
4. 프로그래밍 책도 추천해주세요.

도움주시면 감사하겠습니다.
추가내공은 100걸게요.



profile_image 익명 작성일 -


안녕하세요

IT 전문 교육 컨설턴트 쿤열쿤 입니다
학생분의 질문에 성실히 답변드리겠습니다


프로그래밍 이란
학생분이 컴퓨터 언어를 활용해서 프로그램을 제작하는
과정을 뜻합니다

코딩이란 같은 말입니다

교육하는 뜻을 코딩이라 많이들 부르며
보통 프로그램만들땐 "프로그래밍"을 한다 라고 합니다


언어는 대표적으로
C언어 & C++ & JAVA & 파이썬이 있습니다


<C 언어>

1. C 언어의 특징 및 장단점

■ 시스템 프로그래밍 언어

C 언어는 시스템 프로그래밍 언어이다. 시스템 프로그램이란 운영체제, 언어처리계, 편집기,

디버깅 등 소프트웨어 작성을 지원하는 프로그램을 의미한다. C 언어는 뛰어난 이식성과 작은 언어

사양, 비트 조작, 포인터 사용, 자유로운 형 변환, 분할 컴파일 기능 등의 특징을 갖고 있기

때문에 시스템 프로그래밍 언어로 적합하다,

C 언어는 고급언어이면서 저급언어인 양면성을 갖고 있는 특별한 언어이다.

<C 언어의 위치>

C 언어는 시스템․하드웨어를 제어하는 저급언어와 사용자․소프트웨어 중심의 고급언어 중간에 위치한다.

 

■ 뛰어난 이식성

C는 8비트 CP/M등의 컴퓨터부터 슈퍼컴퓨터에 이르기까지 모두 사용할 수 있는 강력한 이식성을 갖고 있다. 한 시스템에서 개발된 소프트웨어를 약간만 수정하면 다른 컴퓨터 시스템에서도 동일하게 실행할 수 있다

 

■ 범용 프로그래밍 언어

C는 운영체제와 같이 하드웨어와 밀접한 프로그램뿐만 아니라 운영체제 위에서 작동하는 워드프로세서. 게임, 개발도구와 같은 다양한 응용 프로그램을 작성할 수 있다. 풍부한 자료형과 자료 구조화 기능, 현대적인 제어구조, 43개에 이르는 다양한 연산자, 암수를 이용한 인터페이스 제공, 풍부한 라이브러리 함수 제공, 포인터를 이용한 메모리 제어 등의 기능을 갖추고 있다.

 

■ 간략한 문법 표현

C프로그램은 함수를 사용해 간결하게 프로그램을 작성할 수 있다. 각 함수는 변수들의 선어 부분과 수행될 문장으로 구성된다. 또한 포인터를 사용해 효율적으로 자료의 주소를 표현할 수 있으며 동적으로 메모리를 관리할 수 있다. 그리고 전처리기를 이용해 파일포함, 매크로 기능, 조건번역등의 기능을 간단하게 수행할 수 있다.

C언어는 전산 이론 및 실무에 적용하기 위해 제어구조, 자료구조 및 연산자를 충분히 갖추고 있는 현대적인 언어이다. 하향식 설계와 구조적 프로그래밍, 모듈식 설계 등이 용이하여 신뢰성 있고 이해하기 쉬운 프로그램을 작성할 수 있다. 포인터를 사용해 어셈블리어처럼 컴퓨터의 기능을 최대한 효율적으로 사용할 수 있으며 어떤 시스템에 사용되던 C 프로그램도 수정 없이 약간의 수정만으로 다른 시스템에서 실행시킬 수 있는 장점이 있다.

 

2. C 언어의 사용분야

■ 운영체제

C 언어는 유닉스 운영체제를 개발하기 위해 탄생한 언어이다. 따라서 C 언어를 가장먼저 사용해 개발된 프로그램이 바로 컴퓨터 운영체제이다. 현제 우리가 사용하는 컴퓨터 운영체제 거의 대부분은 유닉스를 기반으로 만들어진 리눅스, 윈도우, 솔라리스, 매킨토시, OS/2등의 운영체제이다. 이러한 운영체제는 거의 대부분 C 언어로 만들어져 있다 또한 최근에는 휴대폰이나 PDA, 셋톱박스 등에 탑재되는 리얼타임 운영체제도 C 언어를 이용해 주로 개발되고 있다.

 

■ 컴파일러

C 언어를 개발할 수 있게 해주는 컴파일러들은 모두 X 언어로 작성되어 있다. 또한 C 언어를 이용해 비주얼 베이직이나 파위빌터 같은 새로운 프로그램 개발 언어를 만들어 사용하고 있다.

 

■ 게임

최근에 개발되는 게임들은 DirectX openGL을 이용해 만들어 지고 있다. DirectX와 openGL은 C 언어로 작성된 API이다.

 

■ 유틸리티와 상용 소프트웨어

워드프로세서, 스프레드시트 프로그램, 오라클, MS-SQL 서버, MySQL과 같은 데이터 베이스 엔진,

인터넷익스플로러, 넷스케이스 네비게이터 등의 웹브라우져도 C 언어로 작성되어 있다.

 

■ 산업용 소프트 웨어

공장 자동화 시스템, 산업용 로봇 제어 프로그램, 가전제품 제어 프로그램 등 다양한 산업분야에서 C 언어는 광범위하게 사용된다.



<C++>

1. C++ 언어의 특징 및 장단점

C++는 기존 C 언어의 기능을 완전히 포함한 객체 지향 언어이다. 기존 C 언어에서 사용한 라이브러리들을 그대로 사용할 수 있으며 C 언어로 개발하는 것보다 시간과 노력을 크게 줄일 수 있는 특징을 가지고 있다. C++라는 이름이 만들어진 이유는 C 언어에 있는 ++(어떤 변수에 1을 증가시키는 연산)연산자로부터 생겨난 것으로 C 언어의 확장판이라는 의미를 가지고 있다. C++는 C 언어의 특징이 하드웨어 접근 능력과 OOP개념을 이용한 객체지향 프로그래밍 능력을 모두 갖고 있다.

 

2. C와 C++의 차이점

■ 함수 정의에 관련된 차이

C 언어에서 int f();라고 선언된 함수는 매개변수에 대해 어떤 것도 언급하고 있지 않는다. 매개변수가 있을 수도 있고 없을 수도 있다는 의미로 해석된다. 하지만 C++에서는 매개변수를 갖고있다는 의미가 된다. C++는 int f();또는 int f(void); 처럼 사용된다.

 

■ 문자 상수와 전역 변수

C 언어에서 문자 상수가 자동적으로 정수로 바뀌지만 C++는 그렇지 않다. C 에서는 전역변수를 여러 번 선언해도 에러가 발생하지 않지만 C++에서는 에러가 발생한다.

 

■ 유효 식별자 길이

C 언어는 처음 31문자만이 식별자로 유효하다. C++에서는 적어도 1024문자가 식별자로 유효하다.

 

■ main()함수 호출

C 언어에서는 사용자가 프로그램에서 main()함수를 호출할 수 있지만 C++는 호출할 수 없다.

 

■ Register 변수

CPU안에 내장된 초고속 메모리인 Register 메모리에 C 언어에서는 변수의 주소를 가질 수 없지만 C++에서는 가능하다. 하지만 Register 메모리에 주소를 할당하면 이식성에 큰 문제가 발생하기 때문에 거의 사용하지 않는다.

 

실제 C++와 C 언어의 차이점은 객체지향 개념을 지원유무의 차이가 있을 뿐 거의 동일한 언어라고 볼 수 있다. 현재 사용되는 대부분의 C++컴파일러 들은 모두 ANSI/ISO C 언어를 컴파일 할 수 있도록 설계되어있다.




<Java>

1. Java 언어의 특징 및 장단점

■ 간단한 언어

자바는 C++과 매우 유사하다. 그러나 프로그램 작성에 꼭 필요하지 않은 고급 프로그램기능을 제거했다. 예를 들어 포인터, 다중상속, 헤더파일, 구조체, 공용체 등의 관련된 기능을 갖고 있지 않다. 이러한 이유로 C 나 C++를 알고 있다면 자바를 쉽게 배울 수 있다. C++의 기능 중에 자주 사용하지 않는 복잡한 기능을 뺀 축소형 버전이 자바이다.

 

■ 객체지향 언어

자바는 지금까지 개발된 프로그래밍 언어 중 가장 완벽한 개체 지향 언어중 하나이다. 기본 자료형을 제외하고 자바에서 다루는 모든 데이터는 객체를 통하여 처리된다. 자바의 모든 포트는 객체의 클래스 안에서 조작된다. 각 클래스는 부모 클래스의 상속을 받은 변수와 메소드의 집합으로 구성되어 있다. Object라는 최상위 클래스로부터 다양한 클래스가 상속되어 구현되어 있다. 자바는 단일 상속만 지원되기 때문에 C++에 있는 다중 상속에서 발생할 수 있는 문제를 효과적으로 해결할 수 있다.

 

■ 구조 중립적인 언어

자바 프로그램은 바이트 코드로 컴파일 되기 때문에 자바를 지원하는 어떠한 플랫폼에서도 실행할 수 있다. C 나 C++처럼 새로운 플랫폼이 나올 때 마다 코드를 수정해 재컴파일해줄 필요 없이 새플랫폼에 적당한 자바 가상 머신만 바꿔주면 소스 코드나 재컴파일 과정 없이 바로 실행할 수 있다. 또한 휴대폰, PDA, 셋톱박스 처럼 컴퓨터와 하드웨어 구조가 다른 플랫폼에서도 자바의 중립성은 보장된다. 자바는 C 나 C++처럼 하드웨어의 특징에 따라 데이터형이 바뀌지 않고 동일하다. 자바의 Integer 형은 32비트이고 Long 형은 64비트이다. 또한 자바 시스템은 운영체제에 대한 접근을 지원하는 다양한 라이브러리를 제공한다.

 

■ 쓰레기 수집기능

쓰레기 수집기능으로 메모리 누수를 걱정하지 않고 메모리를 마음대로 사용할 수 있다.

 

■ 견고한 언어

자바는 메모리에 액세스 할 때마다 문제가 발생하는지 체크한다. 만일 의도하지 않는 어떤 일이 발생한다면 자바는 이들을 예외 상황으로 처리하고 그에 합당한 처리를 수행한다. 또한 자바는 허락된 메모리에만 엑세스하도록 설계되었기 때문에 C 나 C++에 비해 시스템 다운이 적다.

 

■ 분산 환경에 적합한 언어

자바는 처음부터 인터넷을 기반으로 하는 네트워크 언어로 개발되었다. 자바는 뛰어난 이식성과 호환성으로 다양한 데이터베이스를 쉽게 처리할 수 있는 조건을 완벽하게 만족시킬 수 있다.

 

■ 다중 스레드 지원

2. Java의 사용분야

■ 일반 애플리케이션 개발 분야

J2SE라는 개발 도구를 사용하여 데이터베이스, 윈도우 프로그램, 사용자 인터페이스, 파일 입출력, 네트워크 통신, 이미지 처리 등의 다양한 프로그램을 작성할 수 있다.

 

■ 웹 애플리케이션 개발 분야

웹 애플리케이션은 크게 자바 애플릿과 자바 서블릿으로 나뉜다. 자바 서블릿은 다시 JSP와 EJB가 추가되어 분산 웹 프로그램을 작성할 수 있도록 구성되어 있다. 주로 기업 환경에서 작동하는 인터넷 프로그램을 작성할 때 사용한다.

 

■ 휴대용 정보기기 애플리케이션 개발 분야

휴대용 정보기기 애플리케이션 개발은 주로 휴대폰과 PDA 관련 프로그램을 개발할 때 사용된다.



<Python>

1. Python의 특징과 장단점

Python은 1989년 암스테르담에서 프로그래머인 귀도 반 로섬(Guido van Rossum)에 의해 개발되기 시작한 프로그래밍 언어로, 플랫폼 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디 〈Monty Python's Flying Circus〉에서 따온 것이다. 파이썬은 언어 자신의 기능은 작게하여 사용자가 언제나 필요로 하는 최소한의 기능만을 제공하도록 만들어져 있다. 이것은 펄의 TIMTOWTDI (there's more than one way to do it - 문제를 해결하는 방법은 단 한가지가 아니다) 철학과는 대조적인 것이며, 파이썬에서는 다른 유저가 썼더라도 동일한 일을 하는 프로그램은 대체로 모두 비슷한 코드로 수렴한다. 기본 기능에 없는 많은 기능이 라이브러리에 의해서 제공되고 있다.

또, 파이썬 에서는 프로그램의 문서화가 매우 중시되고 있어 언어의 기본 기능에 포함되어 있다. 파이썬은 원래 교육용으로 설계되었기 때문에 읽기 쉽고, 그래서 효율적인 코드를 가능한 간단하게 쓸 수 있도록 하려는 철학이 구석구석까지 침투하고 있어, 파이썬 커뮤니티에서도 알기 쉬운 코드를 선호하는 경향이 강하다

 

■ 데이터 형

파이썬은 기본 데이터형으로 정수형, 긴 정수형(long integer),부동 소수점수형, 복소수형, 문자형, 유니코드 문자형, 함수형을 갖고 있다. 긴 정수형(long integer)은 메모리가 허락하는 한 무제한의 자리수로 정수 계산이 가능하다. 여기에 집합적 데이터형으로 리스트형, 터퓰(tuple)형, 사전형, 중복을 허락하지 않는 집합형이 있다. 리스트형, 사전형은 내부의 값을 나중에 바꿀 수 있고, 터퓰형은 한 번 값을 정하면 내부의 값을 바꿀 수 없다. 집합형은 변경 가능하게도 변경 불능으로도 만들 수 있다. 또 많은 객체 지향 언어와 같이, 유저가 새롭게 자신의 형을 정의하는 것도 가능하다.

 

파이썬은 동적 타이핑 언어이기 때문에, 변수가 아닌 값이 타입을 가지고 있고, 변수는 모두 값의 참조(C++의 reference)이다.

 

■ 라이브러리

파이썬에는 「건전지 포함("Battery Included")」이란 기본개념이 있어, 프로그래머가 바로 사용할 수 있는 라이브러리와 통합 환경이 이미 배포판과 함께 제공된다. 이 때문에 파이썬의 표준 라이브러리는 매우 충실하다. 여기에는 정규 표현식을 비롯해 운영체제의 시스템 콜이나 XML 처리, 직렬화, HTTP ,FTP 등의 각종 네트워크 프로토콜, 전자 메일이나 CSV파일의 처리, 데이터베이스 접속, GUI, HTML, 파이썬 코드 구문 분석 툴 등이 포함된다.

 

써드파티 라이브러리도 풍부하며, 행렬 연산 패키지 Numeric Python 이나 이미지 처리용 Python Imaging Library, SDL 랩퍼인 PyGame 등은 잘 알려져 있다. 다만, 마이너 라이브러리까지 포함하면 너무 많아서 수습이 되지 않기 때문에, 최근 PyPI (Python Packages Index) 로 불리는 라이브러리의 저장소(repository)를 관리하는 기구가 새롭게 도입되었다.

■ 한글다루기

원래 파이썬은 미국 지역에서 개발되었기 때문에, 한글이나 한자와 같은 2바이트 문자를 지원하지 않았다. 그러나 Python 2.0 에서 유니코드 문자형이 새롭게 도입되어 다국어를 취급할 수 있게 되었다. 다른 스크립트 언어와 달리, 파이썬에서는 문자의 인코딩과 내부 유니코드 표현을 명확하게 구별한다. 유니코드 문자는 메모리에 저장되는 추상적인 개체이다. 화면에 나타내거나 파일 입출력을 할 때는 변환 코덱의 힘을 빌려서 특정 인코딩으로 변환한다. 또, 소스 코드의 문자 코드를 인식하는 기능이 있어, 다른 문자 코드로 쓰여진 프로그램의 동작이 달라질 위험을 해소하고 있다. 파이썬 2.4 에서는, CJK 코덱이 표준으로 배포판에 포함되게 되었기 때문에, 현재는 한글 처리에 문제는 거의 없다. 통합 개발 환경 IDLE에서의 한글 입출력도 기본적으로 가능하다고 한다.


학생분이 독학을 하신다면 저는 비추천을 드립니다

언어는 책으로 공부를 한다고 할수 있는 분야가 아닙니다

직접 만져보고 구축을 해보며

활용을 할수 있어야 "그 언어를 사용할수 있다" 라고 말할수 있습니다

독학으로 자료구조와 알고리즘을 통한 언어 활용을 어떻게 하실 생각이신가요?


많은 사람들이 컴퓨터를 접하다 보니

IT 분야를 너무 쉽게 보는 경향이 있습니다

이건 정말 큰 착각입니다


IT는 전문직이며 기술직입니다

책으로 하는 공부가 아니라 익히며 이해하는 공부입니다

학생분이 독학으로 하시는건 좋습니다

아무래도 학원같은 부분들도 부담이 되며 여러가지 안되는 요인들이 있겠죠


그렇다면 적어도 온라인 강의를 통해서 공부를 하시길 바랍니다

독학으로 공부하는 사람들중 취업으로 성공하는 사람은 10명에 1명도 될까말까합니다

프로그래밍 언어라고 해도 단순한 언어만 공부하는것이 아니라

그에 맞는 활용을 할수 있어야 하는데 이런 부분들은 독학으로

채우기 상당히 힘들기 때문입니다


교재는

[ 윤성우의 열혈강의 ] 교재를 추천드립니다

초보자도 쉽게 할수 있을정도이며

학생분이 처음 배우는 거라면 코딩공부도 하셔야 할거에요

이 부분은 코딩으로 바로 넘어가지 말고 스크래치를 먼저 공부하세요


제가 추천하는 인강 사이트가 있습니다
한번 살펴보시구
어떤걸 배우는지는 각 항목을
[자세히 보기] 클릭하시면
어떤걸 배우는지 커리큘럼이 나와있습니다~

회원가입하시고 앞에 맨처음 나오는 배너를 클릭하시면
1일간 강의를 무료로 듣기가 가능합니다 



질문자 대상으로 [ 무료 진로 / 진학 / 취업 / 교육 컨설팅 ] 을 진행하고 있으니

앞으로 진로에 대한 고민이나, IT자격증 & IT 취업에 대해서 추가적으로 더 궁금하신 점이 있다면  위 네임카드의 번호에 연락을 주시거나 & 아래 익명카톡에 문자 남겨주세요


문자남겨주시면

나중에 확인후 연락드리겠습니다~^^

profile_image 익명 작성일 -

1. 프로그램을 만드는 방식과 명령어가 실행되는 방식에서 차이가 있습니다. 모두 범용 언어라서 어떠한 문제분야에서든 사용할 수 있습니다.


프로그래밍 언어를 배우는 순서는 없습니다. 배우고 싶은 프로그래밍 언어를 배우세요. 그리고 많은 프로그래밍 언어를 배우는 데 쓸데없이 많은 시간과 노력을 낭비하지 마시고. 어떠한 프로그래밍 언어라도 필요하면 짧은 기간에 빠르게 배워 프로그래밍할 수 있는 능력을 갖추도록 하세요. 그러려면, 먼저 프로그래밍을 배우세요. 먼저 프로그래밍을 배우면 어떠한 프로그래밍 언어라도 보다 쉽고 재미있게 효율적으로 배울 수 있습니다.


C언어, 자바, 파이썬같은 프로그래밍 언어를 배워야 코딩을 배울 수 있다고 생각하십니까? C언어, 자바, 파이썬같은 프로그래밍 언어를 배우는 것이 코딩을 배우는 것이라 생각하십니까? C언어, 자바, 파이썬같은 프로그래밍 언어를 배우면 코딩할 수 있을 것이라 생각하십니까? 매우 잘못된 바보같은 생각입니다. C언어, 자바, 파이썬같은 프로그래밍 언어를 배운다고 코딩할 수 없습니다. C언어, 자바, 파이썬같은 프로그래밍 언어를 배우는 것과 코딩을 배우는 것은 별개 문제입니다.


2. 코딩 다른 말로는 프로그래밍은 컴퓨터를 이용한 문제 해결 과정입니다.


3. 프로그래밍 언어마다 다릅니다. C언어나 C++언어라면, Visual Studio, DEV C++, Code Blocks, 자바라면 NetBeans, 파이썬이라면 파이참 등등이 있습니다.


4. 프로그래밍을 체계적이고 전문적으로 배워 창의적인 혹은 창조적인 문제 해결 능력과 프로그래밍 능력을 갖추고자 하면, "이렇게 하면 나도 프로그램을 잘 만들 수 있다(나프잘)" 시리즈 책들을 참고해 보세요. 독학으로도 할 수 있습니다.


코딩 다른 말로는 프로그래밍이 무엇인지 간단히 봅시다. 프로그램으로 만들고자 하는 것을 전산(컴퓨터) 분야에서는 문제라고 합니다. 그리고 프로그램은 데이터와 명령어로 구성됩니다. 그래서 문제를 풀어 프로그램으로 만들고자 한다면, 문제 관련 데이터들을 어떠한 기억장치에 어떻게 저장하고 어떻게 쓰고 읽을지를 결정하고(자료구조 설계), 어떠한 명령어들을 어떠한 순서로 몇 번씩 실행시킬지를 결정하여(알고리듬 설계), 이렇게 설계된 자료구조와 알고리듬을 C언어, 자바, 파이썬같은 프로그래밍 언어로 문법에 맞게 변환하여(구현) 프로그램을 만드는 일이 코딩 다른 말로는 프로그래밍입니다.


요약하면, 코딩 다른 말로는 프로그래밍은 컴퓨터를 이용한 문제 해결 과정입니다. 그래서 코딩 다른 말로는 프로그래밍을 배울 때는 체계적이고 전문적으로 배워 4차 산업 혁명 하에 살아야 하는 사람이면 반드시 갖춰야 하는 능력인 창의적인 혹은 창조적인 문제 해결 능력과 프로그래밍 능력을 갖춰야 합니다.


이러한 데 프로그래밍할 때 사용되는 도구들인 C언어, 자바, 파이썬같은 프로그래밍 언어를 배운다고 저절로 창의적인 혹은 창조적인 문제 해결 능력과 프로그래밍 능력이 갖춰 지겠습니까? 그렇지 않습니다. 코딩 다른 말로는 프로그래밍을 보다 쉽고 재미있게 효율적으로 배우고자 하면, 프로그래밍을 체계적이고 전문적으로 배우세요.


"이렇게 하면 나도 프로그램을 잘 만들 수 있다(나프잘)" 시리즈 책들을 참고해 보세요. 나이, 성별, 학력, 전공과 상관없이 누구나 독학으로 프로그래밍을 체계적이고 전문적으로 배워 창의적인 혹은 창조적인 문제 해결 능력과 프로그래밍 능력을 갖출 수 있습니다. 카페 "프로그래밍을 배우자"에서 공부하는 방법도 배우고 멘토링을 활용하면, 보다 재미있고 효율적으로 프로그래밍을 배울 수 있습니다.


컴퓨터 앞에 놓고 C언어, 자바, 파이썬같은 프로그래밍 언어, API 라이브러리, Visual Studio, NetBeans, Eclipse같은 언어 프로그램들 같은 개발 도구 사용법만을 가르쳐 남이 시키는 일만 남이 만든 코드를 편집하는 노가다를 양성하는 학원이면, 차라리 독학하세요. 그렇지 않고 컴퓨터 없이 문제를 풀어 개발 도구들로 프로그램을 만드는 방법을 가르쳐 프로그래머를 양성하는 학원이면, 스스로 문제를 풀어 프로그램을 만드는 일인 프로그래밍을 체계적이고 전문적으로 배워 창의적인 혹은 창조적인 문제 해결 능력을 갖출 수 있어 많은 도움이 될 것입니다. 왜냐하면, 개발 도구들로 하는 일인 프로그래밍이란 컴퓨터를 이용한 문제 해결 과정이기 때문입니다.


프로그래밍을 공부하는 데는 공부하는 방법이 매우 중요합니다. 공부하는 방법부터 배우고 시작해 보세요. 그렇지 않지만, 우리나라에서는 대부분 C언어부터 배우고 자바, 파이썬을 배우라고 해서(파이썬부터 배워도 됩니다) C언어, 자바, 파이썬을 배우다 보면, C언어, 자바, 파이썬 책에 적힌 내용은 그럭저럭 이해되지만, 장마다 제시되는 문제를 풀어 C언어, 자바, 파이썬으로 프로그램을 만들고자 하면, 어떻게 해야 하는지 모르겠고, 잘되지 않습니다. 그러면 답지를 구해 코드만 외우고 넘어 갑니다. 망하는 지름길입니다.


C언어, 자바, 파이썬 책에 적힌 내용은 C언어, 자바, 파이썬의 문법이고, 장마다 제시되는 문제를 풀어 C언어, 자바, 파이썬으로 프로그램을 만드는 일은 프로그래밍입니다. 따라서 C언어, 자바, 파이썬의 문법만 배운다고 프로그래밍을 할 수 있는 것은 아닙니다. 그래서 C언어, 자바, 파이썬의 문법을 배울 것인지 아니면 C언어, 자바, 파이썬으로 하는 일인 프로그래밍을 배울 것인지를 먼저 명확하게 하세요. 공부하는 방법이 다르기 때문입니다. 공부하는 목표에 맞게 공부하는 방법을 배워 공부하면 보다 쉽고 재미있게 배울 수 있습니다.

 

공부하는 방법도 설명드려 보겠습니다. 참고해 보세요.


C언어, 자바, 파이썬을 보다 쉽고 재미있게 배우고, 스스로 문제를 풀어 C언어, 자바, 파이썬으로 프로그램을 만들고자 한다면, 먼저 프로그래밍을 배우세요. 문제를 풀어 프로그램을 만드는 일인 프로그래밍을 먼저 체계적이고 전문적으로 배우세요. 그래서 창의적인 혹은 창조적인 문제 해결 능력을 갖추도록 하세요. 왜냐하면, C언어, 자바, 파이썬으로 하는 일인 프로그래밍이란 컴퓨터를 이용한 문제 해결 과정이기 때문입니다.


위쪽 프로그래밍의 정의에 의하면, 먼저 문제를 풀어 알고리듬과 자료구조를 만드는 방법을 배우세요. 그리고 C언어, 자바, 파이썬으로 알고리듬과 자료구조로 프로그램을 만드는 방법을 배우세요. C언어, 자바, 파이썬으로 알고리듬과 자료구조로 프로그램을 만들 때 필요한 C언어, 자바, 파이썬의 문법적인 기능을 이제 C언어, 자바, 파이썬 책에서 찾아서 읽어 보고 적용하는 방식으로 공부하세요. 난이도를 높여 가면서 많은 문제를 풀어 프로그램을 만들다 보면, 스스로 문제를 풀어 프로그램을 만들 수 있고, C언어, 자바, 파이썬도 머리로 기억하는 것이 아니라 몸으로 기억되어 있을 것입니다. 그래서 숨쉬는 것처럼, 걷는 것처럼 자연스럽게 C언어, 자바, 파이썬로 프로그램도 만들 수 있을 것입니다.

 

알고리듬과 자료구조를 만드는 방법을 배우라고 해서 시중에 출간된 알고리듬과 자료구조 책들을 사서 이미 만들어져 책에 실린 정렬과 검색 알고리듬, 연결리스트, 트리, 그래프, 스택, 큐들을 외우지 마십시오. 정렬과 검색 알고리듬, 연결리스트, 트리, 그래프, 스택, 큐들을 만들 수 있도록 알고리듬과 자료구조를 만드는 방법을 먼저 배우라는 것입니다.

 

인터넷에서 사용되는 논리가 "C언어를 알아야 프로그램을 만들 수 있으므로 C언어를 먼저 배우라"고 합니다. 이러한 논리가 우리나라 영어 교육이나 학습에서도 적용되었지요.  우리나라 영어 교육이나 학습은 영어의 문법부터 시작합니다. 그렇게 해서 중학교, 고등학교 심지어 대학교까지 똑같은 방식으로, 영어 문법을 외우는 방식으로 공부하게 됩니다. 그렇게 십 수년을 하지만 헤밍웨이의 유명한 소설 책 한 권 제대로 읽지 못하고, 두 세쪽 되는 에세이 하나 제대로 작성하지 못하고, 지나가는 외국인과 담소한 번 제대로 나눌 수 없지 않습니까?

 

"C언어를 알아야만 프로그램을 만들 수 있다"는 논리라면, 영어의 문법을 공부했다면, 영어 소설책도, 에세이도 회화도 가능해야 하지 않습니까? 어느 분야에서 성공하려면, 10000시간 정도 분야에 집중하면 된다는 이론이 있지 않습니까? 우리나라에서 영어 공부에서는 적용되지 않는 이유는 무엇일까요? 교육과 학습에 문제가 있다는 것입니다.

 

그래서 요사이는 영어 교육과 학습이 매우 실용적으로 바뀌고 있습니다. 문법을 암기하는 것이 아니라, 듣기와 말하기로 바뀌고 있습니다. 듣기와 말하기할 때 필요하면 문법을 공부하고 적용하는 방식으로 말입니다. 그래서 좋은 결과를 내고 있습니다.


프로그래밍 교육과 학습도 바뀌어야 합니다. 문법위주 교육과 학습보다는 문제 해결 중심의 교육과 학습으로 바뀌어야 합니다. 프로그래밍을 공부하는 방법을 배우세요.


C언어나 JAVA언어같은 프로그래밍 언어와 프로그래밍을 체계적이고 전문적으로 공부하는 방법도 설명드려 보겠습니다. 참고해 보세요.

 

프로그래밍은 우리가 생활하는 데 있어 부닥치는 복잡한 문제를 새로운 생각으로 풀어 프로그래밍 언어로 컴퓨터가 처리하도록 하는 프로그램을 만들어 보다 편하게 살 수 있는 세상을 만드는 일입니다. 그래서 어렵습니다. 그렇지만 내가 생각한 프로그램을 만들고 세상 사람들이 사용한다면 엄청난 성취감과 자부심을 느낄 수 있습니다.

 

이러한 프로그래밍을 하고자 한다면 다음과 같은 최소한의 능력을 갖추어야 합니다.

(1) 문제 해결 능력

(2) 프로그래밍 언어 구사 능력

(3) 개발 툴 사용 능력

 

이 중에서 가장 중요한 것은 문제 해결 능력입니다. 문제를 해결할 수 없으면, 프로그래밍 언어 구사 능력도 개발 툴 사용 능력도 아무 소용이 없습니다. 문제 해결 능력은 많은 문제를 풀어 프로그램을 만들어 봄으로 해서 나만의 문제 해결 방법을 만들었을 때 갖추어 지는 것입니다. 따라서 프로그래밍을 배우고자 한다면 체계적이고 전문적인 학습을 해야 합니다. 그러면 누구나 프로그래밍을 할 수 있습니다.


프로그래밍 언어나 프로그래밍을 배울 때는 C언어나 자바같은 프로그래밍 언어만 배우지 마시고, C언어나 자바로 하는 일인 프로그래밍을 먼저 공부하세요. 프로그래밍 언어만 배운 사람이면 프로그래밍 언어가 배우기 어렵다고 하고, 어려운 프로그래밍 언어를 한 권 내지 두 세권 책으로 공부를 마친 후에도 문제를 스스로 풀어 배운 프로그래밍 언어로 프로그램을 만들려고 하면 어디서 부터 시작하여 어떻게 해야 하는지가 막막하다고 합니다.

 

왜 그럴까요? 프로그래밍 언어 책에 적힌 프로그램을 이해하기 위해서는 프로그래밍을 배워야 하는데 그렇지 않고 프로그래밍 언어를 배우고자 하기 때문입니다. 프로그래밍 자체는 어렵습니다. 프로그래밍은 문제를 풀어 컴퓨터가 처리하도록 하는 프로그램을 만드는 일이기 때문입니다.

 

프로그래밍 언어 책에서는 문제를 풀어 프로그램을 만드는 것을 설명하지 않고, 문제를 풀어 해결책(알고리듬)을 만든 후에 컴퓨터가 처리하도록 하는 프로그램을 만들 때 프로그래밍 언어가 언제, 어떻게 적용되는지만을 설명합니다. 그래서 프로그래밍과 프로그래밍 언어를 재미있게 공부하고자 한다면 체계적이고 합리적인 학습을 해야 합니다.


프로그래밍 언어를 배우기 전에 프로그래밍 언어로 하는 일인 프로그래밍을 먼저 공부하세요. 프로그래밍이 무엇인지, 어떻게 하는지, C언어같은 프로그래밍 언어가 언제, 어떻게 사용되는지 그리고 프로그램이 어떻게 작동하는지를 공부하세요. 또한 이러한 개념과 원리를 바탕으로 문제를 풀어 프로그램을 만드는 절차를 배우세요. 이러한 내용을 배우고자 하면, 다음 책들을 참고해 보세요.

 

책들은 "이렇게 하면 나도 프로그램을 잘 만들 수 있다(나프잘)" 시리즈입니다.

 

이렇게 프로그래밍을 이해했다면, 프로그래밍 언어를 배우세요. 무작정 프로그래밍 언어 책을 사고 동영상강의를 보면서 책에 적혀 있는 프로그램을 아무 생각없이 입력해서 실행시켜 보고 머리를 끄덕이고 외우는 방식보다 쉽게 재미있게 프로그래밍 언어를 배울 수 있습니다. 왜냐하면 왜 프로그래밍 언어를 배워야 하는지를 명확하게 이해했고, 프로그래밍 언어 책에 나온 프로그램이 어떻게 작성되었는지를 이해할 수 있고, 마지막으로 프로그래밍 언어 책에 제시되는 문제를 풀어 프로그램을 만들 수 있기 때문입니다.

 

C언어를 공부하고자 한다면 다음 책을 참고해 보세요.
책은 "C를 배우면 함수를 잘 만들어야 한다"입니다.

 

문법만 설명하는 것이 아니라 문제를 풀어 프로그램을 만들 때 C언어가 언제, 어떻게 적용되는지를 설명합니다. 특히 책의 처음부터 끝까지 C언어를 배우면 반드시 만들 수 있어야 하는 함수를 만들어서 사용하는 방법을 설명합니다.

 

카페 "프로그래밍을 배우자"에서 게시글과 동영상강의로 프로그래밍이 무엇인지, 어떻게 하는 것인지 그리고 C언어나 JAVA언어가 언제, 어떻게 사용되는지를 확인해 보세요. 그리고 프로그래밍과 C언어나 JAVA언어를 어떻게 배워야 할지를 생각해 보고 시작하세요. 그래서 시행착오를 줄이세요.


독학을 하신다면 책을 읽는 방법을 바꾸세요. 책을 볼 때 바로 정독을 하지 마시고, 빠른 속도로 전체 내용을 훓어 보는 방식으로 여러 번 보고, 정독을 하십시오. 왜냐하면 모든 내용은 질문자 님에게 새로운 내용입니다. 따라서 어려울 수 밖에 없습니다. 그래서 최소한 책에 어떠한 내용이 담겨 있는지와 자주 사용되는 용어(혹은 개념)에는 익숙해야 정독을 할 수 있지 않습니까? 책의 줄거리나 용어에 익숙하기 위해서 빠른 속도로 전체 내용을 훑어 보는 방식으로 먼저 읽어 보시라고 권하는 것입니다.


좋지 않은 프로그래밍 공부 방법이지만, C언어, 자바, 파이썬의 문법만 배우고자 한다면, 책을 훑어보기로 처음부터 끝까지 빠르게 3-4회 읽어 어떠한 내용인지, 자주 사용되는 용어들에 익숙해 지도록 하세요. 내용이 파악되고, 용어들에 익숙해지면, 처음부터 책에 실린 코드도 컴퓨터에 입력해 보면서, 컴퓨터가 없으면 공책에 적어 보면서 어떠한 문법이 언제, 어떻게 사용되는지를 외우세요. 이때는 "왜 이렇게 할까", "어떻게 작동할까"라는 생각들은 하지 마시고, 외우세요.

profile_image 익명 작성일 -

안녕하세요


IT전문 교육기관 컨설턴트 덕수쌤입니다


질문에 답변드리겠습니다



프로그래밍(코딩) 언어는 기본적으로 c언어가 기초입니다

c언어에서 다른 언어가 파생되었기 때문에 c언어를

필수라고 생각하시고 배우시면 됩니다


공부 과정은 c언어 - 자료구조 - C++ -  자바 순으로 배운다고 생각하시면 됩니다

c언어 배우는데 두려움이 있으시면 요즘 뜨고 있는 python을 추천해드립니다


프로그래밍 언어를 배운다면 어느 곳에 많이 사용되는지 알려 드리자면

자바를 생각하면 웹또는 안드로이드 앱 개발에 많이 사용되고

c언어, c++, c#도 있고 그런데요 게임 개발,임베디드에 사용되고 있습니다

python의 경우 AI를 개발하는 기술중 딥러닝에 사용되고 있습니다


이렇게 프로그래밍은 많은 곳에 사용이 되고 있기 때문에 배우시면 좋습니다

개발자라면 당연히 배우는 과정이고 실무 능력이 중요합니다


책은 검색을 하면 많은 책들이 나오기 때문에 제가 추천을 하기 보다는

직접 확인을 하면서 선택을 하는것이 좋습니다



다만 공부를 하실 때 독학으로 하기 보다는

학교 또는 학원을 통해서 기본부터 체계적으로 배운는것이 좋습니다


추가적으로 다른 궁금한 사항이나 프로그래밍 관련

진로,진학,취업에 대해서 궁금한 사항이 있으면 연락 주세요

연락주시면 1:1 맞춤으로 알려드릴 수 있습니다


카톡 또는 폼을 통해서 상담을 신청해주시면 됩니다^^


오픈카톡 https://open.kakao.com/me/deoksu



카톡ID : zhgl

http://naver.me/FVenDJYX





profile_image 익명 작성일 -

안녕하세요.

 

IT전문교육기관에서 학생들 상담을 해주는

승호쌤입니다.

 

 

 

 

프로그래밍을 공부하려면 어떻게 해야 하는 지에 대해서 많은 학생들이 고민해요.

 

그럼 대부분의 답변은

C언어, JAVA, 파이썬 등 프로그래밍 언어를 배우라고 하죠.

 

그렇다면 프로그래밍언어를 배우면 프로그래밍 할 수 있을까요?

아니죠.

 

프로그래밍 언어는 말 그대로 언어에요.

 

우리가 사용하는 언어와 비슷하다고 생각하시면 이해가 편할거에요.

학교에서 영어를 배웠다고 영어권 국가에 가서 일을 할 수 있을까요?

아니 대화는 제대로 할 수 있을까요?

 

절대 아니에요.

 

프로그래밍 역시 마찬가지에요. 더 어려우면 어려웠지

이론공부만 했다고 실무능력이 저절로 올라가지 않아요.

 

그럼 어떻게 공부해야할까요?

 

어떤 방법이 있는지 알아보려면 프로그래밍이 도대체 어떤건지

그 정의에 대해 먼저 알아야돼요.

 

학교에서 문제를 내고, 그것을 풀 듯이

프로그램을 이용해 만들고자 하는 것이 문제라고 생각하면돼요.

그러면 그 문제들은 데이터와 명령어로 구성되어 있는 것이겠죠.

그렇게 만들어진 문제들, 그것을 푸는 것을 프로그래밍이라고 할 수 있어요.

 

처음에 말했던 것처럼 C언어 등 프로그래밍언어만 배우면

절대 못하는 수준이겠죠?

 

푸는 과정에는 다양한 것들이 존재해요.

 

저장, 읽기, 쓰기 등을 결정하는 자료구조

어떤 순서로 어떤 과정으로 어떤 결과를 만들어낼지 결정하는 알고리즘

 

대표적으로 이 두가지가 가장 많이 필요하죠.

 

이 두가지를 C언어, JAVA와 같은 프로그래밍 언어들로

구현하는게 프로그래밍입니다.

 

 

프로그래밍을 배우고 싶고, 잘하고 싶다?

 

 

그러면 이제 답을 아실거같아요.

프로그래밍 언어를 이용해서 자료구조알고리즘 과정을 걸쳐

프로그래밍을 하시는 것을 연습하시면 그것이 배우는게 되는거고

잘하게 되는 방법인거에요.

 

이런 기본적인 개념들을 알고 공부를 시작하셔야

공부하는데 무엇이 도움이 되는지

어떤 자격증이 필요한지 등

자신이 필요한 것에 대해 명확한 판단을 할 수 있을거에요.

 

추가적인 정보를 얻고싶으시면

https://blog.naver.com/thdrudgh7775/221421000074



 

참고하시면 될 것 같아요.

 

 

 

지금까지 프로그래밍에 대해 설명해드렸는데

IT관련하여 학생들 공부, 진로 방향 등

제가 있는 국가공인전문교육기관에서

자세한 정보들을 통해 무료로 컨설팅을 해드리고 있어요.

 

제대로 공부를 하고 싶은데 방법을 모르겠거나

궁금한 것들이 있으면 카톡 9923ik 문의주시거나

 

https://open.kakao.com/o/silYS94

통해 문의 주시기 바랍니다.

프로그래밍처음배우려고 하는데...

프로그래밍처음배우려고 하는데 자바부터 배워도 될까요? 그리고 독학하려고... 특별하게 프로그래밍언어를 배우는 순서는 따로 있지는 않습니다. 하지만 프로그래밍에...

프로그래밍 배우려고 하는데요 (C...

... -_- 제가 아버지가 프로그래밍 하시는것을 보고 배우려고... 자기한테 배우라고 하시더군요. 그래서 프로그래밍 독학을 시작하려고 하는데, 처음에는 비쥬얼 베이직으로...

언어를 처음 배우려고 하는데......

... 이정도면...걍 딴 언어 추천해주세요 아 그리고 다른 답변 찾아보니까 언어만 배우지 말고 프로그래밍배우라고 하는데 그럼 프로그래밍만 가르치는 책이랑 언어만...

제가 프로그래밍배우려고하는데

제가 프로그래밍배우려고하는데요. 저는 프로그래밍이... 처음에 말했던 것처럼 C언어 등 프로그래밍‘언어’만 배우면 절대 못하는 수준이겠죠? 푸는 과정에는...

프로그래밍 배우려고하는데요.. 저...

... 프로그래밍배우라하시던데; 워드도 따논게 없고.ㅣ;... 제어를 하는데 C언어만으로는 부족하다 하셨는데..... 처음부터 굵은 바이블..같은 책은 살 필요가 없습니다....

C프로그래밍배우려고 하는데요~??

C프로그래밍배우려고 하는데요.. C++은 정말 대충 배웠고... 지금 해라고 해도 한개도 모를꺼에요..ㅠㅠ C처음부터... ㅠㅠ 안녕하세요~^^ C를 배우실려면 우선 기초를 탄탄히...

프로그래밍배우려고 하는데 어디부터

프로그래밍배우려고 하는데 어디부터 하는 것이... 현재 내가 코딩을 왜 배우고 싶은지 이유를 파악하기... 때문에 처음에는 여러 다양한 문법과 제어문같은 기초에 대해...