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!
Related
i am currently a PHP web developer (university student next year). i want to learn more about C#/WPF development (mainly windows development first).
i know of Channel 9, Windows Client, C# How do i.
since i know programming, i dont want to spend so much time with the very basic syntax etc, which i sometime find that books do (i am reading Accelerated C# 2010, tho i find it kind of wordy, i prefer something more visual, like videos, diagrams etc if possible).
i know of PHP blogs like zend casts or killerphp, there are books like survive the deep end that are shorter than 600 pages book. such resources are what i am looking for
It's been almost 8 years since I started with C#, so I don't know where all the 'cool' kids go, but MSDN is usually a good place to start:
http://msdn.microsoft.com/en-us/beginner/default.aspx
If you've done java then C# will be pretty easy to pick up. Difference worth noting because they make life a lot easier are things like Properties, Lambda expressions and LINQ, so once you get grounded it's worth getting into that.
If you're doing WPF then I HIGHLY recommend you get your head around "MVVM" and Expression Blend, they'll change your life ;)
http://hugeonion.com/2009/02/15/intro-to-wpf-mvvm/
Also, feel free to read blogs on Silverlight, most of the stuff applies to WPF as well.
To be honest, if all of your experience is with PHP, you probably want to focus on OOP (Object-Oriented Programming) in general, rather than the specific syntax and frameworks of C#. The language itself shouldn't be massively alien to you, but the idioms and standard approaches to many problems likely will be.
Two books I would recommend for anyone starting on an OOP language:
The Pragmatic Programmer - An invaluable reference for any programmer, but it really does focus on static OOP languages such as C#.
Head First Object Oriented Analysis and Design - A java book, ironically, but the concepts taught within are perfectly applicable to C#, and it's an excellent, clear, easy to follow introduction on the proper design of object oriented software.
I'm also PHP dev (my primary profession), but I'm also doing C# codding (for personal needs and fun).
I've learned C# simply by experimenting.
My suggestion to you is to download Visual Studio Express 2010 and Google search for C# beginners tutorial (Search , Example Result) .
Only thing you need to get started is basic syntax knowledge and idea. VSE 2010 will generate lots of code for you (especially for Windows Forms project where you just need to design form and then click elements to add events).
As far as WPF concerned, I can't tell you more because I've never worked with that.
Happy codding ;)
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.
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.
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 10 years ago.
I'm locked in using C# and I don't like it one bit. I have to start branching out to better myself as a professional and as a person, so I've decided to start making things in my own time using Python.
The problem is, I've basically programmed only in C#. What IDE should I use to make programs using Python?
My goal is to make a sort of encyclopedic program for a game I'm playing right now, displaying hero information, names, stats, picture, etc. All of this information I'm going to parse from an XML file.
My plan is for this application to be able to run under Windows, Linux and Mac (I'm under the impression that any code written in Python works 100% cross-platform, right?)
Thanks a lot for your tremendous help brothers of SO. :P
Edit:
I guess I should clarify that I'm looking for an IDE that supports drag and drop GUI design. I'm used to using VS and I'm not really sure how you can do it any other way.
How about IronPython
As of VS 2010 it will become a first class .Net language
Or currently in a VS2008 shell IronPythonStudio
Not that I have used any of these
In hindsight this may not make for a very good cross platform solution, but it will allow you to leverage your VS experience
You don't really need an IDE for Python; just a good text editor. An IDE you might like though is Editra. It is actually written in Python itself, so you can use it on Linux, Mac, and Windows! I used Editra as my Python IDE for about 6-10 months. It gives you all you need and nothing more: syntax highlighting, code folding, auto indenting, and optional plugins to integrate a Python shell right into the editing window. You'll definitely want auto indenting when you are coding in Python.
As for designing GUIs visually, I suggest you check out Glade. It allows you to design GUIs easily with the GTK+ toolkit. (GTK+ GUIs work on Linux, Mac, and Windows!) It will take a bit more effort to integrate them into your Python programs than it does in Microsoft's Visual languages, but it isn't that bad once you learn it. The nice thing about using GTK+ and Glade is that you design your interface using containers, padding properties, and things like that. It is possible to design them dragging and dropping anywhere on the grid like in Visual Studio, but who wants to do that? Once you learn your way around containers and padding, you'll be very happy with them. It's much easier to make everything even, and to have similar widgets grouped together for hiding/disabling and things like that.
Good luck in your Python journey! :)
I think Wing IDE also deserves to be mentioned. I was a VIM user for years, but am currently thinking about changing to Wing. It costs money, but after evaluating for about a week (you can do a 30-day eval), I feel it will be well worth it.
I do not have any experience using the other IDEs (Komodo, Eclipse) mentioned. So they might be even better than Wing. It would be interesting if someone who has experience with all of them could describe some of their differences, strengths and weaknesses.
That being said, I recommend learning Python using a basic approach - use a text editor like Notepad++, VIM or emacs to learn the basics. Learn to use the standard Python debugger, pdb, from the command line. And use the interactive shell when learning (use IPython for interactive work).
Switch to an IDE when you master the basics.
There is also a very basic IDE in the Python distro: IDLE.
There are a lot of great tutorials and books on Python available. Start with the standard documentation. A lot of people like Dive into Python. I also recommend Python in a nutshell.
Good IDE for python are Komodo or Eclipse with PyDev.
But even Notepad++ or any other text editor will enough to get you started, since you don't need to compile your code, just have a good editor.
The benefit of the above IDEs, is that you can use them to manage a large scale project and debug your code.
As for the cross platform issue, as long as you don't use the specific os libs (such as win32api), you are safe in being cross platform.
Seems like a very large project for a first time. Is it going to be web based or desktop? Since it will greatly change your design and choice of python libs.
For dynamically typed languages power editors like Vim and Emacs make excellent IDEs. You can use GUI tools to make your layout and still use Vim/Emacs for development. Because there is no compile it is very fast to test your code e.g. :! python %
Python is so simple that IDE's aren't as necessary as they are with C# and VB.
A "complaint" is that the Python IDE's don't do very much. This shouldn't be counted as a complaint -- it's a virtue of the language.
We use Komodo Edit for professional work. It does much of what we need.
I'd vote for Eclipse +pydev (especially that pydev extensions were released recently as open source). You can also use either VIM or emacs for python development.
Also, I'd recomment the great Dive Into Python
Eclipse + Pydev is currently the gold standard IDE for Python. It's cross platform and since it's a general purpose IDE it has support for just about every other programming activity you might want to consider.
Eclipse is not bad for C++, and very mature for Java developers. It's quite amazing when you realize that all this great stuff costs nothing.
I suspect you'll have a hard time finding an IDE with an integrated GUI designer, I think. But most GUI toolkits have drag and drop designers you can use to design dialogboxes and windows, and then use from Python, even if it's not integrated with the GUI. You'll learn soon enough.
Here is a question asking for GUI designers for Python:
Delphi-like GUI designer for Python
In terms of GUI editing, take a look at wxwidgets, and in particular XRCed.
XRCed is an application for generating interfaces (not quite drag and drop, but close) which are then saved as XML files. Using wxPython you can then load the XML file and it will rebuild the interface for you.
You then just need to obtain references to each of your UI elements (by name) and you can get on with the real work.
I find SciTE to be a good alternative to Notepad++. It's very lightweight, but has very good support for language highlighting, and in-editor script execution. It also has one of my favorite editing gestures from Visual Studio: Ctrl-F3, picks the word at the edit cursor, makes it the search text, and searches for the next occurrence.
PyScripter is the next step up IDE I would suggest, giving a nice class browser window, just like VS.
For interactive debugging, I use winpdb (which, despite the name, is not a Windows-only utility).
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.