프로그래밍을 배우는 과정에서 생기는 의문입니다. 고수님들 많

tyolee83의 이미지

현재 자바 프로그래밍을 차근차근 배워가고 있는 학생입니다.

언어를 알아가면서 한가지 의문이 생기는것은,

그러니까 의문이라기 보다 약간의 등이 가렵다는 표현이 더 어울릴지도 모르겠네요

무슨 기능을 사용하고자 할때, 그 언어에서 제공하는 API를 사용하게 되잖아요....

그렇다면 프로그래밍을 할 때

"아 이기능은 이 클래스와 이 메소드를 쓰는거지!"

하고 딱 떠오르면 좋겠지만

초보의 입장에선 아무것도 모르는데 떠오를 리가 절대 없잖아요....

그렇다면 저런 상황에서 어떻게 해결책을 찾아야 하는지 모르겠네요

질문이 좀 이상한가요... 이해가 되시는지.... -_-a

제 짧은 예상으로는

API 문서에서 클래스의 이름을 보고 감을 잡아 찾아 들어가서

설명을 보고 맞으면 쓰고 틀리면 좀 더 찾아보고.....

근데 이게 자바는 웹에 API 정리가 잘 되어있다는 가정하에 생각한건데요... 다른 언어는 그렇지 않은 것들도 있잖아요

도대체 그런건 어떻게 해결해 나가는지 궁금합니다.

책을 아무리 찾아봐도

제 가려움을 시원하게 긁어주는 책이 보이질 않네요

글을 두서없이 써서 죄송합니다만

고수님들께서 많은 답변 부탁드립니다.

아무래도 경험이 많으시잖아요~~

익명 사용자의 이미지

대부분의 언어는 나름대로 형식으로 정리된 표준 라이브러리 문서가 있습니다. 자바의 API 문서만큼은 아니더라도 사용하는데에 별 지장은 없습니다. 지장이 있다면 사람들이 그 언어를 사용하지 않겠지요. 표준이 아닌 라이브러리에 대해서는 오로지 삽질뿐입니다...아는 사람한테 물어보던가 웹에서 검색을 해보는 수 밖에는 없습니다.

tyolee83의 이미지

... wrote:
대부분의 언어는 나름대로 형식으로 정리된 표준 라이브러리 문서가 있습니다. 자바의 API 문서만큼은 아니더라도 사용하는데에 별 지장은 없습니다. 지장이 있다면 사람들이 그 언어를 사용하지 않겠지요. 표준이 아닌 라이브러리에 대해서는 오로지 삽질뿐입니다...아는 사람한테 물어보던가 웹에서 검색을 해보는 수 밖에는 없습니다.

그러니까요... 제 말뜻은 -_-a

표준 라이브러리가 있다 해도

내가 원하는 기능을 하는 것이 어떤것인지 알고싶으면

경험에 비추어 보거나, 아니면 라이브러리 이름갖고

추측해보는 수밖에 없나... 이것입니다.

초보인 이상 경험이 많을 리가 없고

라이브러리 이름갖고 추측하는것도 쉽지 않은데

이럴떄 어떻게 해야 하나.... 이게 제 질문입니다만... -_-a

//TODO

서지훈의 이미지

이럴 경우엔 ...

1. 책을 찾아 본다.
2. 구글신의 계시를 확인한다.
3. 관련 커뮤니티에서 검색 / 질문 한다.
4. 친구나 주변 사람들에게 물어본다.
5. 포기하고 다른 길을 찾아 본다.

전 보통 이런 흐름으로 해결을 합니다.
이 이상 더 좋은 방법이 있을지 ?
아무리 뛰어난 프로그래머라도 모든 API나 class, method, ... 들이 바로바로 떠오르지 않고, 머뭇거리거나 모르는 기능이 있을 수도 있습니다.
이런걸 좁힐 수 있는게 공부와 실습을 통한 경험 획득 밖에 다른 길은 없습니다.

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

yulisys의 이미지

가장 좋은건 미리미리 여러분야에 걸쳐 꾸준한 연습을 하는것이겠죠.
당장 내가 하는일과 상관없는 일이라서 배워두길 꺼려하거나 평생 나랑 상관
없다고 하더라도, 뭐든지 연습을 해놓으면 다음에 유용하게 써먹을수 있습니다...

만, 이론과 실제는 다르기 마련이죠.. 저도 마찬가지이고.. ^^;

자바로 구현할때 쌩판 첨 보는 기능을 구현해야 한다면, 기초적인 개발
방식에 대해 도움을 얻고자 할때 저는 주로, 이곳을 참고합니다.

http://www.javaalmanac.com/

각 package 별 클래스에 대한 사용예제들이 있어서 좋거든요..

haze11의 이미지

저같은 경우는 아는 함수가 있으면 사용하고,
없으면 만들어 사용합니다.
다만 뭔가 할때 관련 소스를 찾아놓고 참고를 하죠.

kyano의 이미지

제 간단한 삽질 경험에 의하면...

예전에 데비안 감자 버전 설치할 때
며칠에 걸쳐 dselect으로 패키지 하나씩 내려가면서
모든 패키지들의 설명을 다 읽었습니다...

