What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 130 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
15  
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

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

I definitely understand your situation. I'm a CS undergrad (senior year), I poke around on this site from time to time, and I've done so much on Code Review SE for the six months I've been on there, but SO still intimidates me greatly.

My lack of practical experience isn't the only reason, though. It's mostly because this place is so full of experts, and I feel very very small compared to them. I'd like to answer a question or two sometime, but I would most likely get beat with a better answer first. As for asking questions, I now only do that as a last resort. My previous experience with that has been so-so, and I would just find myself making excuses for not asking a question on here. If I need help with something, I'll just look for an existing question and then upvote accordingly to express my thanks. Nowadays, upvoting is the only thing I bother to do here.

But, on Code Review SE, I do everything: ask questions, answer questions, flag, vote (up, down, close, reopen), make edits, review edits, and participate on Meta (I'm even helping with introducing a new site policy). I've learned so much over there, and that's just where my heart is. Unfortunately, as that site is still in beta, it is still prone to shutdown. If that were to happen, my overall activity on SE would plummet, and it may even affect my enthusiasm of programming (hopefully not).

share|improve this answer
2  
I'm with you on the question asking front, in that I've never asked a question on SO simply because most of them had been asked and answered for me. Don't hesitate to answer though. Yes, plenty of my answers were surpassed by far better answers of more knowledgeable people. But that should not get you down. You should see it as a learning experience. The next time you come across a similar problem, you'll be far more able to answer it based on the experience you gained. –  Bart Sep 7 '13 at 9:20

Think of this site differently. Rather than a place where the answer is always known, it's a place where for every. single. answer. someone was as completely dumbfounded as you. They just didn't hesitate to ask. Great question.

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

It is normal. Stackoverflow covers the entire range of development technologies. That is a huge range of knowledge, and nobody understands it all. You can't learn it fast enough to keep up with all the new stuff that is being added unless you specialize in a narrow niche. So get used to it. For the rest of your life you will go to sites like this and and wonder what all these guys are talking about. They will continue to invent new languages and new concepts and to give them strange new names.

But the best response is not to be discouraged any more than you should be discouraged when you walk into a library and realize you haven't read all the books. Stand in awe! Here is virtually limitless variety and opportunity for you. Take off your shoes --- in its own way, this is holy ground.

As you rise into management jobs in your career, however, you will have to make decisions to severely limit the variety within your organization so that you can build and maintain code cost effectively. Welcome to the real world!

It didn't start like this for me. I started writing Basic on an Apple IIe (found only in museums today). That was technology that a single human being could master. Ever since then I have watched the real world speed on past me. It has been a great life with wonderful people, and I am honored to have stood on the shoulders of so many giants who have built this stuff.

share|improve this answer

Yes, this is normal. Unless you are Jon Skeet, you probably aren't an expert in every tag.

If you love programming, keep going. If you don't get out.

Believe me, they don't teach you everything in college. You'll just have to learn the rest of the stuff in the real world.

share|improve this answer
1  
I'd amend that to say "they don't teach much in college". I've yet to hear of a college that did more than get your feet wet (though I'm sure it seems like a lot more when you're learning it, it really is just the tip of the iceberg). +1 –  rmeador Feb 25 '09 at 19:55
7  
even Jon Skeet aint there in 'every' tag :-). so we can all be happpy. –  M.N Feb 27 '09 at 5:59
2  
@rmeador, you're completely right, college just teaches some of the basics and how to learn. I think SO should be a part of any college now. –  Nathan Koop Jul 31 '09 at 17:31

The secret to happiness as a developer is not to know everything, but to be prepared to learn a lot about a particular niche. I don't know the answers to 90% of the questions here, but I do pretty well with the ones I do know. (And I've been a developer for 25+ years)

And then some day, you'll be like me, nearly 50 years old, and looking at all these questions and think "am I too old to learn all this new stuff?" In my case, I snap out of that funk by assigning myself a new side project involving a new technology. Last time I felt this way, I learned Perl and built some web sites using Fast::CGI. This time I'm doing an iPhone application.

share|improve this answer
38  
and as soon as you see a question that falls into those 10%, snipe it like there's no tomorrow! –  grapefrukt Feb 25 '09 at 20:20
5  
@grapefrukt - you've noticed my method for getting 17K rep, have you? –  Paul Tomblin Feb 25 '09 at 20:24
55  
"I don't know the answers to 90% of the questions here". Wow! You know the answer to 1 out of 10 questions!!!!! I haven't even heard the words in 9 out of 10 questions before! :-) –  danbystrom Feb 26 '09 at 18:41

Felt the same way here. The fact is that you can't just take classes and think you're prepared; you need to teach yourself. And it takes time. Lots of it.

share|improve this answer

SO usually covers a lot of language-specific problems rather than the general problem-solving skills one learns in school, so I would say do not be discouraged by SO. Look at the more language-agnostic questions and see if you understand them. If you do, you're on the right track.

share|improve this answer
  1. YES.
  2. Read, then try.
  3. Yes.

