Click here to Skip to main content
15,910,009 members
Please Sign up or sign in to vote.
3.69/5 (4 votes)
See more:
My name is Tim and I am trying to learn C#. My background is pretty small but when languages used to be procedural I used to be a wiz.

I am just starting the C# step by step book and I am at chapter 8 with values and references.

I understand values and references. I get pointers (from C) and the ref statement and all that.

My question is: After 8 chapters I still cannot sit down and write anything other than a basic program. Everytime I get stuck the book says, "You will learn about this in a future chapter..."

When does this language usually "click" with people? I am fairly smart and very aggressive with learning - should I continue on or learn a different language first?

Any feedback would be reassuring (even if the answer is that I am not that smart and I will never get it!)

Tim
Posted
Comments
Kuthuparakkal 18-May-15 10:15am    
Fix a task for you; start coding towards it; this way you may get started. For example: Try to get some data stored in a database; load them into DataTable and do manipulation of the data and try to display your data the way you want.
Also go through Articles here in CodeProject of a topic of your interest
Maciej Los 18-May-15 10:15am    
What exactly do you want to learn? What kind of program do you want to write?
Why do you think that you are ready to write simple application?
Tim Burdon 18-May-15 10:26am    
Hello Maciej,

I want to learn a general but powerful language so I can slowly become a good Soultion Developer. Specific programs for me right now would be any customer to client interfaces ( like a web-request for information ).

I actually do not know if I am ready to write a simple application but when I was learning regular C I grasped it almost right away and was off and writing code. The Object Oriented approach is very different for me.

I am just wondering if I picked a good place to start for a general but powerful language. I have never had problems with code before but this language seems confusing.

Tim
Maciej Los 18-May-15 10:29am    
The language you have chosen is very good. Don't give up and read the book to the end. See my answer.
Tim Burdon 18-May-15 10:33am    
Thank you. I appreciate the feedback. I will continue with C# and wait for the point where I "get it".

Thank you again!

Tim

The process of learning have to lasts. The bad news is that it never ends ;(

But... Don't worry! Read the book to the end. It's much, much better to get solid basics then start doing programs by lucky chance.

Here is a set of tutorials/guides to increase the pace of learning process:
C# Tutorials[^]
C# Programming Guide[^]
 
Share this answer
 
v2
Comments
Afzaal Ahmad Zeeshan 18-May-15 11:08am    
+5
Anyways, if you have will to learn, you never give up. :-) If you want to give up, then chances are that you never learn. ;-)
Sergey Alexandrovich Kryukov 18-May-15 12:16pm    
Well, see also my comments to the question and Solution 2...
—SA
Tim Burdon 18-May-15 16:08pm    
Thanks Sergey, and thank you for the links. I will use everything and I will learn this. People may forget the value of constructive criticism but I did not forget. I need it.
Tim
Sergey Alexandrovich Kryukov 18-May-15 16:20pm    
You are very welcome.
Good luck, call again.
I'm glad for your active winning attitude...
—SA
Sergey Alexandrovich Kryukov 18-May-15 12:15pm    
5ed.
However, this is not just about the source for reading. Please see my comments to the question and Solution 2.
—SA
As an addition to answers 1 and 2.

Quote:

When does this language usually "click" with people?
After finishing reading the book, re-reading certain sections, reading a more advanced book, "getting your hands dirty" for at least several months, understanding other peoples code, using some libraries and architectures for specific purposes, realizing what you've done all wrong before... (non-exhaustive list)

This isn't to demotivate you - rather to assure you that it's perfectly normal that it takes time.

I think C# is a very good language to learn first: It's rather young and its design isn't (yet?) bloated with questionable constructs; but it contains almost any feature one could expect from a modern OOP language. It doesn't lend itself as much as some other languages to writing bad code. It can be used to develop solutions for a very wide spectrum of problems.

There's a free PDF-book on programming in C# which I recommend not only as an alternative to your other books but especially because of its very well written introduction which explicitly addresses the concerns you expressed in your question and related things:
http://www.introprogramming.info/[^]

Just hang in there, it'll click eventually - good luck! :)
 
Share this answer
 
Comments
Sergey Alexandrovich Kryukov 18-May-15 13:13pm    
Some good points here, a 5.
—SA
Maciej Los 18-May-15 13:26pm    
5ed!
I already answered in my comment to the question. As I say, my suggestion is: become a master of your learning. If you feel that some book does not lead you well, let it go, but if you doubt it, take the lead right away. Remember, you are not an old lady listening to the version of foreign politics with open mouse from your neighbor, another old lady. Rather, you are a detective trying to assemble a real picture out of pieces from people he interrogates.

Interestingly, I never tried to bye any book on C# in first place, because other information was enough (don't get me wrong: books are very important, especially on the fundamentals), but my colleagues used to bring me some books they bought and asked me what I think, and I always would found at least one piece of bull… some baseless statements, "explanations" of functionality or recommendations. I guess, the respect to the printed word is developed on the level of reflexes, but this respect is often exaggerated.

So, books can be good or not. But what is better? Well, original documentation is somewhat more reliable:
https://msdn.microsoft.com/en-us/library/618ayhy6.aspx[^],
https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx[^].

Also, you need to learn the platform: https://msdn.microsoft.com/en-us/library/zw4w595w.aspx[^].

Eventually, it will be good to read the ECMA standards on C# and CLR. You can easily find and download the standard documents. You can check with them in all questionable case and compare with actual behavior of the compilers and runtime. Experiments can be considered as the integral part of learning; only you should not rely on the results of your experiments along; all your results should be understood theoretically.

But — o bother! — even the original documentation lacks some important detail and even contain some really misleading pages. Typically, this is because some delicate behavior is hard to explain, but the fact that the pages could be written not by original creator of the technology but other people could be some factor. In general, MSDN is reliable enough.

As to the learning techniques, you need to be the master. If the book says that something will be in "future chapter", what prevents you from reading this "future chapter", not in "future", but write now? What prevents you from reading the whole book in first approximation from the beginning to the end, to get the feeling of what is it all about? After all, such book is not a novel, it is not designed to be read just once in sequential order. After all, do you really need advise on how to read. Develop your own way.

Developing exercises? Of course. But do you have the section with exercises at the end of each chapter? If not, this is wrong textbook, or it is not a textbook at all. Take another one. Big deal… Only don't expect the perfect one. Some complain about the quality of the books or insufficient pedagogical talent in the teacher. I call it weakness of the students, or the excuse for laziness (but the complains about lack of knowledge in teachers can be valid). Pedagogical talent in teacher is only required for little kids; for older people, competence is more important. Adult students of college/universally level (and even before this age) should become the active side of the learning process.

—SA
 
Share this answer
 
v2
Comments
Sascha Lefèvre 18-May-15 13:04pm    
+5
Sergey Alexandrovich Kryukov 18-May-15 13:13pm    
Thank you, Sascha.
—SA
Maciej Los 18-May-15 13:24pm    
Sure, a 5!
Sergey Alexandrovich Kryukov 18-May-15 15:34pm    
Thank you, Maciej.
—SA
Learning is a ongoing procedure and even can not finish at all.
Try to start with some dummy project like web application with CRUD operations and Database interactions using C#.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900