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

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.

share|improve this answer

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

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

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

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

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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 :/

share|improve this answer

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

share|improve this answer

Hi,

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.!!! (:

share|improve this answer

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.

share|improve this answer

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

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

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

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

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.

share|improve this answer

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.

share|improve this answer

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

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.

share|improve this answer

I have been working as a programmer for 6 years now and have a variety of languages under my belt (.Net, classic ASP, ABAP, and more) but I still don't understand everything that is discussed on StackOverflow 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 StackOverflow 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.

share|improve this answer

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.

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

You must log in to answer this question.