What kind of projects should I do to teach myself C#/C/C++? [closed]
I am right now pretty experienced with scripting languages, especially Ruby, JavaScript and PHP. Now I want to learn some more powerful langu开发者_StackOverflow社区ages and I think C# is the best choice for me. After that I'd like to learn C, because most of the people say it's a “must-have” and that it gives you a better understanding of programming. Maybe I will learn C++ after that, but I don't know if it will bring me further(?).
But me question is: How can I learn these languages? What sort of projects should I do? I used to write some web applications or interpreters for some esolangs with the scripting languages.
You could try Project Euler. It has a lot of good problems that are solvable with programming in a variety of languages.
There is no absolute answer here.
Whatever the language you want to learn, the most important thing is to find one (or several) project that motivates you.
It seems you have already some understanding of web-oriented technologies (PHP, Ruby, and so on) maybe you could try to do something more related to your operating system: a file copier for Windows, or a tool to rename your .mp3
according to their ID3 tags, ...
It doesn't need to be the ultimate perfect tool: (in fact, it can even be slow and ineffective compared to an existing software: that's not the point).
I would say that what you do doesn't really matter as long as it is motivating.
If you're looking for stuff that's challenging (but ranges from fairly easy to fairly difficult) then have a look at: http://sixrevisions.com/resources/10-puzzle-websites-to-sharpen-your-programming-skills/
Participate in code competitions - such as Google's Code Jam, or TopCoder - where you can write your code in a language of your choice, and do it in these languages. They provide you with challenging projects, and you can try your best to complete them. Even if you only do practice problems or just enter the competition with no intent on winning or even competing, you can see ideas for projects to do to practice.
Write an image processing application in each of the three applications, something simple, uses file IO to read the input, do something useful like modify brightness/contrast with a user option, then write out the result to a new file.
Then make command line and GUI versions of this app for all three languages. Since you've mentioned C#, I assume your only platform is Windows, so your GUI option for C/C++ is using the Win32 API directly or some sort of framework.
This way, you'll get to learn basic app setup, file IO, byte manipulation, and get some GUI experience.
-Just an idea.
I wouldn't say C is a "must have". It sure wouldn't hurt to learn it, but you're probably better off spending that time on C# if that's what you are interested in.
Build some sample apps (web and/or WPF) in .NET that talk to a SQL database. Work on displaying and editing data in a master/child relationship. This is a very common scenario for most .NET applications.
精彩评论