How To Learn A New Programming Language

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 พ.ย. 2024

ความคิดเห็น • 316

  • @silviogames
    @silviogames ปีที่แล้ว +1289

    I learned cobol, but in sign language. I code with my webcam.

    • @ronakmehta8106
      @ronakmehta8106 ปีที่แล้ว +11

      I don't get it..

    • @junaidshaikh2265
      @junaidshaikh2265 ปีที่แล้ว +94

      @@ronakmehta8106 he learned cobol in sign language ( not in text format as we do )
      so in order to write some code, he will have to use his webcam to express his sign ( using hand ) and .. you know

    • @DaviAreias
      @DaviAreias ปีที่แล้ว +102

      But the important question is do you use vim?

    • @apolloapostolos5127
      @apolloapostolos5127 ปีที่แล้ว +8

      I love this comment.

    • @crescenttv5918
      @crescenttv5918 ปีที่แล้ว +2

      Does cobol has any demand now??

  • @meltygear5955
    @meltygear5955 ปีที่แล้ว +923

    Yep. I learn with my hands. But beginners like myself think "oh so I'll just watch 40+ hours of a Udemy course and type along".
    Pros: The code works as intended.
    Cons: The code works as intended.

    • @ThePrimeagen
      @ThePrimeagen  ปีที่แล้ว +239

      Such facts

    • @isodoubIet
      @isodoubIet ปีที่แล้ว +149

      Average data science tutorial:
      Step 1: download jupyter notebook
      Step 2: press shift+enter on every cell
      Step 3: you now know data science

    • @dadqqader
      @dadqqader ปีที่แล้ว +27

      @@isodoubIet from my experience. Average data science course feel like they didn't design for average Joe looking to get into data science. But for statistician/analyst looking to become data scientist.
      I guess that's the unintended side effect of having a topic that can't be actively learn like coding project. And can be incredibly boring subject to teach. yet nessecary to learn. (Ya know, fucking statistics.) Thus you need a way to engage the audience and ended up teach them nothing about actual data science and everything about jupyter and python.

    • @isodoubIet
      @isodoubIet ปีที่แล้ว +17

      @@dadqqader My (very much anecdotal) experience is that most people hired as data scientists are phds in technical fields that moved away from academia, which means they're usually competent amateurs but not experts at statistics. Even then they'll probably not be aware of the breadth of models that are regularly used in machine learning, so they'll be doing these courses and tutorials to get up to speed on much of that as well as jupyter and python.
      I think the problem is more that these courses want good completion metrics (lots of people complete our course so it's good right?) and jupyter in particular encourages that sort of laziness.

    • @PhilipAlexanderHassialis
      @PhilipAlexanderHassialis ปีที่แล้ว +10

      I hear you but you can consider Udemy course projects your "hello world" projects. Depending on course and instructor, you can get a semi-decent-ish base from where you can start to do permutations and changes and experiments without leaving an already familiar basis. When you feel confident enough, sure, throw off the training wheels. It's NOT a bad approach and works well enough for lots of people.

  • @aarona3144
    @aarona3144 ปีที่แล้ว +242

    When I learn a new language, I like to write a sudoku solver. Allows you to learn how to work with arrays/hashes and loops/iterators. An interpreter seems like a pretty good idea as well.

    • @samdcbu
      @samdcbu ปีที่แล้ว +42

      +1 for sudoku solver. a fun counterpart to a sudoku solver is a sudoku puzzle generator. the process of creating valid sudoku puzzles that are still solvable is non-obvious but still a toy task. Then, if you want to learn file I/O in a new language you can have the sudoku solver generate a puzzle and save it as JSON to a file and then have the solver read the puzzle from the file

    • @aarona3144
      @aarona3144 ปีที่แล้ว +6

      @@samdcbu Good idea :)

    • @josephp.3341
      @josephp.3341 ปีที่แล้ว +18

      Great idea! Here are some that I used to learn languages in the past. Simple file compression/archival tool (teaches you file IO, arrays/hashes, and linked data structures). Web socket chat server (teaches you concurrency, web libraries, and networking). 8puzzle solver (algorithm optimization, memory management, arrays/hashes, linked data structures). Board game engine for a simple game like othello or connect4 (algorithm optimization, memory management, arrays/hashes, linked data structures).
      I used the 1st, 3rd, and 4th to learn Rust. The 4th to learn Kotlin (the rust version was an optimized rewrite of thist). And the 3rd to brush up dusty C skills.

    • @aarona3144
      @aarona3144 ปีที่แล้ว +4

      @@josephp.3341 nice!

    • @mysterious_commenter3285
      @mysterious_commenter3285 ปีที่แล้ว +2

      @@josephp.3341 As someone who just starts learning, thanks for your sharing! You shared experience can go a long way in helping other newbies :)

  • @Impatient_Ape
    @Impatient_Ape ปีที่แล้ว +175

    YES Projects!!! Always do projects when learning *anything* new. Just reading books/docs or watching videos doesn't offer you the opportunity to screw up, and mistakes help you re-assess what you thought you knew.

  • @draakisback
    @draakisback ปีที่แล้ว +14

    I used to build simple projects and do kata to learn languages but these days I don't have to do that anymore. If I want to learn a new language unless it's in a completely new paradigm that I've never used before, I can just read the description of all of the features, read about the syntax, read about the tooling and then start working. I suppose it helps to have a solid foundation in category theory, type theory, set theory, bolean algebra etc and to have experience working with all of the major programming paradigms. I used to be a contractor in consultant and I did that for about 20 years; during that time I was able to touch on so many different domains in programming and as a result learn so many different languages. I've done everything from video games, data science, machine learning, cryptography, webdev, fault tolerant systems, period-to-peer, embedded systems, cloud infrastructure, meta systems, writing compilers, desktop, mobile, database, scripting, reverse engineering, OS and kernels etc etc. As a result I'm certainly a jack of all trades, master of none and likely the most difficult part of learning a new languages just learning the idioms and best practices.
    One of the most difficult languages for me to learn was javascript and it's because I already had a solid foundation in many other languages. JavaScript has object oriented programming but it's based on prototypes which is not something you see very often, it was my first exposure to that kind of prototyping system. And while technically Ruby, common lisp, Lua, maple and rebol also have prototype-based programming, they are not on the same level as JavaScript.
    Also, my go to first program for any language used to be snake. It forces you to work with loops, collections, IO, simple graphics, control flow, complex data structure, etc.

  • @ArachnidAbby
    @ArachnidAbby ปีที่แล้ว +17

    That last subscribing step is crucial. Dont skip it or you wont truly understand the language

  • @blackfrog1534
    @blackfrog1534 ปีที่แล้ว +63

    didn't even watch it yet, just know it slaps, liked right away \m/
    btw prime, i got promoted to senior engineer and a lot of that is because of your content, you reignited the passion in me which made me improve a lot in a short period of time, so thank you so much prime

    • @YasserS19
      @YasserS19 ปีที่แล้ว +3

      lets fucking goooooooooooooo!!

  • @seiIaeu
    @seiIaeu ปีที่แล้ว +10

    Very nice recommendations. I have been struggling to find some examples to practice a new languages, this is going to be helpful.

  • @Gigusx
    @Gigusx ปีที่แล้ว +14

    I'd always learn new tech through building projects (and strongly believe that's the best way to do it), but I haven't though of having a set of projects I do every single time that cover multiple areas in this way. That's a great idea!

    • @rsflipflopsn
      @rsflipflopsn ปีที่แล้ว +1

      Think about a C2 Server and Client, the server combines a lot of areas like: Datastructures (e.g. Maps), Threads, Queues, Sockets (or networking in general), crypto (for learning usage of libs or implement the algorithms yourself to fresh up your knowledge :D), I/O and other important concepts!

    • @Gigusx
      @Gigusx ปีที่แล้ว +1

      @@rsflipflopsn Yep, definitely gives me some ideas! Could make a directory of (interesting) different projects and give them categories corresponding to what they'd teach me. Then, whenever I need to learn let's say a new language, I'd just pick from there :D

  • @Luther_Luffeigh
    @Luther_Luffeigh ปีที่แล้ว +3

    I hope you prevail in your battle with mental health and come back stronger for all your fans who rooting for you…hang in there…you got this 💪💕🚀

  • @osamaaj
    @osamaaj ปีที่แล้ว +4

    I have a similar approach, this video makes it clearer and easier to follow, so thanks! One thing I still struggle with, though, is coming up with ideas for meaningful projects

  • @cariyaputta
    @cariyaputta ปีที่แล้ว +4

    about the projects, I always start with a simple rest api, then try to slowly incorporate testing, coverage, db migration, logging, config, auth middleware, etc. into it. then come the good old chat app. and finally a full fledged commerce/banking backend, with gprc, tracing, etc.

  • @AndrewErwin73
    @AndrewErwin73 ปีที่แล้ว +64

    I have touched close to 100 different languages over the past 20+ years. Once I figured out that software engineering has nothing to do with any specific language, new languages just quit being a problem to me. Software engineering is about problem solving. If you can solve the problem, it is pretty likely that someone else has already written the code to implement that particular solution. I have also at times found it helpful to start by coding a block in a language I am comfortable with and then translating it piece by piece. But generally I start with pseudocode and then read the documentation for the code I need to end up in looking for examples of the functions I need. Mastering a specific language is fine, but I really love the problem solving aspect of engineering.

    • @Stefan-eg9uw
      @Stefan-eg9uw ปีที่แล้ว +8

      I totally agree. I feel like sometimes people get so obsessed over the programming language instead of solving the actual problem. We should focus more on the problem solving part instead of debating which programming language is better.

    • @ashvinnihalani8821
      @ashvinnihalani8821 ปีที่แล้ว +3

      Maybe, I used to agree full with this idea and it’s certainly true to an extent.. However if you are really good at a language, then you start to use language specific features that improve the overall application. It’s definitely a choice that doesn’t matter in 90% of cases and most languages can achieve 90% parity with each other. However when you are trying to each out the last bit of performance or trying to build a complex application from scratch, it matters allot.

    • @AndrewErwin73
      @AndrewErwin73 ปีที่แล้ว +1

      @@ashvinnihalani8821 yeah there is definitely truth to that. Languages are tools, and just like any other tool, you should know how to use it well.

  • @HONjramiroz98
    @HONjramiroz98 11 หลายเดือนก่อน +1

    Learning go and rust! Glad I already started day one of advent of code with go before watching this video! Awesome content man! Thanks!!!

  • @fedeanastasis7040
    @fedeanastasis7040 ปีที่แล้ว +2

    Currently i have to learn Scala and I'm really excited because i dipped a bit into FP and now i can use it in work for real

  • @suvraneelsaha7857
    @suvraneelsaha7857 ปีที่แล้ว

    for someone who is a beginner in coding / programming , follow the pareto principle
    Learn the most important things in the programming language which makes up the 80% of the whole language and which can be done by knowing just the 20 % of things
    These 20% of things are :
    1] data types
    2] if
    3] if else
    4] else if
    5] for loop
    6] while
    7] do while loop
    8] Functions
    9] Recursion
    10] Polymorphism
    11] Abstraction
    12] Inheritance
    13] Encapsulation
    And you are done learning 80% of the things . Now you can go built projects so that we you will do that , you will learn so many things and also the previous learning will be solidified ,
    Happy coding

  • @p5ycon
    @p5ycon ปีที่แล้ว

    Great advice, I've been struggling to learn Python for 3 years but after hitting the like and subscribe buttons I've locked an AI into a chatroom and now I feel like the god of Python

  • @rsflipflopsn
    @rsflipflopsn ปีที่แล้ว +1

    Really appreciate this video and feel very confirmed with your hands-on approach.
    Personally I really like to implement a C2 (Command and Control) Server/Client when I am learning a new language because it this type of project really suits my personal interest of security.
    Why does a C2 infrastructure helps with learning a new language (in my case)?
    In a C2 we have to combine a lot of concepts (Crypto, Networking, maybe caching, Datastrucures (like maps etc.) for storing session information ...) to actually implement to get a stable C2 running.
    Generally speaking I would recommend picking a suitable project which combines these concepts, or picking projects (like you've mentioned in your video with a websocket bases chat) to train the syntax of new languages and maybe you'll encounter granularities of the language in order to progress in it.
    Thank you again for the video, finally I can send it to some friends who are struggling with approaching new languages!
    EDIT:
    As I've continued your video you've started with lexing etc. Funnily I am pimping up my C++ and I actually implement my own language with C++ & LLVM in order to practice language design and C++ basics, what a coincidence :D

  • @saultube44
    @saultube44 ปีที่แล้ว

    Thx for the perspective dude, as a newbie programmer wannabe it tells me where to go

  • @johannesgreiner2690
    @johannesgreiner2690 5 หลายเดือนก่อน

    Since retiring, I have ample time to learn new programming languages. What works best for me is alternating between two languages every day. I find it effective to select one language that introduces new concepts or paradigms and another that uses a paradigm I'm already familiar with. I have chosen Erlang to explore concepts (FP) I did not know before, and Rust to reinforce concepts I knew from my professional career. This approach to learning has proven very effective for me.

  • @rampage_sl
    @rampage_sl ปีที่แล้ว +7

    Currently following this approach to learn C# (coming from JS) and I can say that it *really* works in the way he describes. 10/10 would recommend to programmers who are intermediate level or above.

  • @ErazerPT
    @ErazerPT ปีที่แล้ว

    Second that. As a trainer, while i always go through the route of datatypes>flow control>cycles>methods/function/etc as usual with small "projects" at each step, then i thrown them at "small but real" stuff, then "not so small and real" and end it with "whatever you want to do (as long as it's sane), push your limits". Tends to work well with trainees if you keep pushing the curve slow and steady. Anyone familiar with the learning pyramid understands the concept. Passive learning is mostly useful if you're already familiar with the subject, as it then becomes as "internal monologue" between the new data and your system of beliefs.

  • @lolesp1084
    @lolesp1084 ปีที่แล้ว

    Good man, Thank you for creating the KATA MACHINE...can't wait to get to a thousand Algorithms, I've been on it almost a month now.

  • @Geoffreygane
    @Geoffreygane 9 หลายเดือนก่อน

    damn I came because I saw an Elixir lexer function in the thumbnail video and I was currently building one in Elixir for learning purpose. Turns out I have been fooled. Great pieces of advice anyway as usual !

  • @pif5023
    @pif5023 ปีที่แล้ว +1

    Thank you! Nice video!! Needed this

  •  ปีที่แล้ว

    I do mostly the same. I have a few small projects I try to reimplement in a new language, looking at docs as I go, and then build a proper project to get settled in.

  • @anton9410
    @anton9410 ปีที่แล้ว +3

    hey Prime, I am finishing up your algorithms course on frontend masters and wanted to give you some credit in my overall coding progress. Your passion is your biggest strength that rubs off on people, just like your smooth coconut oil vim skills ;). You are definitely making a positive impact on the community and I hope you stay this way, true to your core values, even though it can be tough on the internet.

  • @dmurvihill
    @dmurvihill 2 หลายเดือนก่อน

    1. Buy book
    2. mkdir
    3. Read book, copy example code

  • @SimGunther
    @SimGunther ปีที่แล้ว +9

    Alternative title: Advent of Code your way to a new programming language
    Also, that last step of "anchoring" from previous experiences and finding similarities + differences is a HUGE plus!

  • @goodthink_ing1
    @goodthink_ing1 4 หลายเดือนก่อน

    I reuse the same projects. Two actually. The Chalculator has been written in at last 4 langs: Forth, Smalltalk/Seaside (html web), Swift/iOS (in the app store!), and the fourth rewrite is in Javascript on the CroquetOS. Related to this video, the Forth (and first version) was written entirely on a Palm pilot X] while sitting poolside with my kid and at the ballgames. Sick!. The iOS version was written using a macincloud rented mac which you often accessed on my on mobile device with the remote desktop app while hanging out at the park. The other project is my friend's football pool. Delphi desktop, then Seaside web app. Great video Primeagen.

  • @whamer100
    @whamer100 ปีที่แล้ว

    i really need to pick up rust and zig for real, but i really struggle with coming up with ideas of what to make. I'll definitely be keeping this in mind

  • @abysmallytall
    @abysmallytall ปีที่แล้ว +3

    Really solid advice. You won't really know how you feel about a language until you build something reasonably substantial. Too many intro level style blog posts simply don't go deep enough.

  • @swk9015
    @swk9015 หลายเดือนก่อน

    1. read doc
    2. build project
    ex. interpreter, web socket, http server

  • @NeilMartin98
    @NeilMartin98 ปีที่แล้ว

    Your stuff is a breath of fresh air.

  • @elzabethtatcher9570
    @elzabethtatcher9570 ปีที่แล้ว

    Big doubt about "expert html programmer" when Prime tried to nest 's.

  • @CS-Systems
    @CS-Systems ปีที่แล้ว +1

    Something complicated is also the paradigm that you have to learn :D

  • @anonlegion9096
    @anonlegion9096 ปีที่แล้ว +2

    0:05 into the video already controversial
    p.s. I just want you to know you are an inspiration, Im 5 years 1 month 1 week 2 days it does get better

  • @kengreeff
    @kengreeff ปีที่แล้ว +1

    Nothing better than building a project with real world problems ❤

  • @amicableami87
    @amicableami87 ปีที่แล้ว +1

    Video's like this make me question whether or not i'm built for development. I love solving problems, I love learning how things work. But i'm bad at remembering 10 different languages and how everything works inside each of them, and retaining that information.

    • @amicableami87
      @amicableami87 ปีที่แล้ว +1

      And I say this after developing for 10+ years...

  • @Innengelaender
    @Innengelaender ปีที่แล้ว

    Advent of Code is how I learnt that I don't like Rust as much as I thought I would reading the first couple pages of the Rust book.

  • @ArtemSuchov
    @ArtemSuchov ปีที่แล้ว

    This is amazing video.
    Thank you for sharing TheGoodMangen

  • @nerdycatgamer
    @nerdycatgamer ปีที่แล้ว

    hi mr primagen (no e) i am going into 2nd year comp sci in september. in first year my university teaches java (they have been doing that since java's advent. before that it was fortran) and 2nd year i am taking courses in C and assembly. i think after that i am going to teach myself Rust because of your videos. it seems really cool!!

  • @SVGc1993
    @SVGc1993 ปีที่แล้ว +5

    I wish you did a 200 episode series to teach how to code. In the first episode, you should go for a walk and just talk about what can be achieved that can be transformed into something somebody can touch. I believe that to really move somebody's interest towards coding, one should not start from scratch (as reading/writting to filesystem, memory allocation, stream objects...) but into things that are more common and palpable. At least that helps the motivation.

  • @HantonSacu
    @HantonSacu ปีที่แล้ว +14

    you used elixir in thumbnail yet you didn't mention it 🥺

  • @ゾカリクゾ
    @ゾカリクゾ ปีที่แล้ว +26

    make cobol great again

  • @HellCat46
    @HellCat46 ปีที่แล้ว

    Well,
    that's great timing. I was reading through the rust documentation from the last two days like an idiot.
    Thanks for the great video. I'm going to start making programs and reading documentation according to them instead of reading everything in one go.

    • @max_masterius
      @max_masterius 8 หลายเดือนก่อน +1

      I've just started with rust book. It's about theory and practice, I've already built simple calculator, guessing game. I follow solutions but do things differently like handle errors, extract functions, read additional params. Like for calc I started from argv, then switched to read from user, then started with main loop. I'm currently learning postfix and reverse polish to build more complex calculator. And I'm going to improve basic guess game to something more useful

  • @apefu
    @apefu ปีที่แล้ว

    Watching this makes me very excited for a potential OCaml attempt.

  • @NotHumanPerson
    @NotHumanPerson ปีที่แล้ว +6

    3:30 me:programs in rust for a year
    Looks at web sockets
    Sounds hard
    Uses nats

  • @aCrumbled
    @aCrumbled ปีที่แล้ว +4

    again when the ceo posts a video i must pre-like before i hit play. Seriously though Prime you've become my favorite youtuber/streamer and biggest inspiration over the past few months, thank you for being an amazing role model

  • @Kane0123
    @Kane0123 ปีที่แล้ว +21

    Step 1: Sign up for Chatgippity
    Step 2: Profit.

    • @DeathBean89
      @DeathBean89 ปีที่แล้ว +9

      Step 3: Cry when you get code that's broken in a very subtle way and you don't understand enough to be able to fix it

  • @chrissaltmarsh6777
    @chrissaltmarsh6777 ปีที่แล้ว +1

    I have a zeroth step. It is ICUTS. I can't understand this s...tuff. Mind you, I've done this over 50 years now, and each time there is the start where I despair. Usually lasts a couple or three days.
    Good advice there.

  • @Action2me
    @Action2me ปีที่แล้ว +16

    Would be great if you made a video for learning your first language. I get a lot of value out of your videos but I’m still struggling with anything more advanced than for loops.

    • @boiimcfacto2364
      @boiimcfacto2364 ปีที่แล้ว +5

      Bro what? If you're genuinely struggling with anything harder than for loops, maybe programming isn't your thing.

    • @ThePrimeagen
      @ThePrimeagen  ปีที่แล้ว +10

      This is why a live stream, I get a lot of that done live

    • @YasserS19
      @YasserS19 ปีที่แล้ว +3

      just keep trying, I got stuck a lot of times while learning to program. you'll get that aha moment

    • @WiZaRdNoOb101
      @WiZaRdNoOb101 ปีที่แล้ว +37

      @@boiimcfacto2364 This is a terrible take. So just because they’re genuinely struggling, they should give up altogether? Understanding takes time. Why kick someone mentally when they’re already down because they can’t understand a concept.

    • @boiimcfacto2364
      @boiimcfacto2364 ปีที่แล้ว +2

      @@WiZaRdNoOb101 He said he's watched a lot of his videos. After all that, and assuming he's spent longer than a week learning to code, it's really surprising he hasn't learnt anything more than for loops. I know it's not a popular opinion, but not everyone needs to or should learn to code. I'm just commenting on his seemingly lack of apitude towards programming, that's all.

  • @Mitch_Crane
    @Mitch_Crane ปีที่แล้ว +2

    When I learned Rust I just watched a lot of TV shows that were in that language

  • @enteleform
    @enteleform 9 หลายเดือนก่อน

    You mentioned in the beginning that this approach might not work well for vastly different paradigms (like Haskell). Please make a vid describing your approach to such languages!

  • @Yupppi
    @Yupppi 11 หลายเดือนก่อน

    Sounds like great guidelines. I think obviously more geared towards people who already know a language well and are somewhat advanced. For a beginner who can write programs in a language, but isn't a developer, advent of code is really tedious and frustrating. Because the problems are actually quite complicated to think and reason about from the beginning and require either some serious boiler plating or knowing some fancy methods. And given it's something you do on your free time, you might still hope to improve your programming problem solving skills with simpler problems and build up to advent of code. However once you are somewhat familiar with the ways you would solve the individual parts of the advent of code problem and you can distinguish the big picture's components, that's when advent of code becomes really nice. In my head that is.
    For a more beginner I think your advice still works great, just scaled down. Meaning if you decide to do a little practice project, or more like a small program, then improve the design and structure and methods used. Save that in your head, once you start a new language, implement the same simple program in that new language. Like my small, quick pet project was doing normal distribution from data and quality key number calculator first in main and have a welcome message box, restructure it to functions, extend it to user input, make it scalable for different data sizes, read the data from the file (user input for file name). Perhaps write results into a file too and exit from any key/exit input. That improved my understanding on the basics of the language: how it deals with strings, math, containers/data types, loops, references of different types and containers, user input, parsing or type conversions, I/O, including libraries, error handling. Things that would be useful for specifically my small programming needs and takes like an hour or two to implement.
    I think people like John Carmack have also been low key promoting the pet projects, like implementing quake in every new language.
    Drawing a parallel to let's say even university, you do get good education - teaching, materials, exercises - but the actual learning skills/methods/directions are still way too often not discussed or taught. Sure everyone is a bit different and prefers one way or another, but not THAT different, and it feels more like a cop out on "I don't know how to teach learning" to say that you should learn about yourself and develop your own methods. If you said that about math, nobody would learn math. It's a skill that can be learned and some people struggle with it more than the others and it would be prefectly reasonable to give them tools and support, it doesn't prevent them from starting to think, might actually improve their ability to think.

  • @romanext921
    @romanext921 ปีที่แล้ว

    I would recommend you give dart a try. It is surprisingly good when it comes to networking. Setting up a websocket connection is super easy. The shelf "framework" is most basic but maintained by Google and it has lots of flexibility

  • @thomasstaats3146
    @thomasstaats3146 ปีที่แล้ว +1

    @ThePrimeagan I finally know what happened to Dr Disrespect. Welcome back two time champion

  • @silverhairs
    @silverhairs ปีที่แล้ว +2

    Prime really remembered that his has a main youtube channel

  • @sebsplatter914
    @sebsplatter914 ปีที่แล้ว

    Nice! An interpreter is a damn good idea! What bigger projects would you/anyone here recommend? Cant always build a webserver, I need something new

    • @slendi9623
      @slendi9623 ปีที่แล้ว

      Make an interpreter and then make an x86 assembly generation backend.

  • @PGDJ88
    @PGDJ88 ปีที่แล้ว

    I pressed like and now I know Julia. Thanks Prime! I can finally put python behind me!

  • @DevoutJourney
    @DevoutJourney ปีที่แล้ว

    One day I’ll be able to understand most of what your saying. This is great thank you

  • @ironwelder480
    @ironwelder480 ปีที่แล้ว +1

    from one html expert to another. thx. I will learn css now. any guidance?

  • @DannyMexen9
    @DannyMexen9 ปีที่แล้ว

    Finally, share what you build (free or at a fee).

  • @asdqwe4427
    @asdqwe4427 ปีที่แล้ว +3

    You need to get some input from people who are good at the language too. If you don’t you’ll just end up using if statements and for loops regardless of language, unless it’s Haskell

  • @n0kodoko143
    @n0kodoko143 ปีที่แล้ว

    saved this one. Awesome stuff, as usual.

  • @pif5023
    @pif5023 ปีที่แล้ว

    Would be cool to have some video that goes into the nitty gritty of networking and protocols. The common material on this topic is very academic

  • @woosix7735
    @woosix7735 ปีที่แล้ว +1

    have fun with Ocaml :D

  • @Brodzik-kz8nt
    @Brodzik-kz8nt ปีที่แล้ว

    Advent of Code is great, started learning Golang and Rust during the events.

  • @dazecm
    @dazecm ปีที่แล้ว

    LOL at the soul-destroying, life-leeching work cubicle background 😂

  • @alextrollip7707
    @alextrollip7707 ปีที่แล้ว

    This is so wild.
    I always feel so unprepared on code.
    Im fairly good at fixing code, or adding festures to existing code.
    But i balk immediately on new code from scratch.
    Its such a hard mental block

  • @waytogo_roblox
    @waytogo_roblox ปีที่แล้ว +4

    STOP saying first now I'm first so stop saying it
    Stop spamming it

    • @ddotmars
      @ddotmars ปีที่แล้ว

      ​@Ahmed not cool bro. What the fudge! I'm the best roblox player in the world!! And I'm only 3 months old

  • @friendly__drone9352
    @friendly__drone9352 ปีที่แล้ว

    I love this kinda of content!

  • @davidkuda
    @davidkuda ปีที่แล้ว

    Hey ThePrimeagen, thanks for this video. I watched it when it came out, and I just came back to it to watch it again, because the idea of socket programming stuck with me. I have never done socket programming before, how can I learn it?

  • @TehKarmalizer
    @TehKarmalizer ปีที่แล้ว +1

    I have started AoC for the last few years, and I always get halfway before it starts feeling like a side job and quit doing it.

  • @darthcabs
    @darthcabs ปีที่แล้ว

    Wow. And I'm happy to do a CRUD in C# and thinking I know the language

  • @TheSoulCrisis
    @TheSoulCrisis 8 หลายเดือนก่อน

    There are two ways to learn a language.......build something in it and debug something in it!!! Mastering a language requires that you do BOTH!

  • @teklife2151
    @teklife2151 ปีที่แล้ว

    You are one cool dude Prime.

  • @kokoinmars
    @kokoinmars 6 หลายเดือนก่อน

    Elixir thumbnail. Nice.

  • @benheidemann3836
    @benheidemann3836 ปีที่แล้ว

    On the point of learn by doing… mostly I agree and that’s also how I do things.
    However, I found that with Rust, since it was quite unique, I was better off because I decided to read the book before writing any code.
    Maybe it’s just me, but that worked really well. The result was that I didn’t have much in the way of issues with the borrow checker, or lifetimes, or threads, or async or any of the things people usually struggle with in Rust. Of course, I won’t pretend that I didn’t need to reach out to the Rust discord a couple of times but overall, I’m pretty sure I would have struggled more had I “learned by doing” and felt a lot less fluid in the language.
    Again, this is very much the exception. Normally I would advocate for learning while doing, and I’m not even sure I would recommend my approach to learning Rust as I have no idea if it would work for others.
    If anyone else started learning Rust this way, I’d love to hear your thoughts on whether or not it was a good idea.

    • @conquerorofindia
      @conquerorofindia ปีที่แล้ว

      even me learning rust by reading book apart from than I just run the code given in the book to understand it and plays with the code .
      The book I am reading
      Beginning Rust: From Novice to Professional
      Book by Carlo Milanesi

  • @KMoscRD
    @KMoscRD ปีที่แล้ว

    @ThePrimeagen Thanks for tips. It's going to be benefitial during learn Typescript.
    I have this period right now that I'm coding 8-13h a day for my own purposes. Since December I'm not working, just climbing till may and since a may I'm coding those hours a day. What a beautiful period :D.
    I learned more in one month(approximately 250-300h) - coding+problem solving than for 1.5years as software dev. I understand the flow, I undestand barriers and I undestand what kind of work environment not to take. I want to be Great, not Average. Fuck being average, destiny is calling. I had so much fun coding.
    Thanks to that approach I undestood the flow, if my coding process is concious and if there is ego and when it happens while developing code and how can I use ego as tool to better myself. Fuck, I feel a bit exhausted yet I feel like I don't need gooddamn coffee, just cold shower a day and keep coding foward.

  • @codewithwings
    @codewithwings ปีที่แล้ว

    this is gold. Thank you

  • @devagr
    @devagr ปีที่แล้ว

    "Haskell is a completely different language than Javascript"
    Andre Staltz: "Hold my Cycle"

  • @AScribblingTurtle
    @AScribblingTurtle ปีที่แล้ว +3

    I'm kind of torn on this one. Jumping in and solving self chosen problems right away or building something you are familiar with is fun and a great motivational factor, I give you that.
    On the flip side, if the language is to different, from what we know, This can also lead to us taking away the wrong impression of the language.
    We may even think we have done something right because we get the correct result, but that result was achieved through a bunch of "Bad habits", that are ok/required in one language but lead to trouble down the line in the new Language. (Such is the curse of self-taught programmers I guess 😉)
    For example, I thought that Zig looked alien and strange from what I've seen but after going through Ziglings I must say the language is a lot closer to something like C, than it is to what I've seen of Rust so far.

  • @r1konTheAutomator
    @r1konTheAutomator 5 หลายเดือนก่อน

    I've been a super nerd for a very long time. I'm almost 39 so when I was in sixth grade the internet was nothing like it is now. Most people in my school didn't know how to use a computer beyond Windows pinball or minesweeper. So anytime I happen upon somebody who was into reverse engineering or programming, I geek out with them as much as possible. I remember very clearly in sixth grade a kid that sat next to me and one of my classes started talking to me before the class started because he heard that I was a programmer. After we started talking and he said he was a programmer too, I asked him what language he used. This mother fucker looked at me and said "Mostly english".

  • @gabrielmora6144
    @gabrielmora6144 9 หลายเดือนก่อน +1

    My university taught me lisp by making me write a lexer and parser for it in it :/

  • @jasnarmstrng
    @jasnarmstrng ปีที่แล้ว

    The people's programmer! Thanks bauce!

  • @MeriaDuck
    @MeriaDuck ปีที่แล้ว

    Bought thr interpreter book, following it to get to know Go.
    For small getting to know a language style problems, I like project Euler.
    But, they are typically quite small and numerical.

  • @trapfethen
    @trapfethen ปีที่แล้ว +2

    One of my first projects in any new language / framework (if applicable) is a calculator where the user can input an entire equation supporting parenthesis, addition and subtraction, multiplication and division, leading negative on numbers, and a postfix factorial if I'm feeling spicy. In most systems languages this takes the form of an interactive command-line application, and UI frameworks have the additional work of building a full calculator UI. It gets you comfortable with string manipulation, pattern matching in strings, case statements / pattern-matching, IO, and a nice little refresher on stacks.

  • @eddyecko94
    @eddyecko94 ปีที่แล้ว

    Got a new job where I’ll be using Go. I’m trying this now

  • @slendi9623
    @slendi9623 ปีที่แล้ว +2

    I have one question about the project, if someone makes a lexer version in golang after the book, would it be allowed to have the code in the repo? I mean it's technically an almost copy paste, isn't it?

  • @nickderaj
    @nickderaj ปีที่แล้ว

    Week 1: Wow this language has everything I need
    Week 2: Back to Typescript

  • @cbbcbb6803
    @cbbcbb6803 ปีที่แล้ว

    I read the following somewhere.
    Cobol is Legacy and Legacy means "it works".

  • @NuanceWebsites
    @NuanceWebsites 11 หลายเดือนก่อน

    very interesting character

  • @davidgreetman3704
    @davidgreetman3704 ปีที่แล้ว

    I want to see part two "how to learn a new framework"

  • @coptan99
    @coptan99 ปีที่แล้ว +4

    Waiting for GNU emacs configuration

  • @Veptis
    @Veptis 7 หลายเดือนก่อน

    I have a project I want to do, but grasping the tooling around javascript is nothing like I have ever seen in the programming languages I have used so far.
    Also I have zero experience doing webdev, so I feel like finding proper guidance to understand some largee concepts could be helpful.

  • @iseDaniel
    @iseDaniel ปีที่แล้ว

    amazing! thank you!

  • @KonradGM
    @KonradGM ปีที่แล้ว

    Ubuntu mono font? Based

  • @rajahaseeb8418
    @rajahaseeb8418 ปีที่แล้ว

    Thanks boss.
    I use vim btw, in case you guys didn’t know.

  • @amiraloi1694
    @amiraloi1694 ปีที่แล้ว

    Hey, I really want to learn C at the moment(as a CS student), because of all the hype in linux commiunity and the stable structure of the language, I've heard that I should spend a lot of time learning and it would completely waste my time. Will these steps you said in the video help us to learn C? And is it even worth it to learn sth low level as your first or second language?