Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I am wanting to learn C# where would be a good place to start?
What tools will I need to code and compile with as well?
Tools - Download MS Visual C# Express Edition 2010.
Books - Head First C# if you are looking basics..
Refer this page for some good videos and links on C#
Don't rely on the web for good code examples...
With C# specifically, it's easy to find a million examples of how to do something but it's especially hard to find 'good' examples that are succinct and up-to-date with the latest features/practices of the language. If you're learning C# from scratch, the web will probably discourage more than help (I know from personal experience).
If you're learning C# rely on good books to get a solid start. Here's a good list of books to begin with.
Also, bookmark this site as an online C# reference. It is by-far the best of the hundreds/thousands of C# sites that I have seen.
Download Visual Studio Express edition 2010 and do a Hello World console application.
I'd also recommend downloading SQL Server 2008 express and getting familiar with that once you feel like you are getting good with C#.
Both are free and there is lots of resources out there for a beginner.
Also, if you work at a .NET shop tell your manager that you'd interested and see if he'll team you up with an experienced developer to get you started. Having someone to teach you is extremely helpful.
Download Visual Studio 2010 Express Edition, start reading books and tutorials and arm yourself with patience.
I defiantly would say it depends on your experience level. If you already know the OO fundamentals like Polymorphism, Encapsulation etc... and programming fundamentals like loops, conditionals etc... then perhaps opt for a Pro book Wrox C# 4.0. However if you are not familiar and have little experience I have to agree with others that the Head First Series is an extremely good way to learn. Not written in an Academic manner but in a more fun way which makes it easier to remember things.
Obviously as others suggested you can get the appropriate software to create applications in the form of the express editions.
I would try and create your own applications along with doing the books to make things fun and learn more. By doing this you can look at examples on the web and use the code trying to understand it, and also alter the code so it performs the functionality you want. Even if its functionality you have no idea about and the book hasn't covered, as long as you can look at the code and get a general idea of what it's doing.
Like the above mentioned Visual studio 2010.
try this for a great starter, it has loads of resources.
Get familiar with the api, the sooner the better.
I also find video tutorials a great way to let the stuff stick :) So either watch video tutorials then code a bit , then watch again to remember it, but the best way to learn the code is just to do it. Too much theory can confuse, code as you go, set goals for your self and the theory will come as you try to figure out and solve problems.
After installing VS2010 Express Edition, get Programming in the Key of C# by Charles Petzold. It's ancient, but nothing teaches the fundamentals of C# like this book. After that, get Essential C# 2.0, 3.0, or 4.0, higher the better.
Just take your time and learn the fundamentals down cold and you'll be ready to move on.
Check out Microsoft's MSDN series of tutorials.
There's a nice section that goes over command-line C# writing, as well as another section that covers the drag-and-drop window designer functionality that you get with Visual Studio.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I really want to learn how to program. A friend suggested I buy vs 2005 or a newer version if I'm serious about it. Is there a cheaper route? I would like to start with c#.
Visual Studio Express is available for free from MS and is perfect for getting started.
You can start with visual studio express - it is free
My path (so far):
From no programming I picked up Java for Dummies, then progressed to Head First Java.
I found I needed the Dummies book, and found that the Head First book helped me both understand some key concepts (such as inheritance and other OO fun) and gave great examples.
However the problem with an OO language can be that you need to understand a lot of OO concepts also. I jumped straight into Java, but in hindsight maybe I should have started with Python or C, get the hang of datastructures/loops etc. first THEN progress to OO.
I personally recommend using an IDE some books don't but unless you are really good at picking up typos, import statements etc. I found using just notepad only annoyed me.
If you have a support network of IRL friends that use a certain language you might consider learning those languages, as with the Web there are a lot of great tutorials but sometimes you can get information overload, and you have to wait for people to respond on forums.
C# is good for jobs where I live, so is Java and C++. After you get the hang of your first language, you can look around and learn new things based on area where you want to work in/program for eg Web, Business Apps. etc. Unless you do it just for a hobby. If not, consider what the market wants.
Hope this helps ^_^
If you're beginning programming, an express edition of Visual Studio should be far enough to discover C#.
You can find the latest Express editions here.
If you've never done any programming before then I'd recommend not jumping straight into Visual Studio and a .net language. The amount of stuff you'll have to learn just to get to the point where you can start writing code is just too great.
Start with a simple language like Python. Edit your code in notepad and run it in a command window. Write some simple programs to generate output and read input from the keyboard. Build-up slowly.
When you'be built-up a bit of knowledge, try taking the same approach with c# or vb.net. Then explore Visual Studio, and play with winforms or wpf.
Good luck!
Quick tip:
Simply buying the Visual Studio package and trying to use it might be an exercise in causing your brain to explode. At least, it was when I started.
I'd find a friend who is good at teaching to help you get started, or take a programming 101 class at a local college (community or technical colleges are perfect for this sort of thing). Or get a good tutorial from the Internet or a book. That's really the best way to get going, as they can help point you in a good direction. The Visual Studio software is very complicated if you aren't familiar with programming concepts coming in.
Also, find something cool to write, that solve problems you have:
Program that computes paintball trajectory
D&D die-roll generator, when you forget your dice
Tools to control your iPod
etc
You could also download the latest Eclipse IDE and try some Java.
Or if you want to go multi-platform, try MonoDevelop. Not as advanced as Visual Studio (yet), but certainly enough to learn to program.
Visual Studio 2005 is too old for you. Start learning on 2010 and .NET 4. And get Express version from this location http://www.microsoft.com/express/
I agree with Jay: I don't think there's any reason to purchase development tools when there are widely available free tools/languages.
Along with his java suggestion I would say checkout out Ruby!
Personally I think ruby is the easiest to start with out of the box. You don't have to worry about compilers or IDE's. Any text editor works and irb (Interactive Ruby) is a godsend for learning.
I do find that it's a bit nicer to have a good console (ie. on Linux/Unix and OSX) in order to really see the benefits of IRB, but I believe there's something similar on windows??
Best part is, it's free, and if you're looking to build webapps, Rails is probably the easiest framework you can find for building dynamic webapps.
Answer taken from here
You can download the free Visual Studio Express Edition, and also access to the MSDN library is free. And there is also Sql Server Express edition which is also free.
Add to this all the great free online resources, like stackoverflow, asp.net, codeproject, blogs etc. and you are ready to go.
If you want to start programming with C#, C++, Visual Basic.NET, F# and pals, VS Express is the way to go obviously.
If what you need, however, is focusing on basic programming concepts like conditional execution, iteration and recursion, they might be overkill. You should instead try simpler languages like C or Python.
I'm not aware of what the definitive IDE for C and Python would be, but I make do with Eclipse for the former and a simple text editor with generic completion and the support of iPython for the latter.
As others have said, Visual Studio Express edition is free, and there are newer versions than 2005. 2010 should be out soon (if it's not already available).
If you don't want to go VS Express there is also SharpDevelop which is Open Source and very nice. But I agree with what others have said in that you may want to check your starting learning language. Certain languages work well for doing certain types of programming. I always thought Java was a good language to start with because there are MANY tools that support it and lots of tutorials out there if you get stuck somewhere.
As others said: Visual Studio Express is great to start with and best of all it's completely free.
If you have previous experience with programming, c# is reasonably easy to learn. If you're completely new to programming you might find Visual Basic a lot easier. It does not matter which language you choose, as long as you're comfortable with it.
Finally, a good beginners book can help tremendously to get you started. The advantage of a book is that it takes you step by step through the learning process. This way you don't have to look all over the internet to find all kinds of unrelated samples.
Have fun!
For C++, use Dev-C++ from Bloodshed Software; super clean and easy to use.
http://www.brothersoft.com/dev-c++-download-65296.html
For Python, just use the IDE they provide. Super clean and useful.
http://www.python.org/download/
I would recommend RapidQ. It is a free semi-object-oriented BASIC programming language for Windows and Linux. IMHO, it is one of the easiest languages to learn and use (easier than VB for example). It comes with compiler, IDE and graphical GUI designer. Howevere, it is not too much different from VB.
Unfortunately RapidQ is not developed any more, but there is an active user community at Yahoo Groups. From the files section of the group, you can download the compiler/IDE and several extensions and applicatlion examples.
Objective C isn't particularly easy as a first language, but it's not that difficult either and it does have the advantage that programming for iPhone at the moment is "sexy" and "fun" and potentially commercially useful for you. Plus there are a bunch of educational videos on iTunes U (search for "Stanford" in iTunes).
XCode for iPhone development is free to download once you register at developer.apple.com
Buying VS 2005 is a terrible idea IMHO. Learn using free tools. Intellij IDEA community edition is amazing... and free.
It all depends where you want to start: Java, Python, Ruby, C, C++, C#... Just dive in and have fun with it.
I would recommend starting with these.
http://channel9.msdn.com/Series/Visual-Basic-Development-for-Absolute-Beginners
http://channel9.msdn.com/Series/C-Sharp-Fundamentals-Development-for-Absolute-Beginners
These cover the bare essentials needed to get started with programming. When I first decided to get into programming seriously (not so long ago) this would have been ideal.
I personally find videos to be a great start in learning. The use of sight and sound works great. Thereafter, when you get stuck, the MSDN Library is also a great resource, with an abundance of explanations, tutorials, and samples.
http://msdn.microsoft.com/en-us/library/ms123401.aspx
Check in regularly with MSDN http://msdn.microsoft.com/en-za/ which has all you need to get started.
Lastly, pick a project to start on. That is, think of an application you would like, or do like, and build it. Nothing tastes more like chocolate cake than deploying your first -- bug-ridden -- program. Finding an open-source application to compare yours too works well in these situations. Look here for many open-source applications:
http://codeplex.com AND
http://sourceforge.net
Happy Coding!
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
Im a pretty experienced programmer in PHP and mainly web languages but today i have decided i want to start to learn a new language!
Im only 21 and I feel as I will never make it in the programming industry without a great set of languages under my belt, So i decided to have a look at C#.
The reason I have chosen C# is because some C programmers have told me that C# is the best language to learn for desktop applications.
I think i need to get started with the Syntax / Structure of C#, What Development Environment to use, and other things that i might face along my new journey.
I hope somebody can guide me
Thanks.
For IDE, you can use Visual Studio Express. And here's a nice set of tutorials.
Also do get your basic concepts straight about .NET framework and CLR.
Once you get the hang of it, Try out LINQ. It is (arguably)the most wonderful feature of the framework. Find some good LINQ tutorials here and here
Although you explicitly mentioned Desktop applications, .NET FW is equally suitable for Web applications 4GuysfromRolla is my favorite ASP.NET resource.
For Dektop applications you might want to start with WinForms, but WPF is the technology of the future. So you are better off learning it if you want to be developing Desktop applications for windows.
Happy Learning!
Stuff you'll need for the beginning:
Visual Studio 2010 Express edition
Few evenings with coffee and Beginner Developer Learning Center
A nice book like this one (it might be a giant one, but I'm in love with it)
Some more coffee
A lot of patience with stuff that isn't in PHP (LINQ, delegates, generic types etc)
Some nice idea to start actually developing and trying stuff out
The best way to learn is to have a problem to solve, and specifically I mean to do something that you DON'T know how to do, rather than something for which you already have the tools. I'd browse around on the net for some toy problems and try to build an app for it.
Eg. I only started on the way down OOP once I decided I needed a poker probability calculator. So basically I had to read a bunch of stuff about VB 6 as I went along. Classes, properties, methods, syntax... the web is great for that kind of thing.
I suppose what I mean is Just Do IT... (see what I did there? :) You'll screw things up, but learn loads more than any book can teach you.
If you're using Visual Studio for Learning it you can use MSDN that perfect for early learning is enough.
I highly recommend Illustrated C# 2008 by Daniel Solis. That's the book I used to learn how the C# language worked (Don't be fooled by "Illustrated" in the title: it's not so much a "beginner's" book as much as it uses good illustrations to teach the language).
You might consider following up with a book dedicated to Silverlight, Windows Presentation Foundation, or ASP.NET if you want to be able to apply what you learn in C# to an appropriate API. I would recommend any book by Matthew MacDonald for the latter.
Learning the basics Pascal, Java, C# and even C is more or less the same...
Start with the studying material of any academic "Introduction to Computer Science" course,
try solving the assignments in a few different languages (to learn C# at a C-like level),
then move on the material from any academic "Object Oriented Programming" course to learn the rest of the basics.
After that is only a matter of experience and searching the MSDN help.
Since you're already an experienced programmer learning C# is more a less an exercise in learning the .NET Framework. The syntax should be easy enough for you to nail down pretty quickly, just by looking for a few tutorials. The harder part will be learning the vast API available to you via the Framework.
I suggest finding a good book on C# (I've had good experience with Microsoft Press and I've heard good things about Wrox and O'Reilly). Make sure it discusses classes, polymorphism (inheritance and interfaces), event based programming, LINQ and reflection.
I believe you'll also want to look at any books dealing specifically with ADO.NET and WPF. The great thing about .NET is once you learn the .NET Framework API you can pretty much move between languages as needed.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
My background is in web programming, mostly scripting with Perl. And I've recently been tasked with creating a desktop application. I'm wondering, where can one learn such concepts like making executables, what DLLs are for, how UIs are made, what threads are, etc.
I already have C# in Depth by Jon Skeet and C# in a Nutshell. I'm not worried about learning C# itself as much as I am learning about the workflows involved with using it on the desktop, things that are typically not done in web development.
Where should I look?
One starting point would be WindowsClient.net (Microsoft). Lots of videos too. But maybe a little less suited for the absolute beginners.
I only recently began learning C# myself - so I have quite the array(... ;) ) of links:
C-Sharp Corner
CSharp Friends
CSharp Help
CSharp for absolute beginners - Very good
CSharp-online
Hope these help.
For learning .NET application development (the only way people should write apps on windows boxes without requirements otherwise), start with the excellent book CLR Via C# by Jeffrey Richter. Save the first couple chapters for later. You'll get everything you need to know about C# and the 2.0 CLR, which is the basis of all .NET application development (in C#, anyhow.)
Once you're done with that, look into Linq. Linq covers a number of different language feature updates that came in 3.0 and 3.5 versions of the framework and their associated language updates. With the basics + a good understanding of Linq, you'll be creating decent apps in no time.
Now, for which framework to use when constructing desktop apps: Winforms, or WPF.
If you're a web developer, throw that old winforms crap away and get with WPF. You'll feel much more comfortable with editing WPF forms in xaml than dealing with winforms.
The best thing about WPF is the amazing databinding support. In fact, the WPF version of MVC is based on the databinding support in WPF.
Check out the databinding cheat sheet, then learn about MVVM.
A good place to start would be to read MCTS Exam 70-546 Windows-based client development, then read 70-548 Designing and Developing Windows-based application. After that, you will probably need to read books focused on the specific technologies your app will use.
Surprised no one has answered this yet:
Programming Windows With C#, by Charles Petzold. Great book, easy read. Example based, but well organized for people that want to jump directly to a particular topic. He actually explains what's going on in each example, and why he's doing what he's doing. Really, a great resource.
(Note: this is a Windows Forms book...no WPF. Great for what it does, but if you're looking for WPF, look elsewhere.)
Old question, but i had to learn the same thing recently. I got the Visual C# 2012 step by step book. It teaches C# along with WPM. A good way to learn.
From what I hear and the little I have read of it Chris Sells's book on WinForms would be useful that. If I am not mistaken he has also done a book on WPF, but I don't know if it is any good.
Check Windows Developer Training Resources and for sure you will need the help of a book and some videos
You can start by building a new project in Visual Studio and selecting the one of the project templates under C#\Windows. This will build a simple application so you can see the basic elements of the project. For example select 'Windows Forms Application' this will start you off with a form where you can drag and drop additional page elements. You can then use Intellisence to explore the options on the controls. Also load the sample projects so you can see working examples.
That's how I would do it.
I recommend you the C# Yellow Book (Rob Miles) it's free and very useful to learn C# basics fast.
I'd like to study up on the latest technologies for writing Windows desktop apps. My last experience was with VC++ 6 using MFC. The landscape seems more complex these days, I'm not sure if I should learn .NET, don't really know what Windows forms, WPF are etc. All I want to do is be able to write some simple Windows GUI apps, probably using & learning C# along the way.
Any recommendations on books to read etc?
Also, is the free version of VC2008 good enough for writing small apps?
I would go with .NET and WPF. WinForms is still available, but is really a legacy branch of .NET at this point, and not worth learning if you are starting from scratch. WPF offers a lot of good features, and is pretty use to get up and running with.
I found "Windows Presentation Foundation Unleashed" a good introduction to WPF. It explained the foundational concepts well and wasn't just one of those 2,000 page tutorials full of screen shots.
I recommend Head First C#. If you've programmed in C++ before, you should be up to speed fairly quickly.
alt text http://ecx.images-amazon.com/images/I/51u3iZDwU6L._SL500_AA240_.jpg
MFC has changed very little since vc 6 you should be able to pick it up again with little trouble and while this skill set may not be as indemand as .net There are still jobs out there and you can still write compelling windows applications.
I would start with reading C# online tutorials and articles from Code Project
Well, if you are using C# you are using .NET. .NET really is a great framework for creating desktop applications. I think you are on the right track.
Actually, I learned ALOT just browsing Stack Overflow and posting a few questions here. I think the Visual Studio Express tools are great for new developers. I'm also a fan of Bob Tabor's stuff (http://www.learnvisualstudio.net/) He does have some free stuff located on MSDN here that was really helpful for a guy like me with a mostly scripting background. You may be ahead of me because of your past experience so perhaps it's too rudimentary for you.
I'm really starting to enjoy C# and .NET and just started to be able to read code and for the most part, comprehend it. It was quite a breakthrough for me.
Jim
If you've got a C++ background and aren't afraid of pointers/stack/heap etc, then this book (CLR vi C#) will give you a superb understanding of .Net. It is very readable and will provide the foundations you need to be able to understand just about any new/up and coming .Net technology (e.g. Linq, extension methods, etc).
VS2008 express editions are available free here and are good enough for writing small apps.
Developing windows application is not at all a difficult task using visual studio and .Net.
Just Install visual studio watch some video tutorials of visual studio and C# .net from www.youtube.com and then kick start your development.
Since you have a background of development so there won't be a barrier in writing logic, you may slightly face problem with classes use object browser of visual studio to overcome problem with class.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
My 11 year old son is very interested in programming. He has been working with Scratch
for a couple years but has now outgrown it. I recently helped him install Visual C# Express Edition and he is very excited to work with it, but we're having a hard time finding good resources for him online.
He learns best by looking at sample programs, dissecting them, altering them, etc. Searching around I wasn't able to find many good samples for him to download and try in C# Express Edition. Can anyone point me in the direction of a good set of sample programs for a kid learning C#, or any other resources you think might be good for him?
BTW I'm a programmer myself but I've been almost exclusively working with Linux for a long time, so when it comes to Microsoft I'm pretty lost!
I would recommend Coding4Fun. There are some very nice projects out there which would appeal to an 11 year old. I recall seeing some games, screensavers, and even a sample which shows how to make a WinForms app look like it is bleeding (awesome for Halloween, eh?)
Hmm... given that C# isn't really a "teaching language" (and that's not to say it's a bad choice), I suspect there aren't a lot of tutorials targeted at younger kinds. Have you considered doing some parallel learning and trying to pick up C# with your son? It might be a good bonding experience for both of you, and with your background in programming, you'll likely have a lot of insight to share, even if it's more language agnostic knowledge about things like algorithms, style, commenting, pitfalls to avoid, etc.
If your son has already been working with Scratch and is going to be starting on C# then I would say that he is ready for a regular starting C# tutorial. Teaching programming to kids in general has been discussed several times at SO a few times. Here is one of the better results (How and when do you teach a kid to code). The principal concepts of teaching a kid to program are the same regardless of the language.
Alice is based around story-telling. It's not programming specifically, but it teaching programming mechanisms. Instead of loop, it's more like "Repeat this" type construct. Worth watching the demo video though.
I just found when zapping the web the Kid's Corner from Microsoft, he could have a go on this link as well :-)
Code Project is a good resource, but many of the sample are more complicated than you'd want to start with.
For smaller sample apps, Microsoft released their 101 Samples for Visual Studio 2005
XNA is cool, but is somewhat complicated to get started with.
Coding4Fun is also good, but the amount of content isn't that huge.
For an absolute beginner I would suggest www.codecademy.com. It is very simply written and completely interactive from the very first page load. Very ideal for a 1st timer imho. It teaches in JavaScript not C# but they are pretty similar as far as syntax goes. He might already be too advanced for this though.
Any book written in or after 2008 that states it's C# for beginners on Amazon with positive reviews. Do not buy |BLANK| for dummies, no kid likes it! and keep a maximum price of $30 for $25 you can get a book that will be so great Microsoft might have to hire him, lol jk. i recommend a wrox book but any other book will do. has he coded any program yet, is he doing freeware, opensource or paid. some books are made especially for open source. it might be hard at first, but he will end up coding some really useful programs. Main thing, make him keep going! don't let him quit. In my opinion, it isn't worth quitting; once you got the hang of it coding is really fun.
I've started with C# by joining a Minecraft (link) classic server development team. These were all people around 16+, but they really helped me learning the language. Getting into a team with people around your age who are a bit more experienced helps a lot I think, and I'd definitely recommend it.
First of all, I would love than my daughter would be interest in programming when she come to that age, and for that, congratulations.
Microsoft has Codding 4 Fun which should be a nice start, and if he's interested in Video tutorials, check the ASP.NET Learn website, he will find a lot of tutorials and video tutorials in VB and C# together with all the source code.
After that, code Project is a nice place to look to more examples :)
Good programming!
Code Project comes to mind. Lots of samples, projects, etc. available to play with.
If games interested him (which is a fair bet) check out XNA, otherwise try to find some other interest, for example music, and then look for a framework/SDK that would let you create useful content quickly without having to do too much legwork.
You might be interested in checking out Popfly. It is a system similar to Scratch but if you want you can begin adding your own components or do some extra javascript or C#. The integration of the multiple technologies might be a little too advanced but then again it might be okay. Again this is very close to Scratch but it might be fun.
As mentioned previously definitely check out Coding4Fun.
Congratulations and good luck.