배우기 어려운 언어, 자바.

leafriend의 이미지

제목은 낚시입니다; 죄... 죄송;

얼마 전 디자인을 주로 하다 요 몇 년간 개발을 한 형을 만났습니다.
(요새는 편집/기획 학원을 다닌다네요. -_-;)
그 형과 이런 저런 얘기를 하다 일반인이 볼 만한 자바 입문서가 없다는 얘기가 나왔습니다.
저야 계속 개발을 해왔고 그 덕에 자바를 새로 배울 때 별 어려움이 없었기에
일반인이 자바를 배울 때 겪을 고충에 대해 생각해 본 적이 없었죠.

그리고 시간이 좀 지나서 요즘 일반인 친구 하나를 붙잡고 자바를 가르치려는데
정말 막막하더군요.

일단 문법부터 막힙니다.
어쩔 수 없이 일단 외우라고는 해도 효율성은 떨어지겠죠.
연산자와 키워드가 일반인이 한 번에 외우기엔 좀 부담스럽죠.
(자꾸 일반인을 강조하는게,
자바를 배우기 전에 C나 아님 다른 알골계열인 PHP 등이라도 해봤으면 수월하지만,
그런 경험이 없는 사람에겐 모든 게 처음 보는 거죠)

package example;
 
import java.util.Date;
 
public class WhatTimeIsItNow {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
 
		Date now = new Date();
 
		System.out.println(now);
 
	}
 
}

이런 간단한 예제를 설명하려고 해도,
임포트가 뭐고 클래스는 어떤게 필요하며
정적 메서드와 일반 메서드의 차이는 어떻다. 등등등
주석도 한 줄, 여러 줄이 있는데 위에 건 그냥 주석이 아니라 JavaDoc인데 어쩌구 저쩌구……
일단 넘어가고 설명을 하자니 어디까지 건너 뛰어야 하는지도 애매하네요.

그래도 누구한테 설명하는 건 좀 한다고 생각했는데
진짜 실력자(다른 의미로 말입니다;)를 만나니 제 능력이 보잘 것 없음을 알게 되네요.
^^;

ddeng72의 이미지

소설같은 시리즈를 좋아합니다.

소설같은 자바라는 책이 있죠.

제 생각에는 입문서로서 이것보다 더 쉽게 적은 책은 없는 것 같습니다.
그 책을 한번 추천해주세요.

xyhan의 이미지

소설같은 자바 를 보면서..
프로그래밍 설명은 이렇게 시작 해야지. 라고 생각했던 1인...

하지만 중반부는 다른 책이랑 별반 차이는 없습니다..
뭐 처음이 중요하죠
-흠 어느센가 1800 이...
============================================================

선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스-
의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-

============================================================

============================================================

선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스-
의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-

============================================================

dragonkun의 이미지

입문서로 Head First Java 정도면 쉽지 않나요?

책 구성에 있어서는 호불호가 분명히 갈리는 시리즈지만, 읽어보면
조금은 유치하다고 느낄 정도까지 쉽게 설명하려고 노력했다는 느낌이 들던데요.
--
Emerging the World!

Emerging the World!

moons의 이미지

제 개인적인 생각으로는 입문하는 수준에서는 자바를 설명하는게 C나 C++보다는 좀더 수월하다고 봅니다.

일단 자바는 기본적인 구현시 제약사항이 많은 편인데 이게 처음 입문할때는 머리를 복잡하게 하지 않아서 좋습니다.

물론 깊게들어가면 C나 C++보다 더 복잡하고 유연성이 너무 오바스럽지 않나 싶을정도 이긴 합니다만 적어도 시작하는 입장에서는 접근하기가 더 쉽다고 봅니다.

어차피 고급기술은 책도 책이지만 실전과 경험에서 우러나오는것이므로 그냥 입문서 얇은거 한권 사서 읽어보는게 좋을거같습니다.

저역시 소설같은자바 추천합니다.

온라인 강좌도 있습니다.

http://www.jabook.com/jabook_original/book_second_novel_java/second_novel_java_html/index.html

군더더기 없고 딱 알아야할것만 설명되있어서 입문자에게 좋다고 생각합니다.

winner의 이미지

소설같은 Java를 읽어본 적은 없습니다만 좋지 않을 거라고 추측합니다.
소설같은 C#은 최악이었거든요. 차라리 C# Specification 이 입문자에게도 좋다고 생각할 정도였으니까요.

제 기억으로 Matz가 Hello World!를 출력하기 위하여 public class blah~ blah~ 한 언어는 싫다고 말했던 것으로 압니다.
Java 이상으로 맨 처음 시작하는 단계에서 난감한 언어가 또 있나요?

