Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I'm a C# programmer, and I don't really think I can create a software, for example: if I have a task to take a WAV and play it, I'll just use the .NET SoundPlayer class. if I need to present a picture I'll just use a picturebox.

I'm not even sure how .NET handles the tasks, does it over treat it and takes a lot of memory? what do I do in cases .NET doesn't support? for example, if I want to play a WAV as mentioned, that's great. but if I want to play mp3 file, the only thing comes to my mind is look for a different library on the internet that supports it.

I see a lot of programs out there and just don't understand how they do it. even if it's a simple task like having a folder's thumbnail like it's showed in Windows Explorer (as shown here: I have no idea how it can be done. Also, when given a complicated task, say make a path-finder algorithm or anything that isn't a basic task, I'm blank and have no idea what to do.

I feel like I'm missing something, and I'm sure a lot of people out there feel exactly like I do, what advice could you give them?

share|improve this question

closed as not constructive by Mark Trapp Feb 4 '12 at 8:29

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

All of the best programmers I know were born with deep knowledge of complex systems. They never worked hard to understand how things work. –  ChaosPandion Feb 4 '12 at 8:12
Well... how did you manage to learn to program with C#? Could you apply the same process to learning how other things are programmed? –  Dan J Feb 4 '12 at 8:21
You write "I'm a C# programmer". What's your background? –  krlmlr Feb 4 '12 at 8:21
Logical ability to think complex comes with time. –  Karthik Sreenivasan Feb 4 '12 at 8:25
Like most problems - you break it down to smaller pieces. You break down the smaller pieces iteratively until you have something you do understand and can code. Then build back up to the full solution. –  Oded Feb 4 '12 at 8:26

2 Answers 2

up vote 1 down vote accepted

I'd say it's a challenge for you in the beginning. Try to challenge yourself as much as possible. The career path and your own luck should help guide you but challenges are a necessity that will (in my opinion) be the only things keeping you going forward later in your career.

So what if you draw a blank on one task? Force yourself to come up with an answer. Then force yourself to optimize it. Then practice. Keep finding questions and challenges and you'll see why you took this career path: it's fun for you. And when it's fun you should and will find ways to keep going further.

Like the comment mentions we always find hard questions. I think the attitude determines if we an even get the chance to solve them.

share|improve this answer

It goes down to the operating system API, which judging by your post content, is going to be the Windows API. It's a C API which can be called from managed code through P/Invoke.

share|improve this answer
Thank you, I did assume this has to do something with P/Invoke, now I know for sure. :) –  MasterMastic Feb 4 '12 at 11:38

Not the answer you're looking for? Browse other questions tagged or ask your own question.