週記くらい

  • Profile

Monthly Archives: April 2009

新人教育 教えるということは難しい。

Posted on 2009/04/26 by smeghead

ちゃんと新人教育をした経験も無いんだけど、今回、上海から戻ったらすぐに新人教育を開始することになっていた。

準備もそこそこに開始してみた。

本当ならちゃんと準備して開始できれば良かったんだけど、全然準備の時間が取れなったので、とにかく、始めることにした。日本のスタッフが、javaを使って変数とかメソッドとか教えてたらしい(なんでjavaか?とか、なんで変数からメソッドに飛べるのか?とかいろいろ)ので、それを前提にして、最初は、変数とか関数が判ってるものとして応用問題とか出してみたんだけど、どうもおかしい。全然判ってない様子。仕方が無いので、前提を全部捨てて、一番最初から教えることにした。

スペック

  • 新人は、大卒2人。文系。プログラム経験無し。
  • 俺は、昔、独学で遊びながらプログラムを覚えた。その後、実際のプロジェクトをやることで勉強してきた。要するに、ちゃんとした教育を受けていない。

うーん。教える方も教わる方も、スペック的に厳しいです。

うまく行かないのは

教わる方は、プログラムという未知の世界の話なので、何がわかっていて、何がわかっていないかもわからない状況におちいりやすい。教える方は、自分が初心者だった時のことは忘れているので、どこまでが常識的な話なのかが判断できない。

教育に使用する言語

プログラムを作れるようになるには、低いレベルなりに「あー、こうゆう風にやってけば、動くものができるんだな」という経験をする必要があると思う。(これは、数少ない昔の記憶の中で覚えていること) そのためには、「おまじない」が少ない言語の方が適していると思う。「とにかく#includeするんだよ。」とか、「とにかくpublic static main という…」のが沢山出てくると判った気になれない。あと、変数・関数を覚えようとしている初学者にとって、オブジェクト指向なんてものは、邪魔なだけだと思う。

ということで、教育に使用する言語は、PHPにしました。

定数、変数について

変数というものを知らない人に説明するのは非常に難しい。というか、説明はできるけど、理解してもらうのが難しい。定数が何の役に立つのか、変数が何の役に立つのか、定数と変数の違いは何か。説明はしてみたものの、理解してもらっている実感が無い。

変数に格納できる値の型について

値の型は、int型・文字列型・浮動小数型、その他諸々がありますよ。あと配列、連想配列がありますよ、ということを説明した。

よく、変数を箱に例えて説明している参考書とかがあるけど、今回の教育では、下のようなイメージで説明してみた。

f:id:smeghead:20090426173248g:image


$age = 21;

という文があったら、ageという名前の変数があって、そこから矢印が出ていて、どっかのint型の21を差していますよ。

$age;

という文があったら、ageという名前の変数があって、どこにも矢印が出ていない状態ですよ。

f:id:smeghead:20090426173936g:image

$arr = array(2, 4, 6, 8);

という文があったら、arrという名前の変数があって、そこから矢印が出ていて、どっかの配列を差していますよ。その配列の要素は、2, 4, 6, 8になってますよ。

関数について

関数の難しさは、変数より更に上でした。

一通り説明した後、一つのファイルの処理を、関数化してもらうように課題を出したのですが、回答を教えても理解しきれていない様子。

関数について、更に説明したこと

関数の利点について理解ができないようだったので、見方を変えて説明してみた。「関数はサービスである」という視点から、利用する側と提供する側に分けてみた。

  • 関数という機能を利用する人にとって大事なこと
    • 関数名
    • その関数が、何をする関数か?
    • 引数
    • 戻り値
  • 関数という機能を提供する人にとって大事なこと
    • 細かい処理を隠蔽することができる。
    • バグが出た場合、関数内の修正だけで、解決できる可能性が高まる。(修正部分の局所化)
    • ただし、凝集度が高まるので、実装の難易度は上がる。

だから、関数を作るときは、まず、利用者側が利用するための情報を決定することが一番大事ですよ。

考え出すと、本当に教えるということは難しい。本当に何も知らない人に教えるときの資料など、いいのがあったら教えて欲しいです。。。

Posted in free, php | 4 Comments |

新人教育 心構えが大事

Posted on 2009/04/26 by smeghead

SI業界みたいに、パソコンを使ったコミュニケーションが重要になる業界だと、特に心構えが大事になってくると思う。

結城浩の心がけ

自分がさまざまな活動をするとき、 活動をしている自分と同時に、その活動を見ている自分もいます。 自分が行動するとき、でたらめに動いているわけではなく、 その背後には何かの「ポリシー」「行動基準」「心がけ」があるように思います。 自分の活動を見ている自分にペンを持たせて(キーを打たせて)、 その「心がけ」なるものをまとめてみました。

結城浩の心がけ

有意義な文書を公開してくれている結城さんに感謝しつつ、新人にはここを読んで感想文を書いてもらいました。(ただ読んでもらうだけなのもなんなので、感想文も書いてもらいました)

仕事の心がけ

文章を書く心がけ

メールを書く心がけ

Webページを作る心がけ

技術系メーリングリストで質問するときのパターン・ランゲージ

チャットの心がけ

俺用

教えるときの心がけ

Posted in free | 2 Comments |

リハビリ

Posted on 2009/04/16 by smeghead

