Improve company productivity with a Business Account.Sign Up


Programming Mentor

Posted on 2013-01-02
Medium Priority
Last Modified: 2013-01-03

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.
Question by:paulpp

Accepted Solution

mlaise earned 668 total points
ID: 38737701
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.
LVL 75

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 668 total points
ID: 38737973
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  : )
LVL 11

Assisted Solution

MajorBigDeal earned 664 total points
ID: 38738478
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.

Author Closing Comment

ID: 38739094
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.
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 38739929
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  : )

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

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.

Join & Write a Comment

When you discover the power of the R programming language, you are going to wonder how you ever lived without it! Learn why the language merits a place in your programming arsenal.
Article by: Shaun
Tiling windows is a great way to see multiple applications at once. Windows Tiler is a tool that automatically tiles open application windows as the open and close.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…
Starting up a Project

608 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question