views:

242

answers:

6

We live in the era of interesting People. I am self-taught for many things and now I like to explore the interesting universe. What can be learned from other programmers, which I cannot learn myself easily? or Which important things you have learned from other programmers that may have mattered to you a lot ?

+1  A: 

It's a loaded question. There's a lot of resource on the net; you just need to have decent Google skills :).

I'm a .NET developer, so I'll point you to some .NET resources but many of them would give you good practices for any language.

Here are just some resources; it's just a drop in the bucket.

Podcasts:

Blogs:

Vadim
+2  A: 

While I considered myself self-taught, I am in fact directly and/or indrectly learning from other programmers. Be it books, blogs, sites like these or colleagues/friends etc. So to me, unless you shut yourself off from the rest of the world and only have a isolated PC to yourself, there's no such thing (IMHO) as 100% self-taught.

So to answer your question(s), those things you cannot learn easily by yourself should be

  • things you will never know unless you experienced yourself
  • Best practices
  • Tricks and tips that can save you hours or days in your work
  • and a lot more...
o.k.w
+5  A: 

Check out The Pragmatic Programmer.

It's a set of best practises and guidelines on how to be more effective as a programmer. As such it doesn't teach particular technical skills, but details what sort of stuff you should know, the types of things you should be doing and how to improve yourself, regardless of your skill level.

Despite all my technical references/books/articles etc., it's possibly the most productive thing I've read in terms of teaching me what I should be doing and learning, rather than particular skills related to a given technology that may only last a few years.

Brian Agnew
A: 

Learning to recognize help from others is very important.

I find this site: http://www.ibm.com/developerworks/ useful, but by and large, articles are the best way to learn something new, as by the the time the book comes out the technology may be dated.

Something that proved to be hard for me to learn on my own was functional programming, as it requires me to think of design in ways that were foreign to me, so I read a good book on it and that helped me to make the shift from OO to FP.

Something you may not be able to learn on your own is new ways to do something. For example, LINQ has many possible uses, but I may not see them, so when I learned about reactive LINQ that was fascinating, as it was a way of processing events that I may never have thought about.

James Black
+2  A: 

The only programming course I ever took, I hated and did poorly. It was 7094 assembly language. We had to write some sort of search loop and I got downgraded because of missing some edge condition. That is something I would have figured out eventually on my own.

I think to this day programmers get turned off by professors who are more concerned with grading than with encouragement. Later I was a C.S. professor myself, and I did my level best to encourage people, rather than discourage them.

So who did I learn from? Other programmers (who were among the best), and I was fortunate enough to have smart people who handed me challenging projects to do. I also learned Computer Science (which is not programming) and related math in coursework, and that I found very useful.

ADDED: To this day, I think the reason I hated that first course was because part of what was being taught was "this is the right way to do it", and that really bugged me. Who says? Then when I was a professor, students would often ask me "what's the right way to do it?", and my answer always was

"If it works, it works, that's all there is to it. I can tell you pros and cons for different ways to do it, but after that, it's for you to decide, not me. You can learn from me, but ultimately it's your brain that has to do the thinking."

Mike Dunlavey
+4  A: 

The most important thing you can learn from other programmers is that you are not anywhere near as good a programmer as you think you are.

MusiGenesis