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

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

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

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

1) yes, it's the same for everyone

2) Experience, but to be honest, you'll never stop being overwhelmed by how much there is to learn. People keep on inveting more more stuff to learn goddamnit

3) No, you're probably ahead of the majority of your peers already, they're unlikely to be seeking out this kind of experience, never mind asking such honest questions.

share|improve this answer

This site covers a broad spectrum of aspects of our craft. I've been working professionally for almost 10 years, and a lot of information here is new to me. If anything this should be encouraging - always a challenge in this field.....always areas that you can add value if you put in the effort. AND it ALWAYS changes.... :)

share|improve this answer

Yes it is normal and yes I also felt the same way. My question to you is: what are your outside of school activities? What are your long-term career aspirations?

More specifically, do you intend to work in the private sector or do you expect to continue your education for a Masters Degree or PhD?

Most of the people on this site are professionals. My advice to you is to go out in the real world and get some experience building Web sites, doing some small-time consulting, etc. You will be surprised at how fast you catch on and next thing you know you will be answering questions with the big dogs!

share|improve this answer

Did it start like this for you?

I had learned some programming while in high school and had written a couple of small programs. Then I wanted to improve one of my programs and begun redesigning it, but I hit a wall in trying to manage the complexity. Writing small programs was OK (1000-2000 lines of Java), but I did know how to go about writing larger programs.

If so, how did you conquer it?

In university I got the skills for designing larger programs, and the basic information on how things work (databases, networking, operating systems, algorithms, data structures, assembly code, concurrency, project management etc.). None of the things in themselves were hard to learn. It just takes time to learn them one by one. You also need to practice what you learn. While studying, it's good to have some hobby projects or part-time programming work, so that you can put to practice the theory that they teach at university (but don't work so much that it slows down the studies).

Is this normal?

In programming, you need to be learning new stuff all the time. And the more you learn, the more things you will see in the horizon about which you don't know that much. Then depending on what your needs are and how much time you have, you need to decide what learning that will benefit you the most, and leave the rest for some other time, or ask someone else to do the work which requires knowing those things.

share|improve this answer

You must log in to answer this question.