3ヶ月間上海に行ってました。その間、common lispから離れていたのですが、急に不安になってリハビリを始めました。(common lispから離れていたというより、プログラミングから離れていたと言っても過言ではないかも。phpをチョコっと触ったけど、それ以外はword,excelばかりだったので。でも上海での経験は良い経験だったので、そのまとめエントリは書く予定です)

スピードレース!

メールマガジン『Perlクイズ』

とは言えスピードレースはせずに、実直にリハビリしてるだけです。

(defun speed (n &optional acc)
(if (> n 1)
(let ((new-value (if (zerop (mod n 2))
(floor n 2)
(1+ (* n 3)))))
(speed new-value (push new-value acc)))
(length acc)))

問題の手続きをそのまま書いただけなのに、コーディングの時間が非常にたくさんかかってしまう。かなりの量のリハビリが必要だ。

SPEED
CL-USER> (loop for i to 7
collect (speed i))
(0 0 1 7 2 5 8 16)
CL-USER>

slimeの使い方もすっかり忘れてしまった。

Posted in lisp | Leave a comment |

Pages

  • Profile

Archives

  • March 2018
  • May 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • April 2014
  • November 2013
  • October 2013
  • July 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • July 2006

Categories

  • android (35)
  • apache (1)
  • bison (1)
  • BTS (18)
  • c# (23)
  • cgi (1)
  • chrome (9)
  • chromeextention (18)
  • clclcl (9)
  • clojure (13)
  • cloudbug1 (2)
  • css (4)
  • cygwin (7)
  • C言語 (21)
  • dart (1)
  • dotnet (11)
    • vb.net (2)
  • e-hash.jp (1)
  • eclipse (2)
  • emacs (10)
  • excel (1)
  • flex (1)
  • framework (11)
  • free (92)
  • gae (4)
  • gcc (4)
  • gimmehash.in (1)
  • glipper (3)
  • golang (7)
  • howm (1)
  • html (3)
  • ikushipe (1)
  • java (47)
  • JavaScript (28)
  • linux (16)
  • lisp (92)
  • lua (34)
  • luatinycgi (2)
  • mba (1)
  • Meadow (4)
  • memo (1)
  • music (5)
  • mysql (1)
  • neta (5)
  • O/Rマッピングツール (4)
  • obj-c (6)
  • OOP (6)
  • oracle (1)
  • perl (48)
  • php (38)
    • CakePHP2 (2)
  • PostgreSQL (8)
  • PowerShell (1)
  • putty (1)
  • python (14)
  • redmine (2)
  • ruby (7)
  • s3 (1)
  • sakura (5)
  • screen (1)
  • Selenium (1)
  • SF (1)
  • SKK (4)
  • slime (6)
  • sql (8)
  • sqlite3 (4)
  • starbug1 (179)
  • tthttpd (3)
  • twitter (7)
  • ubuntu (14)
  • Uncategorized (4)
  • unix (14)
  • unkode-mania (5)
  • vba (3)
  • vim (24)
  • w3m (1)
  • Windows (16)
  • wordpress (1)
  • zsh (6)
  • 愚痴 (1)

WordPress

  • Log in
  • WordPress

Subscribe

  • Entries (RSS)
  • Comments (RSS)

Pages

  • Profile

Archives

  • March 2018
  • May 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • April 2014
  • November 2013
  • October 2013
  • July 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • July 2006

Categories

  • android (35)
  • apache (1)
  • bison (1)
  • BTS (18)
  • c# (23)
  • cgi (1)
  • chrome (9)
  • chromeextention (18)
  • clclcl (9)
  • clojure (13)
  • cloudbug1 (2)
  • css (4)
  • cygwin (7)
  • C言語 (21)
  • dart (1)
  • dotnet (11)
    • vb.net (2)
  • e-hash.jp (1)
  • eclipse (2)
  • emacs (10)
  • excel (1)
  • flex (1)
  • framework (11)
  • free (92)
  • gae (4)
  • gcc (4)
  • gimmehash.in (1)
  • glipper (3)
  • golang (7)
  • howm (1)
  • html (3)
  • ikushipe (1)
  • java (47)
  • JavaScript (28)
  • linux (16)
  • lisp (92)
  • lua (34)
  • luatinycgi (2)
  • mba (1)
  • Meadow (4)
  • memo (1)
  • music (5)
  • mysql (1)
  • neta (5)
  • O/Rマッピングツール (4)
  • obj-c (6)
  • OOP (6)
  • oracle (1)
  • perl (48)
  • php (38)
    • CakePHP2 (2)
  • PostgreSQL (8)
  • PowerShell (1)
  • putty (1)
  • python (14)
  • redmine (2)
  • ruby (7)
  • s3 (1)
  • sakura (5)
  • screen (1)
  • Selenium (1)
  • SF (1)
  • SKK (4)
  • slime (6)
  • sql (8)
  • sqlite3 (4)
  • starbug1 (179)
  • tthttpd (3)
  • twitter (7)
  • ubuntu (14)
  • Uncategorized (4)
  • unix (14)
  • unkode-mania (5)
  • vba (3)
  • vim (24)
  • w3m (1)
  • Windows (16)
  • wordpress (1)
  • zsh (6)
  • 愚痴 (1)

WordPress

  • Log in
  • WordPress

CyberChimps WordPress Themes

© 週記くらい@やーづ

With Google+ plugin by Geoff Janes