A way to catch up to modern programming techniques
<p>I have been programming, non professionally for about 23 years and find I am a little stuck in my ways. I find a tool I like, and it stays that way for year after year. Unfortunately this means that I am behind the times in my programming.</p>

<p>I am not directly planning on programming professionally per se, however, it is very handy to be able to develop client side (and lately a desire to move to cloud) apps for use by my clients, and also for myself in my day to day work (hardware, network and Internet support services).</p>

<p>Unfortunately, I find that I am having great difficulty in understanding recent concepts, and because I am trapped in programming styles of the 80's and 90's I am finding myself slow to understand concepts.</p>

<p>What I am looking for is suggestions for online and printed material offering real 'intro to concepts' and (separate material) technical usage for modern programming concepts and their usage in Java and C# (all three of which I have had only minimal exposure to).</p>

<p>I would be most obliged.</p>

<p>--<em>UPDATE</em>--
I just want to add in a big thank you to everyone who left a reply or comment to this question.</p>

<p>I have found some wonderful resources due to your recommendations, and a return of my enthusiasm for programming. No longer does the way forward feel like an uphill struggle, and for the first time in the last year or so, the light at the end of the tunnel doesn't look like an oncoming lorry.</p>