Medicine, Law, and Programming all have one thing in common: DO NOT consider University the place where you Learn, and the workplace where you Do. University is the beginning of your career, which must always include learning. The nice thing about programming is that no one dies or gets sued while you experiment, which is by far the best way to learn ;)

share|improve this answer
4  
Look up "Therac-25". It may be a rare exception, but there definitely are areas (and increasingly not just in medicine) where a software error can kill people. And getting sued is not that unlikely at all if you do it professionally. –  Michael Borgwardt Feb 26 '09 at 10:31
2  
I guess the difference is that you can experiment directly with programming without worrying about death or lawsuit... I would hope that no "experimental" code would go into "production" in life-or-death situations ;) –  Dave Feb 26 '09 at 14:22
1  
Come on. For every version that goes to live production I make 10 that even fail to compile. –  Tadeusz A. Kadłubowski May 24 '10 at 18:44

Dude I feel like that every day. Learn to enjoy it, I say...

share|improve this answer

The greatest thing about SO is that it makes you understand you don't know everything and there are lots to learn!

share|improve this answer

No, you shouldn't be discouraged at all. Nobody knows everything.

You'll start out in a career and it will be a rough and rocky but soon you'll be amazed at how much you learned in the last year, month, week, day, hour, minute, etc.

share|improve this answer

Try to answer a single question on a new technology you are learning every day. You may not initially know the answer, but research/test/play around until you find the answer. Do this and you will gradually improve.

share|improve this answer

Excellent questions... The answer is Yes to all three. :-)

Of course, when I started, there was no Stack Overflow but there were many forums and newsgroups that I visited. I became very overwhelmed with trying to understand the questions.

I found the best way to overcome it is to just get in there and start developing. As I come across challenges that I don't know, I search Google, blogs, and ask at forums and now Stack Overflow.

One way to do that is to look at places like CodeProject (http://www.codeproject.com/) where you have a large repository of code samples, tutorials, and such-like. You can download the source code presented in many of the articles, build it, step through it with a debugger, and see how it works. Then try to modify the code in a way that would interest you and see what you can do.

And of course trying to come up with your own "pet" projects is a good way to learn and be challenged, so that questions will arise and you will have an opportunity to look for the answer or ask it in the community (online or your associates).

Best of luck, and I do know what you mean. Sometimes we forget once we've been around things for a while how it is to start out and just the quantity of information is overwhelming. Don't give up!

share|improve this answer

It's funny, but I remember way back when I was still a beginner, and I would read programming magazines or hear REAL programmers talking, and I would be intimidated too. So, yes, it started like that for me as well.

How I handled it was just being patient. Over time I realized that many of the concepts and stuff weren't really that difficult, once you understood them. I just made it a habit that whenever I felt intimidated by something, I would go out and learn as much as I could and master whatever it was. For instance, at one point in time C pointers really threw me for a loop. That's when all my experience was in BASIC on TRS-80s. Nowadays I find them easy to comprehend.

I think it's pretty normal, and you just have to keep plugging away. Just remember that ignorance does not equal stupidity. Just because you don't understand something NOW doesn't mean that you're incapable of understanding it.

share|improve this answer
3  
+1 for the TRS-80 Basic reference. Good times, gooood times. Excuse me, I have to get back to my rocking chair on the porch of the old-folks home. –  Kelly S. French Aug 31 '09 at 14:37

The questions on SO represent practically every aspect of professional software development. Languages, frameworks, tools, techniques, algorithms, specific products, patterns, UI design, and best practices are just the tip of the iceberg for discussion here. Then you add in the somewhat-offtopic stuff pertaining to IT, system administration, and personal approaches.

So I'd say don't get discouraged because what you want to do will bear itself out. If you want to be a Windows developer using C#, then that's what you'll be, and the questions about Erlang or Grails will be of no consequence to you. In other words, you'll create your own filters.

Even our beloved Jon Skeet doesn't work in every tag. :)

share|improve this answer
8  
If Jon Skeet hasn't worked in some tags, it's only because they're not yet strong enough to withstand the awesome power of his mind. (sorry, couldn't resist) –  David Z Apr 26 '10 at 2:36

Don't worry about that. There are so many different technologies in IT that it is impossible to understand or even be aware of all of them.

I know how you feel though, because I had the same feeling a couple of years ago. Just keep on studying and programming and you will naturally get interested in a couple of technologies that really matter for your job and which you will enjoy using.

share|improve this answer

Computer science have evolved into enormous systems with uncountable facets. Sometimes, just mastering one software product will take a lifetime. Broaden your horizon and pick the niche that interests you the most. The rest will come naturally.

share|improve this answer

Pfft! Do you really expect to understand every language, library, platform in existence? Questions on SO cover so much territory there is no reason to be discouraged. Just because someone can code in assembler doesn't mean they'll know html

