Computer Programming and Coding: How to Acquire this Hard Skill
Computer Programming and Coding: A Type of Hard Skill Computer programming means a way of telling the computer what to do, inputting a set of instructions so it can give a suitable response(output). Computer programming is involved in a lot of actions done on the computer and the internet. It is what constitutes webpages, mobile …
Computer Programming and Coding: A Type of Hard Skill
Computer programming means a way of telling the computer what to do, inputting a set of instructions so it can give a suitable response(output). Computer programming is involved in a lot of actions done on the computer and the internet. It is what constitutes webpages, mobile apps, desktop applications, servers, databases, websites, web applications, blogs and so on. Almost in fact everything technology has computer programming.
How do I Learn to Program Computers
You can learn via various methods, you know your reading method. Do you learn quicker with text or videos? For videos: you can search for the following names on YouTube; Brad Traversy, Edureka. For text: SoloLearn, FreeCodeCamp, Codecademy. You can learn using a mixture of both videos and texts.
Types of Programming Languages
There are lots of programming languages to choose from:
- HTML (not necessarily a programming language, used to define the structure of web pages)
- CSS (also not necessarily a programming language, used to style web pages)
- JAVA
- JAVASCRIPT
- C++
- PYTHON
- SWIFT
- KOTLIN
- SQL
- RUBY
HTML:
Stands for hypertext markup language. This is used for web development, it dictates the content and structure of a website, used to write the text and insert images into the webpage but no design. It is the fundamental language of the web although there is a debate as to whether HTML is not necessarily a programming language. Some programmers refer to it as one while others do not. It is actually a markup language.
CSS:
Stands for Cascading Style Sheet. This is used to style the HTML and design the website. There is a bone of contention about it also, so it is referred to as styling language.
JAVASCRIPT:
There is a major difference between JAVA and Javascript, they are not the same. This is a high-level programming language, it is essential for the interactivity of the webpage.
Careers Involving Computer Programming
Some careers that involve computer programming include:
- Web development
- Software development
- Data science
- Data analysis
Languages to learn for the aforementioned careers. Web development: is into two forms, frontend development, and backend development. Frontend development deals with designing and developing what the users see on the webpages while backend development deals with the background of the websites, it involves what goes on behind the scene, databases that store the users’ information and the servers where the databases are stored.
Web Development:
To learn web development, HTML, CSS, and JavaScript must be learnt for the front end while popular backend languages are Python, PHP and Ruby. You can learn the syntax rules for each of these languages with interactive exercises for free on FreeCodeCamp or Codecademy.
Software Development:
- Python
- Java
- C
- C++
- C#
- Ruby
- SQL
The languages are interwoven and can be used for different purposes. You might have noticed that languages used to develop websites can also be used to develop software. As a matter of fact, websites are still software. You can learn the syntax rules for some of these languages with interactive exercises for free on Codecademy.
Data Science and Analysis:
- Python
- R
- SQL
- MATLAB
Some Useful Links for Learning
If you have data to spare and medium to high-speed internet for quality videos and content, you can check out the following useful links:
- Introduction to Computer Programming (Coursera)
- HTML5 and CSS Fundamentals (W3C/edX)
- JavaScript Introduction (W3C/edX)
- Programming With Python (MIT/edX)
- Java Programming Basics (Udacity)
- Android Basics (Udacity)
- Intro to Data Analysis (Udacity)
- Data Science Orientation (Microsoft/edX)
- A Crash Course in Data Science (Johns Hopkins University/Coursera)
- Machine Learning (Stanford/Coursera)
- List of Other Useful Data Science Learning Links (FreeCodeCamp News)
Optional: Going Deeper Into Computer Science
If you’re interested in going deeper into more core computer science courses as a way of building a solid foundation for your computer programming and software development career, you can check out the following links. If you follow the order of courses provided below, your learning is more likely to be smooth and your understanding deeper but it will require more time. You can also easily skip courses on subjects you’ve already mastered.
Computer Science Basics
- Introduction to Computer Science (Harvard/edX)
- Mathematical Thinking in Computer Science (UC San Diego/Coursera)
Programming
- Java Programming: Solving Problems with Software (Duke University/Coursera)
- Java Programming: Arrays, Lists, and Structured Data (Duke University/Coursera)
- Object-Oriented Programming in Java (Duke University/Coursera)
- Data Structures and Performance (Duke University/Coursera)
- Java Programming: Principles of Software Design (Duke University/Coursera)
- Java Programming: Build a Recommendation System (Duke University/Coursera)
- Programming Languages, Part A (University of Washington/Coursera)
- Programming Languages, Part B (University of Washington/Coursera)
- Programming Languages, Part C (University of Washington/Coursera)
Math
- Precalculus (Arizona State University/edX)
- Calculus 1A: Differentiation (MIT/edX)
- Calculus 1B: Integration (MIT/edX)
- Calculus 1C: Coordinate Systems & Infinite Series (MIT/edX)
- Linear Algebra – Foundations to Frontiers (UT Austin/edX)
- Introduction to Probability and Data (Duke University/Coursera)
- Introduction to Statistics (Udacity)
Computer Systems
- Build a Modern Computer from First Principles: From Nand to Tetris (Hebrew University of Jerusalem/Coursera)
- Build a Modern Computer from First Principles: From Nand to Tetris II (Hebrew University of Jerusalem/Coursera)
- Introduction to Operating Systems (Georgia Tech/Udacity)
Theory
- Computer Science: Algorithms, Theory, and Machines (Princeton University/Coursera)
- Algorithms, Part I (Princeton University/Coursera)
- Algorithms, Part II (Princeton University/Coursera)
Applications
- Software Engineering: Introduction (University of British Columbia/edX)
- Machine Learning (Stanford/Coursera)
- Database Management Essentials (University of Colorado/Coursera)
- Cryptography I (Stanford/Coursera)
Unix
- Linux Command Line Basics (Udacity)
- The Unix Workbench (John Hopkins University/Coursera)