Biz & IT —

Ask Stack: How to develop deep programming knowledge?

Stack Exchange discusses the best ways to become an expert programmer.

Ask Stack: How to develop deep programming knowledge?
The Stack Exchange

Robert Harvey asks:

Occasionally I see questions about edge cases on Stack Overflow that are easily answered by the likes of Jon Skeet or Eric Lippert—experts who demonstrate a deep knowledge of a particular language and its many intricacies. Here's an example of this from Lippert's MSDN blog:


This is cool stuff to know. I can understand why Eric knows this; he's on the compiler team, so it's explicitly in his job description to know.

But how do mere mortals, those of us on the outside, find out about stuff like this?

Answer: A Message from Mr. Lippert (18 Votes)

Eric Lippert replies:

First off, thanks for the kind words.







Answer: One Problem at a Time (14 Votes)

Karl Bielefeldt replies:

Having been on the "guru" side of the conversation once or twice, I can tell you that a lot of times what you perceive as "deep knowledge" is often the result of the "guru" recently struggling for a month to solve the problem you're trying to solve yourself. That's especially true on a forum where people can choose which questions they will answer. Even the likes of Jon Skeet and Eric Lippert had to learn "hello world" at one point. They pick up their knowledge one concept at a time, same as anyone else.

Answer: Program (9 Votes)

Maglob replies:

Remixing the wise words of Yogi Bhajan:


Programming is like the ultimate teaching challenge. Teaching a computer to do something requires that you know your stuff really well. By teaching/programming, you will learn to become a master.


Answer: A Multipronged Approach (4 Votes)

HLGEM replies:

I would say do the following:


Volunteer for the more complex, harder tasks, the ones that make you go in-depth to solve the problems. If there are none where you work, look for open source tasks or start working on a personal project that will make go in-depth. If your job has no interesting problems, consider looking for a more challenging job.

Read the advanced books on one language (for SQl Server for instance this would include reading about performance tuning and database internals) instead of the "How to Learn X in 30 Days" type of books.





Answer: Decompile & Read (3 Votes)


Get Reflector or any other decompiler (since Reflector's fee-based now), and start opening up some of the most used .NET libraries to learn how the internals work. Combined with a book like CLR via C# you'll get quite deep (deeper than most of us will go on their regular job).

Think you know the best way to develop deep programming knowledge or disagree with the opinions expressed above? Bring your wisdom to the original post at Stack Exchange, a network of 80+ sites where you can trade expert knowledge on topics like web apps, cycling, scientific skepticism, and almost everything in between.

You must to comment.

Channel Ars Technica