How to start programming from scratch?

26,792

Solution 1

You may want to look at getting the latest edition of Head First C#. It's particularly suited to newcomers - and it concentrates on "fun" examples rather than business-oriented ones. I'm not personally a fan of that style of learning, but it clearly suits a lot of other people.

Make sure you buy either the latest edition (covering .NET 4) or the most recent printing of the previous edition though: earlier versions had quite a few errors, but those have been rectified over time.

Solution 2

C# is a fine language to begin with.

Here is a good free ebook to get you started. It not only discusses the programming language but also what it means to be a programmer and how to approach it professionally.

As Jon says in his answer - Head First C# is also a great first book (as are all their other books such as Head First HTML).

You can get the Visual Studio Express programming environment (editor with syntax highlighting and intellisense, compiler, debugger and more) for free here - just be sure to select the C# version.

Solution 3

C# is an okay place to begin, but you might find it more fun to write websites instead. It's easy, everyone can see the cool things you do, and you already have the tools to start doing it -- just a text editor and a web browser. HTML and Javascript are also much simpler and more straightforward than C# without being less powerful.

http://www.w3schools.com/ is a good starting point.

Solution 4

In my opinion, there is one critical tool when learning to program or when learning a new programming language. That tool is "a problem that you are sincerely interested in solving."

It may be a game you are interested in writing or a desktop or web-based tool that will actually help you with something in school or in your life.

If you have a real problem that you really want to solve, there will always be free tools, tutorials, and online geeks to help you learn how to solve it.

Learning programming without solving real problems is like learning to build a house with just a hammer and a nail and a short piece of wood. You can learn the basic mechanics of the hammer, but you'll never be a carpenter until you have to confront the problems you'll encounter while trying to build something useful.

After that, I think C# is a great general purpose language to learn programming. And there are some really great free tools available.

I agree with the poster who said experiment with several languages. Solving the same problem with different tools can be a real eye-opener into the different paradigms of those tools.

Solution 5

If one of your uncles wants you to learn C#, he probably sees you as his employee a couple of years from now. So ask him directly if that's his plan and persuade him to help you.

If your uncle has no idea about programming and just dropped this C# suggestion because he heard the term somewhere, he might be doing a very bad favor to you.

If I would be you and I would have free hands to choose what I want, I certainly wouldn't choose C#, because it ties you to a proprietary operating system (Mono is a joke, admit it).

My choice would probably be Python, because it runs on almost any platform. And you have two very valuable tutorials for beginners that approach teaching programming from very different points, so you can pick the one that suits you best: the official Python tutorial and Zed Shaw's Learn Python The Hard Way (don't be afraid of the scary title, the book is very valuable for a beginner).

edit:

After reading the comments, I would like to add a couple more points.

How many of those C# programmers code for fun? Most programmers that use Microsoft technologies, do it professionally - it's their job, they do it for money, most of them don't have guts to admit their job is boring sometimes (even if it is), because such a claim is against the corporate policy that slips into the culture around the infrastructure provided by their (cough!) free programming tools.

Just in a couple of years, the community of users who do programming more or less seriously has literally exploded. Back in the days there was sourceforge - the single monster that was totally programmer related. Today there is launchpad, bitbucket, github (which recently surpassed 1000000 repositories, most of which are small personal pet projects governed by free licenses). How many of those projects are using C#?

Today programming is about reusing or "stealing" (in the good sense) code more than ever. Where are the herds of C# projects, small general-purpose libraries? While some programmers who write proprietary software are not very helpful to newbies (because they see it as consulting, which they can do for money), and while some programmers who write free software are not very helpful as well (because they lack social skills), the code is more important. You don't learn programming only by reading books, you learn it by studying working code. And the free software ecosystem provides much more code to study.

Generally, people who get into programming have two choices:

  • avoid proprietary stuff, get access to a lot of free software at the risk of being called "anonymous internet elitist"
  • ignore the proprietary vs free holy war at the risk of feeling what proprietary software means indeed and how it can spoil a good intention, like this guy
Share:
26,792
Admin
Author by

Admin

Updated on July 13, 2022

Comments

  • Admin
    Admin almost 2 years

    I've never really had any experience with programming at all, my uncle told me to come to this site for help from total strangers if I wanted to start programming. I know the names of a couple of languages but I don't really know anything at all. I'm fourteen and I can type fast if that counts for anything. One of my uncles wanted me to learn c#. So my question is, is c# a good place to begin, and if not, where is a good place to begin and how do I learn it?