5

votes

Vote

os-utilities in OS & Utilities Channel,
Written by: Miguel Esquirol on Jul 5 2011, 2:04pm

Teach yourself to program

We are entering the summer, the perfect time to improve yourself, you could go running or swimming, you could learn a new foreign language or perhaps you could learn to program. Self-learning is not as hard as it sounds, and it’s much easier than self-learning Spanish or French. There are really wonderful sources to start learning these new languages, understanding the concept behind programming and giving it a try with some interesting problems.

Basic Programming

Via XKCD

 

To learn a new programming language, it’s much easier if you already know the concepts because you can start learning the new structures in no time. If you have never programmed before, the best you can do is start with some basic concepts that every language will use, like Variables and Operators.

  • Programming Concepts : This is a brief tutorial for new programmers from the City University of New York. It gives you a nice range of basic examples, with specific expressions in different languages.
  • Learn to Code: From Lifehacker, this is the collection of several basic courses with a wide range or concepts. From Variables to Functions and Arrays.
  • Introducing to Computer Science and Programming: More professional and traditional looking. These are the MIT undergrad courses with Video Lectures and Transcripts.
  • Land of Code Quiz: In this site you'll find many different courses, but this Quiz will be a good starting point to see how you are right now.

 

Learning a Language

Via XKCD

Whether you already know some programming languages or you are moving forward, you should choose a language to work with. There are many languages, some of them are really complicated and others are quite simple to learn, you should give several different languages a try or choose according to what you need. There is an interesting discussion on which language programs you should learn.

  • HTML: This is not a software language but a Web Language, together with PHP and Javascript, this language will let you create websites from scratch and help you understand how a website actually works. This language is really simple to learn and quite useful.
  • Python: Is a high-level language and seems to be the most interesting to learn because you can start doing real work quite quickly. The language has a syntax that is clean and easy-to-understand.
  • Ruby: This is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write, and is considered one of the simplest languages to learn.
  • C++: Is a low-level and powerful language. It is the star of language programs and normally is the one used in universities to teach students.
  • Java: This program is one of the widely used object-oriented programming languages. Java applications run on Windows, Mac OS X, Linux, and Solaris, and many other operating systems. It’s the most predominant and popular general purpose programming language and most of the biggest companies use it as their main programming language.

You have to remember that like any language, a computer language can be quite complex for beginners, but if you organize the content and start learning bit by bit it will become simpler, and once you have learned one, the next one will be much easier.

Learning HTML

Via Cyanide and Happiness

HTML is quite a simple language that doesn't use variables or operations. You only need to start programming a text editor and a browser. After you know the basic instructions on HTML you should also learn CSS, the language that tells your browser, what the content is going to look like.

  • W3 Schoolhas one of the simplest tutorials to learn HTML. It goes from the simplest web page to the most advanced topics. It also has CSS XML and Javascript tutorials.
  • HTML Dog has a nice tutorial with best practices. It also teaches CSS for beginners
  • Your HTML Source is a simple manual to start creating your own site.
  • Writing HTML is a tutorial that exists in many languages (including French and Spanish) and even comes in a handy PDF download.
  • HTML5 Tutorial: For the next step in HTML evolution we also have a nice HTML5 tutorial that starts with the more basic and goes to the more complex content.

 

Learning Python

via XKCD

Being a high-level software language, this may look a little more challenging than learning HTML, but it can be done. This is perhaps the best language to start with.

 

Ruby

Via Why's Poignant guide to Ruby

  • Ruby in Twenty Minutes is a tutorial that claims you'll be “speakin” in Ruby after half an hour. Of course you won't be able to do everything, but it’s a nice starting point to this pretty language.
  • Ruby Tutorial: Another nice and short tutorial, with a lot of examples.
  • Try Ruby: In this site you can try Ruby in your own browser, very basic but handy to have around.
  • Programming Ruby: This tutorial is intend to see a pragmatic programmer's Guide. For an early version, it’s a good start.
  • Ruby on Rails is a basic and advanced course.
  • More Tutorials according to the author, these are the best 12 Ruby on Rails Tutorials.
  • Why's (Poignant Guide to Ruby) Exactly what it says, with the above comic in it.

Learning C++

Via:Foxtrot

  • Getting Started with C/C++ is a cut to the chase tutorial.
  • Programming Tutorials has a nice collection of tutorials organized by levels with quizzes to pass levels.
  • C plus plus is a collection of tutorials that explain the C++ language from its basics to the newest features of ANSI-C++.
  • XoaX.net features an incredible collection of videos to learn C++.
  • Video Tutorials features many interesting YouTube channels to learn the language.
  • Thinking in C++ is a Free Electronic Book Volume 1 & Volume 2

 

Learning Java

Via: Geek and Pole

Problems

Via: Dilbert

No matter what the language you are learning, there will be one point when you want to start facing some real problems to use your new skills. Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve.

Citizens Comments

Eileen Brown says:

This is my favorite for at least the last month... so many people are throwing up websites with "free website builders" and not having a clue of what they are doing, then calling themselves "webmasters and/or programmers" when nothing could be further from the truth.

At least here, with these lists, people can really find some functionality to go with the madness of the web and might be able to develop some software of real use. 

