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?


  • 31
    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, 2009 at 19:50

70 Answers 70


I've been a fiberglass sailboat repairman, dog-sled guide, industrial welder, sawyer at my own sawmill, labourer and student but no job has ever held my attention by being constantly challenging like programming.

Don't despair, have some fun with the culture and the lore by reading the Jargon File.

If stuff like the The Meaning of ‘Hack’ doesn't make you happy then you might be headed in the wrong direction. In that case find a way to use computers to do something that you want to do.


I am a final year CS student. Don't be discouraged. The stuff here is much about the specific platforms and frameworks. Better concentrate on the basics. Like knowing how to make a dynamic page in JSP, .NET, Django won't help much. But not knowing HTTP or HTML will hurt you.


In order to not be overwhelmed by this site, I use the search function to search for subjects that I know a little about. Later, when you're more comfortable with the fact that there are thousands of things you don't know (yet), you'll feel better about the things you do know and are currently learning.


Seriously dude, with all due respect, you're still just a kid. You are comparing yourself to industry veterans. If you didn't feel lost, something would be wrong. And to be honest, most professionals have no idea of what half the stuff here means either, trust me. =)

Don't waste your mental effort with the ego part of engineering. Don't get intimidated, and don't work with the purpose of learning so you can feel superior. Just do what you do, learn what you learn, until you have your own self-confidence that you know what you know, and you know it well. Then none of this comparing yourself to others will matter. If I bothered to read through all of SO and ask myself "do I understand all these questions, and if not am I a bad person?" I'd probably end up discouraged and drive myself crazy. It's an easy pitfall to fall into, but resist the temptation. Unfortunately SE & IT are filled with many bad examples, find a solid mentor and stick with him, learn from him.

So I'd go with #3, this is normal. but ultimately irrelevant.


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.


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.


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????


I've been making a good living at this software thing for probably longer than you've been alive, have worked on a large variety of systems, and have done some poking around on my own. I've also tried going to grad school. I've amassed more than 4K rep points here, and have been active elsewhere.

I couldn't answer most of the questions here, and in many cases have absolutely no solid knowledge of what they're about.

Don't let this discourage you. There's always more to learn.


If you get discouraged seeing active discussions in your field, you probably aren't in the right field. New ideas in a field you love should get you fired up! When those new topics are bouncing around in an approachable, open community like this, and you still don't feel comfortable learning, there's something wrong.

How did you pick your major? Do you tinker with software, math, ideas, writing or other other creative things? Do you enjoy being around other creative people? Analytic people? I've known many software engineers that had unhappy CS educations and unhappy careers. I've also known people who've fallen in love with software that had practically no formal training. In my experience, you can't learn to love your career -- you have to find something you love (or at least like a lot) and then learn how it works.


Don't get discouraged - it's this way for everybody.

In addition to what other people have said, a few more pointers:

You have two main choices in software/technology - become a specialist or a generalist. This is the same as in other professions. I tend towards being a generalist because I enjoy working on an object model, then optimizing stored procedures, fixing a DLL issue on a windows server, and then banging on a router that is having DNS issues. A lot of people are specialists, which has its advantages too. A specialist might be able to give very specific answers to a lot of the questions on SO and be correct - a generalist could provide an answer to a wider swath of questions on SO, but would probably end the answer with "I'm no expert, so take this with a grain of salt".

