What's new

Course A crash course introduction to the subject of programming

Status
Not open for further replies.
Before we continue, it's important to know the difference between a h.a.cker and a programmer, because I'm sure many people don't understand that one does not equal the other. A h.a.cker, while keeping in mind that the term itself is fairly ambiguous, is by definition "A person who uses computers to gain unauthorized access to data", or someone who (usually professionally) finds and exploits security flaws in systems and networks. Becoming a h.a.cker takes years of experience and a deep understanding of computer networks and systems, including programming and coding.

All h.a.ckers are programmers, but not all programmers are h.a.ckers. Script kiddies and public-domain exploiters are not h.a.ckers.

A programmer on the other hand is, by definition, "A person who writes computer programs". H.a.cking and programming are two different things, but they are closely related. Programmers create software (think of literally everything you have installed on your computer, your phone, tablet, and television) which does any number of different things. Technological advancement this last decade has been due to the help of programmers all over the world. In this guide, I will not be teaching you how to become a h.a.cker, but rather the information and resources to become a programmer.

So what exactly is programming if not h.a.cking? Programming is a tool kit, like reading or writing, that a person can use to do anything that they want to, including use in day-to-day life. Within this toolkit are literally hundreds of different complex and intertwining programming languages that can be used to create a near infinite number of different programs that can do anything your tiny heart desires. To name a few uses programming can have:

Mundane:
- Move thousands of files placed sporadically throughout your system into one folder
- Record scientific data automatically and plot it
- Write code for you automatically
- Upload bulk items to servers like Dropbox or your very own website
- Create your own website
- Solve complicated algorithms
- Simulate mathematical equations and random encounters

Interesting:
- Game development
- Create a calculator that does your homework for you
- Automatically log all of your CS:GO/ TF2/ LoL data on a spreadsheet, text file, or upload it automatically to a blog
- Create shortcuts to all of the important files on your system to eliminate browsing through folders
- You do not have permission to view the full content of this post. Log in or register now.
- You do not have permission to view the full content of this post. Log in or register now.
- Analyze pictures and make a program that makes art out of them
- Simulate life
- Simulate Genetics and neural networks that learn how to improve
- Create modifications for your favourite video games
- Amaze and impress your friends
- Make actual, real-world money programming things for people
- Create android and iPhone Apps
- Make new hotkeys for applications that dont have any

Obviously I can't list all of the possibilities out. But as you can see, there are lots of different things that one can do with a simple set of computer commands - The possibilities are limitless. Programming is a powerful tool that can be used to do anything, and there's a lot to learn. When delving into programming, keep in mind that even the most experienced, decades-old programmers don't know everything there is to know about the world of programming - the topic itself is one that is exponentially expanding, so there is always something new and exciting for everyone to grasp ahold of.

Below will be some listings of some popular programming languages (but still only a few of the many that are out there) that all people in the programming universe know about. When you see them all, don't be daunted! It's very very common to know more than one programming language - in fact, not knowing more than one is a bit obscure and uncommon among the more experienced users. I myself know about 16 programming languages, but when I first started out, I knew nothing! It's an exciting world, go out there and absorb as much of it as you can. For those of you just starting, it's highly recommended to stick to just one language to start out with.

Python
Python is definitely and absolutely the place to start learning how to program. Python is a fast language built off of a multiplatform library called SDL that has a huge userbase. A totally flexible and easy to learn language, Python is also very powerful language for a multitude of reasons, including intense algorithmic work and all sorts of different graphics and game libraries. It's super functional and can interact with web browsers, systems, and networks in all kinds of different ways. With thousands of user-built libraries to help you on your task at hand, Python is used (sometimes exclusively) as a side language by many professionals to perform easy and complicated tasks alike.

C++
C++ Is a language that is quite fast, which is why it's commonly used in game engines for memory-heavy things like physics and lighting. C++ Is also used widely in system programming and system applications because it's good for that kind of thing and sub processes need to be executed quickly. I don't know C++ so I can't say much more beyond the fact that it's a fast and speedy language, but not a language that one should start with if they want to have any actual fun programming and not just learning all the complexities there are to learn.


C
C is an incredibly fast and powerful language that is also used often in system programming, but it really shines where there requires heavy processing and/or algorithmic work. As a semi-small language (compared to something like Java), it's a great language to use when resources are low, like in RasberryPi. Like C++, C is often used for hardware configuration and system processing. C is a good second language to learn, but still a bit complex for those of you just starting out.

Java
Java is (read: was) your bread and butter in the programming world for a long time. Then oracle bought the copyright from Sun Microsystems and pretty much ceased active development, not including frequent security updates and a few other development platforms for stock holders. Java was used very commonly all the time (and still is in very large, enterprise-grade software), but in today's day and age, there are normally better alternatives. Java is a bit on the slow side, especially compared to something like C. Although unlike C, is very capable (but absolutely disgusting to code in) in regards to Graphical User Interfaces, which is one of the reasons it's still so widely used. It's also used because Java is multiplatform, where a better alternative like C# is only available on windows operating systems. Java is not a good starter language, but it's the kind of language that is similar enough to other languages that if you know it, you probably know a bunch of others as well (neglecting of course small syntax differences)

.NET (C#, F#, Visual Basic, ASP.NET, others)
From wikipedia, ".NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large class library known as Framework Class Library (FCL) and provides language interoperability (each language can use code written in other languages) across several programming languages". Basically .NET is a super library that is used across multiple languages (listed above, but not limited to those) that allows people to do a variety of different things, including a super great GUI builder. C# in particular is a good language to learn (after python) because it is used professionally, but in itself is not a hard language to grasp.


Web Development (Js, PHP, CSS, HTML)
Web development uses all four of the base languages that are required to have a good website. While html isn't technically a programming language, HTML5 IS, but then we're just getting technical. HTML is the framework for the webpage that you see - the bare bones of a website is all HTML. CSS is a sprucer-upper - all of the font, colors, text sizes, headers, font-families, and object placement is done with CSS. Javascript is used for creating more complicated apps and buttons that to different things on the webpage. All javascript is client-side stuff, which means that it can't interact with the server (exception: AJAX). On the other hand we have PHP which is completely server side - all data management, server requests, DNS settings and other things of that sort are done with PHP.


Objective C / Swift
Swift is a programming language that is currently being developed by Apple, and is working to replace Objective C as the primary Mac OSX and iPhone programming language. Having worked with it in the past, it's easy to learn and often compared to python with regards to syntax. The APIs are rich and the documentation is fruitful. I personally don't like swift because I think Apple sucks at creating developer-friendly APIs and their reliance on closed-source inner libraries leaves something to be desired. That's just my opinion however (and probably an incredibly controversial one at that), and I encourage you to learn swift (NOT objective C) if you want to start learning how to program for osx.

That's great and all but where do I start?
I took my first programming course at the free website You do not have permission to view the full content of this post. Log in or register now., starting with python. I've since learned that codecademy has started charging for their lessons at some point, which is obviously not optimal. There are however plenty of other python tutorials online that will teach you the basics, but remember - the real learning comes from experimenting and failing on your own. Your code won't work and its your job as a programmer to find out why! Use the resources available! Use what you've learned and what you know, use google, use everything that you can to fix a problem.
 
Status
Not open for further replies.

About this Thread

  • 1
    Replies
  • 561
    Views
  • 2
    Participants
Last reply from:
saltyegg

Online statistics

Members online
681
Guests online
4,157
Total visitors
4,838
Back
Top