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!
Hey can you share what all projects you build when u were learning ? I'm doing small cli stuff but I'm not able to build big projects and microservices. Also haven't studied front end yet.
Hi Daniel, you will be certainly my inspiration in this case.. I m 39 now.. And started learning python... Previously I worked for non Software jobs.. But i want to make transition into IT industry now.. It feels motivated when I see someone has already gone through similar path
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.
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 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.
yeh i think these programming languages are like human languages. if you get used to a simpler syntax programming language, i guess that would make it easier to focus on the gist of programming and coding. then applying that language sense to other languages is easier because the logic is pretty much the same, its just different syntax, different rules and grammar and what not
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.
@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.
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.
@@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?
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
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.
@@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
@@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.
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.
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.
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?
@@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.
@@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.
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.
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.
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.
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
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.
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.
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.
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 🤯
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.
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
@@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.
@@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.
@Piga 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.)
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.
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..
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 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.
@@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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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
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
@@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.
@@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 !
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
Hey, what do you mean? I’m just getting into programming. So I don’t know what you’re referring too. Can you explain what you mean about this void feeling? Thanks
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.
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.
@@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...
Start with solving a problem where coding matters, you can do it at work, and get paid for it - Vis Basic in Excel - Week 1: Doodle with the mouse recording macros - Week 2: Type out the code and debug the subsequent mess - Week 3: All of a sudden people start coming to you with problems thinking you're the office whiz If you get addicted to problem solving natural curiosity takes over. You don't need to be good at coding, you just need to be bad at giving up - best advice I ever got
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?
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
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.
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
“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.
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.
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.
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.
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.
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.
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.
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.
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)
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.
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.
Everything you need to know is online or on UA-cam for free. C, Python, Docker, Linux, Excel and so on all you've got to do is take the time to learn it.
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.
Python reads and writes how you think. It is so fast and comfortable. For a new beginner: just write out all of the things you want a program to do. KEEP IT BASIC. Then slowly google how to write those statements out: If X is greater than Y, then Z is equal to X plus 2.
"I want to learn programming, what language should I start with?", the answer should almost always be Python. • Python is like trying to learn how to drive automatic. You'll learn how to drive. You'll learn it fast and you'll be able to do it well. • Java is learning to drive a stick shift. Java is the best balance of learning how to program as well as learning how programs work. • C++ is like trying to learn to drive by learning how to manufacture, assemble, and then use a car.
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.
@@00juniorxL7 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
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.
@Hitchcock Mason 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!
@@aufkeinsten7883Im taking my time in learning python and Im enjoying it and I don't even what I really want to use it for yet. I just enjoy to write and learn from my mistakes or when I get stucked.
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 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 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.
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
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.
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
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.
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.
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
On one hand, I agree with the notion that entry language choice isn't too important. With today's tech, hardware is virtually not an object. But I still find that the best code is written by developers who understand what's being done to the metal. So sure; if you want to learn programming, pick a language which best facilitates your desired path. But if you want to be a GREAT developer, start with something lower level and build from there.
@@glorgau Exactly! And with that, you understand the "wrapper magic" that takes place in higher level languages when using types like int64, bigint, longint, etc...
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!
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.
@@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.
@@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.
@@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.
@@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
@@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.
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.
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
@@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.
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?
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.
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!
My recommendation is, start with a language that has a mature unit testing framework. Right from the get go, writing unit tests to test your own code will give you insight into how it behaves. Python and Java both have great unit test frameworks. When you get into writing larger programs, writing parts of your code so that they are easily unit testable will automatically lead to better composition and decoupling of code.
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.
Choose a language that is in demand by industry. A good developer knows many languages to solve real world problems. Aim to be a developer i.e. ability to program in multiple languages.
Yes, “Start small” yet many universities continue to teach CS101 using C++ ; my university over 10 years is still teaching the same way , same teacher, C++ 😂 , which by the way I learned later on is one of the most complex programming languages ever 😅
That's the correct way for computer science and for people who want to be the best programmer they can be. Learning the fundamentals in C ingrains the ethos of efficiency that is at the core of the whole shebang. For people who just want to add a tool to their box then python is the right choice. You will never appreciate its power though without having learned what's under the hood with C.
why institutions arent more strict as to who should teach really difficult modules is beyond me..yeh this mf has a phd but that dont mean he can get us to understand
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.
You should check out their Machine Learning Course. It covers mostly Supervised and Unsupervised Learning. It was designed to work with their RL course.
i have a sufficient experience with Microsoft SQL, working with scripts and queries managing my work database. I've always wanted to get into coding, just been scared I may not be smart enough to understand...
That x=3, y=4 now x=y exercise is the kind of thing that gets me curios. Reminds me of our teachers back in school explaining a concept. It felt soo good, intimate and engaging. Where can I get that now? Besides school ofc, I'm working now, can't afford to go to school anymore. Name me a book, online course or and app I can learn stuff like this from. Would much appreciate it.
I started with 6502 assembly as my first language.... I feel I have a much closer understanding to memory than if I started with higher level languages.
In case anyone else sees this... when I learnt programming I was like the little girl wanting to make a rhythm game off the bat. And it did end badly but everytime it failed I tried again, each time learning more and more until I had succeeded and as a result I exceeded my class by 3 years in a matter of months. Learning the building blocks are obviously important but so is constantly challenging yourself repetitively
I found Python as a first language to be easier than others. Its a compiled language and you can troubleshoot your errors in your code because it will tell you for the most part why its not working, whereas Javascript you can look for hours for a double space you had instead of a singlespace that made the whole code or game not work at all. Python for me was the easiest and the funner language to learn.
@@alivepenmods "It's compiled because there's something called a Python compiler!!!" Except the x86/ARM/PowerPC/other microprocessor on which you want to run the program doesn't understand Python bytecode--you still need to have a Python interpreter installed to interpret the so-called "compiled" bytecode or use something like Cython to translate the script into a programming language that then is actually compiled.
Im a computer programming student. My advice would be to start of with C procedural programming then move to C++ and learn Object Oriented programming. C++ is a low level language which makes it more difficult to learn but once you have a good understanding of C you can tackle C++. But eventually you’ll pick up Python if you haven’t already and it’s much more easier to read and let’s you do a lot of different things.
I wish the computer science people used a different symbol for assignment other than the = sign.... Pascal used := I would have appreciated something like
For anyone watching this now that wants to learn programming I would suggest 2 main paths. 1. If you don't plan on going to university or are not extremely dedicated I would start with python to get out fast code and understand the basics of actual programming. Once you have that down go to C++ and understand what the code is doing on a memory level. From there you can go to a lower level language if you really want to understand what the computer is doing vs the code. 2. If you are going to university a lot of the time you will start with C++, it is going to be very difficult for your 1st year and a half. This is because they are expecting you to keep going and eventually tie in what the code is actually doing as you are there for 2-3 years. Learning this way will make sure you don't learn as many bad habits as things just won't work a lot of the time though there are exceptions. Without sinking in a ton of time this method really isn't the best to keep someone's interest but universities expects you to be tied to the program and only the dedicated will get through. It is normal to not know what is happening when learning this way for quite a bit. You don't know what you don't know, so you don't have the words for the questions you need to ask. I personally think that intro to programming should be two courses so they have time to give some basic knowledge of what libraries are and some basic container structures like stacks, I mean we learned a little about them but not quite enough in the early stages. Thinking about it.. maybe we should have learned assembly before we touched a high level language.
I dont go to university. Im a completely begginer and i started java 1 week ago. Why nobody in comments section is talking about java? Is bad language? I start programming so i can find a job. I searched what is a good programming language and the answers was, everyone is good, so im a bit confused.
@@f_society9151 Java is a perfectly fine language to learn. Android development for example is done in java (or kotlin). It is similar to c++ with some extra ease of use features such as garbage collection. You hear more about C++ to learn because it doesn't do features like garbage collection for you so you have to learn what is actually happening at a memory level as opposed to java just doing it without you having to worry about over writing memory or going out of bounds when indexing.
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!
Hey can you share what all projects you build when u were learning ?
I'm doing small cli stuff but I'm not able to build big projects and microservices. Also haven't studied front end yet.
Hi Daniel, you will be certainly my inspiration in this case.. I m 39 now.. And started learning python... Previously I worked for non Software jobs.. But i want to make transition into IT industry now.. It feels motivated when I see someone has already gone through similar path
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.
Same as me. Started with C++, but Python is way easier to build stuff with, like little applications and data science.
Should learn C before Python so you can grasp data types...and Python is written in C
What project do you make though whats a small project whats in your head vs someone who is new is probably not even close.
@@dantedt3931 nice ithink thats more useful than anything you could be taught it gives you a goal lol.
thanks for the advice
Start small but have something specific you want to build.
This is a better advice imo
Why the programming languages are still not self-aware in the 21-st century !
That should really trouble you all.
Exactly this!
I want to build a Neuralink device.
I have been working with Assembly and C/C++
To build what? Examples please
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.
Do you recommend Java as a first language ?
@@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.
yeh i think these programming languages are like human languages. if you get used to a simpler syntax programming language, i guess that would make it easier to focus on the gist of programming and coding. then applying that language sense to other languages is easier because the logic is pretty much the same, its just different syntax, different rules and grammar and what not
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.
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.
It's both equality and assignment in mathematics. Programming languages need two representations because computers are stupid.
@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.
this is groundbreaking for me. thank you.
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.
@@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?
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."
🤣🤣🤣🤣
That shit had me cracking up dude
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
@@davidcalderon2161 😂😂 it seems that way, but if you stick around a bit, after some time it’d just click.
😂😂😂😂😂😂😂
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.
goal + community
C#
Trying to learn python but it’s rough. Lol.
@@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
@@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.
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.
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.
@@islomtuyjonov6952 Keep going! You will learn it :)
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?
@@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.
@@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.
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.
Thank you for this. I thought I was correct in my thinking but you finished the loop for me, haha.
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.
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.
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
Thank you. I love how they never answered it in the video lol
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.
Ditto
Sitting with uncertainty is very hard to master. It takes a lot of mental fortitude and patience.
Can we see the card game and which card game is it similar to?
"sit in uncertainty for long periods of time" - excellent concept and quote and transfers to a lot of other life domains.
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.
Check the Odin project, its well structured
What's your marketing job like? What are some typical daily tasks?
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.?
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
One person's confusion is another's puzzle to solve.
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.
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.
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 🤯
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.
Helped a lot when we were made to write java and check out the resulting byte code to figure out what was happening
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
Coal miners are gonna love this video.
Stop.
🤣🤣🤣🤣🤣🤣👍
@@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.
@@methylphosphatePOET I bet you’re fun at parties.
@@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.
Seeing Lex focus so hard on the question, expecting something really difficult, is gold.
I'm still not convinced he knew the answer was y = 3 and not y = 7 tbh
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.
It’s fun to think back at your mindset from 101 classes till present. Honestly trippy to see the growth so clearly
I didn’t see the big picture until i took OS. Probably the most fundamental/important class to take imo
Why the programming languages are still not self-aware in the 21-st century !
That should really trouble you all.
@Piga
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.)
It's called AI. It's potentially very dangerous.
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.
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..
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.
How did u start
How did u start
You got a job already?
@@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.
@@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.
Charles Isbell walks a fine line between condescending and humble. idk thats just the vibe I get from listening to him speak
I found him condescending and annoying.
@@mulatto401 hes giving real answers though
@@morlyfe He is giving his opinion, not answers.
Haha very generously put. I wouldn’t be so generous...
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.
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.
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.
keep going :)
Best of luck man
This was so good, I don't even know how good it was.
x = this was good
y = not sure if this was good
You and I = x + y
@@Woji52 Haha
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.
Good luck Doggy!
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.
How long ago did you start?
@@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.
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.
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.
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.
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.
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
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
This man and Paul Graham have absolutely convinced me to learn lisp
I thought he said list and I searched for that. I'm 57--should I be thinking about programming at all?
Lisp blows. Compete waste of time in 2021.
@@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.
@@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 !
@@youtubesuresuckscock rather...?
Morpheus started programming when he retired from Matrix
😂
Seashells by the seashoreus
🤣😂
He helps the aliens with bugs from time to time
He has been programming since he was born...
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
Lex please talk more about this void feeling, I bet we all can relate to that when it comes to programming
Hey, what do you mean? I’m just getting into programming. So I don’t know what you’re referring too. Can you explain what you mean about this void feeling? Thanks
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.
Bright friends can teach you better than teachers of harvard or oxford.
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.
@@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...
@@wagutoxD You'll get there. It takes time and then one day it just clicks!
@@bird6472 that's excellent advice
Start with solving a problem where coding matters, you can do it at work, and get paid for it - Vis Basic in Excel
- Week 1: Doodle with the mouse recording macros
- Week 2: Type out the code and debug the subsequent mess
- Week 3: All of a sudden people start coming to you with problems thinking you're the office whiz
If you get addicted to problem solving natural curiosity takes over. You don't need to be good at coding, you just need to be bad at giving up - best advice I ever got
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?
So important and true what lex said that when you are learning programming you have to be ok being confused for a while
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
@@ajmalzahir3088 Sometimes the libraries jusst straight tells you to git gud at C/C++ first before using it.
It's been 6months and I'm still confused
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.
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.
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
“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.
This episode is incredible. Love the third mind sanity check
00:6:09 breaking it down to its primitives, very interesting and useful take on programming
First principles thinking
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.
good comment
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.
Same situation here; love the language, but man it makes you miss out on SO MUCH.
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.
I know how to write Hello World!
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
@@digitalhippie2336 “the universe is not obligated to make sense” -NDT
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.
print(“Me too, but not much more than that lol.”)
@@freedomgoddess it’s printf not print in c
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.
It’s all ones and zeroes???
ALWAYS HAS BEEN
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.
@@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.
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.
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.
How long does it take to become a frint end web developer learning javascript?
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)
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.
I think dig this more than JRE
Of course, because Java sucks.
☕
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.
@@worldeconomicforum7210 Lex also talks about DMT?
He's the hero we need but don't deserve.
Everything you need to know is online or on UA-cam for free. C, Python, Docker, Linux, Excel and so on all you've got to do is take the time to learn it.
"Python is basically lisp but with better syntax"
"...blasphemy" xD
I hate programming so much, but I have great respect for programmers who've built the technologies of today's modern world that we can't live without.
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.
Python reads and writes how you think. It is so fast and comfortable. For a new beginner: just write out all of the things you want a program to do. KEEP IT BASIC. Then slowly google how to write those statements out: If X is greater than Y, then Z is equal to X plus 2.
Thought I had no idea what I was doin but I guess I have a pretty good understanding and should get back to learning
"I want to learn programming, what language should I start with?", the answer should almost always be Python.
• Python is like trying to learn how to drive automatic. You'll learn how to drive. You'll learn it fast and you'll be able to do it well.
• Java is learning to drive a stick shift. Java is the best balance of learning how to program as well as learning how programs work.
• C++ is like trying to learn to drive by learning how to manufacture, assemble, and then use a car.
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.
True
advice for learning java? how do I even start actually making code
@@00juniorxL7 my advice is not to ask random people in youtube comments.
@@00juniorxL7 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
@@00juniorxL7 look up alex lee on youtube thank me later 🤟🏾
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.
@Hitchcock Mason yes, but your brain needs to be mathematically oriented.
@Hitchcock Mason give it a shot, it's kinda cool
@Hitchcock Mason 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!
@@aufkeinsten7883Im taking my time in learning python and Im enjoying it and I don't even what I really want to use it for yet. I just enjoy to write and learn from my mistakes or when I get stucked.
Commenting so the UA-cam algorithm suggest more videos like this for me.
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!
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?
@@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.
@@FrankPapadakis but I think if you get a entry level job you would get to that types of offer much faster
@@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.
@@FrankPapadakis I understand, may I know how many hours daily you studied?
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
First two lines should be shouted from the mountain tops.
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.
"It turns out their misunderstanding wasn't being revealed to them by the problem sets we were giving them.." yes,very profound
I learned Microchip assembly (MPASM) first. I still use it and love it.
@@TimoNoko Never heard of Cosmac, and from your description, I'm thankful, lol!
AHHAHA "Stare into the void with tears slowly rolling down your face". Lex is such a gem.
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
MOST BENEFICIAL, MOST NEEDED TIPS &ADVICE EVER FOUND ON UA-cam.
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.
try draw to code for front end
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.
Soooooo happy, as a beginner I understood all of that!!
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
On one hand, I agree with the notion that entry language choice isn't too important. With today's tech, hardware is virtually not an object. But I still find that the best code is written by developers who understand what's being done to the metal. So sure; if you want to learn programming, pick a language which best facilitates your desired path. But if you want to be a GREAT developer, start with something lower level and build from there.
We start from assembly and work up through c to c# and c++ in my college course, it's been a great benefit
@@glorgau Exactly! And with that, you understand the "wrapper magic" that takes place in higher level languages when using types like int64, bigint, longint, etc...
Needs more grunting.
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!
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.
Start small is great advice, and you might be surprised just how small you've got to go to begin with
I have been learning c # for the past few months. Its going alright I know more then when I Started.
Great for ETL, visual studio has an SSIS template.
How complex is it? I’m a video editor and want to try my luck at coding, but idk how hard it will be.
@@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.
@@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.
@@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.
I started learning programming before I can read English properly. It took me 8 years to understand memory management and pointers.
Wtf, 8 years?
@@brigittetitte4415 Yeah, I am dumb.
No dont get me wrong, im just wondering how difficult these topics are lol
@@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
@@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.
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.
So true bro.
I could listen to this guy talk for hours.
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
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.
2 weeks here...lol I didn't realize how feable minded I was before starting this journey
@@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.
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?
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.
I only got to learn python for 4 months and then I give up lol.
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!
How do I become a recruiter?
My recommendation is, start with a language that has a mature unit testing framework. Right from the get go, writing unit tests to test your own code will give you insight into how it behaves. Python and Java both have great unit test frameworks. When you get into writing larger programs, writing parts of your code so that they are easily unit testable will automatically lead to better composition and decoupling of code.
Hard no. I'm almost offended xD
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.
When are we leaving to K-PAX ?
Staring into the void has been me and still is me. Very good point made by Lex
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.
Choose a language that is in demand by industry. A good developer knows many languages to solve real world problems. Aim to be a developer i.e. ability to program in multiple languages.
Pascal was one language I studied 30 plus years ago. Now, trying to learn C# with Unity.
Yes, “Start small” yet many universities continue to teach CS101 using C++ ; my university over 10 years is still teaching the same way , same teacher, C++ 😂 , which by the way I learned later on is one of the most complex programming languages ever 😅
C++ is great for understanding exactly what they first talked about with memory
Ay for real...why is C++ a beginner language?
That's the correct way for computer science and for people who want to be the best programmer they can be. Learning the fundamentals in C ingrains the ethos of efficiency that is at the core of the whole shebang. For people who just want to add a tool to their box then python is the right choice. You will never appreciate its power though without having learned what's under the hood with C.
why institutions arent more strict as to who should teach really difficult modules is beyond me..yeh this mf has a phd but that dont mean he can get us to understand
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.
I remember these guys from Udacity's Reinforcement Learning course
You should check out their Machine Learning Course. It covers mostly Supervised and Unsupervised Learning. It was designed to work with their RL course.
i have a sufficient experience with Microsoft SQL, working with scripts and queries managing my work database. I've always wanted to get into coding, just been scared I may not be smart enough to understand...
print(“What’s up Lex!”)
That x=3, y=4 now x=y exercise is the kind of thing that gets me curios. Reminds me of our teachers back in school explaining a concept. It felt soo good, intimate and engaging.
Where can I get that now? Besides school ofc, I'm working now, can't afford to go to school anymore. Name me a book, online course or and app I can learn stuff like this from. Would much appreciate it.
I started with 6502 assembly as my first language.... I feel I have a much closer understanding to memory than if I started with higher level languages.
I program in 6502 assembly every month to stay sane from the modern over-engineer clustertruck of C++.
How do I start? I’m a finance major and I want to get into the finance side algorithm programming part !
Who knew that Marvelous Marvin Hagler knew so much about programming
Good eye! I knew that he looked somehow familiar
RIP Marvin Hagler 🪦
In case anyone else sees this... when I learnt programming I was like the little girl wanting to make a rhythm game off the bat. And it did end badly but everytime it failed I tried again, each time learning more and more until I had succeeded and as a result I exceeded my class by 3 years in a matter of months. Learning the building blocks are obviously important but so is constantly challenging yourself repetitively
I found Python as a first language to be easier than others. Its a compiled language and you can troubleshoot your errors in your code because it will tell you for the most part why its not working, whereas Javascript you can look for hours for a double space you had instead of a singlespace that made the whole code or game not work at all. Python for me was the easiest and the funner language to learn.
Python is an interpreted language.
It's compiled to bytecode for the VM at runtime.
Because you don't compile it manually before running it manualy doesn't mean there is no compiler.
@@alivepenmods "It's compiled because there's something called a Python compiler!!!" Except the x86/ARM/PowerPC/other microprocessor on which you want to run the program doesn't understand Python bytecode--you still need to have a Python interpreter installed to interpret the so-called "compiled" bytecode or use something like Cython to translate the script into a programming language that then is actually compiled.
Im a computer programming student. My advice would be to start of with C procedural programming then move to C++ and learn Object Oriented programming. C++ is a low level language which makes it more difficult to learn but once you have a good understanding of C you can tackle C++. But eventually you’ll pick up Python if you haven’t already and it’s much more easier to read and let’s you do a lot of different things.
Bro wtf you described my route😂 we twins
Assignment in programming is not the same as mathematical equivalency
That Fucked me up for years
I wish the computer science people used a different symbol for assignment other than the = sign.... Pascal used :=
I would have appreciated something like
@@ChrisAthanas If you look at the documentation for any language your using it will tell you these things. You had this misconception for years?
There werent many docs back on 1978 for a kid like me
@@ChrisAthanas This came with your c64.
www.commodore.ca/manuals/c64_users_guide/c64-users_guide-03-beginning_basic_programming.pdf
page 35
@@SufferDYT yea but my math teacher couldn’t explain this
For anyone watching this now that wants to learn programming I would suggest 2 main paths.
1. If you don't plan on going to university or are not extremely dedicated I would start with python to get out fast code and understand the basics of actual programming. Once you have that down go to C++ and understand what the code is doing on a memory level. From there you can go to a lower level language if you really want to understand what the computer is doing vs the code.
2. If you are going to university a lot of the time you will start with C++, it is going to be very difficult for your 1st year and a half. This is because they are expecting you to keep going and eventually tie in what the code is actually doing as you are there for 2-3 years. Learning this way will make sure you don't learn as many bad habits as things just won't work a lot of the time though there are exceptions. Without sinking in a ton of time this method really isn't the best to keep someone's interest but universities expects you to be tied to the program and only the dedicated will get through. It is normal to not know what is happening when learning this way for quite a bit. You don't know what you don't know, so you don't have the words for the questions you need to ask. I personally think that intro to programming should be two courses so they have time to give some basic knowledge of what libraries are and some basic container structures like stacks, I mean we learned a little about them but not quite enough in the early stages. Thinking about it.. maybe we should have learned assembly before we touched a high level language.
I dont go to university. Im a completely begginer and i started java 1 week ago. Why nobody in comments section is talking about java? Is bad language? I start programming so i can find a job. I searched what is a good programming language and the answers was, everyone is good, so im a bit confused.
@@f_society9151 Java is a perfectly fine language to learn. Android development for example is done in java (or kotlin). It is similar to c++ with some extra ease of use features such as garbage collection. You hear more about C++ to learn because it doesn't do features like garbage collection for you so you have to learn what is actually happening at a memory level as opposed to java just doing it without you having to worry about over writing memory or going out of bounds when indexing.
"there's only one language and it's LISP."
Alright, what does the other guy have to say?
Theriouthly?
Well, it's getting harder to find a worthwhile programming language that doesn't have Lisp nature these days.