What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 149 Stack Exchange communities.

Let me start off by a little background. I am currently a 3rd year pursuing a BS in Computer Science at a small Christian school in San Diego. I have take a good chunk of the courses offered to me, and have received an A/B in every class so far without too much stress.

Now, I want to expand my learning a little more, so I have come to communities like this to learn new things. Here is the problem. I glance over all the questions asked here, and become extremely discouraged. Sad to say, but I don't even understand a majority of the questions posed here.

I guess my question to you (Stack Overflow community) is:

  1. Did it start like this for you?
  2. If so, how did you conquer it?
  3. Is this normal?

Thanks

share|improve this question

migrated from stackoverflow.com Aug 4 '09 at 23:00

This question came from our site for professional and enthusiast programmers.

29  
I will share some of the best advice that I got one time. It was given to me by a physics prof regarding physics but it is true for any speciality really. "Physics is like music. You have to just listen to it for a while before you can start to understand it." –  EBGreen Feb 25 '09 at 19:50
1  
Also important: Don't be discouraged by SO if this question gets closed. Really. –  BoltBait Feb 25 '09 at 19:55
1  
@EBGreen this isn't slashdot, we are not doing Formal Logic Debates(TM). Appeal To Common Practice(TM) can be a legitimate point to raise when the community has a hand in defining said practice. –  Rex M Feb 25 '09 at 20:38
1  
@OIS - For anything that is even close to borderline like this, one time only. For something really egregious and troll like, until I run out of votes. –  EBGreen Feb 25 '09 at 20:44
16  
Ugh, the reputation people get for these questions is absurd, even if it is marked community wiki. It makes you feel like "why bother asking good questions and providing good answers, when I could just ask a culture question and rocket my way to admin privileges" –  m4bwav Feb 25 '09 at 21:01
1  
Because, you weren't really helping anyone with a programming related problem. I mean why should someone get the reputation and status of a programming expert, if there expertise is really in programming culture. –  m4bwav Feb 25 '09 at 21:51
5  
High rep does not give you the ability to answer harder programming questions. It gives you the ability to participate with the community in different ways. –  EBGreen Feb 25 '09 at 22:13

71 Answers 71

What are you discouraged about?

Programming is like swimming to me, we can take all the courses we want about it and take some lessons, discuss it all we want, read about swimming all we want, the only thing that builds the real comfort is the hours spent doing it.

The only thing a real developer ever knows is how little he knows. All he ever works on is his problem solving and ability to figure things out the best way possible. He does this through learning as many approaches as possible and then making it happen through the syntax of a few languages.

Start hacking, start building. The more you create, the more you'll see the patterns inherent in most if not all problems.

There is a fantastic post or two about managing your relationship with failure.

First: http://weblog.raganwald.com/2005/01/what-ive-learned-from-failure.html

Second is one article that I think is something every programmer should read.

Embracing Failure by Eugene Wallingford:

A while back, I clipped this quote from a university publication, figuring it would decorate a blog entry some day:

The thing about a liberal arts education ... is it prepares you to fail successfully and learn from that failure. ... You will all fail. That's OK.

-- Jim Linahon

Linahon is an alumnus of our school who works in the music industry. He gave a talk on campus for students aspiring to careers in the industry, the theme of which was, "Learn to fail. It happens"

More recently, I ran across this as the solution to a word puzzle in our local paper:

You've got to jump off cliffs all the time and build your wings on the way down.

-- Ray Bradbury

Rich talked about how hard our discipline must feel to beginners, because it is a discipline learned almost wholly by failure. Learning to program can seem like nothing more than an uninterrupted sequence failures: syntax errors, logic errors, boundary cases, ugly interface, .... I'm not a novice any more, but I still feel the constant drip of failure whenever I work on a piece of code I don't already understand well.

The thing is, I kinda like that feeling -- the challenge of scaling a mountain of code. My friends who program can at least say that they don't mind it, and the best among them seem to thrive in such an environment. I think that's part of what separates programmers from less disturbed people.

share|improve this answer
  1. Did it start like this for you?
  2. If so, how did you conquer it?
  3. Is this normal?

1 - Of course. And it hasn't changed. Every time I come onto SO I'm humbled by the amount that I don't know and I have 10 years professional experience and 5 years of hobbying when I was a teenager. I bet those who have 40 years feel the same. In some areas I know a lot, in others I know nothing. This will never change. All you can do is learn as much as you can, but try and learn some areas quite in-depth first before branching out to other things.

