Introduction
Hello there. Been eons since I posted here. Anyway, about 5 years ago I relatively naively made a video trying to introduce...
For further actions, you may consider blocking this person and/or reporting abuse
I have a hard time thinking that there are true fundamentals.
The industry evolves so quickly.
We have principles and shared knowledge. Fundamentals? I’m not sure.
I think that the fundamentals haven't changed for a lot of time, maybe since the first days of programming, algorithms are algorithms, data structures are data structures and circuitry is circuitry. Of course there are new of all of those every year but the concept and the basic analysis methods stays the same, so those are the fundamentals I think. At least the concept of algorithm should be something every programmer should have a deep understanding of.
Totally agree
Yeah, the industry does evolve quickly.
I was under the impression that the principles would count as and possibly be used interchangeably with the word "fundamentals"?
Yeah, I was probably nitpicking. Look forward to other replies. 🙂
But fun to questions. I look forward to reading more comments.
As am I. Curious as to how you would approach the problem of introducing someone who has no idea what programming is to the whole concept & getting their mind around how everything works.
Most videos aimed at beginners are actually aimed at "people less skilled" than the programmer who made the video.
It's so freaking hard to find videos made for REAL beginners. Where NOTHING is assumed.
When a video like that is found, it's like finding a treasure, because you feel like the person is not assuming you know anything.
I've found that Brad Traversy does some pretty good videos. Some are advanced, but when he says they're for beginners, he actually takes his time and goes step by step.
Very true. This is the exact problem I face when trying to recommend programming videos to friends wanting to get into the field.
Indeed it is. Also the reason why I decided to take the initiative to try and introduce people without actually assuming anything.
I do agree that Brad does some pretty good videos. Thanks for sharing your sentiments.
Is there anything you wish you knew when you were a beginner?
Yeah I do have some suggestions:
For example, Brad in his videos sometimes says "This next part is VERY difficult." By saying that, my own expectations of "getting it" are decreased, and therefore my frustration is more manageable if I don't get it.
Many videos and tutorials don't actually show you the process of installing stuff. They assume you'll know how to install Node, or an NPM package, etc. It just makes a beginner feel like a dumb person.
Beginners need easy projects. For example, even though I admire Scott Tolinski's videos and I have purchased many. Some are hard to follow. He moves quickly, and I'm sometimes left with a feeling that I'm the one with the problem.
I guess the important thing to remember is that beginners really are beginners.
Golden advice! Thanks for sharing Gastón.
I would definitely have overlooked this. Love the insight
Questions
What would you classify as "easy projects"? What may be easy to some of us may be complicated to a beginner.
Perhaps user testing would do the trick?
CS50 is the course I recommend, or the youtube channel CrashCourse, for the non tech people that wants to be a developer.
I consider the basics the computers, network and internet essentials with computer science fundamentals.
Couldn't agree more.
Crashcourse has great intro to computer science videos. I do think we could teach programming without introducing computer science as yet. Pretty close to what the plan is for the videos though. Have you had a chance to check out the pluralsight videos?
I'd recommend watching the crash course videos after learning the 'programming' basics or vice versa.
I was talking about CrashCourse the youtube channel youtube.com/playlist?list=PL8dPuua...
I never used PluralSight because of their monetization model, and all my mentees so far could not afford something like that, so I try to find free resources.
Ah, saw the Crash course channel computer science videos. Loved them
The intro to programming course is free though (on pluralsight)
As promised here's the course outline that I came up with. Took a while to edit the markdown, hence the late comment. Feel free to share your feedback/improve it however you can. I have created a git repository for the course that you may also contribute to. The repo will also contain course resources when the series begins.
Course Outline
1. Introduction
Who the video is for for – problem solvers, creators or interested in web, software or game dev that are trying to get into programming.
What we will be going over
Why learn these
What is the best way to learn – Practice. Know that you don't need to know everything
Pre-requisites – what do you need to know to follow along, as well as what resources
2. Programming fundamentals
What is programming
What is a program & examples
What can you do with programming
Why learn programming
3. Programming languages
4. Programming terms (Part 1) – Basic terms
Here I'll try explaining most of the terms using analogies for things that exist in the real world or things that people (the audience) are familiar with.
5. Programming terms (Part 2) – OOP terms
6. Programming terms (Part 3) - Advanced
7. General programming principles
8. Working with data
Working with data (Part 1) – Reasons & I/O
Working with data (Part 2 a) – Variables -> rules & Data types
Working with data (Part 2 b) – Operators & Variables
Working with data (Part 3) – Constants
9. Program flow
Program flow (Part 1) – Reasons, what we'll cover
10. Modularizing
Modularizing (Part 1) – Functions
Modularizing (Part 2) – Classes & OOP
11. Conclusion ~ What programming language you should learn
What language should you learn & where you can learn them
For anyone looking to learn a new language in general, stumbled upon this dev.to post that covers 43 programming languages and what they do. Hopefully that helps someone out there.