Personally, as a web developer, a lot of people keep asking me this question:
Which programming language should I learn if I'm new?
This article is meant to provide solutions to that question.
Computer science is an entirely cumulative field of study. That means each successive topic builds off prior topics.
If you have previously attempted to learn to program in school, tried your best, but failed — you weren’t the problem. A good lecturer of any cumulative subject carefully curates the curriculum. Provided that each student has sufficiently prepared and satisfied the prerequisites, the expectations for the students’ prior knowledge should be clear. A good lecturer understands the expectations and assumes no knowledge beyond that scope. Anything outside of the expectations must be taught. Each topic in the curriculum is ordered sequentially, respective to the other topics.
When a subject is cumulative, meticulous attention must be paid when designing a course curriculum or learning path. With that said, don’t choose a language for its ranking; choose a language for which you have a complete learning path that makes no assumptions about prior knowledge.
A few words of advice
Before you begin learning how to code, it’s important to reflect on the point I made above: everything in computer science is cumulative.
I like to reiterate this because the biggest mistake you can make as an aspiring programmer is giving up because you don’t think you’re smart enough to learn to program. Learning to code has nothing to do with your intelligence. Yes, it’s difficult to learn to program, not because of who you are, but because there are a lot of topics to learn.
First rule, accept that the following scenario is going to happen: you’re introduced to a new topic that makes absolutely no sense to you.
That scenario is going to happen over and over again. How you handle that situation, each time it happens is the only factor that will determine your success.
If the current topic you’re learning doesn’t make sense to you, stay where you are. Do not proceed to the next topic. To reiterate, the topics are cumulative. Skipping ahead is like trying to attach a roof to a house that lacks a frame, walls, and a foundation.
I find myself in this situation all the time. I often have to rewatch the same lecture of a video tutorial several times for me to grasp what I’m learning. Don’t get discouraged if you find yourself in my shoes.
If the tutorial (or book) you’re using didn’t sufficiently explain the topic, you’re going to have to find other resources that work for you. There’s no excuse for giving up just because your tutorial’s coverage of a topic didn’t work for you. You can find just about anything you’re looking to learn for free on YouTube. Figure out what to search for (e.g., [the topic] in [your programming language] + any other helpful keywords).
If you’re searching on YouTube for educational tutorials, check the stats first. Take a quick look at the rating and/or the view count. If you’re still unsure if a video is worth your time, read some of the comments to gauge others’ opinions.
A lot of topics aren’t going to make sense the first time around. So, refrain from the negative self-thoughts.
The goal is to be conscious of your comprehension as you’re learning. As you progress through the learning path, you need to self-reflect. For each topic you cover, ask yourself questions such as:
“Does this topic make sense to me?” “Was there any new terminology? If so, was a formal definition provided for each new term?” “Were there any new skills? Do I understand how each new skill is used in the application? Can I demonstrate my understanding of this skill by solving practice problems?” “Will I remember what I just learned tomorrow? And the day after? If not, how am I going to commit it to memory?”
One last piece of advice: never underestimate the power of memorization. Memorization is a totally underutilized approach in learning. Yes, comprehension of a topic is the ultimate goal. However, comprehension may take time. If you are really struggling to grasp a topic, break down the topic and memorize the important terms. If you can’t comprehend how something works, your immediate goal should be memorization.
Now Let's get to Business.
1 — Computer Science Fundamentals
The first step is learning computer science fundamentals, which I cover in my article: Intro to Computer Science Terminology. This article is written specifically with my audience in mind — everyone. I intentionally created this so that it is easy to understand for anyone with no background in computers.
The concepts covered in the article are predominantly definitional. You can casually read through the article, and that’s fine it that suffices for you. I recommend committing these terms to memory. Approach each term as though you’re in school and you need to be able to recall each term’s definition for an exam. You don’t have to commit yourself so thoroughly if you don’t want to. However, the more of these concepts that you can commit to memory, the easier it will be to understand later topics.
2 — Propositional Logic (optional)
No, you don’t have to be strong in math to be a programmer. Math skills can be helpful, but they’re not necessary.
If you’re insecure about your math abilities, I recommend learning propositional logic. The principles covered in propositional logic are the building blocks of programming.
You can learn propositional logic from YouTube by searching for: Basic Concepts in Propositional Logic.
3 — JAVA PROGRAMMING
After you’ve learned the basics of computer science, you’ll be ready to learn a programming language.
I have put a lot of thought and effort into designing a path that is suitable for everyone, regardless of their background. I chose Java for this learning path because Java is a language that covers most programming fundamentals.
Java is one of the most in-demand programming languages. It’s classified as an object-oriented programming language (you’ll learn what this means later on) and it’s used to make desktop, web, and mobile applications.
If you prefer learning from a book, I recommend the following: Head First Java.
If you’re looking for a video tutorial, I recommend watching videos on Youtube from thenewboston channel.
In the course of the tutorial, Bucky Roberts(Instructor) will direct you to download a computer program called Eclipse. Eclipse is an Integrated Development Environment (IDE). You can think of an IDE as a fancy term for a word editor that is made for programmers. It’s just a computer application that provides a text editor for programming, along with other tools for running your programs.
4 — Algorithms and Data Structures
An algorithm is a set of instructions (or steps) for performing a specific task, where each step must be clearly defined, capable of being executed, and finite (meaning, it doesn’t continue executing infinitely).
A data structure is a way of organizing data in memory.
Algorithms and data structures are two of the most challenging topics of programming. You don’t need to learn algorithms for basic competency in programming. However, if you aspire to work as a software engineer at a reputable tech company, you will be expected to demonstrate comprehension of algorithms and data structures during the interviews.
There are a lot of tutorials on Youtube about algorithms and data structures. Just search on Youtube and learn.
5— Web development
Web development is, in my opinion, one of the most fun applications of programming. Web applications are predominantly designed using HTML and CSS and developed using PHP.
Helpful Resources
Stack Overflow is a website where programmers can get free help with their code. If you get stuck and want to ask a question, search for it first. If you can’t find your question, create an account and post the question yourself!
There are a ton of educational sites where you can find programming tutorials. Some of my favorites are Codeacademy, Udemy, Udacity, Team Treehouse, and Khan Academy.
Indeed helpful. I'll also like to add "freecodecamp.org" as a very wonderful site to learn web design from scratch. It's the best site to learn web design online [by Kenny]
Add Comment
All fields are required!
Are you interested in Advert placement | Promoting your Music or Video | Other Enquiries?
We are always available to get that done for you without breaking a sweat. Send us a mail @ elextechnologies4@gmail.com | Call us @ 08132021949 | Message us via whatsapp @ 08132021949