2 - By realising that I'd never learn anywhere near everything. And realising that this doesn't matter.

3 - This is both normal and preferable. There are those who think they know it all after graduating or after a couple of years. Believe me, they don't. Having that attitude is a fast-track to fail.

share|improve this answer

Absolutely Not! I'm sure most of the people here can't answer 10% of the questions. It's not our fault, it's because you can't know everything. There aren't enough hours in the day to learn everything. Specialize in an area you feel passionate about, only then, will you feel more confident.

share|improve this answer

Nope, you shouldn't be, first of all, the questions here spand such a wide area, so theres unknown areas for everyone. Secondly, when people give up troubleshooting, the problem is or kind of has to be non-trivial for anyone. I've been in java-development/architecture for 8 years, I find most questions here to be in other areas than my profession. Questions within java are seldom easy ones, rather complex and related to a particular tool/framework. Often if you haven't spend a lot of time with that framework, you can't answer the question.

So it's perfectly normal, cheer up! Get some experience and you'll start understanding more every day.

share|improve this answer

There is no need to be discouraged, first of all I dont advice you to visit this kind of forums to learn things.This place is for discussing issues/show stoppers that one encounters in work. Here nobody knows/understands every thing and moreover people ask questions here because they dont know how to solve the problem. So everyone here is almost same. Today you have asked a question and tomorrow you might answer other's queries :)

You can start learning things with something which is very easy.

Like: Take an excel macro, learn different things that you can do.

share|improve this answer

It's hard to top work experience (if you're not actively involved in your own or an open-source project) for giving you the know-how to answer some of these questions. A lot of things you'll just never encounter on your own, or in a classroom. I remember doing Java work for my CS degree before i had a workterm and not knowing about Eclipse (or any IDE for that matter) or even how to reasonably make use of abstract classes and interfaces... but you work with people who know more than you do and you learn from them. That's where i find the best stuff comes from - mentoring. Some people are very driven to learn things themselves, but not everyone is like that. So getting into a software job where you can learn from experienced/talented people will really make a difference. Then one day you'll be reading an article like this and remember when you asked a similar question... It just takes time... Good luck, don't give up.

share|improve this answer

You shouldn't be discouraged that you don't understand the majority of questions here.

A lot of the questions on Stack Overflow are very specific programming questions that are relevant to a particular problem. If you've never had to deal with that particular specific problem before, and would never have reason to in your career, there's no need to understand it.

Another thing is that a lot of the questions here are very specific to a particular framework, and if your day-to-day programming is in a different language, you won't understand it. A programmer will often specialise in a specific language and perhaps framework/environment, rather than trying to know everything about every programming tool for every language.

As for me, a lot of the questions about .NET or Visual Studio, or in some respects Java, are gobbledy-gook to me, as I usually program in other languages like C++, C, PHP, Python.

My tip would be to use the search feature to find questions that are more relevant to the types of programming you do.

share|improve this answer

Well, since this is where people go to ask questions that they don't know the answers to, no. I wouldn't be. I'm not. We both are young and still learning a lot.

share|improve this answer

The day I stop learning (should I ever arrive at a place in time where I would know everything :-P) is the day I quit my job. The whole thing that makes my job fun IS learning new things!

I wonder if Jon Skeet is still working...

share|improve this answer
  1. This site can be intimidating, definitely. However, you can either leave or roll up your sleeves and get into what the site has that may help with something you want to learn. There are tons of different questions here and I'm not sure anyone knows all of them.
  2. Persistence, learning about different things, and recognizing that in some cases I'm sharing knowledge and in other cases it is my experience that can be shared and be useful to others, e.g. how do I like Scrum or how do I handle some ASP.NET thingie.
  3. It could well be normal because how many other people could say that they visit this type of site and know it like the back of their hand? Not many, IMO.

Just as something to ponder, what kind of coursework have you taken involving Oracle or ASP.NET or other very large things that I'm not sure CS courses cover this material in great depth. I remember well my 6 3rd year courses well: Data Structures and Algorithms (CS340), Concurrent Programming (CS342), Digital Design and Architecture (CS351), Operating Systems (CS354), Theory of Finite Automata (CS360), and Numerical Analysis (CS370).

share|improve this answer

No, do not be discouraged. Be challenged, and strive to live up to the challenge. If nothing else, it's a lot more fun that way.

share|improve this answer

You must log in to answer this question.