
In this Age of Technology, a working knowledge of computer programming is becoming more and more essential for career success, regardless of the field you enter. Many companies today favor employee candidates who have programming experience.
Since the first programming language FORTRAN (FORmula TRANslating System), developed in 1954 by a team at IBM, dozens of programming languages running on different programming paradigms have surfaced to serve a variety of purposes. The most popular languages (ordered alphabetically, not according to prevalence or importance) are C#, Java, JavaScript, Objective-C, PHP, Python, Ruby, and SQL.
Most colleges now offer courses in computer programming, but you don’t need to enroll in an expensive college course to learn how to program. Online resources abound to explore the basics of a wide range of coding languages. The resources listed below are all free with no sign up required unless otherwise noted.
C# (C-sharp)
Developer: Microsoft
Type: Object-oriented
Purposes: Exchange information and services, app development (Microsoft’s “version” of Java)
- Diploma in C# Programming – Step-by-step instruction in using C# in the Visual Express Integrated Development Environment (IDE) (sign up required)
- Learn C# – From “Hello, World!” code to class properties, these interactive lessons cover the basics of C#
- .NET Fiddle – Test your C# code here
Java
Developer: Sun Microsystems, owned by Oracle Corporation
Type: Object-oriented
Purposes: App development
- Java for Complete Beginners – Video lectures designed for beginners to master the basics of the Java programming language (sign up required)
- Java Programming Basics – An approximately 6-week, self-paced course that starts by teaching you the “background” to programming languages, then progresses through foundational Java programming skills
- Java Tutorial – 65 lessons on basic concepts, conditionals and loops, arrays, and more Java elements (sign up required)
JavaScript
Developer: Netscape Communications Corporation, Mozilla Foundation, & Ecma International
Type: Multi-paradigm (imperative, procedural, object-oriented, functional)
Purposes: Web development (client side scripting, written into an HTML webpage)
- Intro to JS: Drawing & Animation – Khan Academy walkthrough videos and practice assignments to learn how to draw and animate images
- JavaScript Introduction – A free, self-paced course from edX that teaches the basics of using JS in your website (sign up required; add $99 for a verified certificate)
- Learn-JS.org – An interactive tutorial covering both basic and advanced topics
Objective-C
Developer: Apple
Type: Object-oriented
Purposes: iOS and OS X app development
- Learn Objective-C Programming Language Reference – A simple, practical approach to learning Objective-C with concise articles and instruction on basic and advanced topics
- Objective-C Crash Course for Swift Developers – Lifetime access to 8.5 hours of video and 10 articles that claim to teach “[e]verything you need to know about modern Objective-C to use it professionally” ($24.99)
- Ry’s Objective-C Tutorial – A quick-reference and comprehensive introduction for newcomers to Objective-C and the most recommended course for this programming language ($0.99 Kindle book)
PHP
Developer: Zend Technologies
Type: Multi-paradigm (imperative, procedural, object-oriented, functional, reflective)
Purposes: Web development (server-side, dynamic content on a webpage)
- Object-Oriented PHP – Easy-to-understand, concise tutorials and coding exercises to gain a better understanding of object-oriented programming
- PHP Fundamentals – A course on the foundations of PHP in a LAMP (Linux, Apache, MySQL, and PHP) environment (free trials; $35 monthly or $299 annual subscription)
- PHP 5 Tutorial – Informative articles and plenty of examples that cover all PHP functions (add $95 for certification)
Python
Developer: Python Software Foundation
Type: Multi-paradigm (imperative, procedural, object-oriented, functional, reflective)
Purposes: Desktop and web applications, data science, scripting
- Learning Python: From Zero to Hero – A page that overviews the basic elements of Python and some ways to use them
- Learn Python – Interactive lessons the fundamental programming concepts and the Python language (sign up required)
- Learn Python the Hard Way – Over 52 videos with 12 hours worth of content and a PDF book on how to read and write basic Python ($29.99)
Ruby
Developer: Yukihiro Matsumoto
Type: Multi-paradigm (imperative, procedural, object-oriented, functional, reflective)
Purposes: Web development (mostly server-side)
- Intro to Ruby – An accessible, easy 30+ hour course that teaches you the skills to build an object-oriented tic-tac-toe game (sign up required)
- Pragmatic Studio Ruby Programming – A project-based video course on the language constructs, design principles, and other fundamentals of Ruby ($124 for beginning course, $249 for master package)
- Ruby in Twenty Minutes – A quick introduction to the essential basics of Ruby, starting with the quintessential “Hello, World!” message
SQL (Structured Query Language)
Developer: ISO/IEC
Type: Declarative
Purposes: Data management
- Databases for Developers: Foundations – A 12-week bootcamp on the basics of the Oracle database and the SQL language (sign up required)
- Intro to SQL: Querying and managing data – A Khan Academy course that shows you how to use SQL to store, query, and manipulate data
- SQLCourse – An introductory tutorial that uses written articles to teach the basics
What programming languages do you know or like to use? Do you know any other good resources to learn them?
I learned Python and C# through self-study so it’s definitely possible to learn them by yourself. Though my uses for them are mostly math-related…
Well, I sometimes use programming to compile programs for automating tasks though I get more mileage from using Autohotkey’s scripts.
LikeLiked by 2 people
All I know about programming so far is through self-study, though I would like to enroll in a college course or two to have some guided instruction in a coding language. My little brother is under the impression that I can design a whole game app for him with my limited knowledge of JavaScript and Objective-C.
LikeLiked by 2 people
I’ve been a Linux user since I’m a kid (I only use Windows if I’m using a software that doesn’t have Linux version) so I have a good understanding of text-based interface. I think that this helped me a lot somehow to learn programming languages faster.
It takes more than programming to develop a game. The entire game development process facinates me and I admire those who work in that field. I have tried to make a few games using ActionScript before just for the laughs (and they sucked as expected).
LikeLiked by 2 people
That’s what I’ve tried to tell my brother. Nevertheless, he insists that I make his game idea. Oh well, he’ll have to learn to wait.
It is indeed a fascinating and complex process. It took me an hour to make a button that changes color when you click it. Think of all the features in apps that need to be accounted for in game development! Maybe one day I’ll amass enough knowledge, but that day is not today.
LikeLiked by 1 person
Also these days youtube tutorials are also very good for self learning of computer programming. YouTube tutorials often makes me feel I’m sitting in a classroom and learning .
LikeLiked by 2 people
Thanks for the suggestion, wplearner! Yes, Youtube tutorials are definitely grand helps for technical learning like computer programming. Khan Academy, which I linked to a couple of times in the post, are a favorite video tutorial provider of mine.
LikeLiked by 2 people