How to learn programming | Charles Isbell and Michael Littman and Lex Fridman

Поділитися
Вставка
  • Опубліковано 25 гру 2020
  • Lex Fridman Podcast full episode: • Charles Isbell and Mic...
    Please support this podcast by checking out our sponsors:
    - Athletic Greens: athleticgreens.com/lex and use code LEX to get 1 month of fish oil
    - Eight Sleep: www.eightsleep.com/lex and use code LEX to get special savings
    - MasterClass: masterclass.com/lex to get 2 for price of 1
    - Cash App: cash.app/ and use code LexPodcast to get $10
    PODCAST INFO:
    Podcast website: lexfridman.com/podcast
    Apple Podcasts: apple.co/2lwqZIr
    Spotify: spoti.fi/2nEwCF8
    RSS: lexfridman.com/feed/podcast/
    Full episodes playlist: • Lex Fridman Podcast
    Clips playlist: • Lex Fridman Podcast Clips
    CONNECT:
    - Subscribe to this UA-cam channel
    - Twitter: / lexfridman
    - LinkedIn: / lexfridman
    - Facebook: / lexfridmanpage
    - Instagram: / lexfridman
    - Medium: / lexfridman
    - Support on Patreon: / lexfridman
  • Наука та технологія

КОМЕНТАРІ • 1,2 тис.

  • @dantedt3931
    @dantedt3931 Рік тому +1506

    A bit long to read, but here’s my programming path and advice:
    I started with C++,failed it the entire year, but the next year I attended a few extra classes(no pun), i eventually understood the different concepts and passed it very well.
    I then discovered Python, it was much easier to grasp and found a lot of use cases for it. I’ve been building applications with Python/Django for years now, loving it.
    I also watch videos and read books about Algorithms, Data Structures etc to enhance my skills.
    My advice to anyone starting out, especially in a non-academic way:
    -Pick a language that you can build a small project with
    -Try to understand how the code works
    -Add more functionalities to your project
    -Never copy and paste a piece of program that works but you don’t know how.
    -EVERY BUG IN A PROGRAM IS A LESSON,AND LEARNING NEVER STOPS.

    • @programmer1840
      @programmer1840 Рік тому +15

      Same as me. Started with C++, but Python is way easier to build stuff with, like little applications and data science.

    • @DoubleAAmazin3
      @DoubleAAmazin3 Рік тому +14

      Should learn C before Python so you can grasp data types...and Python is written in C

    • @xazarl3381
      @xazarl3381 Рік тому +1

      What project do you make though whats a small project whats in your head vs someone who is new is probably not even close.

    • @xazarl3381
      @xazarl3381 Рік тому +3

      @@dantedt3931 nice ithink thats more useful than anything you could be taught it gives you a goal lol.

    • @nikorasukamado2245
      @nikorasukamado2245 Рік тому +3

      thanks for the advice

  • @paull9086
    @paull9086 3 роки тому +386

    Start small but have something specific you want to build.

    • @0mer870
      @0mer870 3 роки тому +16

      This is a better advice imo

    • @reasonerenlightened2456
      @reasonerenlightened2456 3 роки тому +1

      Why the programming languages are still not self-aware in the 21-st century !
      That should really trouble you all.

    • @Badj4s
      @Badj4s 2 роки тому

      Exactly this!

    • @worldshaper1723
      @worldshaper1723 2 роки тому

      I want to build a Neuralink device.
      I have been working with Assembly and C/C++

    • @nuvcrossbackit4361
      @nuvcrossbackit4361 Рік тому

      To build what? Examples please

  • @isaacroberts9089
    @isaacroberts9089 3 роки тому +543

    I have no idea what they're talking about but I'm just like "Mmm, yes, makes sense. That's right, yes, LISP is best, of course."

    • @Priva_C
      @Priva_C 3 роки тому +10

      🤣🤣🤣🤣

    • @tomace1201
      @tomace1201 3 роки тому +10

      That shit had me cracking up dude

    • @davidcalderon2161
      @davidcalderon2161 3 роки тому +25

      Anytime I look up programming for beginners it seems like there no such thing like these people just start throwing terms around like I’m just supposed to know these things lol

    • @layo3452
      @layo3452 3 роки тому +18

      @@davidcalderon2161 😂😂 it seems that way, but if you stick around a bit, after some time it’d just click.

    • @YashuaElohim7
      @YashuaElohim7 3 роки тому

      😂😂😂😂😂😂😂

  • @kiwi-soop
    @kiwi-soop 6 місяців тому +81

    For people who want to learn how to write code, as someone who's been coding for 10+ years my biggest piece of advice is this; Don't worry about what language you start with, just pick something that has a relatively simply syntax so you can focus on learning the CONCEPTS. Once you understand the concepts like data structures, loops, functions/methods, you can transfer that to any language.

    • @elis2634
      @elis2634 3 місяці тому

      Do you recommend Java as a first language ?

    • @kiwi-soop
      @kiwi-soop 3 місяці тому

      @@elis2634 Probably not, although you definitely could. I feel like Java can be a little confusing when you're first starting out, but if you feel like you want to start with an OOP language like Java I would recommend C#. You can get started building programs with an actual UI pretty much immediately with Visual Studio which I think can make the learning process feel more gratifying. Also if you decide later you want to learn Java instead, there's not a huge difference between the syntax of the two languages.

  • @andreasleonhard1512
    @andreasleonhard1512 Рік тому +795

    I've been writing code for 9 years. I almost can't believe I have reached the level I have reached. When I first started out I seriously doubted I could ever become a software developer. I also almost dropped out of my studies because I felt like they kept adding material on top of the stuff I was still struggling to understand. It is very abstract when you're not familiar with it. When I got my first job I was still not good at coding, but slowly I got better and better and it became a lot more natural to me. I guess you can compare it to learning to read or learning a new language. Things became more and more obvious to me. At this point, I feel like I can understand most concepts and I can learn new frameworks fairly quick.
    So I really recommend that if you study it and you're close to giving up. Just keep grinding. You will end up learning it if you put the effort into it.
    On a side note. I've noticed that some of the developers I studied with, who found it super easy back then, are now struggling. Being an employee is more than just being able to code, and some of these former classmates have their own way of doing things, and sometimes it does not align with working in a team or working in a company on bigger projects. So yeah, don't lose hope.

    • @islomtuyjonov6952
      @islomtuyjonov6952 Рік тому +27

      funnily i'm at that stage right now... i'm only two month in on my python course and feel stuck and even doubting my ability to become a developer. the fact that a lot of people struggle in the beginning just like i'm now giving me hope that i can go further.

    • @andreasleonhard1512
      @andreasleonhard1512 Рік тому +13

      @@islomtuyjonov6952 Keep going! You will learn it :)

    • @Anmeldn
      @Anmeldn Рік тому +10

      i gave up several times, because i have a language aptitude, i always sucked at math, i find those steril words offputting, but i cant let programming go. did you feel mathematically inclined as you kept going, or is it really something that feels unnatural for a long time?

    • @andreasleonhard1512
      @andreasleonhard1512 Рік тому +14

      @@Anmeldn I have never been good at math. I think developing has more to do with logic than with math. Data is more or less just input and output, but the structure of that is what makes it difficult.

    • @Mikeysham
      @Mikeysham Рік тому +10

      @@Anmeldn I suck at maths. Programming is different to maths, the similarities are that they both require you to apply logic, break down a problem and apply a solution. You don't need to be some sort of algebra pro, literally just basic knowledge imo is all that is required.

  • @SuperYova
    @SuperYova Рік тому +11

    There are only 3 things (6:08):
    1. Reading from a variable
    2. Writing to a variable
    3. Conditional branching
    Everything else is syntactic sugar.

  • @moseschung3220
    @moseschung3220 Рік тому +262

    In math = is equality, in programming = is assignment. This concept, once it was made known to me, made such a huge difference in my computer science journey. I'm still not a great programmer but defining basic stuff like this explicitly really helped me.

    • @loganmedia1142
      @loganmedia1142 Рік тому +14

      It's both equality and assignment in mathematics. Programming languages need two representations because computers are stupid.

    • @murtajiz545
      @murtajiz545 Рік тому +27

      @WomenBeater88 in math, which is where the “=“ comes from in the first place, the equals sign quite literally means that both numbers/entities that are mentioned are the same, they’re *equal.* In programming, if you want something to EQUAL something, you use “==“, just one “=“ means that you’re assigning a variable or constant to a certain value be it letters or numbers.

    • @aname206
      @aname206 Рік тому +5

      this is groundbreaking for me. thank you.

    • @rmrbush
      @rmrbush Рік тому +3

      Yeah but sometimes in story problems or set up problems you will see something like "if x = 3 and y = 7" which is assignment in that context, even though you are technically doing a "math" problem. This muddies the waters a bit for new person. In any case, it's one of the easier things to figure out in programming.
      Funny this guy talks about loops. I'm self taught and learned the basics from a library book. I had to spend lots of time going through the different types of loops writing out all the silly examples till I finally understood. I never thought I'd crack arrays, it took a solid day.
      I also remember asking someone once I how return two things from a function and that's the day I learned about array structures.
      Anyways I taught myself because I had a program I really wanted to write. I spent 6 months learning until I could write a really shitty program. That was 15+ years ago.

    • @PedroTricking
      @PedroTricking Рік тому

      @@rmrbush > Anyways I taught myself because I had a program I really wanted to write. I spent 6 months learning until I could write a really shitty program. That was 15+ years ago.
      That's a cute story. What was te program?

  • @b-manz
    @b-manz 3 роки тому +424

    2 ways to decide what language to learn:
    1. What are you most interested in - gaming, apps whatever and pick accordingly
    2. What is well supported. Nothing worse than wanting help and not being able to find it.

    • @miroslavdanilov902
      @miroslavdanilov902 3 роки тому +43

      goal + community

    • @DavidBarlowDavido01
      @DavidBarlowDavido01 2 роки тому +1

      C#

    • @swetsTV
      @swetsTV Рік тому +1

      Trying to learn python but it’s rough. Lol.

    • @rarodrig6
      @rarodrig6 Рік тому +17

      @@swetsTV been teaching myself python for 18 months. I've found when I discover useful new thing, there's actually a window where I can use it without fully grasping it. And then one day something clicks, and it falls into place and it takes you to the next level. Repeat again at the next level

    • @wobbly562
      @wobbly562 Рік тому +6

      @@rarodrig6 i find this happens and works as an effective way of learning in most subjects and probably even especially stem, you take a break from whatever youre trying to figure out or just focus less on trying to decypher it and it gives your brain room to just work with it subconsiously until you revisit it with a slightly new different view.

  • @Morelloo1
    @Morelloo1 3 роки тому +668

    That was biggest problem for me when I started learning C++ in first year I remember being so mind blown by just hello world and not getting at all why it worked. I really didn't like taking it for granted. I think the problem for me was not grasping the concept of 'abstraction' - to me it was just some buzzword that I didn't really get. Wasn't until I knew about assembly , compilers and how basic processor architecture worked that it all started to click.

    • @Straitjacket346
      @Straitjacket346 3 роки тому +35

      This is why I've never been able to go more than a day into the journey, it's like a state of permanent OCD.

    • @ajmalzahir3088
      @ajmalzahir3088 3 роки тому +51

      Bro the day I realized that data structures were abstract creations we’ve made to form containers for collections of data and the power and freedom that allowed a dev 🤯

    • @freepatriot9070
      @freepatriot9070 3 роки тому +35

      Like Lex said, they should make everything as explicit as possible. For instance in your case, they should have made a clear link between the output you see on the screen and the 0's and 1's that create them.

    • @benvella1728
      @benvella1728 2 роки тому +6

      Helped a lot when we were made to write java and check out the resulting byte code to figure out what was happening

    • @xamael1989
      @xamael1989 2 роки тому +4

      To a certain degree i would favour abstraction especially when the lib or tool does its job well the problem comes when you have to go beyond that abstraction and figure ought how things connect to implement improve or change an object that has been abstracted is difficult an abstraction is an addictive confort zone thats born of necessity

  • @TheirSavior
    @TheirSavior Рік тому +138

    I just learned the basics of Javascript using the Headfirst book. It was enough to make my own card game. From reading the book to finishing the program took a month of full time commitment. I only recommend coding to people who are willing to problem solve often and can learn to sit in uncertainty for long periods of time. Those skills should be learned prior or along with coding.

    • @kuukiwoyome5640
      @kuukiwoyome5640 Рік тому

      Ditto

    • @gianni3611
      @gianni3611 Рік тому +1

      Sitting with uncertainty is very hard to master. It takes a lot of mental fortitude and patience.

    • @paradoxofchoice4110
      @paradoxofchoice4110 Рік тому +5

      Can we see the card game and which card game is it similar to?

    • @savachi
      @savachi 6 місяців тому

      "sit in uncertainty for long periods of time" - excellent concept and quote and transfers to a lot of other life domains.

  • @tkayuniverse3493
    @tkayuniverse3493 3 роки тому +94

    Lex's statement about being ok in a state of confusion speaks to me so much! that is the vast majority of my 2 months or so of getting into cs

    • @bennri
      @bennri Рік тому +1

      One person's confusion is another's puzzle to solve.

  • @marchfifth1754
    @marchfifth1754 2 роки тому +29

    I learned HTML and CSS when I was about 10 or 11. I was fascinated with making websites so I grabbed a book from Chapters and just followed it. I read it in the bathroom, on road trips. I didn't get much time to practice but I knew the basics, however, because I didn't practice it I never really got good. Now, I use it almost daily for small tasks in my job. I understand it more and more and more, but I want to be better and get into Javascript as well. I am 32 now but I hate my marketing job and want to go into strict coding. I think I am going to start studying again.

    • @bennickclayton6468
      @bennickclayton6468 Рік тому +3

      Check the Odin project, its well structured

    • @ramicollo
      @ramicollo Рік тому +1

      What's your marketing job like? What are some typical daily tasks?

    • @Ismail-zd9gp
      @Ismail-zd9gp Рік тому +5

      Can you give an update about your coding journey. Did you start javascript? How long do you think it takes to become a good web developer.?

  • @michaelanthony4750
    @michaelanthony4750 3 роки тому +1805

    Coal miners are gonna love this video.

    • @The_Mosaic
      @The_Mosaic 3 роки тому +46

      Stop.

    • @nunyabiznes6702
      @nunyabiznes6702 3 роки тому +35

      🤣🤣🤣🤣🤣🤣👍

    • @methylphosphatePOET
      @methylphosphatePOET 3 роки тому +57

      @@GeoFry3 Sorry, but I have a "studies" degree. And all of this is laughably simple. Code is not very complicated at all. I've been writing programs in C++ and Python for years. There are some dense theoretic frameworks developed by people like Derrida and Foucault that are required reading in "studies" courses, that the typical software developer would be completely intimidated by. Many developers are morons who don't bother to read anything beside the little software language they were interested enough to learn once upon a time. The fact that you think this is heady stuff says more about you than it does "studies" majors.

    • @johnmarkjames5447
      @johnmarkjames5447 3 роки тому +294

      @@methylphosphatePOET I bet you’re fun at parties.

    • @johnjay6370
      @johnjay6370 3 роки тому +33

      @@GeoFry3 I understand programming might be easy for you, but it does not mean it is easy for most. The IQ of a standard programmer is 110 or above the adv IQ in United States is 98.. This tells me most people will never be a programmer.

  • @phyrr2
    @phyrr2 Рік тому +6

    What helped me learn the most was focusing on error handling in regards to UI/UX/QoL issues (started with Python after failing C++). Building a simple program and doing everything I could to break it, then creating fixes to handle said errors. I create data entry forms and do a lot of work in Excel as well, and I cannot stress how much learning basic programming helps in regards to building solutions in Excel workbooks. Things like interactive dashboards and the like need to be resilient when sharing with say your boss or other end users. It also has to make sense and be dependable.
    The thing is, "programming" has such a wide variety in application it's not just "I'm going to grow up and become a software developer". For me, it was "I'm going to learn data science, including standardization, enrichment, ETL, reconciliation, management/strategy, etc. etc. then apply to marketing automations for a dozen different customer journeys".
    In the end, learning to code is learning how to solve problems. The better you are at solving problems the more valuable you become in anything you do (especially in any tech field). Working in marketing, having these skills should be required nowadays and at the very least, gives one a huge edge over any non-tech counterparts you may be working with.

  • @petropzqi
    @petropzqi 3 роки тому +23

    Lex please talk more about this void feeling, I bet we all can relate to that when it comes to programming

  • @Maeda_Toshiie
    @Maeda_Toshiie 3 роки тому +81

    C was my first language, and I use it from time to time for performance reasons. I like C for its simplicity when doing just raw number crunching. Input and string parsing is painful but the memory management aspect is the most painful of all.

    • @mojeedazeez958
      @mojeedazeez958 Рік тому +7

      I got admitted into an scholarship academy in Africa (ALX) to learn programming. Lectures started in August and we started with C. Sorry i have to talk about my background. I'm from a art background, i did Mass communication at the polytechnic. I think I really like C because it touches on all the basic roots of programming you need to understand but the painful part is you need to be conscious about memory management all the time. I recently have stopped with the scholarship programme and now taking a course on Udemy for Python.. I thinks C is a great language, I'm sure to come back to it, I just need a less complex bedrock..

  • @jacobjohn378
    @jacobjohn378 3 роки тому +69

    Seeing Lex focus so hard on the question, expecting something really difficult, is gold.

    • @brians7100
      @brians7100 11 місяців тому +2

      I'm still not convinced he knew the answer was y = 3 and not y = 7 tbh

  • @iAlberto923
    @iAlberto923 3 роки тому +105

    I am starting to get into programming (One year in) I really wish there were more videos such as this. I have never heard about Charles, but he seems to understand the position that a complete beginner find themselves in, and that's what I would like to have from someone who is trying to teach programming.

    • @StormKidification
      @StormKidification Рік тому +2

      How did u start

    • @dragospahontu
      @dragospahontu Рік тому +3

      How did u start

    • @alejandror.2630
      @alejandror.2630 Рік тому

      You got a job already?

    • @markdeleeuw5446
      @markdeleeuw5446 6 місяців тому

      @@StormKidification im a wannabe-junior but i started with python to learn the syntax. Just try it for a few weeks or months and you will understand more what you want and what (other) syntax you need to learn.

    • @markdeleeuw5446
      @markdeleeuw5446 6 місяців тому

      @@dragospahontu im a wannabe-junior but i started with python to learn the syntax. Just try it for a few weeks or months and you will understand more what you want and which syntax you need to learn.

  • @rafaeldericksanchezlockwar4920
    @rafaeldericksanchezlockwar4920 2 роки тому +79

    "Python is basically lisp but with better syntax"
    "...blasphemy" xD

  • @dmitrygrin6930
    @dmitrygrin6930 3 роки тому +208

    Morpheus started programming when he retired from Matrix

  • @saberxebeck
    @saberxebeck Рік тому +12

    X=3;
    Y=4;
    What is X? (Ans=3)
    What is Y? (Ans=4)
    Y=X;
    What is Y? (Ans=3)
    X=7
    What is Y? (Ans=3 But would be 7 if x and y would be anchored with an ampersand)
    I Couldnt see this in the comments and the ans wasn't clear in the vid so I figured I'd type it up for others.

    • @lvrsvid
      @lvrsvid Рік тому

      Thank you for this. I thought I was correct in my thinking but you finished the loop for me, haha.

    • @kingoffongpei
      @kingoffongpei Рік тому

      Thanks for this. I am just learning about memory while learning Javascript right now and had a feeling it was still 3 and I think it's due to being primitive values? Not sure if that's correct and also not sure if that's correct for all programming languages. I don't know what the anchoring means yet but I'll probably get to it later.

    • @nyion7584
      @nyion7584 Рік тому

      Yes, I was looking for this comment. Guys in video just assume that X and Y are reference variables. When usually those are just value ones so this Y = X does what it should do in math. And then changing X does not affect Y. Until it's value type not reference type. So explanation in video was poor.

    • @ahancho
      @ahancho Рік тому

      hello I am currently completing harvards free cs50 and i learned that ampersand in C was used for as an address operator or pointer. may you explain what you mean by "anchored with an ampersand"? thank you

    • @thisisthechief1
      @thisisthechief1 Рік тому

      Thank you. I love how they never answered it in the video lol

  • @meowcat64
    @meowcat64 3 роки тому +13

    00:6:09 breaking it down to its primitives, very interesting and useful take on programming

  • @ws8061
    @ws8061 Рік тому +123

    It's interesting hearing these guys, I struggled a ton trying to understand recursion until my TA showed me how it worked in memory on the call stack. It seems dumb now but it's interesting how good teachers can really get you understanding concepts.

    • @rayyanamir8560
      @rayyanamir8560 Рік тому +7

      Bright friends can teach you better than teachers of harvard or oxford.

    • @bird6472
      @bird6472 Рік тому +7

      Recursion becomes second nature and very intuitive over time. But often where students get stuck with recursion is that they just don't have a system in place yet for cognitive offloading. Instead of trying to trace everything in your head, try to offload some of that mental processing and cognitive demand onto paper as you go. It'll really help for interviews later too.

    • @wagutoxD
      @wagutoxD Рік тому +4

      @@bird6472 Recursion! 🤬 I'm having trouble with it. I do write it in paper and I even get the correct "answer"... but that's it. I just repeat the process. I don't really understand it... yet. it still eludes me. I'll get there...

    • @bird6472
      @bird6472 Рік тому +3

      @@wagutoxD You'll get there. It takes time and then one day it just clicks!

    • @ws8061
      @ws8061 Рік тому +1

      @@bird6472 that's excellent advice

  • @RationalSteve
    @RationalSteve Рік тому +8

    Learning Python and SAS, and It's been tough to stick with it. This helped. I wish everyone luck on their journey of becoming better.

  • @mtribe3442
    @mtribe3442 3 роки тому +66

    This episode is incredible. Love the third mind sanity check

  • @ForOrAgainstUs
    @ForOrAgainstUs 3 роки тому +85

    This was so good, I don't even know how good it was.

    • @Woji52
      @Woji52 3 роки тому +8

      x = this was good
      y = not sure if this was good
      You and I = x + y

    • @shivamjalotra7919
      @shivamjalotra7919 3 роки тому

      @@Woji52 Haha

  • @nebulous_57
    @nebulous_57 Рік тому +2

    This makes me feel better about learning C++. I'm on my midterm and I don't really know what's going on sometimes but I do understand the majority of what I'm seeing, I just need to learn how to build a program using my own notes and skills. As a visual learner, the text doesn't help me as much as watching youtube or googling others' blocks of code and seeing it in action. I don't know how I'll grade at the end of the semester but I enjoy programming and the high I get after my programming running as intended is new and awesome

  • @robbieparis07
    @robbieparis07 3 роки тому +3

    I remember in elementary school math doing word problems where the answer would involve something along the lines of Let x= ..... and maybe this helped to set me up for understanding the difference between equality and assignment

  • @shteakhouse
    @shteakhouse 3 роки тому +129

    Teaching concepts from intro to programming to someone with no background is a real art. That in itself is a problem most of us have trouble solving.

    • @ajmalzahir3088
      @ajmalzahir3088 3 роки тому +2

      It’s fun to think back at your mindset from 101 classes till present. Honestly trippy to see the growth so clearly

    • @shteakhouse
      @shteakhouse 3 роки тому +3

      I didn’t see the big picture until i took OS. Probably the most fundamental/important class to take imo

    • @reasonerenlightened2456
      @reasonerenlightened2456 3 роки тому +2

      Why the programming languages are still not self-aware in the 21-st century !
      That should really trouble you all.

    • @pineapplehead789
      @pineapplehead789 2 роки тому +2

      @@reasonerenlightened2456 what do you mean and why are you commenting this in a lot of comments

    • @reasonerenlightened2456
      @reasonerenlightened2456 2 роки тому +2

      ​@@pineapplehead789
      What do you think it means.
      It is time for a new paradigm.
      (i.e. Computers that ask questions.
      Everybody is obsessed with building computer languages that find answers. But nobody yet wants to focus on giving them the ability to ask the questions.)

  • @jacobjohn378
    @jacobjohn378 3 роки тому +15

    AHHAHA "Stare into the void with tears slowly rolling down your face". Lex is such a gem.

  • @mattordiway1955
    @mattordiway1955 Рік тому +6

    I am completely in love with programming right now. I mean just the process of problem solving is so fun, and I actually hated it when I was attempting a CS degree. I have no idea what changed other than a maturing view of the world...Anyway all the love to Lex

  • @joethestrat
    @joethestrat 3 роки тому +4

    9:50 to 10:04
    So much truth in this process you mentioned. Don't know how I wasn't subbed to you before but I'm rectifying that right now. Liked and shared also.

    • @Soso-ho2si
      @Soso-ho2si 3 роки тому

      When are we leaving to K-PAX ?

  • @WhossBobbFPV
    @WhossBobbFPV 3 роки тому +7

    Thought I had no idea what I was doin but I guess I have a pretty good understanding and should get back to learning

  • @blink182lives100
    @blink182lives100 3 роки тому +91

    Charles Isbell walks a fine line between condescending and humble. idk thats just the vibe I get from listening to him speak

    • @mulatto401
      @mulatto401 3 роки тому +28

      I found him condescending and annoying.

    • @morlyfe
      @morlyfe 3 роки тому +4

      @@mulatto401 hes giving real answers though

    • @mulatto401
      @mulatto401 3 роки тому +12

      @@morlyfe He is giving his opinion, not answers.

    • @JayBowles
      @JayBowles 3 роки тому +1

      Haha very generously put. I wouldn’t be so generous...

    • @br2716
      @br2716 3 роки тому +16

      He's an academic. He is likely aware that when it comes to Computer Science, his opinions/experiences are primarily valuable within the walls of MIT, while simultaneously being very disconnected to programming in the open market.
      That being said, after watching the entire interview, he seems to be very full of himself and makes some pretty bold claims without even acknowledging that what he is saying is a mere opinion.

  • @willf.h6951
    @willf.h6951 3 роки тому +6

    Soooooo happy, as a beginner I understood all of that!!

  • @RonaldoGoat12327
    @RonaldoGoat12327 3 роки тому +40

    Im learning fullstack development right now in school, where u train for 1.5 years here in Sweden then u get released into the workforce as a dev. Honestly, it's fun and stimulating. But also very hard at times and frustrating... I remember being stuck in react for hours, but it ended up being like 4 lines of code that solved my issue. I assume this is what it's like for everyone. But I really like it so far. Not the front end side, I like SQL and c# way more so far, but front end is not that bad.

    • @5FT6MAN
      @5FT6MAN Рік тому +1

      try draw to code for front end

  • @waynegnarlie1
    @waynegnarlie1 3 роки тому +13

    I learned Microchip assembly (MPASM) first. I still use it and love it.

    • @waynegnarlie1
      @waynegnarlie1 3 роки тому

      @@TimoNoko Never heard of Cosmac, and from your description, I'm thankful, lol!

  • @wagutoxD
    @wagutoxD Рік тому +3

    This cut gave me some sort of relieve... I'm new to programming, I'm studying JavaScript right now. I realized the thing I have the most difficult with is the abstractions! It screws my mind hard! But seems normal as my mind is not really used to logics behind it all... not sure if I was clear enough... anyone at the same boat?

  • @yiro6577
    @yiro6577 Рік тому +1

    Thankyou lex,this is very educational as a person who just started programming

  • @danielbusquets3282
    @danielbusquets3282 11 днів тому

    I started learning programming some 10 years ago when I was already past 35. I never stopped. I’m now able to build complex softwares on my on. It feels very empowering to be able to transform my ideas into products as a solo coder, solo entrepreneur. Every long journey starts with the first step and it is never too late to start while there’s life. Just do it. By the way, I started with python and I will never regret doing so. My current project uses python, typescript (vue3) and 3 databases including one vector db. I love it and I will launch in only a few more months! Happy coding everyone!

  • @bokchoiman
    @bokchoiman 3 роки тому +4

    I was taught assembly and as soon as I started learned C++, I begun to flush out assembly altogether. At some point it becomes unproductive to think at such a low level of abstraction because what you wish to accomplish will significantly outweigh the capabilities of the language you're using.

  • @sibbyeskie
    @sibbyeskie 3 роки тому +165

    When I first got into programming this talk (languages, etc) got me endlessly excited. Now syntax is hard to get excited about. It’s all the same basic formal structure. Now when I see experienced guys still get excited about this, it usually means they aren’t making much that is truly creative. Like an artist spending most his time admiring his paint brushes and testing them out for insignificant differences, but rarely actually painting.

    • @prabhdeepsingh5642
      @prabhdeepsingh5642 3 роки тому +9

      Thats what I was thinking. For a while I got confused that there must be something really deep that these guys are talking about, which I am unable to understand.

    • @erikpost1381
      @erikpost1381 3 роки тому +14

      They're not talking about syntax, at least not exclusively, but about semantics, which is ineed a deep subject. Programming languages do not have 'the same basic formal structure', although many languages do indeed have much in common.

    • @buttslaya
      @buttslaya 3 роки тому +1

      I guess programming in LISP makes you think about things in a different way? I agree with you about learning to program in different languages though, without doing deep dives into a particular language its really all the same. Look up Haskell school of music if you are looking for a cool application for code. I've been meaning to give that a run myself.

    • @qlee50
      @qlee50 2 роки тому

      I agree, language structures don’t mean much except minor learning curve friction while you’re writing code. The higher level libraries, frameworks and SDKs that enable you to combine and build useful tools, functionality and bring joy to users are what really matter

    • @josemaria_landa
      @josemaria_landa 2 роки тому +2

      MMM. As a hobbiest compiler/language designer syntax/semantics always excites me haha.
      So many different and cool languages:
      Lisp
      Haskell
      ColorForth
      Clean
      Standard ML
      J
      Prolog

  • @AlumniQuad
    @AlumniQuad Рік тому

    9:00 Good point. In Pascal, it's ":=" specifically to address this. Xerox's Mesa programming language used left arrow ("←"), but only because their computer keyboards had an "←" key that was distinct from the left arrow key.
    I think that before the age of Java people avoided this pitfall by being required to study assembly language very early in the CS curriculum (in my experience, it was couse number two and was required to be taken before the department would allow you to major in the subject).

  • @varunsharma7911
    @varunsharma7911 3 роки тому +1

    I put a lot of emphasis on building stuff using documentation over solving problems from the popular competitive programming websites and as a result failed at so many interviews.

  • @GohanBurner
    @GohanBurner Рік тому +28

    I am only a couple months into my coding journey and the fact that I understood all of that really gives me hope. Maybe this is something I was supposed to do. I always thought I could never grasp these things but they actually came naturally to me. It's making this whole experience fun.

    • @gumbo64
      @gumbo64 Рік тому +4

      keep going :)

    • @imsudipp
      @imsudipp Рік тому +3

      Best of luck man

  • @DAMfoxygrampa
    @DAMfoxygrampa 3 роки тому +54

    This man and Paul Graham have absolutely convinced me to learn lisp

    • @BLawwat
      @BLawwat 3 роки тому +2

      I thought he said list and I searched for that. I'm 57--should I be thinking about programming at all?

    • @youtubesuresuckscock
      @youtubesuresuckscock 3 роки тому +6

      Lisp blows. Compete waste of time in 2021.

    • @DAMfoxygrampa
      @DAMfoxygrampa 3 роки тому +3

      @@BLawwat If you're interested in it then absolutely man, if you have a mind like an engineer then you'll find programming to be a lot of fun. It doesn't necessarily have to be your future career.

    • @wills242
      @wills242 3 роки тому +1

      @@BLawwat yes please, man! And please encourage any of your curious friends to do the same! If I could talk with more old guys about basic basic code lingo it’d bridge so much of a gap! A big shortcoming of the world rn is the digital disconnect !

    • @brigittetitte4415
      @brigittetitte4415 3 роки тому +1

      @@youtubesuresuckscock rather...?

  • @danielpelanek7869
    @danielpelanek7869 Рік тому +2

    I feel like flowcharts are the best way to introduce programming. You can clearly follow what the program does, without needing to learn almost any syntax, and it teaches you how to visualize programs in regular programming languages.

  • @Zgredu666
    @Zgredu666 3 роки тому +2

    Shure SM7B is a dynamic microphone and should be directly in front the speaker's mouth, around 1 inch away from the lips. With this audio equipement you are able to achieve nearly radio sound quality. Enjoyed the video tho!

  • @erichighsmith7299
    @erichighsmith7299 3 роки тому +247

    I know how to write Hello World!

    • @digitalhippie2336
      @digitalhippie2336 3 роки тому +19

      In the big world, every time you do that - the big bang happens
      We don't fully understand what's happens in the quantum world, so behave please

    • @harsimranbansal5355
      @harsimranbansal5355 3 роки тому

      @@digitalhippie2336 “the universe is not obligated to make sense” -NDT

    • @cpzd83
      @cpzd83 3 роки тому +1

      You'll get there man. I'm nowhere near Eve half decent at programming but you start feeling when you get the grasp of it, trust me. Just keep at it.

    • @chite3111
      @chite3111 3 роки тому +8

      print(“Me too, but not much more than that lol.”)

    • @johnstamos8258
      @johnstamos8258 3 роки тому

      @@freedomgoddess it’s printf not print in c

  • @m7mmad772
    @m7mmad772 3 роки тому +64

    So important and true what lex said that when you are learning programming you have to be ok being confused for a while

    • @ajmalzahir3088
      @ajmalzahir3088 3 роки тому +13

      Program not working -> follow errors -> there’s 20 errors and half are in deeper library files -> pull docs -> docs give basic unclear implementation info -> look up examples -> end up on stack overflow, again

    • @OmegaF77
      @OmegaF77 Рік тому +1

      @@ajmalzahir3088 Sometimes the libraries jusst straight tells you to git gud at C/C++ first before using it.

    • @yyyd6559
      @yyyd6559 Рік тому

      It's been 6months and I'm still confused

  • @astrahcat1212
    @astrahcat1212 6 місяців тому +2

    I started with C# and there were all of these best coding principles, but what kept me going was kind of being a 'rogue' programmer and doing it the way i wanted to. Now a days I can see that what I was doing was called 'procedural' programming style, and it was oop style that I was learning at the time.

  • @vertzy821
    @vertzy821 3 роки тому +2

    Thank you for these videos Lex

  • @paologallardo8869
    @paologallardo8869 Рік тому +5

    I'm currently enrolled in an AI/ML Associates of science. We're having to learn python along with some other ML knowledge. It seems interesting and espite the steep learning curve I'm going to force myself to love it.

  • @ssgtblackmamba7991
    @ssgtblackmamba7991 Рік тому +6

    As someone who's learned the very very very basics of python, the fact that I could understand and answer his question correctly makes me feel really great and motivated to keep going.

    • @369pendulum
      @369pendulum Рік тому

      How long ago did you start?

    • @ssgtblackmamba7991
      @ssgtblackmamba7991 Рік тому

      @@369pendulum about a year ago for like 2 months, then I had to take a break because our second was born, new job, selling our house, buying a house that still needed to be built and starting on a bachelor's....so I got a bit busy XD
      I'll pick it back up in about a month.

  • @uPenguin
    @uPenguin Рік тому

    Finding a project you're really interested in helps a lot, I wanted to build an ML model to predict the outcome of the Tour de France because I am interested in cycling and I taught myself how to Webscrape to get the data I wanted, and I learnt how to train a model and I ended up with a decent output which I am still working on. I even tried learning TensorFlow but that is still something I haven't fully got to grips with.

  • @zzzzzzzzzzzzzzzzzzzzzzzzzzzz__
    @zzzzzzzzzzzzzzzzzzzzzzzzzzzz__ 6 місяців тому +1

    Awesome video. I was hesitant to click because I’m pretty confident in knowing the pathways to learning programming but I’m so glad I did anyway. Really cool insights from some great thinkers!

  • @thomasjones9559
    @thomasjones9559 3 роки тому +6

    God damn. I'm 6 weeks in and loving this clip. Failing miserably so far but this is encouraging to see we all go through the same pain.

    • @dlo5640
      @dlo5640 3 роки тому +1

      2 weeks here...lol I didn't realize how feable minded I was before starting this journey

    • @thomasjones9559
      @thomasjones9559 3 роки тому +1

      @@dlo5640 what Ive learned so far is sometimes you need to refresh your eyes. If you're stuck on something for too long its sometimes best to shut it down. Usually the next day you'll come back and instantly know how to fix your code.

    • @LightsOutToney
      @LightsOutToney 2 роки тому +1

      Same here my man, started 2 months ago and by now basically I just accepted that it’s going to take time until I get where I want to be as a programmer so now Im just trying to embrace and enjoy the journey.
      Seeing as you posted this 8 months ago how far would you say you have come since then?

    • @ahmadaltaheralfayad135
      @ahmadaltaheralfayad135 2 роки тому

      Harvard has a free course called CS50, it’s honestly been a great resource for me in learning the fundamentals. The professor is incredibly engaging as well. It’s kind of tough so bear that in mind, but it’s definitely worth it.

    • @frog6054
      @frog6054 2 роки тому

      I only got to learn python for 4 months and then I give up lol.

  • @Quasidono
    @Quasidono 3 роки тому +116

    I think dig this more than JRE

    • @moritzgro2442
      @moritzgro2442 3 роки тому +31

      Of course, because Java sucks.

    • @mountainp800
      @mountainp800 3 роки тому

    • @worldeconomicforum7210
      @worldeconomicforum7210 3 роки тому +14

      To me.lex fridman is just the place where all the really smart JRE fans go. When we don't want to hear about working out, comedy, or DMT. I just glad I found him on JRE.

    • @veryincredibly
      @veryincredibly 3 роки тому +3

      @@worldeconomicforum7210 Lex also talks about DMT?

    • @ironmagma
      @ironmagma 3 роки тому

      He's the hero we need but don't deserve.

  • @FlyingCorkscrew
    @FlyingCorkscrew Рік тому

    Thank you. I needed to hear this

  • @SaidThoughts
    @SaidThoughts 6 місяців тому +1

    The debate on which is better is funny because he first starts out saying his is better, but when challenged on that decision he reverses it stating "SO you're going to say it's better than anything?" while just prior saying the same about his suggested.

  • @bobdoggy4312
    @bobdoggy4312 Рік тому +5

    I'm 45 years old. Starting small changed careers drifting away from nursing while swinging hard into in bits with front end and python. Web dev is so far my goal while starting out my first year in BS CS, Im feeling happy learning.

    • @kompila
      @kompila Рік тому +1

      Good luck Doggy!

  • @stulego1
    @stulego1 3 роки тому +4

    I wish I had Charles as my intro to C++, I was stuck on what syntax meant from the beginning and why it was required.

  • @ubercorey
    @ubercorey 3 роки тому +2

    Is there a resource you recommend to learn some of these basic concepts?

  • @superjarri
    @superjarri Рік тому +1

    I think I have a decent level at C, C# and Python, and if I had to chose a tool to learn programming, it would be Excel and VBA. It's like a language and a test bench at the same time and of course, it's one of the most usefull skills you can learn if you work in any kind of office.

  • @leonlysak4927
    @leonlysak4927 3 роки тому +9

    Learn programming by thinking of a cool thing to build. You learn way faster, and it's fun as hell. I taught myself programming in 2019 initially because I wanted to make some tools and automate my work. It sort of just morphed from there. It doesn't really matter what language you start with, but I personally started with Python and then Nim. Ever since I tried Nim my fingers wouldn't let me type in any other language lol

    • @judgedbytime
      @judgedbytime Рік тому +1

      First two lines should be shouted from the mountain tops.

    • @iamdopeasfcuk
      @iamdopeasfcuk Рік тому

      sometimes the cool thing you want to build is too complex for your skill set, which can make you feel overwhelmed. maybe i'm weird, but i think the best way to learn is just open a c++ textbook and just go through each chapter doing the exercises. if you get stuck, there's plenty of resources online to help. I learned c++ in uni, so that's why i'm partial to it.

  • @matthewwoodard9810
    @matthewwoodard9810 Рік тому +11

    “The very basics are often not made explicit.” Very very good insight there. This is true in teaching most complex topics, but seems to be especially present in teaching programming. I can’t count the times where I’d finally get a concept and think, “why the fuck do they teach it this way.” Or, “why don’t they explicitly point this out.” Or worse, to understand a concept, decide to dive deeper, listen to “teachers” and start thinking holy fu.. I don’t understand this at all, only to come around and realize my original understanding was correct but the way it’s taught is a convoluted mess.

  • @simpliside
    @simpliside Рік тому

    Assembly is very great language. You get to understand the conversion process to raw machine code. In my study, it was a marvel

  • @sameeruprety8306
    @sameeruprety8306 Рік тому +1

    Great piece of advice

  • @vjfperez
    @vjfperez 2 роки тому +8

    Theres usually a tradeoff between efficient to use and easy to learn.
    To make something easy to learn you shoehorn a lot of familiar concepts into the most intuitive form.
    To make something efficient to use you try to simplify the most frequent operations at the expense of intuition

  • @MsgrTeves
    @MsgrTeves 3 роки тому +9

    I remember these guys from Udacity's Reinforcement Learning course

    • @thomaswyrick4648
      @thomaswyrick4648 3 роки тому

      You should check out their Machine Learning Course. It covers mostly Supervised and Unsupervised Learning. It was designed to work with their RL course.

  • @SecretHymns
    @SecretHymns Рік тому +1

    Staring into the void has been me and still is me. Very good point made by Lex

  • @MrBBOTP
    @MrBBOTP 3 роки тому

    love it & i know nothing about it... thanks you tube & LEX

  • @seniorreact9627
    @seniorreact9627 2 роки тому +4

    Commenting so the UA-cam algorithm suggest more videos like this for me.

  • @cybersyndicate1645
    @cybersyndicate1645 3 роки тому +22

    This was helpful. I felt stuck at a beginner python level for a while. Not because the language is difficult to learn. But it's difficult to articulate my ideas as code.

    • @meilyn22
      @meilyn22 3 роки тому +2

      So true bro.

  • @ronanlarkin
    @ronanlarkin Рік тому +1

    I started doing C up as far as pointers and memory allocation for fundamentals then moved to Java to get to grips with object orientation.
    Also think using HTML and JavaScript as a beginner is really helpful!

    • @JashSingh-bv5ge
      @JashSingh-bv5ge Рік тому

      html isnt a programming Language , i prefer python bcs , ist easy to understand.

    • @ronanlarkin
      @ronanlarkin Рік тому

      @@JashSingh-bv5ge You're right! But I'd argue that coupled with JavaScript, building a simple web page with HTML (mark up language!) It's a nice, accessible way to get started and get fast tangible results because you can see what you've created and nothing needs to be compiled.
      I'd also argue that although python is easy to use, its applications are primarily in some of the more complicated areas such as ML and data analytics. Plus it can be beneficial in the long run to have to do things the hard way in the beginning, but that's just my opinion.

  • @jagavi9822
    @jagavi9822 Рік тому

    Love this! Great job

  • @kontranorth6159
    @kontranorth6159 Рік тому +42

    I’m learning to code right now and this was very insightful. I have a mathematical oriented brain and the syntax seems to be my biggest issue and now I know why.

    • @CoolStoryBroWhoCares
      @CoolStoryBroWhoCares Рік тому +1

      I suck at math. Do I have a chance?

    • @dragospahontu
      @dragospahontu Рік тому +1

      @@CoolStoryBroWhoCares yes, but your brain needs to be mathematically oriented.

    • @CoolStoryBroWhoCares
      @CoolStoryBroWhoCares Рік тому

      @@dragospahontu damn

    • @dragospahontu
      @dragospahontu Рік тому +1

      @@CoolStoryBroWhoCares give it a shot, it's kinda cool

    • @aufkeinsten7883
      @aufkeinsten7883 Рік тому +4

      @@CoolStoryBroWhoCares I've always hated maths in school and love programming.. Don't rely on what others tell you for an important decision like this, just give it a shot if you have some time on your hands. Even if you're working full time or are going to school, take a few hours of free time every week and see for yourself! Don't judge what you're able to achieve or how "fast" you learn, just whether you enjoy programming and learning it. If the answer is yes, then there is a place for you in software engineering. What's important is the affinity towards logic & tinkering, which has absolutely nothing to do with high school maths. There's fields of software engineering where you'll never use more complex mathematical concepts than the ones taught in high school!

  • @lokeshrana7359
    @lokeshrana7359 2 роки тому +33

    From a software developer's perspective, I would suggest learning javascript because it broadens the scope of what you can develop. Websites, servers, native mobile applications just to name a few.

    • @Nikki_the_G
      @Nikki_the_G Рік тому +6

      @@techtutorvideos Right because it's not like js is used in actual development and web at all, wtf are you talking about? It's standard.

    • @over1498
      @over1498 Рік тому +1

      I know JS purists hate when I say this, but I’d say learn JS basics then learn Typescript thoroughly.
      You can do anything JS can do, it will be supported and growing for a long time. But the main point is that you’ll be able to switch to Python, Rust, Scala, and other high demand functional code easily.
      I consider it sort of a mistake that I spent so much time learning JS quirks. Of course it’s good to know, but the docs will always be there if you really need. Just saying I n the time it takes to understand JS thoroughly, you could have learned like 4 other skills at an intermediate level.

    • @user5214
      @user5214 Рік тому

      I started about 7 months ago and now am almost finished building a chess game from scratch using react. Very rewarding without having to know how memory works or how the computer itself is doing much of anything, but rather being able to focus on how the language itself can assist me in getting the results I want without a massive barrier to entry that other lower level languages present.

    • @Ismail-zd9gp
      @Ismail-zd9gp Рік тому

      How long does it take to become a frint end web developer learning javascript?

    • @vibovitold
      @vibovitold Рік тому

      JS is used for cross-platform mobile applications. only then a framework like React Native can compile, or tranpile your work into native ones.
      NATIVE mobile development is generally taken to mean that one uses Android SDK or its iOS counterpart, coding in Kotlin (formerly Java) or Swift (formerly Objective-C).
      this being said, i do agree that JavaScript is ubiquitous, and a sensible choice (although i'm not a big fan of the language myself, but that's of course subjective)

  • @in4moon
    @in4moon Рік тому

    My humble opinion which was inspired by my friend a long time ago, is that because programming languages can only evolve in a backward compatible manner, the most efficient syntaxes tend to be the ones of the languages that are new. For example TypeScript , elm , rust. That is only 1 consideration for picking up a language. Adoption rate in a particular field could also be a big factor, if someone want's to develop software for others (mostly for corporations).

  • @marcogranados2477
    @marcogranados2477 3 роки тому +1

    Love this as a newbie

  • @tomparke2407
    @tomparke2407 3 роки тому +23

    If you want to learn how to program, know a few of the basic concept like variables, loops and if statements, then trying to build some basic web UI functionality with Javascript is a great way to get started building something you can use and interact with. Great visual feedback. Build a dropdown menu in JS. Build a modal with JS.

  • @FuzzyDunlopification
    @FuzzyDunlopification Рік тому +28

    I think python is a great first choice. One of the problems with learning python on the internet is that a lot of people seem to use python without the OOP approach. I ended up learning without the OOP approach until I learned the advantages of OOP.

    • @judgedbytime
      @judgedbytime Рік тому +4

      good comment

    • @almoszold5011
      @almoszold5011 Рік тому +2

      Python is a very versatile language with tons of use cases, some of which don't really need an object oriented approach.
      I use it many times when I want to automate something, just as a scripting language and it's almost always easier to just use basic data structures like maps, arrays and tuples to achieve most of what I want to do.
      This is especially true for beginners. You'll want to first understand loops, if statements, functions, recursion and other basic stuff, before dwelling into a programming paradigm about abstraction, methods, encapsulation, inheritance, polymorphism. Once you understand the basics, you can discover the benefits and drawbacks of object oriented design.

    • @murtajiz545
      @murtajiz545 Рік тому

      Same situation here; love the language, but man it makes you miss out on SO MUCH.

  • @tomsetberg4746
    @tomsetberg4746 Рік тому +1

    Start from the basics and practice every day. Just like everything else you need to build the muscle memory for what you're doing.

  • @TungTo-xp8rv
    @TungTo-xp8rv Рік тому

    I started with html/css then move to JS then React. It's hard to understand some concept like: Thread, Composition, Loop, Dependency... My recommend would be start with some basic fundamental knowledge about OS, Networking (http), Binary logic... then an programming introduction (course or book is ok), OOP, OOAD and design pattern

  • @Jackson_Zheng
    @Jackson_Zheng Рік тому +18

    Abstraction is probably the most important yet understated concept in all of programming!
    I'm not a good programmer by any means and I haven't coded in over a year but when I was just starting out learning about classes and objects, I was so confused as to why they structured things that way. I also couldn't understand how software could talk with hardware and it made programming seem like a thought experiment.
    Once I understood the concept of abstraction, everything clicked and fell into place.
    Someone should really make a map of how everything in programming fits together in ascending abstraction, starting from transistor logic gates and storing charge in capacitors to act as memory, to ALUs, binary, all the way up to Python and JavaScript.

    • @moscrow3247
      @moscrow3247 7 місяців тому +2

      It’s all ones and zeroes???
      ALWAYS HAS BEEN

  • @FPSmoto
    @FPSmoto Рік тому +3

    I wonder if programming were made to be more relatable, such as comparing it to cooking, would be a better way to get people interested in, and help to better understand programming. So explaining a piece of code, such as the rhythm game he was referring to, could be simplified into terms like you need to understand that the code is like a recipe and you have to have all the ingredients, some of which could be main ingredients and others sort of added to spice up the dish. You could look at the main body of functionality in a piece of code as being the entree, or meat of choice, while other objects are seen as side dishes, while cooking techniques are like the condition statements within code.

    • @SerenityDreaming
      @SerenityDreaming Рік тому +1

      I thought about this. I thought maybe teaching programming to multilingual individuals would obviously be a good place to start, and from there, while they're learning coding, they could also attempt other analogs for lack of a better word. I'm a pretty decent cook, I have a hard time envisioning the model you described. I do like the idea of a recipe. So differing parts of a cohesive meal, where the supportive code acts as less fundamental parts of the whole in service to the meat. It seems more a template. The variety of the meal might detract from the variance you'd want to highlight within the code. And people have strong opinions about food. Any thought on overcoming that? I could see this being useful later on when memorizing. You could adapt meals you personally like top specific common functions you expected to repeat often. I couldn't form analogous connections between code you hadn't created yet, and full meals you enjoy. Hmm. There does seem to be some element of code or puzzle building. I think you might just have a sophisticated relationship with food.
      I also thought about translating the concepts using singing or songs and maybe dance routines. Might appeal to more young ladies and girls. Music in general. Or maybe some kind of modular train track set. That of course, leads right into robotics, and I ordered Arduino Sets. They get complex imo. Lot's of blinking lights. It's a struggle to find exercises that aren't simplistic and pointless or needlessly complicated with no proportionate pay off. And even then, if the materials are poor quality, then the project, no matter how mindfully coded, will be subpar and frustrating. Is it extra steps to seek a digital/visual robot that only exists on a modeling matrix, but simulates the live movement of robots, without sacrificing that 3d advantage that makes robotics seem so effective? I know it's kind of exiting the 2d to enter the 3d so I can go back into the 2d. Thanks.

    • @MichaelPohoreski
      @MichaelPohoreski Рік тому

      Recipes are extremely formulaic using known off-the-shelf ingredients. We _already_ have the analog of functions and libraries. There are numerous problems trying to abstract a program with interchangeable components:
      1. Dependency hell, bloated programs, and with slow compile times.
      2. You can't treat programming like engineering with interchangeable widgets. A _model of abstraction_ is just that a model. Sometimes you _need_ coupling, most of the time you try to minimize it. Programming is about problem solving. WHAT the problem is will determine HOW you approach it. Your paradigm choice matters. In theory implementation details don't matter, in practice they do.
      3. Abstraction costs. Sometimes we need to pay attention to size and speed. We have inheritance flattening and devirtualization because one abstraction model does not fit all.
      4. Not everyone should be a programmer. It takes a certain mindset to understand "meta-mathematics" aka Computer Science. Not everyone can understand the intricacies of coding regardless of how it is taught. i.e. If you can't understand assembly language you are an amateur coder. The devil is in the details. Learning to break a program down into smaller steps is _essential_ to write good code. Learning good/proper naming is essential to communication with other programmers. Knowing when to use abstraction and when not too still matters.

    • @FPSmoto
      @FPSmoto Рік тому

      @@MichaelPohoreski Engineering and Design go hand in hand... Any engineer worth their salt knows how to be good at design. And any good designer needs an affinity for engineering. You can go all in one one or the other but you will be limited by the structure of engineering and by the chaos of design. Balance, above all else.

    • @MichaelPohoreski
      @MichaelPohoreski Рік тому +1

      @@FPSmoto They do but unfortunately most UI people are completely clueless at functionality. They are too busy with their dogma of form.
      And sadly too many engineers are clueless about form and flow.

  • @lorenzocabrini
    @lorenzocabrini Рік тому +2

    It's really interesting that he mentioned Pac Man because that was exactly the first thing I tried to do on a VIC-20 sometime in the early 80s. I also managed to do it, but it took me a lot longer than an afternoon. I started by placing an @ character in the middle of the screen. Then I wanted it to react to joystick movement. That took quite a while. Next, walls. First I just had an outer wall right next to the border.
    For some reason, Pac Man was the itch I had to scratch. Should probably have started with breakout, Space Invaders or something, but I didn't know that some games were more complex than others. I was just a little dumb kid. But, at least it taught me never to give up.
    It was when I got to the ghosts ($ characters in my version), that it began to get challenging. Had a lot to learn there. It took me about a month to have a first playable version, then another month to rewrite it based on things I learned through building the first version. I figured out LDA, STA, ADD and those things quickly. Took much longer to understand ROR and ROL and things like that. The concept of flags, overflow, program counter and instruction related to flag values such as BEQ, BNE and the others took me a lot of suffering to figure out. (To be honest, I've forgotten many of the instructions on the old 6502 by now).
    Another thing I remember I needed to wrap my head around was in which areas of memory you could actually stick your code. There was no operating system, no protected mode to save you, just you and the memory, some of which was reserved for specific purposes like character maps, interacting with hardware, etc. There was a lot to learn, but I was totally hooked. I could sit for hours and hours on end, telling myself I hated programming but actually loving the fact that it kept challenging me and I had to try to figure out how to overcome each challenge.
    I still love programming. It's what I've done professionally my whole working life, but I must say that some of the early magic is gone. There was something so simple and beautiful with simple switch on/switch off instructions, which is lost with big complex languages of today. Don't get me wrong, I love Haskell, Lisp and even C, but to program those old CPUs directly was just so much fun (even up to the older members of the Motorola 68xxx series). I could never really wrap my head around assembly on Intel processors. I'm sure it's beyond my brain power. Too many instructions, too complex, better to just let your C or Haskell compiler figure it out.

  • @TheJacklwilliams
    @TheJacklwilliams 2 роки тому

    Got my sub. Great discussion.

  • @kindleboje713
    @kindleboje713 Рік тому +5

    As an IT recruiter, I don’t pretend to know how to write code (though I’m trying to start learning the basics). But I see most of the Fortune 100 using or moving to Java. I’m surprised Java and JavaScript aren’t mentioned here. Would love thoughts from other developers though!

  • @Rakesh6720
    @Rakesh6720 3 роки тому +29

    I'm teaching high schoolers javascript. It's funny how you need to have coded for two years before you can appreciate how deep this convo about starting really is.

    • @Sindoku
      @Sindoku 3 роки тому

      True

    • @MegaFirefox360
      @MegaFirefox360 3 роки тому

      advice for learning java? how do I even start actually making code

    • @avi7278
      @avi7278 3 роки тому +9

      @@MegaFirefox360 my advice is not to ask random people in youtube comments.

    • @bombardo2489
      @bombardo2489 3 роки тому +3

      @@MegaFirefox360 You have to understand the very basic Things like Data Types because you gonna suck without Understanding them,Also Methods ,Scope,And access specifiers ,and Objects because in Java Everything is an object literaly. Use This Video it really helped me ua-cam.com/video/S0V20PHPR4M/v-deo.html

    • @morlyfe
      @morlyfe 3 роки тому

      @@MegaFirefox360 look up alex lee on youtube thank me later 🤟🏾

  • @lylewyant3356
    @lylewyant3356 6 місяців тому +1

    Pascal was one language I studied 30 plus years ago. Now, trying to learn C# with Unity.

  • @usienwkdau2jfb28u4b
    @usienwkdau2jfb28u4b 5 місяців тому

    I am learning Assembly and C++ and at this point I feel like these are the two languages I'll ever need...I personally see arguments made for other languages being easier to learn and etc but I've had no issue learning any concept so far in either Assembly or C++...it's definitely doable

  • @clearnandimprove4604
    @clearnandimprove4604 3 роки тому +30

    I have been learning c # for the past few months. Its going alright I know more then when I Started.

    • @MV12267
      @MV12267 3 роки тому +2

      Great for ETL, visual studio has an SSIS template.

    • @BrokenAbyss
      @BrokenAbyss 3 роки тому +1

      How complex is it? I’m a video editor and want to try my luck at coding, but idk how hard it will be.

    • @Cyberspine
      @Cyberspine 3 роки тому +14

      @@BrokenAbyss All programming languages are complex, but some are more abstract than others. For example, assembly is the language the computer operates at, and is not very friendly to humans. On the other end of the scale, Python works much like natural language, where the final code resembles a verbal description of what the code is doing (eg. for each element in list do an operation). C# is somewhere in the middle, where it has these human-friendly abstractions but allows you to also talk to the machine directly. My personal opinion is that you want to start learning with a highly abstract language such as Python, and then gradually move closer to the silicon with languages like C# and C++. The core concepts, such as loops, functions, classes etc. translate readily from one language to the other, so it's possible that you'll be able to learn C# faster by learning Python first. It's a bit like learning to drive with a car with automatic transmission first and then switching over to manual.

    • @clearnandimprove4604
      @clearnandimprove4604 3 роки тому +1

      @@BrokenAbyss you can do a lot with it from what I can tell. I have been using it with unity. Learning to make apps and games. I can see it having many other uses.

    • @JethroYSCao
      @JethroYSCao 3 роки тому

      @@Cyberspine well said, though after one gets familiar with the fundamentals, there's a strong case to be made for going in the opposite direction on the abstraction spectrum too, in particular languages in the strongly typed functional paradigm like Haskell, Ocaml, Scala, etc.

  • @thehazarika
    @thehazarika 3 роки тому +95

    I started learning programming before I can read English properly. It took me 8 years to understand memory management and pointers.

    • @brigittetitte4415
      @brigittetitte4415 3 роки тому +5

      Wtf, 8 years?

    • @thehazarika
      @thehazarika 3 роки тому +6

      @@brigittetitte4415 Yeah, I am dumb.

    • @brigittetitte4415
      @brigittetitte4415 3 роки тому +8

      No dont get me wrong, im just wondering how difficult these topics are lol

    • @thehazarika
      @thehazarika 3 роки тому +31

      @@brigittetitte4415 It is not that difficult, I started learning programming from an English text book, and I barely knew english back then. So learning both C and English at the same time may be why I took 8 years

    • @johnford2517
      @johnford2517 3 роки тому +23

      @@thehazarika It wasn't until recently, while talking to someone who's had to deal with this issue, that it dawned on me how unfair it is that all non-English speakers have this extra barrier to writing code. One of those things that you just have to accept but really puts people, especially those who don't use Latin alphabets, at a disadvantage.

  • @Kenbomp
    @Kenbomp 3 роки тому

    This is a very straight frank. Nice. Lisp is cut to chase visible syntax tree's. Not for everyone but very powerful in the right hands. But not everyone can have the luxury. But people should try out out. If you're only using what everyone what is using then you're not that special compared to everyone else and easily replace.

  • @defco89
    @defco89 3 роки тому +2

    6:02 stripping each concept down to its bare essentials seems to be the quintessence of mastery !!

    • @defco89
      @defco89 3 роки тому

      6:29 understanding why code treats a familiar concept in unfamiliar ways is also helpful in building the right mental models.

    • @defco89
      @defco89 3 роки тому

      10:16 how do you know what you dont know if the projects and problem sets you work on dont reveal it ?!

    • @defco89
      @defco89 3 роки тому

      10:25 workarounds indicate the need to continue refining skills for mastery !!

  • @Tomsonx232
    @Tomsonx232 Рік тому +8

    I agree with start simple, but also with an emphasis on starting with something simple that you find interesting. You will always find ways to make a simple idea more complex as you build it and think of more features to add, and that's the best way to learn. If you just build simple things for the sake of building them you will lose motivation

  • @FrankPapadakis
    @FrankPapadakis Рік тому +4

    I didn't go to college for CS, I have an Industrial Engineering degree. I have been teaching myself to program over the last few years now. Was able to change my career to a software developer role last year. It takes time to learn but you can do it. Don't give up!

    • @alejandror.2630
      @alejandror.2630 Рік тому

      Few years took you to change from carrer? I hope I can get a job in the industry in my first year, It is possible?

    • @FrankPapadakis
      @FrankPapadakis Рік тому

      @@alejandror.2630 changing careers is a lot different than getting your first entry level job. I waited until I got an offer that I wasn't going to take a pay cut on.

    • @alejandror.2630
      @alejandror.2630 Рік тому

      @@FrankPapadakis but I think if you get a entry level job you would get to that types of offer much faster

    • @FrankPapadakis
      @FrankPapadakis Рік тому +1

      @@alejandror.2630 possibly, I just couldn't afford to take a huge pay cut at the time. I was already making over 100k a year and entry level software dev jobs in my area were around 65k so it would of been tough for me to reduce my income by almost half.

    • @alejandror.2630
      @alejandror.2630 Рік тому

      @@FrankPapadakis I understand, may I know how many hours daily you studied?

  • @jonyisme3227
    @jonyisme3227 Рік тому +1

    Loved it!

  • @madmotorcyclist
    @madmotorcyclist Рік тому

    Lisp is the only language that gives standard language programmers pause and takes some getting used to, due to its code foundation of everything is essentially a list. It only matters how you interpret/evaluate the list and its elements. It's why AI started to get popular back in the 1980s with natural language parsers and planning and scheduling.