Click here to Skip to main content
15,891,657 members
Please Sign up or sign in to vote.
3.91/5 (6 votes)
See more:
I am seriously interested in learning c#. Now, it is easy to learn basic stuff. But, as you go deep, it becomes really hard. I seriously want to become an awesome programmer. I want to write awesome programs like i just checked out in article sections here.

But, this looks so overwhelming and impossible to me.

I tried learning from online tutorials. But, it doesnt work 100%. Sometimes, i just dont get it.

In past 3 months, i learnt c and i thoroughly enjoyed it. I think, i am someone who learn from teacher in classroom. I can interrupt and ask questions. In online tutorials, you cant ask questions. You just have to watch and pray to god, you actually understand it.

Now, i have build my future roadmap.

1) Learn all the basics of c#. Like cover whole syllabus from variable types, delegates, interference, polymorphism etc

2) Than, create 200 projects from



[^]

I hope after this i will have enough practice to create some awesome applications.

At this point, i will consider myself as someone who knows a bit about programming.

But, its overwhelming. I think no classroom will help me to write these 200 projects.

So, my question is how do you become extraordinary programmer?

Ii guess, now i understand importance of college. May be, when you are in college you have great resource in the form of your teachers and some nerdy, geeky classmates.

How did you become extraordinary programmers? ( someone who can write anything which he can dream of?)

Thanks
Posted
Comments
Kornfeld Eliyahu Peter 2-Apr-14 17:18pm    
It's hard maybe because we are humans and computers not. So or you have to learn to think like a computer or teach him to think like a human...
Tom Marvolo Riddle 3-Apr-14 6:29am    
you have to learn to think like a computer or teach him to think like a human.... I like it. :)
gggustafson 2-Apr-14 17:30pm    
May I suggest that you post this to the Lounge? This forum is really for technical questions. By the way, I've been programming for about 50 years now and have found that my path to programming excellence was different from others.

Good luck in your career.
gggustafson 2-Apr-14 17:47pm    
Better answer than mine
ankur1163 2-Apr-14 17:53pm    
I agree - i think this is the best way.

After reflection, I decided to post my initial comment here as a "solution," with a few additions.

My advice is simply to try and avoid worrying about what type of programmer you are, or other people are, and just get busy studying, reading, practicing, and setting yourself real problems to solve. Everyone, at some point in time, was a "beginner," everyone has been confused by new syntax and struggled towards mastery of whatever programming language they adopted.

Study other people's code, study the great articles, and tutorials, here on CodeProject.

Get a few good books to read, and read them over, and over, again, being patient with your own progress in understanding. There are a few writers who have published books on C# who I think have a special gift for teaching; among them I would include Charles Petzold, Jesse Liberty, and, Matthew MacDonald. You can see further comments I've made on books for C# here: [^], [^].

I believe that you grow your "technical mind" the way a tree grows, ring after ring added over time. You need to get comfortable with a type of learning that is not "all or nothing," but involves making multiple passes over the same documentation, the same code, again, and again. To quote the great Sufi poet, Kabir: "where there is a garden, the flowers will come" ("rahi gulzar to phool khilenge").

I think there are some key cognitive skills that enable becoming a better programmer that can be developed through persistent, disciplined effort, including the ability to be aware of when you are frustrated, and need to "back-off" and let the mind relax before resuming study.

Another ability I have observed in the really good programmers (far better than I will ever be) I had the privilege to work with at Cricket, Emerald City, Adobe, and WildTangent, was ... perhaps more of a character trait ... a "humility" in the sense of never hesitating to admit they had not grasped the full implications of a technical problem, or that had over-worked their code: a kind of personal flexibility that was often accompanied by a wonderful sense of humor :)

Given the way most of us have been socialized to be motivated by financial reward and peer pressure, putting yourself ... if you can ... into situations like an internship, or volunteering to assist on a project where you have opportunity to interact with people at more advanced levels of skill than you have, can be very valuable.

I took up programming after the age of forty, and I truly hope that when you are seventy years old, as I am, you will look back on your career in programming with the happy conviction that it was one of the best choices you ever made, and laugh at your memories of the incredible dramas you may have been through (as I laugh when I think about the "birth" of Acrobat, in which I played a significant role) !
 
Share this answer
 