(tweet)

0

Votes

Vote
Jul 6 2011, 9:22am | Report

Breaking Software says:

My suggestions:  Why's Poignant Guide to Ruby (which gives you a broad historical sense of Ruby and how it has been used, as well as practical information) 

Learn Python the Hard Way I will be honest, this book is hard, but it comes from all the right places.  It will teach you Python while forcing you to become more detail oriented.  It will also make you use Google a lot.  He never explains anything he asks you to do.  I recommend this book for those that love a challenge.  I've tried other books on Python, but this is the most effective for me personally.

1

Vote

Vote
Jul 6 2011, 10:27am | Report

Eileen Brown says:

Hi Richard.

I've always liked the O'Reilly guides and pocket references for everything "programming."  

Particularly the pocket references.  After you have learned a language, by whatever means, those little reference books really are memory boosters and can broaden your knowledge quite quickly.

0

Votes

Vote
Jul 6 2011, 9:28pm | Report

Will Brindle says:

+1 for Why's Poignant Guide to Ruby, and Learn Python the Hard Way. I read both of these after I had been programming for a few years, but could see how they would've been beneficial for those first learning. Why's Guide was great and it's unconventional manner kept me interesting even when it was going into things I already knew, and provided a fresh look at them, such as anecdotes. I'm somewhat surprised it wasn't mentioned in the article, as the image is taken from it. 

Aside, you might want to be careful about the wording at places "HTML is quite a simple language that doesn't use variables or operations." It should be noted that it is a markup language, not a programming language, and that's why it doesn't use variables or operations. Javascript is a "Web language", but it is different from HTML in that it is a programming language.

I would say you should consider putting the links in to the Java Documentation, as it is really one of the best official documentations you'll find around.

Good luck to all those learning

1

Vote

Vote
Jul 9 2011, 3:48pm | Report

Miguel Esquirol says:

Will, good advises, I'll add the recommendations, and as for HTML I know is not exactly a language program, but for many people that don't want to be programmers, HTML is important to know.

0

Votes

Vote
Jul 11 2011, 7:49am | Report

drtg hnmk says:

I'm seeing 3 xkcd comics but no referances...

0

Votes

Vote
Jul 11 2011, 1:18pm | Report

Breaking Software says:

Fixed.  Would you mind fixing your name to reflect someone real?  The Code of conduct on this site explicitly prohibits posting under false names. 

0

Votes

Vote
Jul 11 2011, 1:26pm | Report

drtg hnmk says:

I was just thinking if I should give a thumbs up or down for stumble, then thought that trying to help before blaming was a better idea:

http://www.stumbleupon.com/url/www.softcity.com/contribution/QOxEzMwADN/view/teach-yourself-to-program%2523

As for fixing the name, I was just passing and haven't signed up for real yet.

(It's OK to delete my comments and this user. I'll delete it tomorrow(if it's possible to do so))

 

0

Votes

Vote
Jul 11 2011, 4:03pm | Report

Breaking Software says:

We all really appreciate it, especially since I know it took effort to leave that comment here. I'd prefer not to delete comments if I can avoid it, but I won't stop you from deleting your own if you feel its necessary. 

Out of curiosity, you mentioned you haven't registered "for real" and I'm curious why or what's holding you back.  If our site really isn't for you that's fine, but we love hearing feedback from new users, especially from someone on the fence about joining.

If you prefer to have a private discussion about this, you can email me at Rbashara@Softcity.com.  I'd love to listen to what you have to say =)

Cheers

0

Votes

Vote
Jul 11 2011, 4:09pm | Report

drtg hnmk says:

I don't like entering my name if it's not necessary(I don't believe that I'll meet anyone from here one day and if that was a possibility, I would have linked to my Facebook account when needed)

Also I haven't looked at any other page(I didn't have enough time to... I will when I don't waste my time writing a comment :P) or do i remember coming to this site before

0

Votes

Vote
Jul 12 2011, 12:06pm | Report

Breaking Software says:

Thanks for the feedback, we hope to see you again some time.

0

Votes

Vote
Jul 12 2011, 1:33pm | Report

Jason Prince says:

Great article!  I always love seeing things that try to get the average user interested in programming.  It's such a fascinating thing to be able to control the inner workings of a computer (and of course that statement makes me think of logic design, which is even more fascinating in my opinion!).


However, I'm surprised you don't mention much about PHP.  Personally, I think it's a great beginner's language because variables are extremely dynamic, there's a vast amount of built-in functions that allow you to easily do anything from image editing to FTP, getting input and output is fairly easy once you know some basic HTML, and there's no need to worry about compiling the scripts you write.  I'm pretty sure that if I had learned the fundamentals of programming in PHP before I went on to C++ and such, it would have made the transition much smoother.

By the way, I love all the xkcd comics!  xkcd FTW! 

1

Vote

Vote
Jul 20 2011, 10:38pm | Report

Post your comment

default Avatar

You might be interested in these related contributions

SoftCity Promotion

About the Author

Miguel Esquirol

Montreal, Quebec, CA

1103 contributions

Writers, blogger and journalist interested in different topics from literature to computers.

Popular contributions

software social commerce