Specialists will also get paid more and have an easier time finding jobs in multiple locations. Generalists will have an easier time finding jobs in one location (if you don't want to move), and will get hired quickly if the business sees that they can get a network admin/programmer/server guy all in one package.


There are five orders of ignorance:

  • Zero order ignorance (0OI): Lack of ignorance; that is, knowing something and knowing that you can demonstrate that knowledge.
  • First order ignorance (1OI): Lack of knowledge; that is, knowing that you don’t know something, but knowing that you could learn and how you could learn.
  • Second order ignorance (2OI): Lack of awareness; that is, not knowing something and not knowing that you don’t know. You are ignorant (unaware) that you have first order ignorance.
  • Third order ignorance (3OI): Lack of process; that is, you don’t know how to "discover" whether you have second order ignorance. Practically, this means that no suitably efficient (reasonably time-limited) help is at hand to guide the discovery process.
  • Fourth order ignorance (4OI): Lack of ignorance about the orders of ignorance.

You now do not have 4OI. By coming here to SO, you are reducing your 2OI and 3OI. Congrats. Now work on reasonably moving from 1OI to 0OI.

Also, think of this: knowledge is like a circle. 0OI is the area of the circle. 1OI is the perimeter of the circle, and 2OI is everything beyond. When the area of the circle expands, so does the perimeter.


I changed communities, tried Microsoft Forums, tried developez.com and many other sites. I always face the same problem (that you face) so it's normal. There's millions of developer, there are thousands of technologies and problems, so finding someone who have a problem that you can solve it hard :/


SO is an enormous database of tech questions. But most of it is practical guidance and specific to certain technologies/apis/libs. There is no reason for you to get discouraged because, you may not even have worked in more than half the technologies discussed in here. But when you're stuck with some problem in a specific technology, this is the "second best" place to ask and get expert opinions. i say second best because the mailing list or forum will be more exhaustive, but SO beats them on the swiftness and quality of answers.

SO is great for language related questions and sometimes you need to be really good in multiple languages and programming paradigms to even understand the questions. I hope SO encourages rather than discourage you to learn more languages


Questions on here are extremely specialized. It would be almost impossible for one to know the answer to most things.



Don't fell that you are neglected.

We all are here to learn. Post your questions however simple it is , we all are here to help each other.

This forum is for all.

Good luck.!!! (:

  • ...or do your homework...
    – gbn
    Jun 8, 2009 at 4:18

I have been in the business for over twenty years. In my opinion - it seems that the field is and has always been much to large to even begin to get a grip on everything. You should feel completely normal in your view of the vast amount and range of questions posed here. The real "secret" for me to being a successful programmer is not knowing the answer to all the questions - but knowing how to FIND the answer quickly. And Stackoverflow is one of the many resources to use. Getting to know all the tools and resources to find answers to the problems you will encounter as a professional is the biggest trick I never learned in college. Once you realize this - coming to a site like SO is a great discovery - not a depressing one.

  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).


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!


I have been working as a programmer for six years now and have a variety of languages under my belt (.NET, ASP Classic, ABAP, and more), but I still don't understand everything that is discussed on Stack Overflow or other forums I watch.

That's why I watch them to learn new things get insight on the new technologies, etc. Don't get discouraged; that's what this is all about ask questions make comments and build off the knowledge that everyone is sharing. I think if someone thought they knew everything that was discussed on Stack Overflow they would be kidding themselves and the profession.

The area we are all in is so dynamic and ever changing that it would be virtually impossible to know everything. That's why sites like this are awesome you can ask a question and get a response within minutes in some cases. Very awesome and helpful in the crunch.


Don't be discouraged. Stack Overflow can be viewed as a good mirror for where you are at and what you can learn, and there are many, many helpful people here who have started from all sorts of backgrounds. I look at it as a chance to test your knowledge and find areas where you can improve. Along the way you'll see areas where you have something to contribute, and as long as you are good willed with your input you'll get something back.

Don't worry about the badges or reputation. I have had very authoritative yet amazing false answers from people, but overall the majority of answers have been great. In the end, it's just dudes and dudettes who love software development.

Jump in, get ready to learn and give it shot. Just remember, we really can't see you, so be bold and participate, and don't be concerned with your knowledge level. Yeah, there's a lot we all don't know, but that should only spur us on.


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


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


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.

  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.

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.... :)


Question on SO is not related to one specific area, but generally it covers programming related question. Initially it happens to everyone.
It is good for you to find easy topics and study them. Google and research them.
Yes it is normal.


The thing to take away from the university experience is not that you have learned everything there is to know or that you have "learned enough." Rather, you have used the opportunity to learn how to learn.

Technology is always changing. Software development is always changing.

SO is great place to continue the process of learning. Some day,perhaps sooner than you expect, you will be teaching others.

Don't get discouraged.


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.

  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.


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.

You must log in to answer this question.