I learned cobol, but in sign language. I code with my webcam.
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.
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.
Very nice recommendations. I have been struggling to find some examples to practice a new languages, this is going to be helpful.
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!
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 <3 I don't have much time to drop by the stream anymore, but I'm never canceling that sub, you rock :D
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 💪💕🚀
That last subscribing step is crucial. Dont skip it or you wont truly understand the language
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
One pair of resources to do this kind of thing in a guided way is Exercism to learn the language concepts and mentality and then do CodeCrafters to build something closer to a real world project. I like the fact that Exercism’s exercises are judged using unit tests in the target language so you get to see how that works too.
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.
Learning go and rust! Glad I already started day one of advent of code with go before watching this video! Awesome content man! Thanks!!!
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.
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.
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
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
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.
1. read doc 2. build project ex. interpreter, web socket, http server
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.
@meltygear5955