물론 그 맨 처음이 하루 안에 이루어지는 과정이므로 그것만 가지고 Java가 입문자에게 어렵다고 말하는 것은 좀 곤란합니다만 간단한 작업을 위하여 쓸데없는 과정이 많아 programming은 징그럽다라는 인상은 줄 것 같습니다.

jungho_gun의 이미지

네, 저도 동감합니다. 소설같은 시리즈는 일단, 입문서를 본뒤에 보면 그나마 괜찮다고 봅니다.

===========================================
누구나 실수는 한다. 나도 예외는 아니다.

===========================================
누구나 실수는 한다. 나도 예외는 아니다.

moons의 이미지

소설같은 java를 읽어본 입장에서 말씀드린거였습니다.

개인마다 책을 받아들이는 입장이 다르긴 하지만 대체나 소설같은 java는 평이 좋은 편입니다.

근데 java가 처음시작하는 단계에서 난감하다는건 어떤부분을 보고 말씀하시는지 궁금하네요.

제 경우는 java로 프로그래밍을 시작했고 후에 C++을 좀 보게됬는데 후자가 더 시작하기 난감하드라구요..

기억을 더듬어보자면 java의 경우 jdk깔고 path잡고 바로 프로그래밍 했던거 같습니다.

C++은 컴파일러 찾는데 부터 좀 해맸던 기억이 있네요.. 컴파일러가 여러개다보니 어떤걸 쓰는게 가장 무난한지부터 판단을해서.ㅎㅎ

자바의경우 걍 믿고 SUN이 었거든요(자바를 만든 곳이니 결정이 단순해지죠)

거기다 윈도우와 리눅스 컴파일러가 서로 다르다보니 리눅스에서도 같은 고민을 하게 되더군요. 물론 입문하는 입장에서 말이죠.

아마도 적응력에대한 부분이라 개인적인 차이가 있긴 하겠지요

leafriend의 이미지

온라인에 공개된 소설같은 자바를 좀 훑어봤는데
전산학 공부를 한 사람에게는 읽을 만 할 것 같네요.
다만 일반인에게는 좀 어렵지 않나 싶네요.

ddeng72의 이미지

How 보다 Why를 설명하는 책은 흔하지 않은 것 같습니다.
그 중에 소설같은 시리즈는 Why를 설명하기 위해 많은 부분을 할애하고 있고요.

How야 나중에 기본을 익힌 뒤에 다른 책으로 참고하면 되고, 입문서로서는 정말 괜찮은 책이라 생각됩니다.

freestyle의 이미지

일반인이 프로그래밍 언어를 처음 보고 이해한다면
천재적 재능을 가진 것입니다.

처음부터 프로그래밍 언어로 풀지 마시고,
한글과 문법이라는 개념면으로 설명해 보세요.

그래도 모른다면
둔재적 재능을 가진 것입니다 ^^;

그리고 아는 것과 가르치는 것은 별개의 문제입니다.
물론 매우 깊이 안다면 쉽게 가르칠 수 있습니다만..

배울 준비가 안 된 분과 가르칠 연습이 안 된 분의 만남...
시간이 조금 필요할 듯 싶네요.
---------------------
Go to the U-City

----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------

jungho_gun의 이미지

그 일반인에게 우선 필요한건, 문법책이 아니라 "oop의 개념에 대해 설명해주는 책"이 아닐까요?

===========================================
누구나 실수는 한다. 나도 예외는 아니다.

===========================================
누구나 실수는 한다. 나도 예외는 아니다.

leafriend의 이미지

그렇죠.
OOP 뿐만이 아니라 프로그래밍 전반에 관한 기초를 알려줘야겠어요.

lieps의 이미지

갑자기 젤 처음 접한 언어가 gw-basic 이었던게 행운이었던걸까? 하는 생각이 드네요;
java 라... 어쨌거나 hello world 실행해 보고 관심이 가야 언어라는 걸 익힐수 있지 않을가 생각이 듭니다.
모든 배움은 어쩔수 없이 배우는 것과 관심과 흥미를 가지고 배우는 것의 차이가 확인하다는 생각을 합니다.

옛 생각을 잠시 하자면, 저는 gw-basic 다음에 turbo-c 를 바로 관심을 가졌었는데,
그 이유는 단지 .exe 를 만들수 있다는 신기함 때문이었습니다.
지금이야 확장자가 뭐든 상관없게 되었지만 :-)
---
To solve an interesting problem,
start by finding a problem that is interesting to you.

---
To solve an interesting problem,
start by finding a problem that is interesting to you.

kyagrd의 이미지

