How To Learn A New Programming Language

Sdílet
Vložit
  • čas přidán 24. 07. 2024
  • As a 20 Year veteran of the HTML programming language here is my guide to learning a language quickly.
    Are you ready to take your programming skills to the next level? s a 20 Year veteran of the HTML programming language here is my guide to learning a language quickly. Here are a few techniques in this essential video tutorial that have worked for me and can help you to start coding like a pro today.
    Twitch
    Everything is built live on twitch
    Twitch : bit.ly/3xhFO3E
    Discord: discord.gg/ThePrimeagen
    Spotify DevHour: open.spotify.com/show/4MLaDrQ...
    Editor
    All my videos are edited by Flip. Give him a follow! / flipmediaprod
    Join this channel to get access to perks:
    / @theprimeagen
    Links
    Linode: linode.com/prime
    / discord
    Twitch: / theprimeagen
    Insta: / theprimeagen
    Twitter: / theprimeagen
    VimRC & i3: github.com/ThePrimeagen/.dotf...
    Keyboard 15% off bit.ly/Prime360 USE CODE PRIME360
    #coding #neovim #typescript #programming #vim #softwareengineering #codinglife #webdesign #webdevelopment #webdev #javascript #rustlang #rust #twitch #twitchstreamer #programmerhumor #codinghumor #software #softwareengineer #softwaredeveloper #softwaredevelopment
  • Věda a technologie

