2 added 90 characters in body
source | link

I think that all of your suggested items are needed and some are difficult to teach other than by example. But let me focus on one aspect, especially, that can be taught.

A good programmer needs a variety of strategies for getting their own questions answered and the desire to get them answered quickly. This means that you cannot be their sole source of information. If you teach at least part of the time in a lab situation, or with a projected computer screen image you can demonstrate how you use, google, wikipedia, language documentation, StackOverflow, etc. in answering questions.

If a "what does ... do" question arises, you can quickly write a code fragment that illustrates it, giving them the hint that they can do that too. You could even make an assignment to have students write short code fragments to illustrate an idea.

But some answers can also come from people, especially their peers. This is one reason for encourage pairing and teamwork. It isn't the answers themselves that are the key here, but the strategy for quickly finding the answers. And, since writing isn't one of your suggestions, but is important to any professional, you could have students who answer questions for others, write the answers up. I used to use a wiki for this purpose. Over time, it became a valuable resource in itself. Mailing lists to which every student can ask and answer questions also help. Also, being helpful to others is a valuable skill as well, so this helps with that, also.

Programming assignments could possibly be accompanied by footnotes that reference relevant online (or book) material to show how their code is related to what has been done by others.

You can probably think of other strategies, but don't keep them to yourself. Be sure that you demonstrate them and have the students utilize them with some evidence that they can do so on their own.

I think that all of your suggested items are needed and some are difficult to teach other than by example. But let me focus on one aspect, especially, that can be taught.

A good programmer needs a variety of strategies for getting their own questions answered and the desire to get them answered quickly. This means that you cannot be their sole source of information. If you teach at least part of the time in a lab situation, or with a projected computer screen image you can demonstrate how you use, google, wikipedia, language documentation, StackOverflow, etc. in answering questions.

If a "what does ... do" question arises, you can quickly write a code fragment that illustrates it, giving them the hint that they can do that too. You could even make an assignment to have students write short code fragments to illustrate an idea.

But some answers can also come from people, especially their peers. This is one reason for encourage pairing and teamwork. It isn't the answers themselves that are the key here, but the strategy for quickly finding the answers. And, since writing isn't one of your suggestions, but is important to any professional, you could have students who answer questions for others, write the answers up. I used to use a wiki for this purpose. Over time, it became a valuable resource in itself. Mailing lists to which every student can ask and answer questions also help.

Programming assignments could possibly be accompanied by footnotes that reference relevant online (or book) material to show how their code is related to what has been done by others.

You can probably think of other strategies, but don't keep them to yourself. Be sure that you demonstrate them and have the students utilize them with some evidence that they can do so on their own.

I think that all of your suggested items are needed and some are difficult to teach other than by example. But let me focus on one aspect, especially, that can be taught.

A good programmer needs a variety of strategies for getting their own questions answered and the desire to get them answered quickly. This means that you cannot be their sole source of information. If you teach at least part of the time in a lab situation, or with a projected computer screen image you can demonstrate how you use, google, wikipedia, language documentation, StackOverflow, etc. in answering questions.

If a "what does ... do" question arises, you can quickly write a code fragment that illustrates it, giving them the hint that they can do that too. You could even make an assignment to have students write short code fragments to illustrate an idea.

But some answers can also come from people, especially their peers. This is one reason for encourage pairing and teamwork. It isn't the answers themselves that are the key here, but the strategy for quickly finding the answers. And, since writing isn't one of your suggestions, but is important to any professional, you could have students who answer questions for others, write the answers up. I used to use a wiki for this purpose. Over time, it became a valuable resource in itself. Mailing lists to which every student can ask and answer questions also help. Also, being helpful to others is a valuable skill as well, so this helps with that, also.

Programming assignments could possibly be accompanied by footnotes that reference relevant online (or book) material to show how their code is related to what has been done by others.

You can probably think of other strategies, but don't keep them to yourself. Be sure that you demonstrate them and have the students utilize them with some evidence that they can do so on their own.

1
source | link

I think that all of your suggested items are needed and some are difficult to teach other than by example. But let me focus on one aspect, especially, that can be taught.

A good programmer needs a variety of strategies for getting their own questions answered and the desire to get them answered quickly. This means that you cannot be their sole source of information. If you teach at least part of the time in a lab situation, or with a projected computer screen image you can demonstrate how you use, google, wikipedia, language documentation, StackOverflow, etc. in answering questions.

If a "what does ... do" question arises, you can quickly write a code fragment that illustrates it, giving them the hint that they can do that too. You could even make an assignment to have students write short code fragments to illustrate an idea.

But some answers can also come from people, especially their peers. This is one reason for encourage pairing and teamwork. It isn't the answers themselves that are the key here, but the strategy for quickly finding the answers. And, since writing isn't one of your suggestions, but is important to any professional, you could have students who answer questions for others, write the answers up. I used to use a wiki for this purpose. Over time, it became a valuable resource in itself. Mailing lists to which every student can ask and answer questions also help.

Programming assignments could possibly be accompanied by footnotes that reference relevant online (or book) material to show how their code is related to what has been done by others.

You can probably think of other strategies, but don't keep them to yourself. Be sure that you demonstrate them and have the students utilize them with some evidence that they can do so on their own.