옛날에 무슨 파이썬이니 루비니 나오기 전에도 C가 베이직보다 배우기 어려웠습니다. 이게 무슨 포인터나 배열 메모리 관리같은 그런 개념 때문에 그런 게 아니고 (그런 건 처음에 안배우죠), 그런 것 이전에 베이직 인터프리터에서는 그냥 명령어 치면 바로 결과를 볼 수 있는데 C는 무슨 컴파일도 해야 되고 에러 나면 줄번호 찾아서 어딘지 봐야 되고 이런 것 자체가 엄청난 차이입니다.

처음 프로그래밍 가르칠 때는 REPL 대화식 환경을 갖춘 하스켈 같은 걸로 가르쳐야죠. 입문서도 우리말로 된 것이 나왔잖요 (책광고 -_-). GUI가 꼭 지원되는 대화식 환경이어야 한다면 DrScheme 같은 걸로 스킴으로 가르쳐도 되고요. 실제로 초딩 저학년에게 DrScheme 가르치는 사람도 봤습니다.

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

leafriend의 이미지

ㅎㅎㅎ
아이디가 낯이 익다 싶더니 '그 분'이시군요.
베타 리더 때를 생각해 보니
차라리 제 친구한테는 이 책이 나을 수도 있겠네요.
아직 못 질렀는데 빨리 질러야겠습니다. :D

jick의 이미지

Introduction to Programming in Java: An Interdisciplinary Approach
Robert Sedgewick, Kevin Wayne

http://www.amazon.com/Introduction-Programming-Java-Interdisciplinary-Approach/dp/0321498054
http://www.cs.princeton.edu/introcs/home/

서비스 기획자인 제 아내가 몸값을 올리기 위해(???) 프로그래밍을 좀 알아둬야 하겠다고 해서 찾아보다가 추천한 책입니다.
앞에 조금 보고 꽤 괜찮은 것 같다고 하기는 했는데, 그 이후 바빠서 못보더군요. 그래서 100% 장담은 못하겠습니다.

문제는... 책값이 좀 비싸고...
.........................
.........................영어입니다.

(그렇습니다, 어쩌겠습니까, 프로그래머는 무조건 영어를 잘해야 합니다. 프로그래머가 되려는 일반인도...)

번역본이 있는지는 잘 모르겠네요.

* 위의 두번째 URL에 들어가면 chapter 1을 pdf로 볼 수 있습니다.

leafriend의 이미지

비싼 거야...
담배도 줄이고 술도 끊고 하면 되겠지만...
.........................
.........................영어로군요;

Necromancer의 이미지

소설자바 책 내용 자북에 공개되어있죠.
책을 안사봐서 다 공개된건지 모르겠지만, 공개된것만 마스터해도 나머지는 약간의 구글링과 SDK만 보면 다 알 정도로 분량이 상당합니다.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

novice의 이미지

제 실력에 댓글 달기가 참 무안하지만..
예제 많은 교재 하나 골라서 Laern & Run 반복이 최고 같습니다.

I don't belong here..

jungho_gun의 이미지

예전에 학교선배가 해준 명언이 생각나는 군요.

"백문이 불여일타"

===========================================
누구나 실수는 한다. 나도 예외는 아니다.

===========================================
누구나 실수는 한다. 나도 예외는 아니다.

sDH8988L의 이미지

전... 프로그래밍을 한 번도 해보지 않은 일반인에게 Java를 처음 가르치는 건 좀 무리라고 생각합니다...

차라리, perl과 같이 아주 직접적인 script 언어부터 조금이라도 맛보고 나서 기본적으로 컴퓨터 시스템이 돌아가는 환경이라는 걸 안 후에 Java를 가르치는 것이 낫지 않을까 합니다.

아니면, C를 먼저 배우는 것도 좋을 거 같구요... 물론, 너무 고수준으로 말구요...

처음부터 객체 지향 개념을 가지고 프로그램을 배우는 건 어렵지 않을까요?

gurugio의 이미지

제가 자바를 배우다가 포기했던 이유는
"왜/어떻게 이렇게 되는데?"라는 질문때문이었습니다.
왜 import를 해야되는데? 왜/어떻게 예외가 날라가는데??? 등등을
질문하다가 답을 못찾고 그만...어셈블리를 시작하고...결국 헤어나지 못하고 이모양이 됬습니다만
어쨌든 첫 프로그래밍을 배울때는 아주 추상화된 언어나 아주 바닥 언어가 좋지 않을까 생각합니다.
자바는 좀 어중간한 느낌입니다.

----
섬기며 사랑하면 더 행복해집니다.
몸에 좋은 칼슘이 듬뿍담긴 OS 프로젝트 - 칼슘OS http://caoskernel.org

johan의 이미지

