애자일 이야기 블로그중, 프로그래밍 언어 배우기의 달인 이란 글을 읽고, 적극적 읽기를 실천해 보기로 했습니다.
튜토리얼을 읽는 것은 다른 프로그래머랑 비슷해 보입니다. 차이가 있다면 읽을 때 다음 작성할 프로그램을 염두에 두고 읽습니다. 그래서 읽다가 이쯤이면 그 프로그램을 작성할 수 있겠다 싶으면 그 자리에서 멈추고 코딩을 시작합니다. 완성을 확인하고는 다시 아까의 자리로 돌아와서 읽기를 계속합니다. 이 때에는 다음 목표 프로그램을 염두에 두면서 말이죠.프로그래밍 언어 배우기의 달인 본문
그래서 요즘 읽고있는 언어 책인 "거침없이 배우는 펄"책 2장에 한 연습문제를 풀어보기로 했습니다. 적극적 읽기와 조금 다르긴 하지만...
거침없이 배우는 펄 2장 2번 연습문제.
반지름을 입력 받아, 원주를 구하는 문제.
펄로 작성된 코드
정답지를 보고 코드 업데이트!
#!/usr/bin/perl -w $pi = 3.141592654; print "What is the radius? "; chomp($radius = <STDIN>); if ($radius lt 0) { $radius = 0; } $circumference = 2 * $pi * $radius; print "The circumference of a circle of radius $radius is $circumference";
커피스크립트도 가물가물해서 커피스크립트로도 만들어 봤습니다.
커피스크립트로 작성된 node.js 코드
stdin = process.stdin stdout = process.stdout PI = 3.141592654 stdin.setEncoding 'utf8' stdin.resume() stdout.write "What is the radius?" stdin.once 'data', (input) -> radius = parseInt input, 10 radius = 0 if radius < 0 circumference = 2 * PI * radius stdout.write "The circumference of a circle of radius #{radius} is #{circumference}\n" process.exit()
node.js와 같이 비동기 환경에선 단순히 값을 하나 받아 오는 코드도 쉽지 않았습니다.
결론
책을 단순히 읽기만 할 때는 다 이해한 것 같았는데, 막상 코드로 옮기려 하니 하나도 제대로 못하더라는..