한 5번 정도 저런 짓을 했더니 :-(
대강 라이브러리들의 이름 보면 무슨 일을 하는
것인지 감이 오더군요...

시간 투자는 엄청나게 컸지만...
일단 한번 빡세게 했더니... 도움이 되기는 했습니다...

p.s. 물론 감자였으니 가능했지... 지금의 사지나 시드라면 때려죽여도
못합니다... :twisted:

--
Have you ever heard about Debian GNU/Linux?

shamlock의 이미지

흠..
저또한 C 언어를 배울때 무척 당황스러웠습니다.
이걸 어디에 쓸것인지 모르고 C책에 있는 함수 사용법과 예제를 타이핑해보면서
막무가내로 익히게 되었죠
사실 그때 막막했다기 보다는.. printf() 하니깐 화면에 내가 써놓은 글자가 나오네
하면서 신기해하면서... 그런식으로 함수들 하나하나 배웠습니다.
사실 천재가 아닌한.. 프로그래밍을 처음하는 사람에게 책이 없으면
시작하기가 어렵다고 생각이 듭니다.
좋은 시대에 태어나서 책들이 널려있으니 다행인거죠
그와 더불어 신기해하는 맘까지 있으면 더 열심히 할 수 있을거 같습니다.
(제 경우엔 신기하니깐 계속 하게 되더라구요)

그러다가 어떤 프로그램을 만들면서... 내가 필요한 기능은 이건데 함수가 없을까? 하는 고민을 하고 찾게 되구요. 때로는 만들기도 하죠
그 프로그램을 세번이나 다 뜯어고쳐가며 만들었는데요
이걸 대학 1학년때 취미로 했더랍니다. 누가 돈주는 것도 아니고^^ 지금은 못할것 같아요
그렇게 해도 저는 C언어를 잘한다는 생각이 안들더라구요
내가 만들어본거 이거만 겨우 아는 정도지 C언어에 대한 미쩍지근한 느낌이 남은 상태였습니다.

근데 C언어 졸라 잘한다는 15년 경력의 모 회사 팀장이 대학에 강의하러와서
숙제를 내줍니다. GLIBC 라이브러리 전체를 요약 또는 번역하라...
만만치가 않았죠.. 1달 정도 걸렸습니다. 모르는 내용은 영문을 그대로 넣고
아는것은 번역하고 이래저래 예제 프로그램을 만들어보고
근데 그게 무척 도움이 되요
어쨌거나 저쨌거나 GLIBC를 한번 보게된 셈이죠

그러고 나서야... 언어란 도구일 뿐이라는 선배의 말을 이해했습니다.
매뉴얼 및 문서가 많은데 못만들게 없겠군 하는 자신감이 이때 생겼습니다.

2학년 과정으로 자바를 하는데 두려움이 겁이 안나더라구요
자바책 하나 사서 3분의2정도 다 보고나니 (혼자 속으로 )별거아니네 하는 말을 하게 되데요
분명이 이 기능을 하는게 있을거야..하는 맘으로 자바라는 언어를 접하게 되었구요. C와 문법도 거의 비슷한데다가 printf가 System.out.print로 바뀌었다는 .. 머 그정도 느낌으로 자바언어를 배우게 되었구요
나중엔 객체라는 개념도 익히고... 언어론적인 자바와 C의 차이도 배우고..

그러면서 운영체제도 배우고 , 리눅스에서 이것저것 만들어보고 그랬던거 같습니다.

프로그램을 처음시작하는 사람을 기준으로해서 하는 말입니다.
1. 일단 책을 사서 기본적인 함수를 배운다
신기한 마음이 들면 매우좋다
2. 예제 말고 조만한 애플리케이션 프로젝트를 해본다.
3. 그 언어의 라이브러리 전체를 다 읽어본다.
자바라면 표준 패키지의 API를 읽어보거나
예제로 만들어보는 것이 좋겠네요
다 읽기 힘들거 같으니 표준 패키지만.. java.lang 이랑 java.util 등등.. 아는 거만 봐야겠죠.
정말이지...
C언어의 경우 한번은 매뉴얼을 통독하는 좋습니다.

4. 이제 부터 컴퓨터 공학을 공부하기 좋다.

3번까지의 과정이 6개월에서 1년은 걸리게 되더라구요
고수들은 위 과정을 안합니다. 그냥 인터넷에서 검색해서
문법배우고, 예제 몇게 만들어보고 필요한 기능들은 찾아서
하게 됩니다.

저는 파이썬을 심심풀이로 배우고 있는데
(쉘스크립트 만들기 짜증나서 좀 편해볼라고)
책한권사서 지하철에서 이래저래 문법이나 보고 있다가
나중에 필요할때 찾아쓰는 방법으로 하게 되더라구요

@.@

익명 사용자의 이미지

헤즈 wrote:
저같은 경우는 아는 함수가 있으면 사용하고,
없으면 만들어 사용합니다.
다만 뭔가 할때 관련 소스를 찾아놓고 참고를 하죠.

저도 보통 이렇게 합니다.
그런데, 대부분은 만들어 쓴다는....(고려해 보건데, 있을법한 라이브러리지만, 물어보기 어려운 경우/ 검색시간이 많이 들것같다는 경우)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.