Two Moments That Made Me A Great Software Engineer
HTML-код
- Опубликовано: 31 май 2023
- These two things were truly the biggest impacts on my career i have ever had. I wanted to share them with you because i find them very important
Links
Free Algorithms Course: frontendmasters.com/trial
(you don't have to)
Link if you want me to get paid: frontendmasters.com/join/indi...
THE INTERPRETER / COMPILER BOOKS!
Code THEPRIMEAGEN
interpreterbook.com/
compilerbook.com/
/ theprimeagen
MY MAIN YT CHANNEL: Has well edited engineering videos
/ theprimeagen
Discord
/ discord
Have something for me to read or react to?: / theprimeagenreact - Наука
I hope you know that this is not meant to be an ad. I truly have worked an incredible amount to make the things that were most beneficial to me available to you for free or at a low cost and i even said no to $$ for the interpreter book. I am TRULY trying to give you all the opportunities i have had.
Appreciate this so much. relearning programming as a 30y old w cs50 and recursion is indeed the one thing that suddenly makes me question if I have a natural inclination to this or not
I my country we say the gypsy that give you compliments for some coins die and now you must do it by yourself :D
I appreciate your vim series. This all the VSCode plugins eating up my resources I found my way back to vim and I'm way more productive.
I watched this recently as a brush up and the content and your teaching style are really great.
Definitely one of the best resources I’ve seen on this topic.
The time you have put into it really paid off.
Bruh, this is exactly what I need. I never took the time to learn the computer science part of coding. This is going to help me land a job in Elixir, ty.
Tom never had this moment coz he was born a gueneuos
see.. i was born dumb like
i see smart things and it makes me feel tingly
That's the tragedy of being Tom, you can't have these epiphanies 😢
Ah you think JSON is your ally? You merely adopted the JSON. I was born in it, molded by it
@@DaviAreias i do all my shopping at the JSML
You should interview Andreas Kling, who's working on his own OS, including his own browser. Think that'd be a fascinating convo.
ABSO-FREAKING-LUTELY! DO! IT! .... Andreas is great. His content is awesome. And what he and his team of volunteers have achieved in the last few years is just sooooo amazing. Get him on your show! Now!
+1 to that, i've watched hundreds of hours of his streams/videos
dude is awesome
Agreed 👍
For me, the 2 biggest moments were: 1, writing out my thoughts before even trying to write any code; and 2, realizing just what kind of maintenance nightmares early-me created. (No, early-me, 7 layers of inheritance is not abstraction, it’s a matryoshka doll of misery)
the matryoshka of misery... thats a perfect analogy. if I ever have a junior under me, loving inheritence to an unhealthy level I'll take that expression with me :D
I am recently working on refactoring and finally finishing my very first like big program (a console rpg game with interactive combat maps) and dear god im so frustrated with how i did everything
Only 7? Lol
The first thing that made me a great developer is the moment I discovered that my code was good but the Windows API call had a bug. I went to my boss and said that it is not the companies fault that there was an issue with the program.
His advice was golden: "The client does not care where the fault is, fix it"
Since then I never used an excuse anymore that it was someone else fault, I would find a good workaround to make it work even on faulty configured PC's. Software that does not require the client to do patches, update firmware to fix some problem is better in demand.
good advice
Stoked to watching this, starting next week!
Thanks Prime, been feeling like there is a missing piece of my career and this video highlighted it perfectly.
For me it was not a single moment, but whole course about electronics and basic logics leading to simple CPU implementation in VHDL, putting the last revision into FPGA, coding the micro instructions via dip-switches and see the result of addition on a few diodes.
Second best was implementing a bootloader for Z80 in pure assembly, working this close to the architecture you can fully understand is quite striking and helped me a lot in learning in and outs of modern CPUs operation (and advanced mechanisms like branch preditor, paralel execution, cache handling) and using those during development.
VHDL also leveled me up big. Creating you own CPU bit by bit is epic. And you do not need to have a 8 bit CPU could also be 4 bits, 2 bits, 13 bits, 22 bits,...
I've identified myself so much with your career examples of important moments! It's nice that the path I've chosen for my career so far have already been taken. Your channel is the only dev channel I think is really interesting.
You make me excited to program again, thanks for that. I bought the book combo and am looking forward to starting this weekend.
I experienced exactly the same. Those Eureka! moments are priceless. Love your content. Cheers!
Thanks for the recommending of your course, going to check it out. Appreciate all the work you put in.
one of my final project in college was making a new programming language using ocaml and the micro C compiler. only many years later am i finally understanding everything that seemed worse than rocket science to me at the time lol
OCaml is one of the best programming languages. Not too much "mathy", not too much "C low level" giberish. Perfect combination, oh. chef kiss !
Interesting. That was also one of my last projects in college also using Ocaml and C. I had a blast and learned a lot because I had basic knowledge of functional languages and strong knowledge of assembly.
For me was when I finally got an intuition for the "full stack": logic gates -> HDL -> asm -> C & the OS -> build systems, higher-level langs, abstractions like OO/ECS, libraries/frameworks -> philosophy, project organization. Big picture made me appreciate how amazing this all is!
Also, Google-fu and coding experience to skim docs quickly for what I need.
Also learning OCaml in college (first taste of a new coding philosophy).
Hardware is underrated. Nand2tetris is a fantastic resource for the hardware to software stack.
There's also another book about programming language implementation called craftinginterpreters. Its a great read and is also freely available online.
I've been hearing a bunch of different people about the experience of writing compilers and interpreters and how much they learned in the process, can't wait to try it on my own! Thanks for the discount code!
I'm down to take the course. I always wanted to build a compiler and I liked your maze recursive algo epiphany. That sold it to me
Dude, I've been subbed to you for a few weeks now, watching all your content, and I just noticed that your sub count is 80k which is crazy because your content deserves at least a mill
this is his second account, the main one is 200k
I am so grateful that I discovered this channel, OG!
Absolutely incredible course! You are a really passionate and humble teacher
Think you for that course, I just have watched it, It's amazing.
My data structures moment was hash maps as I was flipping through the data structures and algorithms text book at the start of the semester in 1st year CS. There was a whole discussion on the trade offs of choosing a hash size and balancing memory usage vs performance. Realising it’s not just reciting wrote steps, but there is design and creativity and nuance and that you had a bunch of levers at your command that you need some experience to drive properly was 🤯
Thanks for the free course, I really appreciate it
I've watched a number of your videos and I've found them informative and amusing, but this is the one that got me to subscribe to the channel. I spent my formative years programming in the Visual C++ IDE in the late '90s. so when I finally grew out of Windows and needed to compile stuff for other OSes I had zero clue how to use a compiler that wasn't baked into the IDE. And so watching this and hearing how building a compiler has opened your mind to new ways of looking at things has inspired me to want to pick apart that process and see what's happening under the hood. So thank you for that!
yayayayaya!
Thanks for the free course! I can't wait to get into it.
Great stories! I’ll definitely take a closer look at the courses and books you linked.
Prime's two great moments: discovering JDSL and learning that html tags can't be nested.
i almost dropped out during the intro cs class at university 4 years ago. One person talked me out of it in the class. I thank that person today.
I had the same experience, although in the compiler, I just finished the lexer only. start to love this guy
Thank you so much, this is very much appreciated
self referential types are cool and all, but i don't really use them, unless im doing a custom language (aka a DSL lmao)
the compiler one was also incredibly valuable for me as well. i took my college's compiler course and it was absolutely worth it
Prime u da homie dawg
The book that got me to really understand recursion is: The Little Schemer by Friedman and Fellleisen. It starts really simple and layer by layer builds up to to the hard stuff.
I don't remember when, but somehow along the way i understood a thing about stack, registers and memory. We work in C#, so you can go quite far without knowing it but when things go wrong and the issue seems complicated, it really helps to understand what actually happens and what can happen.
I'm gonna start my master's degree in software engineering next semester and apparently there's a very hard class on compilation where one of the requirements to pass is to build a compiler. I already took a class on language theory and computation.(math field). It was very hard .
I picked up Writing An Interpreter In Go a few years ago. It is a fantastic book. I had a pretty good understanding of lexers, parsers, ASTs, etc, before starting the book, but I still learned a ton by writing the code. There is no substitute for doing the actual work. There is a follow-up book, Writing A Compiler In Go. I haven't read it yet, but it's on my list.
Thanks for the course.
thank you for sharing resource to learn compiler design!
I think printing whole numbers was the problem that solved recursion for me.
Building a compiler was the next step, yes. Or just a mathematical expression parser (better known as calculator) first.
My moment was in QuickBasic back in the early 90s when I suddenly understood how pointers work. Basic doesn't have a pointer type, but it can hold a number that happens to be a memory address I was able to pass into interrupt handlers to do things with the data at that address.
You know, i was actually looking for a compiler course to go through. Something i always regretted not taking in college. I'll have to check it out lol
Thanks Tom !!
Awesome man!!!!
Never had a hard time with recursion... understanding 3D and representing it in 2D took me longer than I would like though.
I guess looking deeper would always give you a deeper understanding.
Thank you, you crazy man !
For me, it was reading a systems programming textbook front-to-back, developing a Scheme DSL, and diving headfirst into the Linux CLI.
you're the man. I wish we could work together one day, i learn a lot from u and im even frontend oriented
It is a great course, highly recommended
Just in time for my Google interview next week! 🙏
@ThePrimeTime in the free preview at -14.00 you mention gc pressure. I'm not sure everyone who will take this course will know straight out the gate what garbage collection pressure is. Is there a glossary for those people ?
Love everything you do for the community
Thank you!
I love making software efficient, going through memory profilers to reduce allocations and optimizing algorithms or response times makes me so happy!
However, I worked for several companies now, I have yet to come accross a company that cares about any of this. 😞
check hagemeister posts
Mine was after picking up unity and having visual representations of objects. OOP just clicked and made so much sense after that
That moment for me was when my first encounter with a multi threading opportunity in a major Canadian bank was successful on first try and reduced a week long process to 30 minutes
Building a compiler, even the crappy one is a so, so rewarding experience. Also, it requires a lot of math, patience, and desire to be a good software engineer
Been trying to self learn programming for half my life, wondering why I could never get the hang of it. Just last week I decided to ditch all the abstraction and black boxes and start learning asm. Things are making so much more sense at such a faster pace now. I thought I knew what a stack was before but... now I KNOW what a stack is. It's a shame there's so much abstraction for beginners when just a peek under the hood could illuminate so much. Definitely gonna check out the Algo course.
@@chris94kennedy everyone’s brain works differently and absorbs information / get motivated differently
@@vincentcjs fair enough
Linked lists for me too, reading Jamsa's c/c++ programmer's bible in the back of my mom's mini-van when I was 13
you're the best, dude
I'm curious abouw how did you approach building an interpreter / compiler when you first did it. Now adays we have books you mentioned, and a lot of different resources, but i always like to hear about the leanring approach others took to achieve something.
I started watching your course and I'm now watching it instead of porn. If you knew me, you'd know how much of a compliment that is. You are the perfect teacher for me. If I ever get a decent job, I'll try to bribe you to make more courses
Take this course and be the new Tom!
Ok next step, building a compiler!
Thanks 🎉
thank you soo much
ah yes... i remember in uni, when we had data structures and we had to implement different types of lists ourselves. then implement arrays with our selfmade lists and then implement another kind of list based on our array, then implement stacks with our lists or arrays and queues and hashmaps... the performance was hell, because we piled bad code on bad code, but it was really interesting to do all this and learned quite a lot from all those excercises
..
and then we used those shitty selfmade datastructures to implement every sorting algorithm in the book.
i loved it.
One of my biggest moment was easily when I used Haskell at university. Not because I use it. But it changed how I see code, it changed how I view programming, it changed how I think about a problem. (the course also was quite broad and about programming paradigms in general, so it wasn't just functional, it's also where I got introduced to rust).
what exactly did it change
Monads mo problems
@@jww0007 nothing crazy really, I just started to write better code, because Haskell forced me to code functions with Single Responsibility. Or at least I became a lot better at breaking up the code, readability.
Also, at this point in my life here, all languages I've ever used were all very similar to each other, (basically just C and Java) so it really made me realise how different languages could be.
Also it really made me understand how to think about recursion and work with it.
Haskell in general was so different from anything I had ever seen or even could have imagined a language could be before, it really opened up my mind to what coding could be.
I cant afford paying the plan right now, but I promise you I will do it when I can because you deserve it
@ThePrimeTime didn't you have a video where you taught recursion by solving a maze? Don't know if it was a year or two ago tho, and I can't seem to find it lmao
My favorite moment was learning functional programming
Where do you get your energy from anyway, you are always so excited?
High on life as they say. Also he has a dope community, I presume hanging out on twitch with the degens is a happy place for him
Tom would've created a compiler in chatGPT
Liked simply because of great personality
As a devops guy the 5 year old Jenkins server under someone’s desk is more important than understanding a sorting algorithm.
Oh my god, oh my god!
The algorithm's course is awesome. I just wish I could share some mistakes I found or ask clarifying questions in the comments. I'd pay for this.
Where can I find the videos of you building your own compiler?
Yeah, I saw you algorithms course a little long ago, but I backed off because it's in typescript 🥺
I wanted it to be peeling to as many people as possible. I think C would have been the best, but it's also limiting the reach
The most prolific lesson I was ever taught as a junior dev - "In order to understand recursion, you must first understand recursion"
Yeah the first time you get the difference between a class and an object... wow
Was "flood fill" the stack-based recursive maze-solving algorithm that made you understand recursion by any chance?
cuz it was for me
Though I prefer the iterative version that just uses a stack :D
I mean they both use a "stack" but the one where the stack is a declared data struct and not the call stack
Tom is a genius
Link to repo, please
is it bad if ive never had one of these moments?
ive been programming for 5 years now and i have a job, im even pretty good at my job,
but i cant seem to come up with a single moment/thing that has affected me at such a deep level
you most likely had similiar moments you just never realized they had impact on you
Thank you dad
How much does building an interpreter differ from building a compiler?
University has killed programming for me. Computer science feels hopeless... I haven't coded anything cool for a long time.
Never met anyone who understood tower of hanoi
So.. my college is offering a Compilers course next, I reckon you'd want me to take it?
it's for chads,
If you like recursion so much you'll love Haskell
Thank you. I dont come from a cs background (I was a chemist) but now work in software. I think im pretty good at my job but hopefully this can level me up.
For recursion, one of the things that helped me get it was using a functional language with pattern matching in the function clauses (elixir in my case) so you have 1 clause for the base case and a clause for the each of the other cases. Now i recurse as a matter of course in elixir
no don't want sadagen we want Bandana-gen!!
HTML nested paragraphs? ;-)
❤
ChatGPT deez!!
$39/m is hella cheaper than college. Not sure if you'll read this Prime, but do you have a video or just some advice on college education for computer science? I have 2 more years left, but dread the thought of finishing it. I learn more from resources like youtube (and soon frontendmasters) than I ever have from my entire college experience so far. Colleges and physical education are years behind online education in terms of quality and content. I've taught myself frontend/backend, python, typescript, React, SQL & noSql databases, etc. All college has taught me is calculus, what a variable is, and how to print a triangle in python.
On one end, I only have two more years and getting the piece of paper will help on my resume (so I'm told). I am starting upper div classes next semester, so I'm not sure if my experience will be better in those. But on the other end, I am learning more and enjoy building projects on my own terms. Right now I'm working on my own startup and do contracting for some family friends' businesses.
I don't want college to hold me back from success, but then again, it's only two more years. I hate the idea of going "as a back up plan." What would you recommend someone in my position do?
you know, this is a very hard question and the final two years of college were the best for me. the first couple were terrible so i get it.
personally i stuck through college and i am happy that i did, i am unsure if i would be who i am without it.
@@ThePrimeTimeagen thanks prime, gonna stick with it for now and see how the last two years go. Reading online it looks like most companies won't even consider an application unless you have a bachelors
ily prime no homo
We want theblueninjagen
Top under rating data structures.
where is the blue hair????
Not sure if serious or some galaxy-brain Muratori-level troll -_^? : D
Who is Tom?