コーチングの仕方

新人を指導する立場の人が、自分の指導が下手で新人が育たない。と嘆いていた。

指導が下手なのは、貴方が特別悪いわけではなく、

指導の仕方を知らないのに上手く出来るわけが無い。

というだけの事。

だから、コーチングするための戦略を練る必要があり、

戦略を練る為には、そのための情報を得る(コーチングの手法を学ぶ)必要がある。

今のままじゃ、ゴルフやったことの無い人がホールインワン出来なくて嘆いているような感じだ。

でも、彼にとっては「指導するって難しい。」って事に気づいただけでも収穫だったと思う。

Share

今時の新人研修

今時の大企業は新人研修が充実している。

いたれりつくせりで、新人は渡されたカリキュラムをこなすだけでいい。

チーム開発ごっこみたいなものもあるんだけど、出来そうな奴に任せておけば、

おこぼれにあずかれる。

で、配属されてから、てんやわんや。

結局、新人研修で学んだのは、受け身の姿勢と、他人任せな姿勢。

そんな感じになっている気がする。

Share

再改訂版:DataGrid内のラジオボタンでグループに出来ない問題の回避方法(ターゲットはASP.NET1.1です。)

■[ASP.NET][.NET Tips]改訂版:DataGrid内のラジオボタンでグループに出来ない問題の回避方法

■[ASP.NET][.NET Tips]過去のサンプルの修正DataGrid内のラジオボタンでグループに出来ない問題の回避方法

NAL-6295の舌先三寸 – つまらない事の中に重要な事がある。

というエントリで公開していたソースでは

テキスト部分をクリックすると最後のラジオボタンが選択される。

NAL-6295の舌先三寸 – 改訂版:DataGrid内のラジオボタンでグループに出来ない問題の回避方法

以前に(といっても1ヶ月前)この記事で改訂版を出していましたが、下記の制限がありました。

・プログラム側でcheckedの内容を変更すると、

次のポストバックのLoadViewState時にcheckedの内容が変更されて、

 クライアントで選択されたcheckedの内容を取得できなかった。

(EnabledViewState=falseでも)

そこで、下記の改訂版を出すことにしました。

Group化する場合のみ、ViewStateを無視する仕様になっています。

001 Imports System.ComponentModel
002 Imports System.Web.UI
003 
004 
005 <DefaultProperty("Checked"), ToolboxData("<{0}:RadioButtonEx runat=server></{0}:RadioButtonEx>")> _
006  Public Class RadioButtonEx
007     Inherits System.Web.UI.WebControls.RadioButton
008 
009     Public Overrides ReadOnly Property UniqueID() As String
010         Get
011             If Me.GroupName Is Nothing OrElse Me.GroupName.Length = 0 Then
012                 Return MyBase.UniqueID
013             Else
014                 Return Me.GroupName()
015             End If
016         End Get
017     End Property
018 
019     Public Overrides ReadOnly Property ClientID() As String
020         Get
021             If Me.GroupName Is Nothing OrElse Me.GroupName.Length = 0 Then
022                 Return MyBase.ClientID
023             Else
024                 Return MyBase.UniqueID
025             End If
026         End Get
027     End Property
028 
029     Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
030         Me.Attributes.Add("value", MyBase.UniqueID)
031         MyBase.OnPreRender(e)
032     End Sub
033 
034     Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
035         MyBase.OnInit(e)
036         If Me.Page.IsPostBack Then
037             Me.Checked = MyBase.UniqueID = Me.Page.Request.Form.Item(Me.GroupName)
038         End If
039     End Sub
040 
041 
042     Protected Overrides Sub LoadViewState(ByVal savedState As Object)
043         If Me.GroupName Is Nothing OrElse Me.GroupName.Length = 0 Then
044             MyBase.LoadViewState(savedState)
045         End If
046     End Sub
047 
048     Protected Overrides Function SaveViewState() As Object
049         If Me.GroupName Is Nothing OrElse Me.GroupName.Length = 0 Then
050             Return MyBase.SaveViewState()
051         Else
052             Return Nothing
053         End If
054     End Function
055 End Class
056 

Share

あなたを否定しているわけではない

提出されるさまざまな成果物にたいして、

指摘をする事が良くある。

だが、それは成果物中に問題があり、

それを指摘し修正をお願いしているだけの事であり、

それ以外に何の意味も持たない。

それなのに、まるで自分が否定されたと感じる人がたまにいるようだ。

仕事なのだから、仕事をした結果として

提出された成果物について問うているのにだ。

その時興味があるのは、成果物の内容のみであり、

それを、どんな人格の人間が作成したかには興味は全くないし、

そんなことはどうでも良いのだ。

Share

「やる気」だけじゃ何の役にも立たない

「やる気」なんて、それだけじゃ何の役に立たない。

「自分がどれだけの事ができるのか」を「把握」していなくては意味がない。

「やる気」なんてものは、

「把握している自分」に対する「隠し味」みたいなもんだ。

何ができるのか知らないのに隠し味だけきかせても、

ただまずくなるだけ。

そういう状態を世間では「空回り」という。

蛇足だが、

「やる気」が無いから駄目なんだ。

「やる気」が無いからできない。

という状態は大抵の場合において

「やる気」があっても駄目。

「やる気」があっても出来ない。

である。

Share

WithEventsキーワードによって作成される暗黙のフィールド

VBでコーディングする時、

クラスのフィールドにWithEventsキーワードを設定すると、

コンパイル時、暗黙のうちに

_(アンダーバー)+対象のフィールド名

でフィールドが作成され、

対象のフィールド自体はプロパティ化される。

そのプロパティの中で、イベントの設定等が行われている。

ここまでだったら、コンパイル後の話という事で良いのだが、

実際に暗黙のうちに宣言されたフィールド自体がコード中で使えてしまい、

コンパイルエラーにならないし、警告にもならない。

普通にコンパイルできてしまう。

例えば、今まで_フィールド名で宣言していたものを、

フィールド名に変更したとして、

それを利用している箇所を修正すると思うのだけど、

修正漏れに気づかないといった状況があり得る。

コンパイルエラーか警告にしてくれたら良いのになぁと思う。

Share