I thing I learned in my (now sitting useless C's degree) in a design class: Write the idea as a fully written text, a proposal like an elevator pitch. Then underline all nouns in one color, verbs in another and adjectives in a last. Nouns are potential classes, verbs are potential functions, adjectives become potential members/fields/variables. Any ambiguity in text or multiple outcomes are potential control structures (ifs, loops etc).
When I learned assembly when I was 13, that was my “ahaaaa” moment. When I did BASIC the first 3 years, I knew the BASIC language but not what a system does, nor did I really learn to chuck problems. And I indeed had to learn without tutorials. You had to read books and reverse engineer games and demos. And that effort of reverse engineering actually was teaching you a lot. And I wanted to make a side scrolling game and I knew how to do it in basic but it was too slow and I couldn’t multiplex music, sound and visuals. So the only answer I got from my dad was: “you need to do that in assembly that’s 100 times faster”. The first 2 years I literally didn’t know of the existence of an assembler. So I used a monitor cartridge. You don’t have variable definitions you had to remember memory addresses. You had to calculate ahead the number of bytes to jump. It learned me so much! Up to the point that’s ok like, I can learn any imperative programming language literally on the job.
@ it’s not hard, it’s in fact simple. Especially on the old C64 with a modern assembler. I have 10 episodes in it. And 5 or so on modern ARM64 assembly. It’s easy to learn because there are so few statements, it becomes hard because there are so few statements and you need to build things up yourself (not so much when you do assembly on Linux or Windows as you make a lot of kernel calls that do the heavy lifting).
I recently completed the functionality for a matching game using html, css and js. Simple 4x4 table, numbers 1-8 with a reset button. Definitely thought it would be a cakewalk. 😅 It’s been a fun learning experience though.
you were one of the first youtuber that i watched before choosing CS when i didn't know the basics properly and now i am graduating in 2 months , time passes by so quickly
In other words, learn to identify what your inputs will be, what your outputs will be, and how to go from point a-to-point b before you head to a computer to code. Coding is easy once you know how to develop ideas. I was taught assembly language *after* being taught how to set out the inputs, outputs, and flow. We had to learn to write steps to go through. What inputs will we need (with output prompts), what outputs from computation will we need, and what computation steps were required to get there? We were first taught via geometry proofs and statistics. Not the best way, but did get me to understand step-by-step via geometric proofs, and a little statistics (mainly for looping). However, I was taught that a simple step-by-step process led you to know where to go next. Don't get bogged down by the big picture, just take baby steps until you get where you are going. When I took assembly language on the mainframe (before all of you young people had home computers), we had to draw flow charts and draw up plans for input/output, then a plan for the program. If that was approved by the instructor, we were allowed to code and then do a desk check - pretend you are the computer, use data, and execute the code line by line on paper. If that was approved, we could schedule time with the card punches (yes, I'm that old) to punch the program and data. Then I took the cards to the system operator (SYSOP) for execution. a few days later you could pick up the cards and the printout. That was the cycle. If you had coded right, you turned in the assignment. If not, you went back to find where you failed. I then took two semesters of COBOL, a semester of FORTRAN, a semester of RPG, a semester of BASIC, and an optional semester of ALGOL or Pascal (I took both - I was paying for it, one more wasn't going to break me). C didn't exist then, I picked it up later. The assembler I took was S/360 BAL, I later got microcomputers and learned 6502 assembler, Z-80 assembler, and ultimately moved to x86+ assembler and I learned Motorola 68K assembler. I have yet to consider learning the newer RISC assembler concepts at my age. I learned many dialects of languages (BASIC, Pascal, C/C++/C#/Java/JavaScript/TypeScript/ECMAScript, RPG/RPG III/RPG400/ILE RPG, database languages leading up to SQL, etc.). I learned new languages like Perl, Python, Ada, Natural, Supernatural, Lisp, Prolog, Logo, Pilot, and so many others that I forget to name here. Then there's shell scripting languages. Early shell languages could not be considered languages per se, but each later generation added necessary structure to make them full scripting languages. Almost 60 years of programming has taught me personally one thing - students in schools don't get the startup understanding they need. They're pushed into a programming language course and onto their computer and told to find answers on the Internet. Regrettably, most examples on the Internet are at best sloppy or at worst wrong. Worse, it gets to the point where programming instructors don't even interact with students and students get stranded in dead-end degrees.
I’m teaching myself python so I can make a game. It is VERY intricate and very very challenging, but I’m loving every second of it. This week has been purely for character movement and collision.
I needed this videos. thank you so much. I was trying to learn how to code for the past 3 years. I always fail and give up because I didn't know what to build. When i try to build a clone app or follow a tutorial i feel overwhelmed and give up half way through. But those ideas that you gave sounds really interesting. I like football (soccer), So i think I'll build a soccer tournament simulator
Liked, Shared, and Subscribed to your channel. You deserve it ForrestKnight! Please keep up the great content in educating us in the area of programming and software development.
I have tried several times to "get" coding. I make it to the terminal stage in a language, but then get incredibly confused about how I get it to the app / program stage. And sometimes when I try to go to the app stage I find out that I've wasted hours and hours learning a language but it isn't the "right" one for the platform I'm trying to learn so then I'm forced to start from the beginning again and learn another language and it just feels like this never ending chase and always being lost in the dark about what the next step is after the current one only to find it's a wall. Like I was learning C++ and wanted to create an Android app but apparently Kotlin is what I should have learnt to use and the workarounds with C++ just aren't as good and it feels like a waste.
2:50 I like tutorials. But if I do a tutorial, I build in something different than the tutorial. So I'm learning architecture and what not rather than just copying. Example, when I was getting comfortable with Typescript and Vue, I used React tutorials. So I got the benefit of guided learning, but I had to do every implementation myself.
Hello sir, new subscriber from Pakistan, at the time I'm learning React Js, you usually says that convert on java or C# . I'm in the middle that what should I do, could you please help me with that?
I keep thinking my kid is yelling in the background lol .... I need to breakdown my project ideas more, but first I need to come up with that project. The war game is a solid starting point!
@fknight if you have an Nvidia GPU, there is a utility which will automatically process your mic Input and completely remove any background noise. RTX Voice. A better mic wont solve the problem, it makes it worse 😂. I hope Everyones Kid's are doing Great, hearing them yell means they're having fun and doing their Kid Thing.
hmm, I guess I will try to make a blackjack game, i have only made a calculator and a magic 8 ball game both following tutorials, attempting this without any help should be fun! thank you for giving me a clear plan. just Subbed!
Tip I think most beginner's reasons not to be able to do or finish projects are. A.) Too much thinking, B.) Lack of motivation Don't overthink you don't need to implement patterns, tests, multiple classes, etc etc It will come naturally. Because if you overthink you will not go anywhere. Actually, even seasoned programmers falls for this trap. Which can lead to, Lack of motivation, because you are not finishing anything. And once someone loses motivation You fell for tutorial hell, procrastination, and / or unfinished projects. So don't overthink it will come naturally, keep your motivation, and have fun.
I've been programming in c for a few months now but it's difficult to find projects to do since I have nothing to automate in my day to day life and all the recommend projects are like build a game engine build a lisp build an os build an emulator like damn i have done some stuff like a html web server using socket library that hosts some html which is cool and a keylogger that first sent to a txt then to a server but it still feels like I dont know nearly enough to do an old game system emulator
@Repeatedwaif you are overthinking. When you are already doing good. And be proud of yourself. I think in this instance, you have a different set of problems. Maybe sharing it with a friend or acquaintance might help. Btw when I said sharing I mean you don't really need to share the code, I mean the success or story of your project or something.
I thing I learned in my (now sitting useless C's degree) in a design class:
Write the idea as a fully written text, a proposal like an elevator pitch. Then underline all nouns in one color, verbs in another and adjectives in a last.
Nouns are potential classes, verbs are potential functions, adjectives become potential members/fields/variables. Any ambiguity in text or multiple outcomes are potential control structures (ifs, loops etc).
Like this!
Yeah@@chrisp4125
Too much classes ?
Idk never tried it but my sentences contain many nouns
When I learned assembly when I was 13, that was my “ahaaaa” moment. When I did BASIC the first 3 years, I knew the BASIC language but not what a system does, nor did I really learn to chuck problems. And I indeed had to learn without tutorials. You had to read books and reverse engineer games and demos. And that effort of reverse engineering actually was teaching you a lot.
And I wanted to make a side scrolling game and I knew how to do it in basic but it was too slow and I couldn’t multiplex music, sound and visuals. So the only answer I got from my dad was: “you need to do that in assembly that’s 100 times faster”.
The first 2 years I literally didn’t know of the existence of an assembler. So I used a monitor cartridge. You don’t have variable definitions you had to remember memory addresses. You had to calculate ahead the number of bytes to jump. It learned me so much! Up to the point that’s ok like, I can learn any imperative programming language literally on the job.
Wow that’s actually incredible. New learners like me are so spoiled by all the modern languages and frameworks😅 still wanna learn assembly eventually
@ it’s not hard, it’s in fact simple. Especially on the old C64 with a modern assembler. I have 10 episodes in it. And 5 or so on modern ARM64 assembly. It’s easy to learn because there are so few statements, it becomes hard because there are so few statements and you need to build things up yourself (not so much when you do assembly on Linux or Windows as you make a lot of kernel calls that do the heavy lifting).
I recently completed the functionality for a matching game using html, css and js. Simple 4x4 table, numbers 1-8 with a reset button. Definitely thought it would be a cakewalk. 😅 It’s been a fun learning experience though.
Love it. Most ppl jump straight to frameworks like react and vue and skip all the fundamentals. Keep going
you were one of the first youtuber that i watched before choosing CS when i didn't know the basics properly and now i am graduating in 2 months , time passes by so quickly
In other words, learn to identify what your inputs will be, what your outputs will be, and how to go from point a-to-point b before you head to a computer to code. Coding is easy once you know how to develop ideas. I was taught assembly language *after* being taught how to set out the inputs, outputs, and flow. We had to learn to write steps to go through. What inputs will we need (with output prompts), what outputs from computation will we need, and what computation steps were required to get there? We were first taught via geometry proofs and statistics. Not the best way, but did get me to understand step-by-step via geometric proofs, and a little statistics (mainly for looping). However, I was taught that a simple step-by-step process led you to know where to go next. Don't get bogged down by the big picture, just take baby steps until you get where you are going. When I took assembly language on the mainframe (before all of you young people had home computers), we had to draw flow charts and draw up plans for input/output, then a plan for the program. If that was approved by the instructor, we were allowed to code and then do a desk check - pretend you are the computer, use data, and execute the code line by line on paper. If that was approved, we could schedule time with the card punches (yes, I'm that old) to punch the program and data. Then I took the cards to the system operator (SYSOP) for execution. a few days later you could pick up the cards and the printout. That was the cycle. If you had coded right, you turned in the assignment. If not, you went back to find where you failed. I then took two semesters of COBOL, a semester of FORTRAN, a semester of RPG, a semester of BASIC, and an optional semester of ALGOL or Pascal (I took both - I was paying for it, one more wasn't going to break me). C didn't exist then, I picked it up later. The assembler I took was S/360 BAL, I later got microcomputers and learned 6502 assembler, Z-80 assembler, and ultimately moved to x86+ assembler and I learned Motorola 68K assembler. I have yet to consider learning the newer RISC assembler concepts at my age. I learned many dialects of languages (BASIC, Pascal, C/C++/C#/Java/JavaScript/TypeScript/ECMAScript, RPG/RPG III/RPG400/ILE RPG, database languages leading up to SQL, etc.). I learned new languages like Perl, Python, Ada, Natural, Supernatural, Lisp, Prolog, Logo, Pilot, and so many others that I forget to name here. Then there's shell scripting languages. Early shell languages could not be considered languages per se, but each later generation added necessary structure to make them full scripting languages. Almost 60 years of programming has taught me personally one thing - students in schools don't get the startup understanding they need. They're pushed into a programming language course and onto their computer and told to find answers on the Internet. Regrettably, most examples on the Internet are at best sloppy or at worst wrong. Worse, it gets to the point where programming instructors don't even interact with students and students get stranded in dead-end degrees.
That was actually my problem, oh i will create this project lets go.
BUT, I have to break it to parts, thanks a lot, you just opened my eyes)
I’m teaching myself python so I can make a game. It is VERY intricate and very very challenging, but I’m loving every second of it. This week has been purely for character movement and collision.
I needed this videos. thank you so much. I was trying to learn how to code for the past 3 years. I always fail and give up because I didn't know what to build. When i try to build a clone app or follow a tutorial i feel overwhelmed and give up half way through. But those ideas that you gave sounds really interesting. I like football (soccer), So i think I'll build a soccer tournament simulator
Excellent discussion, Forrest. Great advice on how to go ABOUT doing things rather than how to do things. A meta-discussion, if you will.
Wow by far best video I've seen on the subject
Liked, Shared, and Subscribed to your channel. You deserve it ForrestKnight! Please keep up the great content in educating us in the area of programming and software development.
this video tells me that I'm already doing this right now. But thanks for the additional insights
wasn't expecting to see notepad++ at any point this week 😂
I truly needed to here this advice! Thank you!
Love this video. Also, what is your favorite video game as of right now?
I have tried several times to "get" coding. I make it to the terminal stage in a language, but then get incredibly confused about how I get it to the app / program stage. And sometimes when I try to go to the app stage I find out that I've wasted hours and hours learning a language but it isn't the "right" one for the platform I'm trying to learn so then I'm forced to start from the beginning again and learn another language and it just feels like this never ending chase and always being lost in the dark about what the next step is after the current one only to find it's a wall.
Like I was learning C++ and wanted to create an Android app but apparently Kotlin is what I should have learnt to use and the workarounds with C++ just aren't as good and it feels like a waste.
This Amazing video, subscribed 🤝
@ 15:48 Some of the best advice I have heard
Much needed.. Thank you!!!! 🤝
great video thanks a lot Forrest
The ufc part of the video was funny lol but max😢. Would try attempting the projects. Lots of great insights in this video.
2:50 I like tutorials. But if I do a tutorial, I build in something different than the tutorial. So I'm learning architecture and what not rather than just copying. Example, when I was getting comfortable with Typescript and Vue, I used React tutorials. So I got the benefit of guided learning, but I had to do every implementation myself.
Plz make 5 god final boss level tier projects which will make you realise ahh this is everything used in every domains of programming
Maybe I digress from the main topic of the video, but your mannerisms to explain things, reminds me kind of Jeremy Davies (Snow) from Solaris (2002)
Great video > thank you!
15:37 Exactly 💯
This is what I used to do with chat got but I got lazy and start doing things like how to suffle a deck of cards in java sigh thanks bro 😎
Thanks for the great video.
Typo in the video description:
you -shuold- approach. => you should approach
What keyboard?
What kind of keyboard is that 😍
Hello sir, new subscriber from Pakistan, at the time I'm learning React Js, you usually says that convert on java or C# . I'm in the middle that what should I do, could you please help me with that?
I keep thinking my kid is yelling in the background lol .... I need to breakdown my project ideas more, but first I need to come up with that project. The war game is a solid starting point!
i've gotta get a new mic that picks up less background noise asap lol
@fknight if you have an Nvidia GPU, there is a utility which will automatically process your mic Input and completely remove any background noise.
RTX Voice.
A better mic wont solve the problem, it makes it worse 😂.
I hope Everyones Kid's are doing Great, hearing them yell means they're having fun and doing their Kid Thing.
Nice video! But i always ask myself the question what tech or language i should use? What is your suggestion to decide this?
Is it true that a programmer spend 70-80% reading documentation and the rest 30-20% coding?
Are you an istp Forrest
hmm, I guess I will try to make a blackjack game, i have only made a calculator and a magic 8 ball game both following tutorials, attempting this without any help should be fun! thank you for giving me a clear plan. just Subbed!
I think ai is good at promoting me to find my mistake. Khan academy's ai doesn't tell you the answer, just where to look I'm very new
Avg java developer, the language does't matter btw
Tip
I think most beginner's reasons not to be able to do or finish projects are.
A.) Too much thinking, B.) Lack of motivation
Don't overthink you don't need to implement patterns, tests, multiple classes, etc etc
It will come naturally.
Because if you overthink you will not go anywhere. Actually, even seasoned programmers falls for this trap.
Which can lead to,
Lack of motivation, because you are not finishing anything. And once someone loses motivation
You fell for tutorial hell, procrastination, and / or unfinished projects.
So don't overthink it will come naturally, keep your motivation, and have fun.
I've been programming in c for a few months now but it's difficult to find projects to do since I have nothing to automate in my day to day life and all the recommend projects are like build a game engine build a lisp build an os build an emulator like damn i have done some stuff like a html web server using socket library that hosts some html which is cool and a keylogger that first sent to a txt then to a server but it still feels like I dont know nearly enough to do an old game system emulator
@Repeatedwaif you are overthinking. When you are already doing good. And be proud of yourself.
I think in this instance, you have a different set of problems. Maybe sharing it with a friend or acquaintance might help.
Btw when I said sharing I mean you don't really need to share the code, I mean the success or story of your project or something.
The word tutorial is misused on the Internet...
1) wrestling tournament simulation
2) wrestling tournament simulation
3) wrestling tournament simulation
bonus) wrestling tournament simulation
haha what can i say, i love the wrestling tournament simulation