share|improve this answer
  1. Yes. Somebody who's just coming out of college is very frequently woefully unprepared for some of the very important aspects of software engineering these days. That's not to say your education is fail; it's just to say that CS courses don't do enough on some of the things that are important for writing software professionally. I think there really needs to be more Software Engineering focus in a CS degree.

  2. The Internet is a really, really great place (for more than just Porn!). The best software engineers these days are autodidactic. Trawl the blogs. Spend time here on SO. In fact -- don't be afraid to research an answer to a question you don't understand. That's a great way to learn. Remember: things change a lot in our field.

  3. Yes, these feelings are perfectly normal. For more than just CS majors, really; everybody getting close to graduation has those "Am I doing the right thing here?" moments. It's worth investigating before you go off into a career, but don't dwell on it too much. A CS degree is often good for more than just a programming career.

share|improve this answer
  1. Yes, because most questions are about problems/languages/tools that are (currently) completely irrelevant to my job or hobbies.
  2. I simply ignore questions about problems/languages/tools that are completely irrelevant to my job or hobbies.
  3. Yes, this is normal, by definition, because nobody can possibly use every single tool out there, program in all languages, and be familiar with every single problem that has ever existed.
share|improve this answer

It's not at all unusual for people to complete a computer science course without really learning anything they would need to work in the software industry. I've heard of people getting the degree without ever writing a single program that compiles or runs.

So don't be discouraged if you enjoy learning new things. So you have a lot of enjoyment ahead of you.

Also, if there's something you don't understand or never heard of, referred to in a question on SO, look to see if anyone has asked "Can someone tell me what X means?" and if they haven't, ask it yourself. A lot of people here enjoy trying to come up with a clear and simple explanation of key concepts.

share|improve this answer

I've been coding for 20 years and see some questions that I have no idea what they are about. And that's simply because there is such a wide range of topics.

For example, I was never a Python programmer, so if a question comes up that has terminology that is specific to Python, I think to myself, "huh?"

So yes, it's perfectly normal.

share|improve this answer

You could follow a tumor/virus model?...

  1. Find a niche (i.e. tag).
  2. Flourish under that tag by answering all the questions you can.
  3. Branch out (i.e. metastasize) into other tags that your main tag tends to overlap with.

EDIT: BTW, you shouldn't be discouraged. SO is a big place (around 100k questions!), so it's normal to not understand it all. After all, you don't eat EVERYTHING in the supermarket.

share|improve this answer

Don't be discouraged. Just be willing to learn, one little chunk at a time. To answer your questions:

Is this normal?

Yes.

Did it start like this for you?

Most definitely so. It turns out that computer science (or programming or software engineering) requires a lot of nitty gritty know-how e.g. knowing your way around the command prompt. And on top, it also requires solid fundamentals e.g. understanding big-Oh and how your algorithms perform. School tends to focus heavily on the latter, which is a lot of hard work and thus it can be overwhelming to find out that you still lack all the nitty gritty knowledge after all that. This definitely happened to me as I was finishing school.

If so, how did you conquer it?

I'm not sure that I have conquered it. You never stop learning. The thing to get good at is knowing how to read documentation, learning tools, libraries, etc and being methodical about this. Oftentimes it is really tempting (specially with SO around) to just search for how to do something and not understand what you are doing: drop that habit if you have it (I did/do). Always look into things until you understand them fully. If you don't know how to begin, it is probably an indication that you're also lacking some fundamentals knowledge -- find a book and read it from the beginning. This whole thing will be very time consuming at first, but as you build up your knowledge-base it'll become less so.

share|improve this answer
9  
+1 "You never stop learning" - true. –  Hamish Smith Feb 25 '09 at 20:29

I would recommend that you take a look at some of the following posts from our ever fearless leaders Jeff and Joel:

Make certain that you also read this article that Jeff links to in his blog.

Programming is a path, not a destination and being a great programmer means walking that path. We all had to start somewhere and that was at one point in time or another the place of knowing absolutely nothing.

share|improve this answer

Discouraged! What the hell? I mean, Come'n man ! You are student, these questions that you don't understand have been asked and answered by people with years experience in the field (sounds like a CIA .. in the field .. hah !) .. You're not a dump, actually you're a smart kid, you dig you toes in the water before jumping up to the swimming contest. Just take it easy and have faith!

share|improve this answer

Except for probably a handful of users here, feeling discouraged at times is probably normal. This is a fairly smart group of people with a wide variety of experience in different languages.

The fact that you're here is a good sign that you're willing to learn and move up. Look at it this way, where else are you going to be able to surround yourself with some much expertise, for so little money????

share|improve this answer

Sad to say, but I don't even understand a majority of the questions posed here

I have a university degree, My job title is "Senior Software Engineer", and I've been programming professionally for over 6 years, and I don't understand the majority of questions here, and to put it bluntly, I'm not supposed to.

One of the stated goals of Stack Overflow is to recognize that there are so many niche areas of programming, and that the only way to possibly find an answer to most questions is to have as wide an audience as possible.

In a nutshell this means: The only way to find the 3 people on the planet who know how to solve your specific exact problem is to make sure we have an audience of all 200 million possible people. Don't worry if you're not one of the 3 people with an answer to a particular question... sooner or later something will come along that you will be an expert on, and then you'll be able to show all of us that :-)

share|improve this answer

You must log in to answer this question.