8-Bits of Advice for New Programmers (The stuff they don't teach you in school!)

Поделиться
HTML-код
  • Опубликовано: 30 июл 2024
  • Coding is a wonderful hobby. It's challenging, rewarding and genuinely useful. I think it's harder today to start learning how to program, but easier to give it a go. Here are my 8 bits of advice for those wanting to take the leap!
  • НаукаНаука

Комментарии • 2,3 тыс.

  • @jamespilcher5287
    @jamespilcher5287 5 лет назад +6306

    I was expecting this to be numbered 0 to 7

    • @DlcEnergy
      @DlcEnergy 5 лет назад +62

      ruclips.net/video/17KmNrG9pE4/видео.html

    • @jamespilcher5287
      @jamespilcher5287 5 лет назад +19

      @@DlcEnergy haha poor kid. I wonder who pissed on his cornflakes

    • @jamespilcher5287
      @jamespilcher5287 5 лет назад +13

      @@DlcEnergy great now i have another rabbit hole to dissapear down watching this kid's fast food review channel

    • @artemzaytsev1106
      @artemzaytsev1106 5 лет назад +38

      i guess he's a pascal programmer

    • @thedeadlypacifist
      @thedeadlypacifist 4 года назад +2

      Whyyyyy XD

  • @__jan
    @__jan 5 лет назад +3280

    1. keep a pen and paper by your side at all times.
    2. first, solve the problem, then write code.

    • @javidx9
      @javidx9  5 лет назад +353

      Perfect!

    • @vitalnutrients744
      @vitalnutrients744 5 лет назад +232

      3. Break down problem into smaller problems so it's easier.

    • @douwehuysmans5959
      @douwehuysmans5959 5 лет назад +46

      Noone does that

    • @markokelly2494
      @markokelly2494 5 лет назад +141

      Yes! My worst fault as a programmer was to start turning it into code too soon. Writing it out on paper (I mostly used a mechanical pencil) helped me work out the structure of what I wanted to do, then the structure of how to do it, and then the code.
      Also, on paper, you can write some things in text and some things in pseudocode, and there's no compiler to complain about it. And if you happen to think of an elegant way to (say) code your innermost loop, you can jot that down so you don't forget. The paper, unlike a compiler, won't break when you hop around levels of reality.
      Oh, and I also kept a big eraser handy.

    • @bgill7475
      @bgill7475 5 лет назад +76

      @@douwehuysmans5959 I do it actually, I've found that using pen and paper to think through a problem helps a lot.

  • @rafisofyan
    @rafisofyan 4 года назад +627

    i remember when they tought me how to use malloc, the first code i wrote was to use it to fill up my computers RAM cause why not.

    • @coolguy284_2
      @coolguy284_2 4 года назад +168

      I made some c++ program to run an infinite loop just to see what setting it to high priority with one instance of the program for each core of my computer would do ... it required a hard restart with the power button lol.

    • @jspiro
      @jspiro 4 года назад +5

      Me too!

    • @Autian
      @Autian 4 года назад +14

      I once managed to use up all the GDI/USER resources by creating as many Windows Forms controls as possible. Even with the Task Manager already open, I was not able to kill any programs because there were no resources available to show the confirmation dialog box. There was plenty of RAM unused. I did that on Windows 10 and wondered that this was still possible since the OS is pretty recent.

    • @ancapftw9113
      @ancapftw9113 4 года назад +18

      Qbasic:
      Do
      Beep
      Loop
      I learned what ctrl+Brk did real quick.

    • @aiasjones7382
      @aiasjones7382 4 года назад +46

      Hahaha I remember when I was really young, writing a program in game maker that fullscreened itself and disabled keyboard input and then put it in my uncles startup folder :'D I was disappointed when he just rebooted to safe mode and deleted it though hahaha

  • @LoLoLoLoLo855
    @LoLoLoLoLo855 4 года назад +1352

    "Don't listen to people on the internet."
    Ha! This one is tr... wait a sec...

    • @javidx9
      @javidx9  4 года назад +316

      gotcha... XD

    • @Stoney3K
      @Stoney3K 4 года назад +42

      In particular ones that scream open source evangelism. Great if you're a hater of Microsoft or you grab pitchforks when someone writes an app that runs on Windows instead of FreeBSD, but it's pretty counterproductive and it really scares of new programmers because they don't know the "one twue way".

    • @spyritwalker
      @spyritwalker 4 года назад +13

      @@Stoney3K Some free software freaks do it on purpose to drive newbies away coz they believe that if the common non-tech-savvy folk go into their world they'll ruin it and turn it mainstream, but there are really helpful people there who will not scold you for use whatever you want to.

    • @CottidaeSEA
      @CottidaeSEA 4 года назад +14

      @@Stoney3K I personally find purists to be absolutely awful as well. They almost demand you do something a particular way, because that's how is supposed to be.
      Functional programming and recursion being one example. Recursion can become awfully complicated awfully quickly. That's not something I'd ever recommend to a beginner.

    • @robodev6033
      @robodev6033 4 года назад

      Mean don't belive him too lol.

  • @Energya01
    @Energya01 4 года назад +1433

    8: 0:30 don't make life hard for yourself, focus on the basics first
    7: 2:03 choose the right tools
    6: 3:15 Keep it fun
    5: 4:10 Practice
    4: 5:07 Never cut and paste (but get used to writing code yourself)
    3: 5:48 Don't listen to people on the internet
    2: 6:55 Remember that the tools work for you, don't worry about breaking 'the rules'
    1: 8:26 Get things wrong. The best way to learn is to make mistakes

    • @omaratif4301
      @omaratif4301 4 года назад +5

      Msb

    • @AdobadoFantastico
      @AdobadoFantastico 4 года назад +11

      Thank you, much appreciated.

    • @Nickholast
      @Nickholast 4 года назад +1

      top comment

    • @DebasishDas-bi4bo
      @DebasishDas-bi4bo 4 года назад +50

      "Don't listen to people on the internet"
      Now I'm wondering whether I should believe all what he said in the video or not

    • @LozioLudo
      @LozioLudo 4 года назад +2

      @@DebasishDas-bi4bo yea this guy is mental probably

  • @mikewellwood1412
    @mikewellwood1412 4 года назад +1511

    One simple, but deep rule:
    "Just because it worked, it doesn't mean it *works* "

    • @haihai2999
      @haihai2999 4 года назад +80

      This quote is deeper than mariana trench....

    • @mikewellwood1412
      @mikewellwood1412 4 года назад +28

      @@haihai2999 I will optimistically take that as a compliment. ;-) In truth, I think I probably stole it from the book "Code Complete" by Steve McConnell. I've not read the book for quite some years, and it is not to hand, so I can't be 100% sure.

    • @1ionu920
      @1ionu920 4 года назад +12

      Agreed 100% nor does it mean that it is correct... which is actually the context I gleaned from your point.

    • @devion22
      @devion22 4 года назад +5

      On Error Resume Next -- It worked! :}

    • @RustyNPiece
      @RustyNPiece 4 года назад +1

      If your writing a novel there is: Done = (First) Draft.
      Seems to translate to coding quite nicely ; )

  • @StefanTravis
    @StefanTravis 4 года назад +213

    My first rule: You don't need to know everything.
    If your language allows for Object Orientation, but all you need is procedures, ignore the OO until you actually do need it. If your webpage needs just a single line of JavaScript, be aware of what else JS can do, but it's not your priority to find out more. You can learn a syntax in a weekend, and a library in a few months, but there's more libraries than you could master in a lifetime - so don't worry about them.

    • @picklerix6162
      @picklerix6162 2 года назад +1

      You have obviously never interviewed with Amazon or Google. Not only are you expected to write code that works, you must write the most efficient code.

    • @StefanTravis
      @StefanTravis 2 года назад +14

      @@picklerix6162 ...for a given value of "efficient".
      Offset against readability, maintanability, sanity, upgradability, development time, etc.
      None of which has anything to do with knowing everything.

    • @connorsullivan5996
      @connorsullivan5996 Год назад

      Do you have any advice for this? I struggle with it a lot. Thanks.

    • @delicrux
      @delicrux Год назад

      True I like to look at reference cards of languages as a quick refresher or to get the basic idea of the available operations at a glance.

  • @Requiem100500
    @Requiem100500 4 года назад +530

    "Computer doesn't have feelings"
    Computer: *crying in binary*

    • @8ihctgbiug471
      @8ihctgbiug471 4 года назад +27

      Computer: *_sad 1 and 0 noises_*

    • @skilz8098
      @skilz8098 4 года назад

      more like Screaming in Binary!

    •  4 года назад

      U made me sad

    • @theRPGmaster
      @theRPGmaster 4 года назад

      Dreaming in digital

    • @dudds6699
      @dudds6699 4 года назад +2

      01101101 01101111 01101101 01101101 01111001 00100000 01101001 00100111 01101101 00100000 01110011 01100001 01100100

  • @leszeknagooglach
    @leszeknagooglach 6 лет назад +2299

    1 byte of advice...

    • @harryfox4389
      @harryfox4389 5 лет назад +32

      Nom nom

    • @danpower7416
      @danpower7416 5 лет назад +195

      There are 10 kinds of people. The ones who get the joke and those who don't.

    • @fenril0542
      @fenril0542 5 лет назад +23

      that's really cool to have things that only takes half a word nowadays

    • @domobrah2671
      @domobrah2671 5 лет назад +14

      2 nybbles of advice

    • @thetechegg8859
      @thetechegg8859 5 лет назад +13

      *nibbles

  • @bdafeesh
    @bdafeesh 6 лет назад +747

    The "do it wrong" bit is especially important. "Don't use global variables!!!" and back in the day I asked "why?", going ahead and making game using nothing but global variables. It worked for a bit until my code became a disaster to expand on. And it was then where I *experienced* why not to use global variables. Stuff like that can't be taught, you have to do it yourself and find the hole you've dug for yourself. And it's not like some game or random outcome where you get mad at something that happened to you; it's your code!

    • @TheAlphazeta09
      @TheAlphazeta09 5 лет назад +22

      You know I've done this so many times, and I still do it sometimes, if I don't understand why something is wrong I still use it, only now I kind of expect it to break at some point, while when I was starting out it was fuelled with confidence, so I'd think ohh, all these guys are morons, this obviously works. But it also has an added advantage, you shouldn't be solving problems you are not aware about, because half-solutions only come to bite you in the ass.

    • @Tapajara
      @Tapajara 5 лет назад +35

      Global variables are good when they apply to your whole program. Using only local variables is a mistake. Java doesn't have globals and it is a terrible flaw.

    • @BaremetalBaron
      @BaremetalBaron 5 лет назад +22

      The other reason to do it wrong is because the "right" and "wrong" way are often just culturally enforced taboos not based in reality. "Best" practices are often just *standard* practices. The right and wrong way to code something is often very dependent on specific context that "best practices" can't account for, and the only way to learn what is actually right in context is to develop empirical experience.

    • @akruijff
      @akruijff 5 лет назад +22

      @@Tapajara The global variables in Java are public static variables.

    • @FS-771
      @FS-771 5 лет назад +8

      @@akruijff those are global constants, not global variables.

  • @allanmessiasdecoelho6039
    @allanmessiasdecoelho6039 4 года назад +25

    Best advice ever.
    I was feeling a bit anxious as a beginner, trying to rush things out and thinking of learning languages but I still quite yet don't know how to "real" read and build an algorithm. I'll save this video for whenever I feel like that again.. thx man

  • @robe.2424
    @robe.2424 4 года назад

    This is some of the best advice I've ever seen for learning to code, and even learning in general all across the board. Thanks for these bits of advice!

  • @egotrip3163
    @egotrip3163 6 лет назад +530

    Your channel might be one of the hidden gems on YT!

    • @javidx9
      @javidx9  6 лет назад +39

      Hey thanks EgoTrip! you discovered our little secret society :D

    • @tashadurrahman
      @tashadurrahman 5 лет назад +3

      So true!

    • @sdwone
      @sdwone 5 лет назад +6

      Some Really Good Advice here!!! Especially about arrogant coders online!
      I remember submitting my first post to GameDev a long time ago... Man! Some dude with a high rep really went for me for some bizarre reason. And when I fought back well, he did seem to back down (Probably because I down voted him... A critical anathema for ego maniacs with precious reputations to protect!) and I actually got some good advice out of him.. Eventually...
      But the damage was already done! Because I dared to rebel against Mr Egotistical in the public thread, his hordes of fanboys rose to his defence and attacked / down voted me to the point that I had to create another user profile!
      So yeah, unfortunately even something as deeply technical as coding has it's own fair share of 'politics' but, don't let any of that dissuade you because there are PLENTY of excellent resources online... My advice is, don't get caught up in the politics and try and keep a low profile... At least until you become proficient enough to contribute to an online resource.
      Anyway, whatever you do... Enjoy! I think coding is one of the most enjoyable things that I've done throughout my life... It's challenging, forces you to think and use your brain and it's totally creative, despite also being heavily steeped in those critical STEM fields so... The proverbial best of both worlds!!! ;-)))

    • @Pridetoons
      @Pridetoons 5 лет назад

      It is that's why I'm subscribed.

    • @mostafamagdy7731
      @mostafamagdy7731 5 лет назад

      I'm learning C++ from a series of tutorials @ChiliTomatoNoodle, coupled with these videos they are absolutely everything you need to learn C++ correctly and along the way learn game development, engine development, and game design. Truly happy to live at a time where these people exist and contribute such works to us normal people ...
      I'd watch one of these videos than take a course on Udemy or whatever bullsh*it platform/book there is out there!!

  • @jppagetoo
    @jppagetoo 5 лет назад +434

    All good advice. I have been a professional programmer for 30 years.I would add two small details. 1. Comment your code, you will be thankful later and you will expected to do that as a professional. 2. Test your code on bad data, it should be able to handle bad data without crashing. Because in the real world, it WILL get bad data fed to it.

    • @postvideo97
      @postvideo97 5 лет назад +29

      This! Countless hours wasted on debugging code when it was just some edge case in the data, that one JSON object in 10 million that is missing a parameter.

    • @trollobite1629
      @trollobite1629 5 лет назад +57

      Get your nan to test that shit because she will do stuff in sequences you never imagined

    • @MatthewWeiler1984
      @MatthewWeiler1984 5 лет назад +19

      The lack of commenting is a massive pet-peeve of mine.
      So many of the developers that I work with don't comment at all.
      I always hate working on their code.

    • @H2Obsession
      @H2Obsession 4 года назад +2

      Comment, comment, comment! 2 months, 2 years or (shock) 2 decades from now your code (or more likely, somebody else's code) will crop up... do you remember what all those variables / functions are doing today? (Months or years later... I thought not!)
      Do you know what that OTHER guys code is doing? Absolutely not unless there are bountiful comments or the code is trivial...

    • @trollobite1629
      @trollobite1629 4 года назад +3

      @@H2Obsession Yep, 20 minutes later I've forgotten what the variables are or how the code is SUPPOSED to work, or worse still, not remembering what I'm supposed to be coding per se. 😁

  • @fourthwind7826
    @fourthwind7826 4 года назад +17

    Wow, that's really kind. There should be more teachers like this in the world. I feel more inspired to code now thanks.

  • @johnwayne8059
    @johnwayne8059 3 года назад +1

    You're absolutely right relating newbies! Wish all programmers would have same mind like you! Thanks for all of your advices and videos, you're making a great job!

  • @toreole5831
    @toreole5831 5 лет назад +388

    6:20 is 1000% stackoverflow
    „Youre doing it wrong“
    „Idiot“
    „Question marked as duplicate“

    • @SteS
      @SteS 5 лет назад +51

      Absolutely. I've even linked to another thread that didn't solve the issue. Yet 5 friendly fellows marked it a dupe in one day. Horrible place.

    • @ShadowAimai
      @ShadowAimai 5 лет назад +50

      The sad part? Answers that were actually what I needed get ignored and even admonished as "not correct".

    • @Its__Good
      @Its__Good 5 лет назад +23

      I agree. It's an utterly toxic place.

    • @eduardoavila646
      @eduardoavila646 5 лет назад +18

      "question marked as offtopic"

    • @JasonRobards2
      @JasonRobards2 5 лет назад +3

      yep

  • @sebquelcutti9375
    @sebquelcutti9375 5 лет назад +458

    As a programmer I've kept two things in mind over the years:
    1. KISS - Keep It Simple Stupid!
    2. There are no dumb questions - ASK!
    Excellent video javidx9, some great advice.

    • @javidx9
      @javidx9  5 лет назад +16

      Cheers Seb, 2 excellent points!

    • @SE45CX
      @SE45CX 5 лет назад +6

      KISS, good one. For example, a regular expression that you can't decipher a week later. While it can be replaced with a code section that step-by-step gets where you want to be. Much better.

    • @JousefM
      @JousefM 5 лет назад

      Nice advice!

    • @dannygjk
      @dannygjk 5 лет назад +1

      Yeah the KISS approach saves time in the long run.

    • @terranrepublican5522
      @terranrepublican5522 4 года назад +2

      No PC or anything but to throw my 2 bits in, I like to think of KISS as "Keep It Stupid Simple" xD

  • @yourstruly200
    @yourstruly200 4 года назад

    Thank you so much for this. It was very encouraging to be told to take it slow, start small, make mistake. Sometimes it can get intimidating being around other programmers who talk about complicated things and it’s easy to feel pressure to be up at their level right away.

  • @papasmurf9146
    @papasmurf9146 2 года назад +2

    Excellent advice: especially bit #1. I seledom learned anything by doing it right the first time. Doing it wrong and figuring out why it's wrong creates a lasting impression.

    • @Brahvim
      @Brahvim 4 месяца назад +1

      Same. Learning what doesn't work gets you to what DOES work so much faster...
      Applied this to learn data-oriented design, recently. Now? I know that the _very aim_ of data-oriented design is to reduce the amount of work / number of lookups / number of redirections needed as well as exploit optimizations the hardware guys left for us.

  • @Kugelschrei
    @Kugelschrei 5 лет назад +232

    I think the best advice is to not code for the sake of learning how to code, but rather to have a specific goal that you try to achieve, such as a small project

    • @peterpeter9230
      @peterpeter9230 4 года назад +23

      Freaking defnitly. This is the biggest motivation booster ever. I wanted to learn how to code advanced minecraft Plugins but never found any motivation besides a few basis. But after joining a server I had the motivation to go on.
      Get yourself an archievable goal and go for it.

    • @andywolan
      @andywolan 4 года назад +13

      Necessity is the mother of all inventions, and of all motivations.

    • @rockokechukwu3343
      @rockokechukwu3343 4 года назад +2

      As a beginner, one might not know what is possible with a code, how do you advise on having an achievable goal ?

    • @vilmiswow
      @vilmiswow 4 года назад +3

      Truee. I've spent so many months just learning Java from udemy tutorials (Around 7-8months in total) It's just exhausting. I'm not saying it wasn't usefull. It was super useful when I created projects later. BUT it was really hard and frustrating it's much better just to keep creating something yourself and learn what you need and only if you want go watch non related tutorials

    • @H2Obsession
      @H2Obsession 4 года назад +8

      @@rockokechukwu3343 Unless you're an expert, you can't really know what is achievable; but if you're just learning to code then set a goal that only (should) require learning/practicing one (or a few) new things. Don't "jump in the deep end" and try to master a new library or use a dozen "new-to-you" functions of a standard library.
      Also, ignorance is bliss. Not knowing what is achievable can produce amazing results. For example, a Commodore emulator called VICE had been around for many years with frequent updates, but a often requested feature (FAST mode of C128) had never been implemented. I had never worked on an emulator before, but I downloaded the source code and over a weekend I found out how the CPU was being emulated and created the long-sought FAST mode. I submitted my changes to the VICE team and the FAST mode became standard on the next release (improved by the team).
      Since then I've learned a lot about writing/implementing emulators, and it is a lot... it can be daunting. I'm guessing that is one reason the VICE project had gone for years without FAST mode. But I didn't know then how complex things can be so I just jumped right into the code and did it. Fearless, not because of bravery but because of ignorance :)
      (This goes in-hand with "don't listen to people on the Internet")

  • @yourMoonstone
    @yourMoonstone 4 года назад +10

    Seriously, the actual best advice for coding I've seen. Thank you for the encouraging words!

  • @crito5896
    @crito5896 4 года назад

    The last three bits are very encouraging! I always get in my head about standard practices and always second guessing myself. I sometimes get stuck in my own mind during personal projects! Sometimes it’s probably the best route to just to code it in a simple way that gets the job done and move on!

  • @Peterplayingguitar
    @Peterplayingguitar 3 года назад

    thank you! Great advice. I'm starting my programming journey through life this year. So far I love it.

  • @chachamarwa6047
    @chachamarwa6047 6 лет назад +32

    all the advises i had seen in different separate videos finally they are gathered in a single video and more of them. No body will give this kind of advice for free but this man did...
    Thanks a lot.

    • @javidx9
      @javidx9  6 лет назад +5

      Lol Thanks, err, GangBang! :D

  • @andrii1701
    @andrii1701 4 года назад +63

    My bit of advice if may: Try to improve your programming skills at all times this process should NEVER stop. I mean it.
    I have exactly 0 appreaciation for devs with immutable knowledge. There is always something to learn and improve.

    • @David-fh6rr
      @David-fh6rr 4 года назад +7

      Where I live also known as the craftman's creed: "Who ceases to improve, has ceased to be good"

  • @betlamed
    @betlamed 3 года назад +19

    "Never cut and paste."
    Instead, dig up an 80s computer magazine and a C64, and type in machine code from the pages.

  • @richardgg2889
    @richardgg2889 3 года назад

    Thank you for a good advice, the way you say it really makes me want to try all the programming stuff piece by piece.

  • @daskonstrukt8392
    @daskonstrukt8392 7 лет назад +94

    i just found your channel and the videos are fantastic!
    great voice and you are very sympathetic

    • @javidx9
      @javidx9  7 лет назад +15

      Hey Das Konstrukt, thanks for your kind words. I'm pleased you're enjoying them. I try to take a relaxed approach, I feel it makes the content easier to take in.

  • @wessmall7957
    @wessmall7957 4 года назад +278

    5 stages of programming:
    1.) "You're telling me there's a magic fairy inside my computer?"
    2.) "WHY WON'T IT DO WHAT I SAY?!"
    3.) "Am I even mentally capable of this?"
    4.) "Please, help me... somebody..."
    5.) "Unfortunately, no one can be told what the Matrix is. You have to see it for yourself"

  • @jimbeammeup9879
    @jimbeammeup9879 4 года назад +1

    Thank you for making this video! I was struggeling so much, learning how to program, because I don't just want to know how to code, instead I want to learn the science behind thinking in code! I will start for now writing my own little programs without even researching what 'good practice' looks like and start experience it myself. Thanks for your motivation and the advice from the community is really helpful as well! Have a nice day!

  • @josema-boy7610
    @josema-boy7610 4 года назад

    Thank you so much! As a noob this is what I needed to hear. I hope your channel gets even bigger. Thank you again for taking the time to record and upload this.

  • @raphango
    @raphango 5 лет назад +17

    Thank you very much! I've just started learning C++, years later from learning python. I really saw that the most important thing is not the syntax, but the logic. The syntax is just a detail. So, thanks for your video again, and congratulations! God bless you!! =)

  • @n_b7467
    @n_b7467 5 лет назад +20

    This has been the most encouraging video I've seen about programming. You are so kind and practical. Thank you.

    • @matiasbarrios7983
      @matiasbarrios7983 5 лет назад +2

      I agree with this 💯

    • @ahmedexmor
      @ahmedexmor 4 года назад

      Exactly the internet is really hostile to beginners, we need to be moere like him.

  • @jasnarmstrng
    @jasnarmstrng Год назад +1

    These are serving me well - Thanks. Excellent comments from the community too.

  • @davidararar
    @davidararar 4 года назад

    Thank you for the encouragement. I've been programming since the mid-1980's. What you say holds true even for someone who has some experience. You let me regain a whole new perspective. Thank you for the friendly reminder to help keep things fresh and fun! Sometimes deliberately 'breaking' things can be fun - the results may not be expected.

  • @RetroHoo
    @RetroHoo 3 года назад +14

    I've been earning my living with programming for 22 years and I still at times need to remind myself of this lesson when I start new things :-). Really solid advice!

  • @TheNoorzain
    @TheNoorzain 4 года назад +10

    Man bit 3 was really painful for me 7 years ago when I started coding. Every forum would start bashing me and I used to get in anxiety and depression thinking that maybe programming is not my cup of tea. Then I just ended up screwing them all and started practicing on my own, kept a pen and paper and kept trying to solve on my own, took help from documentations but none from the forums and it was more worth it and the end result really did pay off

  • @SawSaw-ul8xu
    @SawSaw-ul8xu 3 года назад

    Jeesh! Such good advice, and from such a genuine set of eyes behind a soft, familiar voice. Fantastic

  • @Silc0ne
    @Silc0ne 4 года назад

    Fantastic video. Watching this as I can say that I've ticked eached one of these steps off in my journey to become the programmer I am today. You hit the nail on the head

  • @ErickG
    @ErickG 4 года назад +3

    Thank you for this advice. It can be overwhelming learning at first and it’s easy to feel defeated.

  • @timothyvandyke9511
    @timothyvandyke9511 4 года назад +4

    This really is a great set of helpful hints for starting out :)

  • @bulletman04
    @bulletman04 4 года назад

    Niceeee dude! This is the attitude not just for programming but for many things in life! Thanks for it, arrived in a needed time

  • @Mildimage
    @Mildimage 4 года назад +1

    Absolutely the best advice about to start programming! Very thankful buddy!!!

  • @beecee793
    @beecee793 5 лет назад +23

    The world needs more people like you, people willing and able to spread their knowledge and genuinely interested in helping people and the world. You're a saint in my book.

    • @javidx9
      @javidx9  5 лет назад +3

      Hey thanks BC, thats really nice of you to say!

    • @NarutokunJB
      @NarutokunJB 5 лет назад +1

      This. I have learned more by sharing what I have already learned than by research on its own.

  • @techie4092
    @techie4092 7 лет назад +15

    Good advice, im making a game as a hobby in C++ right now and it's easy to get carried away with all your ideas, but then I realize ill get bored before I even add a quarter of them.
    More of this type of advice would be cool. (part 2? :) )

    • @javidx9
      @javidx9  7 лет назад +5

      Hi TechieW, thanks! I've been there, and still visit! I've folders full of unfinished source files. Bigger projects do need a plan but beginners should just get stuck in. Good luck with your game coding!

  • @VasaMusic438
    @VasaMusic438 4 года назад

    Your videos are always extremely useful, but this is the best speech about programming I ever heard !! Thank You !!

  • @gabrielr.7423
    @gabrielr.7423 3 года назад +1

    Great advice. Congrats for the humble attitude sharing your knowledge also.

  • @ducksoop.x
    @ducksoop.x 4 года назад +3

    I wish I could have watched this video when I started out! You give some real solid advice.

  • @mebrother9
    @mebrother9 7 лет назад +130

    I've been programming for about two years now. I have a degree in Game Development that I got from an accelerated school so I don't really know if I'm still considered new or not. I feel closer to intermediate, but I feel like this advice is good to hear even for non-new programmers. Your voice and tone definitely help drive this video home. Great job!

    • @javidx9
      @javidx9  7 лет назад +16

      Hey thanks Mebrother9, I'm sure your course was quite intensive, so chances are you're better than you think.

    • @jmbeatsbbx
      @jmbeatsbbx 5 лет назад +2

      Hey! I know Im late but Im trying to find people who can I compare my skills to considering the time. There are not many people on the internet who are talking about that but I think it would be pretty motivating to see how fast or how slow do I go. So would you mind sharing it with me? :D What was your level when you got your degree? What algorithms/programs were you able to write? I chose what I wanna do just a few weeks ago (its web programming). Im already programming for one year so I guess Im pretty slow lol. Was jumping from one language to another for one year

    • @javidx9
      @javidx9  5 лет назад +5

      It may be wortg checking out the community showcase videos to see what people are doing.

    • @nathanwoodruff9422
      @nathanwoodruff9422 5 лет назад +2

      @@jmbeatsbbx There is nothing like faking it till you make it. I did that the first 10 years of my career in programming. Nowadays you need to know a few more buzz words than in the past. If you really study up on your buzz words "jQuery, bootstrap, CSS, MVC, WCF" and can rattle them off like a boss, you will more than likely be offered most web development jobs you apply for, ZERO experience necessary. I was unemployed for almost 2 months starting last May 2019 and most hiring managers would not pass you through to the programming staff if you couldn't say all the correct buzz words, even though the hiring manager had no idea what these buzz words meant or were. The bad news is what buzz words they are specifically looking for, you will never know.

    • @sheep83
      @sheep83 4 года назад +2

      I went a similar route to you, intensive OOP course. There are so many charlatans in this game it's frightening. My first job was JS and I mentioned to my Project Manger a few weeks in that I was going to a conference on ES6 and was there anything in particular he wanted me to look into. He said "What's ES6?".
      He's not a developer anymore.

  • @thetynings
    @thetynings 4 года назад +1

    Great advice about getting stuck in to the programming, and not getting bogged down into the rights and wrongs of program structure, scope of variables etc. One thing that I have not seen on You Tube is the approach experienced programmers take to solving complex problems, e.g defining the problem in human language, then developing a solution that can be turned into code.

  • @mensaswede4028
    @mensaswede4028 4 года назад +166

    All good advice for beginners. How about 8 bits of advice for advanced programmers? You know, the stuff that professionals seem to forget?
    8. Always prefer working with smart people rather than people with people who have the "perfect credentials".
    7. Create simple designs for code so that other average programmers can learn and understand it quickly.
    6. Use tools that make sense for the task, rather than picking tools because they have a lot of public "hype/buzz".
    5. First work independently to solve problems, and if you get stuck then don't be afraid to ask questions of others.
    4. Practice and work at learning to troubleshoot effectively; most coders suck at troubleshooting.
    3. Don't manipulate the dialogue to blame others when your code breaks, take responsibility.
    2. Use the simplest data structures that accomplish the task, rather than unnecessarily showing off with advanced concepts.
    1. Listen to your smart colleagues; you don't always have the best solution.

    • @Lucretia9000
      @Lucretia9000 4 года назад +8

      6! Look at literally everything now, it's all about hype.

    • @jirue
      @jirue 4 года назад +1

      I mean... there is something to be said regarding using a tool with hype, that being the ones with hype tend to have a larger collection of help resources built up depending on it's lifespan. If it's hyped, there's more people working with it, and more solutions those people have figured out using it. An example that comes to my mind for this is the difference in help resources between Unity and Unreal game engines.

    • @rbettsx
      @rbettsx 4 года назад +11

      I would add... defining a problem accurately is usually more difficult than finding, or implementing, its solution. Always make sure both the problem and the solution can be, and have been, expressed in plain language, without any technical jargon *at all*. This usually upsets poor quality IT middle-management. It removes their crutches, and the tribal code by which they tell one another they deserve their salaries.

    • @jonpattison
      @jonpattison 4 года назад +3

      @Mensa Swede so right! I've been writing code for more than 4 decades and my experience definitely agrees with your observations. I would like to add to 8 and 7 if I may.
      "8. Always prefer to work with smart people..." who aren't afraid to say "you're wrong because ..." and hopefully "if this part is changed like...it will work". The advanced programmer is probably the leader of a group. A group of "yes men" that won't disagree with the leader is a very bad thing for the group.
      "7. Create simple designs..." this is HUGE if you want to be successful in the long run. Simple designs execute more efficiently/faster, easier to debug, easier to maintain, easier to adapt to other purposes.
      OK, I changed my mind.
      "3....take responsibility" taking responsibility for mistakes shows the people around (above) you that your words can be trusted and you know enough to learn from your mistakes. Everybody makes mistakes. If you're not, you're probably not taking enough risks which means you aren't growing.

    • @zendraw3468
      @zendraw3468 3 года назад +1

      one of the good comments and just 91 likes.

  • @Matthigast
    @Matthigast 4 года назад +231

    "Don't listen to people on the internet"
    -Person on the internet

    • @Artaxerxes.
      @Artaxerxes. 4 года назад +4

      Goodness me you should look at the advice on Reddit. It's generic garbage that pedestrians would tell you

    • @Uvisir
      @Uvisir 4 года назад

      hahahaha

    • @jayadeepmir7496
      @jayadeepmir7496 4 года назад

      Haha XD but there's some truth value there.
      NEVER RUN IT (You've been warned) I've seen the following command shared by many pranksters about CLI:
      rm -rf /
      If you know the basics of CLI, you know what it does. If not, Google it.

    • @salesman4396
      @salesman4396 3 года назад

      matthigast> You comment seems like coming from an A.I. Cannot distinguish between good and bad.

    • @Matthigast
      @Matthigast 3 года назад

      @@salesman4396 Hello fellow human, how are you today

  • @andyhernandez3628
    @andyhernandez3628 4 года назад

    This has been the only video of its kind that truly speaks for noobs. Thank you, javidx9! I have been playing this video constantly to remind myself I'm just starting. Keep up the great work!

  • @supernenechi
    @supernenechi 4 года назад +1

    Bit 2 was amazing. Honestly, I've gotten myself stuck before when programming so many times. Getting out of it and finding a new way of doing something, compiling the code and seeing it work finally is the best feeling in the world!

  • @MidnightSt
    @MidnightSt 5 лет назад +76

    My bit:
    When you make a change/fix to your code, or in general, each time, BEFORE you run your code, form a hypothesis/idea/expectation on what it's probably going to do (and why). THEN actually run it. Don't run your code with the only intention being "what will this do?". ALWAYS form a hypothesis of what's going to happen first.
    Note - not "have an idea what you WANT it to do", that you obviously need, but in this case, form an idea what it is actually going to do, based on what you wrote.
    This has helped me immensely in learning, as well as keeps helping me in my daily job. It makes you accustomed to the idea of just "running the code/any code in your head". It makes as much difference to programming, in my opinion, as not having vs having a flashlight while you're walking through the woods at night.
    ...yes, this advice seems obvious, but you'd be surprised how many people, beginners and "professionals" alike not only don't do this, but actively try to avoid having to do this.
    Programming, is, first and foremost, thinking systematically. The writing part is just noting those thoughts down. Don't let your laziness flip the process upside down.
    My student often hated me for it ("Okay, you've made a change, now describe what the code is going to do when you run it."), but even he could see how it helped him.

    • @Kavukamari
      @Kavukamari 5 лет назад +7

      this is actually pretty genius... i never thought of doing that. you might accidentally tell yourself it won't work after all because you explained it to yourself

    • @mauricestardddude8317
      @mauricestardddude8317 5 лет назад

      I think I am doing that unconciously at times (Or that's just my mind mixing up me reading some ASM code I can't fully understand yet, from a ROMhacking discord I am on (The people on there are truly helpfull in trying to explain things))
      Whereas I contiously definetly do just try test out what my code does, instead of thinking it through step by step.
      Amazing advice, I'll definetly try getting used to doing this.

    • @alexseguin5245
      @alexseguin5245 4 года назад

      Pretty good advice right there. One should always do that as it also makes sure you stay focus on the task at hand. If you're not paying attention, by the time the program compiles and you get to test your change, you might have been distracted and go: "wait, what was I testing again?"
      Definitely helps me stay focused at work.

    • @n8style
      @n8style 4 года назад

      That sounds exactly like unit testing

    • @MidnightSt
      @MidnightSt 4 года назад

      @@n8style not really. unit testing is "make sure you know what results SHOULD the code give you, as in what are the correct ones".
      what i'm saying up there is "make sure you know what results the code is GOING to give you in its current state, regardless of what correct results are supposed to be"

  • @liju40
    @liju40 4 года назад +17

    "What is easily learned, is easily forgotten."
    I have to say if you're going through a book which is teaching you how to code through doing a project, stop at some point and create a new and different project. This lets you apply everything you learned in the book without it holding your hand helping to solidify your knowledge. Recently I picked up a book on Scikit-learn and TensorFlow and about 2/3rds through the first project I stopped and created a new project using the famous iris dataset. Simple classification problem but in leaving the book I really had to figure out how things worked. For example, adding a new column to the dataset using integers to represent the iris species so I could map them to their respective points on scatter graphs. Or how Scikit's classifiers .fit() and .predict() methods worked. Both of these issues gave me immense frustration but solving them on my own let me get through the rest of the project far faster since I actually understood what was happening in the book. Especially because the code was all over the place in the chapter; I didn't have to look for every piece of it, I knew what the book wanted me to do and I could write it on my own. Anyone can write code from a book to get a completed project no matter how complex, doing it on your own is the real challenge.

    • @jaymesc4436
      @jaymesc4436 4 года назад +1

      Another good way would be to look at a tutorial in a different language

  • @_ima_b
    @_ima_b 4 года назад

    Best set of programming tutorials I've ever found. You really understand the path to success and how to teach as well. You should be a programming teacher if you're not already.

  • @davidgirardello9994
    @davidgirardello9994 3 года назад

    These are the best advices about learning how to program that I've seen. They all make a lot of sense.

  • @adisharr
    @adisharr 4 года назад +18

    9:01 "That skill will never go away" You assume a lot with my brain

    • @faye_isc
      @faye_isc 4 года назад

      🤣🤣🤣🤣🤣🤣🤣

  • @Ikkepop
    @Ikkepop 6 лет назад +10

    That is good advice bro
    It's what I always say to other programmers that are starting out

    • @javidx9
      @javidx9  6 лет назад +2

      Hey 2bits, thanks!

  • @mohammadalaaelghamry8010
    @mohammadalaaelghamry8010 Год назад +1

    One of the best out there. Thank you for all the great content.

  • @modelrogers.19
    @modelrogers.19 3 года назад

    Thank you for all you've done! You are so welcoming to aspiring coders!

  • @dimitriostsobanopoulos7
    @dimitriostsobanopoulos7 6 лет назад +33

    Excellent advise, could not agree more! Having started my own carrier 27 years ago without google and internet, when coders had to take regular trips to the library and search for books to purchase on subjects of interest, then hand-code every algorithm in order to learn, I smiled when you said 'Never copy-paste' :) Besides all of the rest of excellent advise in this video, I'd like to stress here this particular bit since it alone can create a habit that may convert an otherwise intelligent and very promising beginner to a careless and lazy coder who never develops the patience it takes to study deeply and learn, and ultimately discover that besides the science, programming is a very expressive and satisfying art form.

    • @javidx9
      @javidx9  6 лет назад +2

      Thanks Dimitrios, I'm pleased others with experience are chipping in too!

    • @GodofWar1515
      @GodofWar1515 6 лет назад +5

      I feel the same way Dimitrios. Programming is 'to me' an art form that needs time and patients to master.

  • @mirageowl
    @mirageowl 4 года назад +40

    "Select all, delete, start again"
    This helped me so much when my bosses keep bringing up new requirements until a tiny script gets blown up with so much code. I just say I'm fixing bugs for the day and take the time to rewrite code now that I know what it needs to do unlike the first time.

  • @signorpipo
    @signorpipo 4 года назад

    These are good advices for learning a new thing in general, and I needed to hear them 1 more time, thank you!

  • @SteelVoltagerpg
    @SteelVoltagerpg 4 года назад

    Literally best video of programming advice I've seen. As a developer, I luckily had this mindset, but have seen others struggle with biting off more than they can chew.

  • @nallid7357
    @nallid7357 4 года назад +147

    6:01 why am I getting the feeling that he's talking about 99% of people on stack overflow?

    • @CottidaeSEA
      @CottidaeSEA 4 года назад +36

      Stack Overflow is a cesspool. Most of it is shitty advice, the rest is "look at this question" where they link a question where someone has a completely different problem.
      Also, I have yet to find a way to link an answer, which is just terrible functionality.

    • @inflatedego9418
      @inflatedego9418 4 года назад +27

      I think my fave stackoverflow posts have to be the ones where the "why are you doing this. Don't try making this" answers have 12x the votes than the actual answers which help

    • @TheAudioCGMan
      @TheAudioCGMan 4 года назад +20

      yes. I think it's ok to show an alternative for improvement, but first *answer the question*

    • @TheAudioCGMan
      @TheAudioCGMan 4 года назад +20

      @@inflatedego9418 "a quick google search will help you out" these should leave a Q&A website

    • @MagnusSkiptonLLC
      @MagnusSkiptonLLC 4 года назад +25

      And a lot of the time it's, "here, use this gigantic library that you've never heard of, so that you can just do it, no don't bother learning how to do it on your own, it's already being spoon fed to you." Learning for the sake of learning should *never* be frowned upon, you never know what you might figure out and how it might be useful later.

  • @fishinghunter4030
    @fishinghunter4030 4 года назад +3

    I've been learning web-design for the past year and a half.(javascript is the hardest part) I found this very informing. Thanks

    • @musashi939
      @musashi939 4 года назад

      Now I'm playing the arrogant guy. Please stop torturing yourself with js. Usually you don't need o write raw js. Learn typescript.

  • @alexxcold
    @alexxcold 4 года назад

    Thank you very much for this really useful advice, I've stumbled upon your video a good month of intensively learning python and I pretty much agree with everything you're saying. Especially the point about writing something that is fun for yourself. Keep it up, you've got a new subscriber!

  • @RichBoud1
    @RichBoud1 4 года назад

    Fantastic! Really helpful. I’ve been programming as an amateur for a bit(ahem) and was worrying my code isn’t good enough. I’m not worried anymore. I’ll just keep learning. Thanks for a great video.

  • @chromosome24
    @chromosome24 4 года назад +20

    Don't be afraid to reinvent the wheel. It will often times lead to better intuition and appreciation of why the wheel exists in the first place.

    • @mxruben81
      @mxruben81 3 года назад +3

      I once made my own json reader because I couldn't figure out how to use someone else's library for it. It was a good experience.

    • @jkf16m96
      @jkf16m96 3 года назад +1

      @@mxruben81 i've been there, tons of times as a student

  • @andrewwalker5164
    @andrewwalker5164 4 года назад +4

    I can definitely vouch for Bit 4. I was just starting out learning to program an Arduino recently and found some good online tutorials. I copied and pasted some code but I didn't really get to understand the concepts behind the code until I typed it out myself even though what I copy and pasted and what I typed were the same thing.

  • @HamedAdefuwa
    @HamedAdefuwa 4 года назад

    Really appreciate the advice, very helpful for me. The stress comes from my assignment due in 3 weeks and I'm confused! But I'll follow your advice.

  • @MikeAshelby
    @MikeAshelby 4 года назад

    Brilliant! I couldn’t agree more. My son is just learning, and you’ve completely spelled out the direction he is and should be going.

  • @meeharbin4205
    @meeharbin4205 6 лет назад +274

    Wont hurt my computer? I once had a loop with a JFrame = new JFrame. If computers could feel pain, that would probably hurt.

    • @ericheilung4553
      @ericheilung4553 5 лет назад +14

      Meeharbi N oh no what have you done

    • @joemann7971
      @joemann7971 5 лет назад +1

      😂

    • @josephmills1104
      @josephmills1104 5 лет назад

      lol

    • @asicaery7881
      @asicaery7881 5 лет назад +5

      Meeharbi N heap overflow 🤣🤣

    • @H2Obsession
      @H2Obsession 4 года назад +18

      That's what I "love" about Microsoft C++ and Direct X... even on a modern "protected" OS, it seems I can easily find a way to crash the system... as if I were writing code in 1983 BASIC :) :)

  • @ramonoros1219
    @ramonoros1219 3 года назад +3

    I'm 28 years old whose getting into the field of computer programming for some reasons. 1 is because I want a challenge and 2 this is a high skill moving forward in 2020. Your video helped me calm myself and really think what I want to get myself into. Thank you for the 8-bit advice lol

  • @ahshiit
    @ahshiit 6 месяцев назад

    You are an incredible human begin. I really do appreciate you and your channel. Thank you sincerely

  • @2DEKAY
    @2DEKAY 4 года назад +1

    Good video, expected this to be all about 8bit games but was pleased to see it's about general programming

  • @BryanChance
    @BryanChance 4 года назад +28

    Oh yes, those arrogant programmers. I posted a question regarding multithreaded design. The answer was "if you do it like that, you obviously don't know what you are doing." LOL if I knew what I was doing, I wouldn't be asking. Now, who's the dummy?

    • @SuspiriaX
      @SuspiriaX 3 года назад +4

      too far gone inside their ego to process social context

  • @machinephile
    @machinephile 5 лет назад +40

    6:11 StackOverflow in a nutshell

    • @kevgmei
      @kevgmei 4 года назад +7

      Love the irony of that site!
      >Exists to help people with any programming issue
      >Full of people complaining about people having bad code who clearly need some help and tips or gives people obscure, unintelligible blocks of code that only work for one specific purpose and can't be reused

  • @HelixSnake
    @HelixSnake 2 года назад

    This is all fantastic advice that I pretty much followed by accident when starting out - when you start getting into coding as a hobby and because you want to make something instead of starting it as "I want to do this as a career I need to learn this" you instinctually follow most of these rules; this lead to me getting a really good head start on it in my early teenage years and in the long run resulting in a really, really successful learning process over a long period. Even now, as an experienced programmer, I still follow some of these rules, like avoiding copy pasting code from online tutorials, and trying to implement things myself when learning something new, instead of trying to mimic someone else's strategy for implementing it.

  • @duncan8238
    @duncan8238 2 года назад +1

    There is some rock solid advice here, wish I had known some of this when I was starting!

  • @ryderant900
    @ryderant900 5 лет назад +3

    This is what I needed to hear to get back into coding again

    • @javidx9
      @javidx9  5 лет назад

      Excellent Ryder Ant!

  • @GodofWar1515
    @GodofWar1515 6 лет назад +20

    I wish I watched this video a long time ago javidx9. I have been in a lot of pain with programming because of setting my projects too high, trying out multiple programming languages, afraid of breaking my computer because some guys online say that unsafe code is evil. But this all changed when I started programming simple little projects only a couple months ago. I made my first text game called 21 which is a card game. Another name for it is black jack. I felt really good after making it because it was the first game I had ever finished in all my time learning to code. Though I made the code too complicated when I tried to add an AI opponent to the game, so I guess it isn't finished fully yet.
    This video you posted should be watched by all levels of programmers no matter what level they are at. Those who are at the top of the charts should watch this to learn how to teach beginner programmers. I remember learning code from a teacher who was obsessed with clean code. To the point where I would think, 'is my code clean? Should I not use this IF statement here? Should I not duplicate code?" Oh man I got sick from stress worrying about all this stuff when I was learning Visual Basic.
    Right now I'm currently using Qbasic v1.1. And I'm enjoying it a lot now since I started lowering my expectations and focused on simple projects.
    But there is one good thing I learned from my old teacher which you brought out in your video. NEVER CUT AND PASTE CODE. And I can say from my own experience that re-writing code really helps you to understand the code you're reading.
    Thanks again for this awesome video javidx9!

    • @javidx9
      @javidx9  6 лет назад +6

      Hey thanks Lucas, I could not agree with your approach more - its so important to develop your own style, your own way of thinking and your own workflows. Adapting to standards can come later, and I don't agree with those who argue you must write perfect code from day one, in case you form bad habits. People kick habits all the time, and in programming you will naturally gravitate towards cleaner, optimised code when you are ready to.
      Good luck with your projects! and QBasic is awesome.

  • @jenrique7
    @jenrique7 4 года назад

    I agree wholeheartedly, specially with the “even if you’re copying something, type it yourself” tip. Best way to learn IMO. Made me remember my beginning days of programming. Cheers!

  • @BiP00
    @BiP00 4 года назад

    Mate, thanks a lot, I'm starting out and this was really reassuring! Hope the best for you mate!

  • @ikannunaplays
    @ikannunaplays 5 лет назад +3

    I started learning to code when I was 11, this was in QuickBasic for Dos. I just was browsing the files on my windows 3.1 machine and found qb.exe and ran it. I spent the next few months reading the help me file and looking over the example programs, and then learned how to use every function that was listen in the help me file. From there I created loops that counted and displayed it on screen, to then having it count and bounce the output around the screen like mystify, to then remaking the mystify screen saver exactly in dos. Loading wav files and displaying the waveform on the screen, they were 8-bit mono files which were far easier to work with at the time. This was during summer vacation and when school stared again I took computer programming as an elective. In my class for the end of year project I had created a complete painting program that loaded in and saved file in bmp and pcx format, flood fill, 256 colors, air brush, basically everything you find in the paint program windows ships with now, but at the time windows paint only supported 16 colors, so my app was amazing. The hardest thing really was learning how to initialize and get data from the mouse, because this was DOS and getting mouse inputs wasn't as easy to do as it is for VisualBasic (or whatever they call it these days). The class required I handed in the final project with all the code written out on paper so the teacher could check it, lol. My app was a little over 4,000 lines of code. You can make great things in short time, but as this video describes you need to start from the ground up.

  • @iknosabuk
    @iknosabuk 5 лет назад +3

    Aww, this is heart-warming. Thank you very much for these 8-Bits of Advice which are truly difficult to get around my life-style.
    I just wonder: Could you tell me how long have you been programing for? I'm just really curious, thanks :)

  • @HartleySan
    @HartleySan 4 года назад

    Probably the best list like this I've ever heard. Thank you.

  • @joaoboger
    @joaoboger 4 года назад

    you have an awesome channel, I have a physics degree, currently enrolled in a physics and machine learning master's program, but programming turned out to be the thing I'm most motivated to do! and watching and learning with you is making me more confident to follow a career in this area, thank you!!

  • @Gameraid123
    @Gameraid123 4 года назад +3

    Wow, this was a great video. I needed that, thank you. I have been putting myself down in community college coming towards the end of the semester. I haven't been studying as much as i should have. Just trying to learn from other people's code, not coming up with my own since the really easy stuff like if, if else conditions. Now we are in Classes and structures and I have no clue how to come up with the code on my own, it's depressing. I know it's my fault and I just keep blaming myself, but this video really helped me and I think I really understand now that I need to take my time and make a hobby out of it, not treat it like work I don't want to do. Thanks again, I wish you were my teacher!

  • @HMan2828
    @HMan2828 5 лет назад +4

    Here's my parity bit: learn assembly language for any simple 8-bit microcontroller. What you will learn about how the CPU works internally will be invaluable later on at making your code efficient. Something like a Motorola 6502 (which was the processor used in the Atari 2600, Apple II, NES, Commodore 64 and Atari Lynx), or a Zilog Z80 (iconic chip of the 80's that also has the advantage of being binary compatible with Intel's 8080 at the time, which was the ancestor to the 8088, and the 8086, the direct ancestor to current day processors). It's a feature complete processor with a small instruction set and no complicated peripherals. The best thing is that you don't even actually need a chip to understand assembly on a small 8-bit micro like that. Just write the code on a napkin along with registers and stack, and follow it along with a pen. If you got friends you program with make it a competition. Whoever can write this or that function the most efficiently wins.

    • @sourestcake
      @sourestcake 5 лет назад

      Learning assembly is certainly helpful. For a small, easy-to-learn, modern instruction set, i would recommend RISC-V. It's 32- to 128-bit, but the instruction word is 32-bit. The base instruction set list fits on a single page in the specification. It has helped me to understand x86 assembly a bit, by putting things into perspective.

    • @ShaunDreclin
      @ShaunDreclin 5 лет назад +1

      For people who think learning assembly is too scary, I would recommend the game Human Resource Machine. Essentially the same kind of thinking but polished into a series of small easy to understand challenges.

    • @HMan2828
      @HMan2828 4 года назад

      @@sourestcake If you're gonna go 32 bits might as well go straight to ARM and THUMB. It doesn't get much simpler and it still used widely everywhere...

  • @Seb_Ibrahim
    @Seb_Ibrahim 4 года назад

    Thank you so much for this content! This is gold. 👌🏽
    I'm a junior in college and impostor syndrome is real. It felt really good to watch this and realize how much I've learned over the past 2.5 years. And the cherry on top was realizing that I've actually been writing decent quality code. So yeah.. I'm gonna go be kind to myself 😇🙏🏽

  • @jaymo1011
    @jaymo1011 3 года назад

    A wonderful resource! I unintentionally followed all of these in my earliest days of programming and I don't want to be the arrogant type but I think I'm doing pretty damn well for myself. I'll be sending this to my own teacher so they can actually teach this in school because it's really bloody valuable stuff.

  • @astronime
    @astronime 5 лет назад +3

    you're awesome and seem authentically kind hearted

    • @javidx9
      @javidx9  5 лет назад

      Well thank you Andrew, I try to just be honest all the time.

  • @swojchwat
    @swojchwat 4 года назад +4

    I have 6 years experience in web development but i still find this video very helpfull.

  • @bananaramaman9031
    @bananaramaman9031 Год назад

    Great advice thank you. I am almost finished my 1st year in a software development diploma, and videos like yours are extremely helpful.

  • @GodofWar1515
    @GodofWar1515 6 лет назад +5

    I know I posted a comment here already. But I wanted to give updates concerning my learning in programming. And a lot of things said in this video is the reason why I am improving. I plan to post some old code of mine and some new code to demonstrate the improvements in my programming journey.
    First of all. Starting with small project
    This is one of the main reasons why I am improving in my programming journey. When you start off with small projects, you not only give yourself a reasonable amount of difficulty to challenge yourself with. But you allow yourself to test out new keywords you have learned or try out new concepts. When you see these keywords or concepts in huge piles of code, you don't really get the sense of it. But when you focus on seeing what happens when you center your code around these things that you are learning it brings the result forward so that you know what that keyword or concept can do.
    Read code that is at your level
    Reading code is very important in your journey to become a good programmer, but reading code that delves into company quality production or big games or engines, will leave you with more question than answers. Rather, focus on simple programs e.g.(Look up code that does a simple tic tac toe game or a simple snake game.). Looking into these simplistic codes that people post online or other games like Nibbles(for QBasic) can really help you understand the syntax of the code and help you see how code is structured.
    Practice every new Keyword and Concept you learn
    As this video rightly says. Practice, Practice, Practice. This is absolutely important. I don't need to go into anything deep about this one.
    Old code (Black Jack/21)
    This is very embarrassing to show since this code was written a couple months ago.
    _FULLSCREEN
    DEFINT A-Z
    DIM class(4) AS STRING
    DIM cards(13) AS STRING
    DIM hand(8) AS STRING
    DIM aiHand(8) AS STRING
    h = 0
    ex = 0
    aiH = 0
    'sorting out the arrays
    RESTORE clas
    FOR x = 0 TO 3
    READ class(x)
    NEXT x
    clas:
    DATA "Hearts","Clubs","Daimonds","Spades"
    RESTORE card
    FOR x = 0 TO 12
    READ cards(x)
    NEXT x
    card:
    DATA "Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"
    DO
    4 'if the card checker finds a duplicate card in the hand array it will goto here.
    IF ex = 5 THEN PRINT "emergency shutdown in case of infinite loop": END
    GOSUB dealer
    GOSUB cardChecker
    GOSUB display
    GOSUB inputs
    LOOP
    display:
    PRINT "Cards in hand: total points: ", an
    FOR x = 0 TO h
    PRINT hand(x)
    NEXT x
    PRINT
    PRINT "Debugging:"
    PRINT "c: "; c; " cl$: "; cl
    PRINT "pCheck$: " + pCheck$
    RETURN
    dealer:
    h = h + 1
    aiH = aiH + 1
    RANDOMIZE TIMER
    c = INT(RND * 12) + 1
    cl = INT(RND * 3) + 1
    aiC = INT(RND * 12) + 1
    aiCl = INT(RND * 3) + 1
    c$ = cards(c)
    cl$ = class(cl)
    aiC$ = cards(aiC)
    aiCl$ = class(aiCl)
    cCheck$ = c$ + " of " + cl$
    aiCheck$ = aiC$ + " of " + aiCl$
    'PRINT c$
    'PRINT cl$
    'END
    FOR x = 0 TO h
    IF cCheck$ = hand(x) THEN
    h = h - 1
    ex = ex + 1 'This variable is placed here just incase of an infinte loop.
    GOTO 4
    END IF
    NEXT x
    FOR x = 0 TO aiH
    IF aiCheck$ = hand(x) THEN
    aiH = aiH - 1
    ex = ex + 1
    GOTO 4
    END IF
    NEXT x
    ex = 0 'reset emergency exit if it doesn't loop
    hand(h) = cCheck$
    aiHand(aiH) = aiCheck$
    pCheck$ = MID$(hand(h), 0, INSTR(hand(h), " ")) 'takes the first word in the string and puts it into pChecker$
    aCheck$ = MID$(aiHand(aiH), 0, INSTR(aiHand(aiH), " "))
    RETURN
    inputs:
    5 INPUT a$
    CLS
    IF a$ = "hit" THEN RETURN
    IF a$ = "stay" THEN GOTO 10
    IF a$ "hit" OR a$ "stay" THEN PRINT "Please enter [hit] or [stay]": GOTO 5
    RETURN
    cardChecker:
    IF pCheck$ = "Ace" THEN
    INPUT "have Ace become 1 or 11", s
    IF s = 1 THEN
    an = an + 1
    ELSEIF s = 11 THEN
    an = an + 11
    END IF
    ELSEIF pCheck$ = "2" THEN
    an = an + 2
    ELSEIF pCheck$ = "3" THEN
    an = an + 3
    ELSEIF pCheck$ = "4" THEN
    an = an + 4
    ELSEIF pCheck$ = "5" THEN
    an = an + 5
    ELSEIF pCheck$ = "6" THEN
    an = an + 6
    ELSEIF pCheck$ = "7" THEN
    an = an + 7
    ELSEIF pCheck$ = "8" THEN
    an = an + 8
    ELSEIF pCheck$ = "9" THEN
    an = an + 9
    ELSEIF pCheck$ = "10" THEN
    an = an + 10
    ELSEIF pCheck$ = "Jack" THEN
    an = an + 10
    ELSEIF pCheck$ = "Queen" THEN
    an = an + 10
    ELSEIF pCheck$ = "King" THEN
    an = an + 10
    END IF
    IF aCheck$ = "Ace" THEN
    INPUT "have Ace become 1 or 11", a
    IF a = 1 THEN
    ai = ai + 1
    ELSEIF a = 11 THEN
    ai = ai + 11
    END IF
    ELSEIF aCheck$ = "2" THEN
    ai = ai + 2
    ELSEIF aCheck$ = "3" THEN
    ai = ai + 3
    ELSEIF aCheck$ = "4" THEN
    ai = ai + 4
    ELSEIF aCheck$ = "5" THEN
    ai = ai + 5
    ELSEIF aCheck$ = "6" THEN
    ai = ai + 6
    ELSEIF aCheck$ = "7" THEN
    ai = ai + 7
    ELSEIF aCheck$ = "8" THEN
    ai = ai + 8
    ELSEIF aCheck$ = "9" THEN
    ai = ai + 9
    ELSEIF aCheck$ = "10" THEN
    ai = ai + 10
    ELSEIF aCheck$ = "Jack" THEN
    ai = ai + 10
    ELSEIF aCheck$ = "Queen" THEN
    ai = ai + 10
    ELSEIF aCheck$ = "King" THEN
    ai = ai + 10
    END IF
    IF an >= 21 THEN GOTO 10
    IF ai >= 21 THEN GOTO 10
    RETURN
    10 'End Game here.
    GOSUB display
    IF an = 21 THEN
    PRINT "Congrats you win!!"
    GOTO 20
    ELSEIF an > 21 THEN
    PRINT "Too bad you bust!!"
    GOTO 20
    ELSEIF an < 21 THEN
    PRINT "Congrats you didn't bust!!"
    GOTO 20
    END IF
    20 'safety shutdown
    END
    'list of bug:
    'choice for changing the Ace is not working
    'class string sometimes doesn't go into cl$ [fixed]
    'the points checker isn't working [fixed]
    'point check does not check the first card that is dealt [fixed]
    I know, this is really bad code. And the code duplication is pretty bad. Compared to my latest version of the code
    Latest code (Black Jack/21)
    _FULLSCREEN
    DEFINT A-Z
    TYPE deckType
    cards AS STRING * 50
    value AS INTEGER
    END TYPE
    TYPE dealtCards
    player AS deckType
    ai AS deckType
    END TYPE
    declare sub dealer ()
    declare sub display ()
    declare sub score ()
    declare getInputs ()
    declare sub win ()
    declare sub lose ()
    DIM SHARED cards(1 TO 52) AS deckType
    DIM SHARED cardsInHand(1 TO 7) AS dealtCards
    DIM SHARED cardValueTotal AS INTEGER
    DIM SHARED cardIndex AS INTEGER
    DIM SHARED inputs AS STRING
    DIM SHARED index AS INTEGER
    index = 1
    EmergencyExit = 0
    cardValueTotal = 0
    RESTORE deckCards
    FOR x = 1 TO 52
    READ cards(x).cards
    READ cards(x).value
    NEXT x
    deckCards:
    DATA "Ace of Clubs",1
    DATA "Two of Clubs",2
    DATA "Three of Clubs",3
    DATA "Four of Clubs",4
    DATA "Five of Clubs",5
    DATA "Six of Clubs",6
    DATA "Seven of Clubs",7
    DATA "Eight of Clubs",8
    DATA "Nine of Clubs",9
    DATA "Ten of Clubs",10
    DATA "Jack of Clubs",10
    DATA "Queen of Clubs",10
    DATA "King of Clubs",10
    DATA "Ace of Hearts",1
    DATA "Two of Hearts",2
    DATA "Three of Hearts",3
    DATA "Four of Hearts",4
    DATA "Five of Hearts",5
    DATA "Six of Hearts",6
    DATA "Seven of Hearts",7
    DATA "Eight of Hearts",8
    DATA "Nine of Hearts",9
    DATA "Ten of Hearts",10
    DATA "Jack of Hearts",10
    DATA "Queen of Hearts",10
    DATA "King of Hearts",10
    DATA "Ace of Spades",1
    DATA "Two of Spades",2
    DATA "Three of Spades",3
    DATA "Four of Spades",4
    DATA "Five of Spades",5
    DATA "Six of Spades",6
    DATA "Seven of Spades",7
    DATA "Eight of Spades",8
    DATA "Nine of Spades",9
    DATA "Ten of Spades",10
    DATA "Jack of Spades",10
    DATA "Queen of Spades",10
    DATA "King of Spades",10
    DATA "Ace of Diamonds",1
    DATA "Two of Diamonds",2
    DATA "Three of Diamonds",3
    DATA "Four of Diamonds",4
    DATA "Five of Diamonds",5
    DATA "Six of Diamonds",6
    DATA "Seven of Diamonds",7
    DATA "Eight of Diamonds",8
    DATA "Nine of Diamonds",9
    DATA "Ten of Diamonds",10
    DATA "Jack of Diamonds",10
    DATA "Queen of Diamonds",10
    DATA "King of Diamonds",10
    'PRINT cardsInHand(1).player.cards
    'PRINT cardsInHand(1).player.value
    DO
    cardIndex = 0
    getInputs
    dealer
    display
    LOOP
    SUB getInputs ()
    inputs = INKEY$
    PRINT "(H)it or (S)tay"
    INPUT inputs
    CLS
    SELECT CASE inputs
    CASE "h", "H"
    EXIT SUB
    CASE "s", "S"
    score
    CASE "q", "Q"
    END
    CASE ELSE
    PRINT "Invalid Input"
    getInputs
    END SELECT
    END SUB
    SUB dealer ()
    RANDOMIZE TIMER
    cardIndex = INT(RND * 52) + 1
    FOR x = 1 TO index
    IF cardsInHand(x).player.cards = cards(cardIndex).cards THEN
    EmergencyExit = EmergencyExit + 1
    IF EmergencyExit = 10 THEN
    PRINT "Emergency Exit because of Infinite loop..."
    SYSTEM
    END IF
    dealer
    END IF
    NEXT x
    EmergencyExit = 0
    cardsInHand(index).player.cards = cards(cardIndex).cards
    cardsInHand(index).player.value = cards(cardIndex).value
    cardValueTotal = cardValueTotal + cardsInHand(index).player.value
    index = index + 1
    END SUB
    SUB score ()
    IF cardValueTotal > 21 THEN lose
    IF cardValueTotal = 21 THEN win
    END SUB
    SUB win ()
    PRINT "Congratulations! You Won!"
    END
    END SUB
    SUB lose ()
    PRINT "OOh! Busted"
    END
    END SUB
    SUB display ()
    PRINT "Player's Points: "; cardValueTotal
    PRINT "Player's Hand: AI's Hand:"
    FOR x = 1 TO index STEP 1
    PRINT cardsInHand(x).player.cards
    NEXT x
    IF cardValueTotal > 21 THEN score
    IF cardValueTotal = 21 THEN score
    END SUB
    In this version of code I practiced using the Type Keyword and focused on POP (Procedure Oriented Programming) concepts.
    Again thanks for the help javidx9! You really helped me get out of a slump
    Also I know this comment is really long. Sorry for that

    • @javidx9
      @javidx9  6 лет назад +2

      Hey Lucas, Wow, possibly the longest comment ever posted on youtube :D I love BASIC, I think more people should do some BASIC, its a fantastic way to learn, and I believe this because that's how I started!!
      Seriously, thanks for your kind comments, and I'm really pleased you've re-kindled your love of programming. Keep up the great work!

    • @GodofWar1515
      @GodofWar1515 6 лет назад +1

      Thanks as well for your educational videos. I learn a lot from you. :)
      And someday I hope to help those who wish to learn programming when I get to a good enough level.

    • @clodgozon3968
      @clodgozon3968 5 лет назад

      That's long bruh. I'm a perfectionist and I kinda feel neutral about programming. Maybe I should try these 8-bits of advices. There is nothing to lose! We should team up
      if you want :p

  • @electricn0va
    @electricn0va 4 года назад +4

    Break down every question into a series of yes-no questions, as computers can only work with true or false
    Also brilliant video Javid, I agree with this byte of advice, and I actually use it a lot in coding...also now I know not to "help" my peers😂🙈