开发者

A way to catch up to modern programming techniques

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 you开发者_JAVA技巧r 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.


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:

  • Coding Horror
  • Good Idea
  • Kirill Osenkov
  • Joel on software
  • Jon Skeet
  • Joe Duffy
  • Byte Bytes

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.


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

A way to catch up to modern programming techniques


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.


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


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


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


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.


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