Programming Mentor


I am curious how others break through plateaus in learning Computer Science.  I am currently enrolled in school on my 4th semester for a Computer Science degree.  

I program in C#/WPF mainly, but can also code in C++, Javascript, ASP.NET.  

My problem is I am reading tons of books, but when an abstract concept like delegates/events comes up, I learn the syntax, but don't feel I really understand the concept at its core.  I scour the internet for infomation, but most of the time the examples are either way too simple, or way too complex.

I work well in a mentor/mentee situation, but dont even know if that is something that is part of the coding community.  Any suggestions on how to get through these plateaus of learning, like Delegates, Reflection, and other abstract concepts.  I really want to understand when to use them, not just the syntax.  Thank you.
Who is Participating?
I learned how to code by being mentored right out of High School by a small firm over 10 years ago.  The best advice I would give is first and foremost try your best to find a development shop which will agree to allow you to do an internship.  There is no better way to learn then to have other coders explain the more abstract concepts to you.

Outside that the best you can do is keep pushing yourself.  Design applications that require you to leave your comfort zone.  Coding is hard at the start but I promise if you stick with it and push yourself you will have the 'ah ha' moment where it all starts to make sense.  Just takes a lot of effort to get over the hump.
käµfm³d 👽Commented:
One of the ways in which I continue my learning is by answering questions right here at EE, believe it or not. There have been countless questions that I have participated in that I did not know the answer to, but the topic of the question was interesting enough to cause me to research the topic. You might consider doing something similar. Just start off with things you know, and slowly work in things that you don't know, but are interested in.

Depending on what area of programming you end up working in, it could very well be the case that you do not even need to know about delegates and reflection, and any of the other advanced topics within .NET (e.g. COM Interop, Remoting, etc.). I work in a business environment, and both delegates and reflection are rarely mentioned. I know about them because I was interested in learning the nitty-gritty of the Framework, as you seem to be inclined to do as well.

Don't be afraid to ask questions on the various message boards (yes, even outside of EE). Each board has its respective gurus who will be glad to help you, so long as you show that you've at least tried to decipher the topic. It could certainly be the case that you've found 50 tutorials describing a topic, but none of the 50 has cause the topic to click with you. Clearly explain what part of the topic doesn't make sense, and you should have no trouble getting help from those who know the topic. (Just don't ever make the mistake of trying to get said gurus to do your shool work for you. It's really easy to spot those kind of questions!)

Having put forth some effort towards a CS degree, I will tell you that CS encompasses much more topics than just programming. .NET is just a small portion of the nebula that is CS. You will learn about various types of languages, the inner workings of a computer, various data structures and their uses, as well as designing efficient algorithms. I wouldn't focus too keenly on .NET concepts as there is going to be much more outside of the .NET realm that you will be learning about  : )
I strongly agree with the previous comment about designing applications that are outside your comfort zone.   While I enjoy reading about concepts and doing tutorials, that is never enough for me to internalize the information.  I have to create and implement a design that calls for it.  Then once I am having a specific issue I can do the research or ask the question and that is how I really learn.  Since my job doesn't usually require these concepts, I usually do this on my own time.  

Currently I am learning a functional programming language called Haskell simply because I think it will make me a better programmer.  I understand that .NET supports functional programming using LINQ so that might be another topic you would be interested in.
paulppAuthor Commented:
Thank you all for your input.  i am just frustrated, programing has come intuitivly for me most of the time, but these topics, I can totally get the sytax, but not the idea.  I currently have a web service that has 15 fucntions that have the same signatures, but do different things (I know I could use a switch statment, but went against that.)  I know there is a way to simpify this using delegates or Func<> but cant wrap my head around it.

I will keep pouding away, and follow all your suggestions.
käµfm³d 👽Commented:
If you care to ask a question related to delegates (including Func and Action), I, and I'm sure others, would be glad to assist you in that regard  : )
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.