Comments
ankur1163 3-Apr-14 1:10am    
very thoughtful answer :)
ankur1163 asked:
But, when i read the code, i usually get stuck. Wy coder does this or that.
I would not be frustrated by the fact you have problems reading some code. To me, the apparent fact is: most code in the world is written by complete idiots, so you should not blame yourself that you cannot read idiotic code — no one can. Do the simple test: read your own code you wrote just one year ago. If you can read it well and even modify the functionality, this would be the excellent result; you are already on the right track.

I recently read one funny article. It is not in English, so I will quickly describe the idea in my own words, based on my own understanding of the problem, using just the idea. This is about reading job postings, resumes and the real meaning of some statements, that is, reading between line. So you can often see in a posted job description:
"Must read code written by others."
What is it really mean? Apparently, of someone can write (if on is hired as a software developer, such person can write code), such person also can read. So, what's the big deal? You should read between line and translate this cryptic message into the direct statement. There can be few items:
    • We have a lot of legacy code written by complete morons. The code is unreadable, so most of your time will be spent on reading and patching this trash. Forget about any reasonable or productive work. You won't have time for that. You should patiently patch trash code and not complain.

    • In our company, we permanently push developers to commit new and new releases. Each previous release is always total trash, that's we we do many of them.

    • We don't care about quality, so it's okay to write unreadable code. We will hire more morons who will spend almost all time on reading that code. You are just one of them.


Now, you can see in some resume:
"I can read code written by others."
What does it mean? If you can read between line, you will understand it:
"I write code that is hard to understand. I do it quickly, so it is complete trash. It is not really supportable, but I don't care. I can read code written by other morons, so, when I leave the company, you can hire more morons and makes them reading my code; I don't care."
If you don't want to be one of those people, don't worry too much, you won't. If one of such companies feel that you are a decent developer, they will never ever hire you. You would not like that, would you? :-)

[EDIT]

Please see my past answers on career and learning:
One Challenge in WPF Programing[^],
Oracle Developer Beginner[^],
Other peoples code...[^],
[Not a question] Conceder a situation where we have a super class Worker and the two subclasses part time worker and Full time Worker[^],
How to Start a Project in C# having only Requirement?[^].

—SA
 
Share this answer
 
v8
Comments
Per Söderlund 7-Apr-14 6:15am    
Calling people complete idiots because they dont write good code?
Sergey Alexandrovich Kryukov 7-Apr-14 9:16am    
Of course not for that reason. :-)
—SA
Per Söderlund 14-Apr-14 4:34am    
Good to hear.
College doesn't teach much but the basics unless you hit the MIT's of the world, but that means you are elite if you get in there. The rest of us google our way through and hit sites like this. Thats what I do. I"m not elite either but I do it to pay the bills. The best way to learn is come up with an idea or project you want to create. Then when you hit a road block on how to do something, search the internet. More than likely someone has already tried it. That's how I learned to get deeper into stuff. Wrote an entire VB.Net app that works with databases, word merge, creates reports etc... Googled most of what I wanted. Learning the libraries that already have the objects and methods you need takes time. But once you have a good code base of things you've tried...its just copy paste and reusable golden nuggets.

Once I did that I moved on to c# and figured out how to do that knowing the VB.NET equivalent already. Not much difference. Mostly syntax.
 
Share this answer
 
Comments
ankur1163 2-Apr-14 17:34pm    
but for that you got to pass through basics. Plus, you might be very intelligent. But, when i read the code, i usually get stuck. Wy coder does this or that. At that point, i need a teacher to tell me what specific code is doing. Thats why i said understanding tuts and than doing 200 projects. After that, i think i will be perfect for googling and getting something done on my own.

Thanks
Sergey Alexandrovich Kryukov 2-Apr-14 19:04pm    
Don't worry about this "reading skills". Just read Solution 2.
—SA
Sergey Alexandrovich Kryukov 2-Apr-14 18:42pm    
MIT does not guarantee to be the real elite. One day, when we tried to here a really good developer, one guy called me and asked about a position in our company. He was a lecturer in mathematics, lead some software project... I told him about our work, and he said: this is the top-notch stuff. Then I asked we he is planning to quit such an interesting job as teaching of MIT students. He answer: I tired of out project, and I tired to teach calculus to people who don't know how to divide one number by another. I really knew some top-notch MIT students, so I was shocked, but I think this person knew better. So, if you think MIT is "elite", I don't know how to call some other people I worked with... :-)
—SA

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