Blog: references

Oct
05
2011
BY AVERY FALLER

Learning to code can be a daunting and often frustrating experience.  If you have never coded before, even the most basic questions--“Where do I start?”--can be unnerving.  If you are looking to pick up a new programming language, you must ask yourself: What do I want to program for?  Website Design, Database Management, and Software Development all require skill in different languages.  HTML and CSS are used for front-end web design, for example, while Java and C are traditionally used to write software. 

Below I have tried to document the different major programming languages.  I have chosen “representative” languages from various fields.  These are languages that my friends and I like to use.  I recommend that before you commit yourself to learning a language, you research what languages are out there and read a bit more about them.  A good place to start is http://en.wikipedia.org/wiki/List_of_programming_languages_by_category, or http://langpop.com/, or http://en.wikipedia.org/wiki/Tiobe_index, the second and third links will show you the current popularity of different languages based off of different ranking systems. 

I hope that this serves as a good starting point to help point you in the direction you want to go.

Web Design

Beginners: HTML & CSS – Front End Web Design and Building

HTML (Hyper Text Markup Language) & CSS (Cascading Style Sheets) are the basic languages of the web.  HTML gives structure and content to your web pages, while CSS instructs browsers how to display those pages.  Together they allow you to create the layout and contents of static web pages.  They are simple languages that work in tandem to create the basis of most web pages.  These are great languages to learn and there are some very good and through tutorials out there if you are a beginner.

  • Learn HTML at w3Schools.com - http://www.w3schools.com/web/web_html.asp
    • A good place to start if you have never programmed before.  This HTML tutorial is clear and has interactive sandboxes.
  • Learn CSS at w3Schools.com - http://www.w3schools.com/web/web_css.asp
    • This tutorial goes hand-in-hand with the one for HTML.  It will teach you how to lay out the elements of your page along with good styling habits.

Intermediate: JavaScript & PHP – Client and Server-side Scripting

JavaScript is a client-side scripting language, which means that you can dynamically alter content in the user’s browser without calling the server a second time.  JavaScript is built into the HTML of a web page and adds a level of interactivity to browsing the web that HTML and CSS alone do not provide.

  • Learn JavaScript at w3Schools.com: http://www.w3schools.com/web/web_javascript.asp
    • A comprehensive site to help you learn JavaScript.  This site is especially helpful as they have a glossary of all JavaScript objects.
  • Learn JavaScript interactively at CodeAcademy.com: http://www.codecademy.com­
    • A site with the bright idea to have all of your lessons be interactive, but unfortunately they only have a few lessons up at this time.

PHP is a language that allows you to perform server-side scripting.  PHP has many uses, one of which is that it allows you to dynamically change the content of web pages before you send them to the user.  Also, PHP allows you to collect information from an HTML form, and access databases.

Advanced: Ruby On Rails & Python On Pylons – Web Application Frameworks

Web Application Frameworks make it easier for programmers to develop dynamic websites by providing libraries for standard high-level web features.  For a more in-depth introduction to what exactly a Web Application Framework is please read this article: http://en.wikipedia.org/wiki/Web_application_framework

Ruby is a high-level programming language that allows its users to quickly build applications. 

Ruby on Rails is a Web Application Framework built in Ruby that allows developers to bypass the normal setup time for a new website and jump to building advanced features.  Twitter is a good example of a popular user interface that was built using Ruby on Rails.

Python is a high-level programming language that allows programmers to adopt the particular style of programming (object-oriented, imperative or functional) that they prefer.  It can be used as a scripting language in software such as in Cinema 4D and Maya.

Python on Pylons is a popular Web Application Framework built in Python that closely mirrors the features of Ruby on Rails.

  • Learn Python at LearnPython.org: http://www.learnpython.org/
    • This is an interactive tutorial that will work you through Python while reinforcing what it is teaching you by having you program as you learn.
  • Learn Python on Pylons: http://pylonsbook.com/
    • This is a textbook on the Web Application Framework Python on Pylons.

For Java and C++ Web Application Frameworks see the Software section below.

Software

If you are looking to learn a basic computer programming language, you should be considering Java, C and C++.  By many standards these are some of the most popular programming languages in the world.  If you are debating whether to learn Java over C++ you should read this article on Wikipedia: http://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B.  Here is a brief snippet:

“C++ is a powerful language designed for a wide range of programming tasks. The Java language was designed to be simple and easy to learn with a powerful cross-platform library. The Java standard library is large for a standard library. However, Java does not always provide full access to the features and performance of the platform on which the software runs.”

Java is an object-oriented programming language that is targeted at a wide audience.

  • Learn Java at math.hws.edu: http://math.hws.edu/javanotes/index.html
    • This is a textbook that is well written and a great reference for all Java users, whether you are just beginning or trying to look up something you forgot.

C is a powerful programming language, but is not necessarily for everyone.

There are also several languages which are closely related to C such as C++ and Objective C.

C++ adds object-oriented programming to C.  Additionally it provides its users with a large library of classes.  C++ is used in software such as Microsoft Windows and entertainment software such as video games.  C++ is geared towards static features.

  • Learn C++ on learncpp.com: http://www.learncpp.com/
    • This website will walk you through learning how to code from setting up your computer all the way through the Standard Template Library.
  • Learn C++ on cprogramming.com: http://www.cprogramming.com/tutorial.html
    • Very thorough website with tutorials on C and C++ for beginners and coders experienced in other languages.

Objective C, like C++, adds object-oriented programming to C.   However its main selling point is its use in the Mac OS X and iOS development environments; namely iPhone apps require you to code in Objective C.  Unlike C++, Objective C is geared towards dynamic features.  I would recommend you learn either Java or C so that you understand the basic concepts of programming before you try and tackle Objective C.

 

Read More