Komentáře • 317

  • @silviogames
    @silviogames Před rokem +1175

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

    • @ronakmehta8106
      @ronakmehta8106 Před rokem +11

      I don't get it..

    • @junaidshaikh2265
      @junaidshaikh2265 Před rokem +89

      @@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 Před rokem +99

      But the important question is do you use vim?

    • @apolloapostolos5127
      @apolloapostolos5127 Před rokem +8

      I love this comment.

    • @crescenttv5918
      @crescenttv5918 Před rokem +2

      Does cobol has any demand now??

  • @meltygear5955
    @meltygear5955 Před rokem +859

    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  Před rokem +220

      Such facts

    • @isodoubIet
      @isodoubIet Před rokem +143

      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 Před rokem +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 Před rokem +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 Před rokem +9

      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 Před rokem +218

    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 Před rokem +41

      +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 Před rokem +4

      @@samdcbu Good idea :)

    • @josephp.3341
      @josephp.3341 Před rokem +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 Před rokem +4

      @@josephp.3341 nice!

    • @mysterious_commenter3285
      @mysterious_commenter3285 Před rokem +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 Před rokem +165

    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.

  • @seiIaeu
    @seiIaeu Před rokem +10

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

  • @osamaaj
    @osamaaj Před rokem +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

  • @draakisback
    @draakisback Před rokem +10

    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.

  • @HONjramiroz98
    @HONjramiroz98 Před 7 měsíci

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

  • @saultube44
    @saultube44 Před rokem

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

  • @blackfrog1534
    @blackfrog1534 Před rokem +59

    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 Před rokem +3

      lets fucking goooooooooooooo!!

  • @rsflipflopsn
    @rsflipflopsn Před rokem +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

  • @pif5023
    @pif5023 Před rokem +1

    Thank you! Nice video!! Needed this

  • @Gigusx
    @Gigusx Před rokem +12

    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 Před rokem +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 Před rokem +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

  • @cariyaputta
    @cariyaputta Před rokem +3

    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.

  • @spidertyler
    @spidertyler Před rokem +13

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

  • @fedeanastasis7040
    @fedeanastasis7040 Před rokem +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

  •  Před rokem

    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 Před rokem +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.

  • @ArtemSuchov
    @ArtemSuchov Před 8 měsíci

    This is amazing video.
    Thank you for sharing TheGoodMangen

  • @Luther_Luffeigh
    @Luther_Luffeigh Před rokem +2

    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 💪💕🚀

  • @nerdycatgamer
    @nerdycatgamer Před 11 měsíci

    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!!

  • @rampage_sl
    @rampage_sl Před rokem +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.

  • @whamer100
    @whamer100 Před rokem

    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

  • @NeilMartin98
    @NeilMartin98 Před 8 měsíci

    Your stuff is a breath of fresh air.

  • @romanext921
    @romanext921 Před rokem

    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

  • @codewithwings
    @codewithwings Před 10 měsíci

    this is gold. Thank you

  • @n0kodoko143
    @n0kodoko143 Před rokem

    saved this one. Awesome stuff, as usual.

  • @probablism9773
    @probablism9773 Před 27 dny

    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.

  • @ErazerPT
    @ErazerPT Před rokem

    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 Před rokem

    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.

  • @elzabethtatcher9570
    @elzabethtatcher9570 Před rokem

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

  • @friendly__drone9352
    @friendly__drone9352 Před rokem

    I love this kinda of content!

  • @Geoffreygane
    @Geoffreygane Před 5 měsíci

    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 !

  • @abysmallytall
    @abysmallytall Před rokem +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.

  • @KMoscRD
    @KMoscRD Před rokem

    @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.

  • @slendi9623
    @slendi9623 Před rokem +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?

  • @johannesgreiner2690
    @johannesgreiner2690 Před měsícem

    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.

  • @sugaslate14
    @sugaslate14 Před rokem

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

  • @Yupppi
    @Yupppi Před 7 měsíci

    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.

  • @apefu
    @apefu Před rokem

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

  • @ironwelder480
    @ironwelder480 Před rokem +1

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

  • @enteleform
    @enteleform Před 5 měsíci

    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!

  • @anonlegion9096
    @anonlegion9096 Před rokem +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

  • @pif5023
    @pif5023 Před rokem

    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

  • @HantonSacu
    @HantonSacu Před rokem +13

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

  • @davidkuda
    @davidkuda Před rokem

    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?

  • @AndrewErwin73
    @AndrewErwin73 Před rokem +60

    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 Před rokem +7

      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 Před rokem +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 Před rokem +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.

  • @HellCat46
    @HellCat46 Před rokem

    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 Před 4 měsíci +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

  • @TehKarmalizer
    @TehKarmalizer Před rokem +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.

  • @amiraloi1694
    @amiraloi1694 Před 10 měsíci

    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?

  • @MeriaDuck
    @MeriaDuck Před rokem

    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.

  • @sebsplatter914
    @sebsplatter914 Před rokem

    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 Před rokem

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

  • @benheidemann3836
    @benheidemann3836 Před rokem

    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 Před 11 měsíci

      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

  • @chrissaltmarsh6777
    @chrissaltmarsh6777 Před rokem +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.

  • @juliancorredor1128
    @juliancorredor1128 Před rokem

    Out of scope question but I wanted to ask what's been your experience with Dvorak? why that over colemak or colemak dh for example? I wan't to switch to a better layout but cannot decide for one

  • @SVGc1993
    @SVGc1993 Před rokem +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.

  • @puspo-in
    @puspo-in Před rokem +1

    that opening picture, it is elixir lang isnt it?

  • @SimGunther
    @SimGunther Před rokem +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!

  • @DannyMexen9
    @DannyMexen9 Před rokem

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

  • @aCrumbled
    @aCrumbled Před rokem +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

  • @dog4ik
    @dog4ik Před rokem +3

    Can someone suggest good CSS WebSocket library?

  • @Brodzik-kz8nt
    @Brodzik-kz8nt Před rokem

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

  • @Veptis
    @Veptis Před 3 měsíci

    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.

  • @alextrollip7707
    @alextrollip7707 Před 8 měsíci

    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

  • @asdqwe4427
    @asdqwe4427 Před rokem +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

  • @pif5023
    @pif5023 Před rokem

    If you run out of advent of code problem project euler is another site I love for problems to work on and generally I like more the problems I find there then in any other site. Those problems are meant to give you some kind of insight into computer science as a whole

  • @amicableami87
    @amicableami87 Před 11 měsíci +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 Před 11 měsíci +1

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

  • @SystemsAdventure
    @SystemsAdventure Před 11 měsíci +1

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

  • @p5ycon
    @p5ycon Před rokem

    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

  • @iseDaniel
    @iseDaniel Před rokem

    amazing! thank you!

  • @user-sy5jh7rc6w
    @user-sy5jh7rc6w Před rokem +4

    Waiting for GNU emacs configuration

  • @ivanwills6635
    @ivanwills6635 Před rokem

    I don't suppose you have chat room examples in different languages in your github repo?

  • @cbbcbb6803
    @cbbcbb6803 Před rokem

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

  • @teklife2151
    @teklife2151 Před rokem

    You are one cool dude Prime.

  • @Mitch_Crane
    @Mitch_Crane Před rokem +2

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

  • @austiyful
    @austiyful Před 7 měsíci

    How proficient do you need to be in a language before you can say you've learned it? I've picked up a few languages from school like C, C++, Python, JavaScript (and even some of Racket), but I don't consider myself to be an expert in any of them. I only have the content from my classes, so I'm not really sure if I've "learned" any of these languages to a sufficient degree.

  • @dazecm
    @dazecm Před rokem

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

  • @NotHumanPerson
    @NotHumanPerson Před rokem +6

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

  • @Action2me
    @Action2me Před rokem +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 Před rokem +5

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

    • @ThePrimeagen
      @ThePrimeagen  Před rokem +10

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

    • @YasserS19
      @YasserS19 Před rokem +3

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

    • @WiZaRdNoOb101
      @WiZaRdNoOb101 Před rokem +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 Před rokem +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.

  • @easterling9938
    @easterling9938 Před rokem

    Can anyone tell me what settings he uses for his test editor at 4:49, really like the style

  • @zokalyx
    @zokalyx Před rokem +21

    make cobol great again

  • @vikingthedude
    @vikingthedude Před rokem

    How does Writing an Interpreter compare against Crafting Interpreters by Robert Nystrom?

  • @silverhairs
    @silverhairs Před rokem +2

    Prime really remembered that his has a main youtube channel

  • @suvraneelsaha7857
    @suvraneelsaha7857 Před rokem

    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

  • @eddyecko94
    @eddyecko94 Před rokem

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

  • @Innengelaender
    @Innengelaender Před rokem

    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.

  • @alexanderlea2293
    @alexanderlea2293 Před rokem

    As a college student I have done a lot of programming in C++ and Python. Unfortunately, I have absolutely no experience with anything web-related. As I'm trying to get into JavaScript, I don't find the AOC challenges difficult, but I really had no idea where to start on the WS client. Do you have any resources you'd recommend or advice for that sort of stuff?

    • @alexanderlea2293
      @alexanderlea2293 Před rokem

      BTW I love the example with going from TypeScript to Rust to Zig, I did the same thing with a program from C++ to Python to Rust.

  • @rogerdoger303
    @rogerdoger303 Před 7 měsíci

    Have you read, Art of Computer Programming, by Donald Knuth? Any opinion here?

  • @nicolasmateogarciaguzman7897

    I don't want to learn web development. I think this approach is not the best for me. What do you recommend if I want to use a language for scientific computing, linear algebra and numerics?

  • @Cheshyre25
    @Cheshyre25 Před rokem +1

    I think your typescript token function can be improved. For the first part where you have the switch statement you can build an object instead with all of the cases as keys in the object that are all functions.
    Doing it that way is way better than ifs and switch blocks but still isnt as good as what Rust and Zig offers.

  • @joelmartinez7326
    @joelmartinez7326 Před 11 měsíci

    ¿Recomiendas aprender golang como mi primer lenguaje de programación. Y conseguir un trabajo.?

  • @gabrielmora6144
    @gabrielmora6144 Před 5 měsíci +1

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

  • @darthcabs
    @darthcabs Před 9 měsíci

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

  • @trapfethen
    @trapfethen Před 11 měsíci +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.

  • @rajahaseeb8418
    @rajahaseeb8418 Před rokem

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

  • @danluca2260
    @danluca2260 Před rokem

    Hey dude, could you tell me, what is your process of learn coding? Do you make summaries? Use space-repetition? Or just practice? You would help me a lot

    • @hanhthien2948
      @hanhthien2948 Před rokem

      For me when learned my first programming language (C), I just watched videos on ytb to get comfortable with the syntax and then read some books and practice.
      And then when I learn a new language I just follow ThePrimeagen's advice and read some books for details, that's it.
      Btw, What emoji is that?

    • @danluca2260
      @danluca2260 Před rokem

      ​@@hanhthien2948 So, no summary? I´ve liked to use this on the past for other things, and it works, but it´s time consuming. Thanks for your perspective! That emoji , is from youtube comment section! 😃👍

    • @hanhthien2948
      @hanhthien2948 Před rokem +1

      @@danluca2260 you mean take notes, of course I'll take notes on some important parts and review it once or twice a week but I mostly code because otherwise I'd forget 😅

  • @0lange
    @0lange Před 11 měsíci

    Beginer here, can someone please expand 'building a websocket server' part? "Somone says join and a string, leave and a string..." not sure what he meant by this. Thanks in advance!

  • @Kane0123
    @Kane0123 Před rokem +19

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

    • @DeathBean89
      @DeathBean89 Před rokem +8

      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

  • @jasnarmstrng
    @jasnarmstrng Před rokem

    The people's programmer! Thanks bauce!

  • @davidgreetman3704
    @davidgreetman3704 Před rokem

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