Programming 101

Comprehend basic foundational knowledge of hardware, networking, programming and licensing.
Rating: 4.6 out of 5 (5,344 ratings)
73,282 students
Programming 101
Rating: 4.6 out of 5 (5,344 ratings)
73,282 students
Count bits
Understand binary data
Understand bit processing
Understand basic network structure
Understand routers, ISP's, packets and HTTP
Full working knowledge of programming languages
Understand the concepts behind a programming language
Understand variables and constants
Understand functions, arguments and parameters
Know about software licensing
Comprehend DRM, patents and morality of the industry

Requirements

  • Anybody, a complete novice can take this course if they choose to
Description

Most people do not know how their device's process binary and work with data, from their washing machine to their smart phone. I found even some programmers don't have the knowledge of such; I'm in fact guilty of this sin!

I missed out by learning a programming language first rather than trying to understand the computer on the hardware level. As programmers we are controlling the hardware and eventually even if you're programming in Javascript you need to know about memory and how the language works. So understanding binary data, persistent and temporary memory, CPU, SPU, GPU, networking and more is crucial even if you're a web developer this still applies to you.

This course will be a broad foundation of knowledge giving understanding of certain topics that need to be covered; giving you a solid foundation to grow from. I don't believe in understanding a programming language first is the correct way to go about things. Programming languages have evolved as a tool for us. NOT the computer! So if we understand the computer's hardware we'll understand clearly how our program's are controlling our device's.

Computers are tools that we created to benefit man kind, however as all tools we need to improve them more and more. However the core principle of computers from the very first computer ever invented hasn't changed. Over time the tool or computer has been refined. However the very core process and simplicity in underlying principles has been the same from the foundation of computing which is, processing ones and noughts. Computers have gone from processing 8 to 64 bits at any one time. This is just the computer being able to process more bits and thus more powerful operations can be done at a single time.

Don't get me wrong computers are far more advanced, but the concept is all I'm saying is simple enough that even a beginner can learn what most people consider advanced and above their pay grade.

Likewise understanding networking is of vital importance especially for the web developers of today. More apps are going online so understanding network infrastructure, that has been around for over a decade, is still important today.

What about programming languages? We invented them as tools to communicate with these raw processing machines. We must understand why we have programming languages and how they work. For example what're compilers or transpilers? How have we taken our form of communication, human languages, and turned it into an effective communication to manipulate the computer, programming languages? What about variables, constants, functions, objects and arrays that are in all major programming languages today? Also all languages have operators and if you didn't have them in a programming language you wouldn't actually have a programming language at all.

In this course we'll cover even more, what about programming paradigms. Paradigm just means a model on how to do something. So in this case we can write our program's in a certain way or in a certain paradigm. Very few beginners consider the style with which they program. When creating small scale apps it isn't that difficult, however when creating large scale apps, paradigms become imperative.

Most programming languages give you the flexibility to mix and match programming paradigms or styles for writing your app's. You have a few major styles to choose from such as assembly, procedural and object oriented. Do note in a single app you can mix these paradigms usually procedural and object oriented to best suite that part of your large scale app. I'll show you the styles of these paradigms and then apply procedural and OOP (object oriented paradigm/programming) to demonstrate how the human mind works with differing paradigms; proving that multiple paradigms are the way forward.

Finally at the end of learning such a broad range of topics in a clear and concise course; you'll also be learning about the licensing which should be covered especially for new comers. Then learning about software morality such as DRM, software patents and many other aspects of how the government is dealing with your data.

After all this, if you're still not satisfied you can have your 100% money back guarantee if the course actually cost anything. So this last bit is really the bit that sells it, what have you got to loose?

Who this course is for:
  • Anybody from beginner or a seasoned professional who really wants to know the lower level stuff
Course content
7 sections • 35 lectures • 4h 19m total length
  • Introduction
    02:16
  • What is base 2?
    02:16
  • Understanding bits and bytes
    05:07
  • Counting binary
    09:47
  • Signed magnitude, signed or unsigned byte
    06:10
  • How do computers process binary data
    03:25
  • Evolution of 8 16 32 and 64bit computing
    08:33
  • Sound and recording
    09:51
  • Firmware and BIOS
    05:24
  • Temporary and persistent memory
    04:09
  • Basic network structure
    08:53
  • IPV4, IPV6 and packets
    15:33
  • MAC Addresses
    06:12
  • Servers and HTTP
    07:39
  • What is an operating system?
    07:24
  • API and the console
    10:27
  • Programming languages & execution
    08:28
  • Interpreters, compilers & JIT compilation
    06:42
  • Programming, scripting & markup languages
    09:55
  • Client vs server side languages
    04:02
  • Higher & lower level programming languages
    02:30
  • Primitive data, nouns, adjectives & verbs
    07:51
  • Variables and constants
    07:59
  • Functions, parameters & arguments
    10:38
  • Objects & arrays
    12:42
  • Object hierarchy
    05:13
  • Operators
    10:19
  • Programming paradigms
    08:09
  • Programmable paradigm mindset
    06:35
  • The difference between OOP and object construction
    10:35
  • Software morality - licensing
    06:17
  • Software morality - DRM and patents
    13:05
  • Software morality - data
    06:54
  • Where to start?
    05:55
  • Conclusion & Goodbye
    02:28

Instructor
Technical Instructor
Lawrence Turton
  • 4.5 Instructor Rating
  • 31,850 Reviews
  • 333,494 Students
  • 7 Courses

Lawrence Turton works as a web developer & graphic designer specialising in HTML, CSS, jQuery, UI & UX design. He has previously worked with Fifteendesign producing websites, iPhone and Android apps and started his own agency in 2010 called Elite Web Design. During that time Lawrence has established a wide range of clients from blue chip companies to large corporations. From a young age he was an online instructor and started to work with two of the leading online training specialists Cartoonsmart and Envato. Lawrence always created projects involving designs in Photoshop and bringing his creations to life by coding them with web technologies. This gives him a unique perspective into real world projects from start to finish and a wealth of information for new comers to the web industry.