글쎄요. 일반인(?)을 상대로 프로그래밍 가르쳐야 한다면, 쉬운 프로그래밍 언어야 하리라고 봅니다.

일반적으로 발간된 책이 많을 수록 어려운 프로그래밍 언어라고 할 수 있습니다. 대략 발간된 책 20권 이내라면 쉬운 언어라고 봅니다. 자바 책은 몇권이나 발간되었을까요? (위에 무슨 소설이 어쩌고 하는 책도 소개되던데, 자바 쉬운 언어 아니라 온갖 발광을 다하는 구나 하는 생각만 듭니다)

moons의 이미지

"발간된 책이 많을 수록 어려운 프로그래밍 언어" 가 아니라
"발간된 책이 많을 수록 인기있는(또는 현업에서 자주사용되는) 프로그래밍 언어" 가 아닐까요?

단순한 경제원칙으로만 생각해도 그럴거같은데.. 뭔가 심오한 다른 원리가 있는걸까요?

그리고 위의 내용을가지고 "발광"이라고 표현하신걸보니 나름 자바라는 언어에 악감정이 있어보이네요..

johan의 이미지

책 한두권 사서 공부하여 마스터할 수 있는 프로그래밍 언어가 있다면, 이후에 다른 책들이 무수히 출판된다 한들 얼마나 많이 이익을 내겠습니까?

배우기 어려우니까 온갖 방법을 동원해서 가르치기 때문에 그러하고, 한낱 프로그래밍 언어 따위에 인간이 무슨 감정을 싣겠습니까? (최소한 제게는) 감정은 생물에게나 품는 것이고 프로그래밍 언어란 언제든 버리고 다른 것으로 사용할 수 있는 도구에 불과합니다.

moons의 이미지

원글과는 동떨어진 답글들이 되버렸지만..

암튼 제생각과는 많이 다르군요..

전 단순한 스크립트적인 기능만 하는 언어가 아닌이상은 하나의 언어가지고 활용할수있는 분야는 무궁무진하다고 봅니다.
즉 책한두권가지고 그 무수히 많은 활용분야를 다 설명하기엔 버겁다는거죠..

가령 C++로 모든 분야를 마스터(님의 표현을빌려서) 하는게 책 한두권으로 가능하다고 보시나요?

그냥 바로 머리속에 떠오르는것만도..
네트워크, 서버, 보안, 파서, 분야에 관한것들
COM, DCOM, ATL, WTL ,STL
MFC, QT, GTK++

상당히 방대하지 않나요?

배우기 어려워서 온갖방법을 동원한다기보다는 배울게 많아서 이것저것 다 설명하려다보니 그런거라고 봅니다. 하나의 언어가 너무 잡다하게 배울게 많다는건 저도 반대합니다만.. 그렇다고 그런이유로 그언어를 "발광"한다 이런표현은 좀 아니라고 보네요.

그리고 언어는 도구일뿐이라는거 누구나 다 아는 사실이지만 "한낱 언어따위" 정도로 폄하될건 아니라고 봅니다.

bookgekgom의 이미지

저는 세상에서 가장 어려운 언어를 알고있죠.

HTML 인데요.

C++ 이나 자바 따위하고는 어려움의 정도가 틀리죠.

얼마나 어렵냐면 HTML 관련책을 아마존에 쳐보면 자바 따위보다 몇배는 많이 뜨거든요.

그런 의미로 HTML 이 가장 어려운 언어임 ㅇㅇ

그리고 그걸 아는 나는 킹왕짱ㅇ 우왕ㅋ굳ㅋ 개념to the안드로매닼
---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

beyond의 이미지

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

jick의 이미지

C++ 자바 HTML? 다 캐버로우하셈.

영어가 킹왕짱임.

(...음 쓰고 나서 보니 사실인 것 같음... -.-)

영어가 어렵다는 분은 다음 언어를 추천해드림. 출판된 책 20권은커녕 한권도 찾기 힘들 테니 무진장 쉬울 것임.

* 히타이트어
* 마야어
* 클링곤
* 고대슬라브어
* 줄루어

powersys의 이미지

자바 실제로 어려운언어 맞습니다..

저희가 차세대때문에 개고생하고 있는데요...

기존시스템에 비해 동일한프로그램 구현에 두배이상의 시간과 인력이들어간다는건 확실합니다.

죠커의 이미지

자바가 처음에 배우기 어려운 언어라는데는 동감합니다.

여러가지 키워드의 의미를 모른 채 외워야 Hello World라도 찍을 수 있죠.

그런데 점점 많은 프레임워크나 언어들이 복잡해져가는 상황에서 이 정도는 애교로 봐줘야 하지 않나 싶어요.

- 죠커's blog / HanIRC:#CN