tags:

views:

574

answers:

8

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.

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).

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.

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).

I would be most obliged.

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

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.

+10  A: 

Read developers blog. Try to keep a fair amount of resources in your feed reader and go through them every day (or so). Just pick up the things you like.

Most coders write their opinions, their view, and so on. You can learn A LOT by just reading what others do and filtering what you like or find interesting and what you don't. Books are helpful to, but, with 23 years of experience and just wanting to be up to date... I'd recommend blogs...

Some blogs I read:

Stackoverflow is a great resource too. Not just for finding answers to your problems but also for reading answers to other problems. Seriously, I've found myself quoting some answer from stackoverflow a lot of times lately... or applying something I've seen here.

For what is worth, being up to date with the current tendencies (like TDD or Aspect Oriented Programming) is like being up to date with the world itself. You get up in the morning, and read the newspaper, maybe just the headlines and then something specific, for about 5 or 10 minutes. Then you read the articles you find interesting but you're somewhat conscious about the most important things that are happening. This is the same, but those blogs (and some others) are your newspaper for the programming world.

Jorge Córdoba
Thank you for the links. I will be looking at these sites shortly. Also plan on working my way through the questions here on Stack Overflow. I feel it will be interesting to see the variety of ways that people look at problems.
Damion Lee
+11  A: 

Read some newer programming books like The Pragmatic Programmer. This book talks about programming using modern tools, the idioms and techniques, etc.

The Pragmatic Programmer

Eli Bendersky
Thank you, will be looking that up later today.
Damion Lee
I think you will find this lays a lot of good ground work in a relatively jargon-free way, so +1 for this recommendation
Phil Nash
+4  A: 

I lot of "new" concepts are not actually new. Most "modern" language features are derived from early functional languages, for example. Techniques such as TDD and Agile are just codifications of things that have been done for a long time, just perhaps not in the mainstream. Nor are they hard to understand per se.

I suspect your biggest obstacles will be terminology. You may be used to hearing buzzwords, but when you look at what they mean you just find them explained in terms of other buzzwords.

My recommendation is to persist. Find your way back to where things are explained in terms you can relate to then work back out. Once you've done that with a few concepts you'll feel a lot more confident in tackling more, and have a better idea of which things you really want to concentrate on.

For language related things this is probably easier because you can go back to, for example, Lisp and find the concepts explained in terms of what was familiar in the 60s and before! (of course you can find more recent coverage too).

For design and process related subjects just reading up on their histories in wikipedia should give you some clues.

Keep your focus narrow enough to not be overwhelmed, but broad enough to take account of the eco-system that a tool or technology exists in.

Phil Nash
I thought shortly after posting the question, really I am having issues understanding concepts that are being thrown around as new, but were generally conceived and implented in some form decades before I started programming.Without a doubt, you are correct in that it is the jargon and buzzwords that present the confusion.I have spent many years developing 'real world' explanations of technical concepts for my non-technical clients, and rarely see that when I look at any programming documentation. Even us techies sometimes need a jargon free guide to start the ball rolling.
Damion Lee
+1  A: 

It sounds like your programming logic skills are fine. It seems to me like the best way for you to update your skills is to pick up a copy of C# (Express is free) - Or java (I'm a .net guy) and convert one of your old applications, you will then find real world issues and will be able to solve them (With the help of SO) using the 'Modern' methods.

Good luck.

Pino
As it happens, I have Visual Studio 2008 Express installed on a machine, and it was developing a database app using SQL 2008 Express and C# that made me realise how dated my skillset was.Real world exposure is definately a necessity, and what I have found myself doing is scouring the web for countless hours trying to interpret the solutions I find for simple issues - mainly through not understanding the concept behind the use of certain code and techniques.I almost feel like I amd starting a fresh - only these days I don't learn as quickly as (and don't have the patience) I used to.
Damion Lee
Your 29 years old. I think your still young in scheme of things. Ability to adjust is what makes a programmer.
Pino
Absolutely. Because I focus over the past 15 years has been hardware and systems orientated, so the adjustment perhaps just feels more difficult then I was expecting.
Damion Lee
+2  A: 

If all you want to do is keep up with times, you should read developer blogs. I am not going to give you the regular blog list cause I don't think it's a good idea to depend on 4-7 bloggers for all your info.

Earlier I used to pool all the bloggers in Google reader and my reading list grew to over 400 blogs. That's definitely not going to help.

Better visit websites like codebix.com, dzone.com, to get the latest articles and a little help of the community in selecting the best articles ;).

Cyril Gupta
Thank you for the article sites.As opposed to keeping up with the times, its more like re-educating myself to get out of the dark ages and also to adopt some better programming practices.
Damion Lee
+2  A: 

Personally, I learned a lot from watching lectures and tech talks posted by google. They have a ton of content about software engineering. Watching videos is obviously a very different learning experience than reading but most of the people are very intelligent and are talented speakers.

http://www.youtube.com/GoogleDevelopers

http://www.youtube.com/GoogleTechTalks

celticpride
Thank you for the links, I'll be having a look at them later on this afternoon.
Damion Lee
+4  A: 

You will need some alternative approach to the topics. I have found the "Heads on..." series to be both entertaining and technically sound.

Have a look on Heads on Java: http://oreilly.com/catalog/9780596009205

Thorbjørn Ravn Andersen
Thanks for the recommendation, I'll be looking into these books as well.
Damion Lee
+1  A: 

You might find these lectures on functional programming by Erik Meijer enlightening.

Apocalisp
Thank you for the link, I'll be watching these over the coming week.
Damion Lee