Projects Every Programmer Should Try

preview_player
Показать описание
Recorded live on twitch, GET IN

Become a backend engineer. Its my favorite site

This is also the best way to support me is to support yourself becoming a better backend engineer.

MY MAIN YT CHANNEL: Has well edited engineering videos

Discord

Hey I am sponsored by Turso, an edge database. I think they are pretty neet. Give them a try for free and if you want you can get a decent amount off (the free tier is the best (better than planetscale or any other))
Рекомендации по теме
Комментарии
Автор

My goto project is always a music player, it has networking, file management, byte stream management, all kind of data structures can be used for playlists, database access. Basically a simple to visualise project that covers everything.

AbhinavKulshreshtha
Автор

I once wrote a Gameboy emulator in C# (C# MENTIONED!) and the hardest part is finding accurate information on how everything works. Plenty of resources on how 95% of it works, but I never found a single source that covers 100%. Second hardest part is understanding all that info making the damn thing work. Seeing a game display for the first time is insanely rewarding.

ColossalMcBuzz
Автор

The satisfaction to be gained from getting a bare bones OS booting on hardware to a command line cannot be understated. The closest I've felt to a wizard in any programming project.

robgrainger
Автор

The best project I worked on in school - the one I learned the most but felt like I accomplished the least - was building a graphics editing program with simple animation tools and timeline. Figuring out layers, undo/redo, manipulating things on the canvas, the clipboard, all of it left me feeling like I was way in over my head and yet I came out with a clunky and ugly piece of software that I made all on my own. I was humbled but still proud

beanarine
Автор

So I'm confused when people say you shouldn't go to college and then recommend stuff like this. What do you think you do in college? Literally all of these plus WAY more.

InfiniteQuest
Автор

This is arguably the most useful information I have gotten from this channel. I usually just come for the rants (it's quite entertaining). Thanks for making the effort to make us better programmers than ChatGPT. Truly appreciated.

chukwunta
Автор

ive done a text editor with vim motions, an interpreter for my comp sci final, and a terminal game engine. All great projects that ive learned so much from, now all i have to do is get a job.

aCrumbled
Автор

@4:11 - Keeping track of a cursor in a text editor is just a matter of keeping track of the index of the row you were on when you pressed up - Each time you press up you try to move up to the nth index in that row, where the index is stored when you first pressed up. Enter any other key, be it typing or another cursor moving key, and that stored index is reset.

scottwarner
Автор

I also can definitely recommend writing a compiler if you want to be really good at programming in general - except when you write your first compiler, I'd really recommend to skip the whole optimization part. Code optimization has several problems:
a) there is NO one approach fits all, instead you need to shove a plethora of different complex specialized algorithms into it
b) this is ongoing research (even the theory of compiler optimization changes quickly with only a few exceptions) - this means you'll conceptually be not just between two but three moving targets
c) a lot of even mildly sophisticated optimization algorithms are computationally hard. This means among others you'll need to get into heuristical algorithms, approximation theory & numerical computing as well which you otherwise wouldn't need to do in a compiler

FrankHarwald
Автор

Before starting on a text editor, I recommend trying to make a line editor first. It has similar constraints but more limited to a line-by-line basis; and you'll learn that there's a ton of ways you could abstract it with different data structures, each having their own pros and cons.

I started with a simple interactive rebase editor in terminal when I learned Rust, and I still use it for rudimentary rebase tasks. This probably doesn't need a ton of optimizations for my uses, but you it can end up being a fun project to try and implement and optimize as you go, as you introduce more lines you have to start thinking about scroll buffers, etc. Which is also something you'll get into when writing a text editor.

dealloc
Автор

This video couldn't be more recommended at the right moment than this to me. I was wondering what to do after finishing mooc fi intro to programming with python course and doubting myself of trying those seemingly niche project that on the surface doesn't contribute much to most dev jobs on the market. However seeing those type of projects are what made me interested in programming in the first place, glad to know that the knowledge you'll gain from those projects are applicable in the real world. Thanks for the insight Primeagen

yumekarisu
Автор

I always recommend MUDs. It's a game but focused more on backend activities. You'll need to tackle sockets, file IO, RFC implementation (telnet), AI, etc. The sky is also the limit depending upon how complex you want to get.

bobbycrosby
Автор

C# is a good language.

I know C# takes a lot of shit for being a super-generic copycat of several languages/techniques that came out just before it, names unmentioned. But I think people will have to admit that it's like the Porsche of managed languages. Hear me out. I recently heard Porsche described as an 8-9/10 at everything, but not a 10/10 at anything. There are other cars that are faster but less reliable or can be hellish to work on in the long run, like Ferraris (lookin at you, C). There are languages that are simpler and easier to learn, but like Toyotas (Py&JS) they are never going to be anywhere near as performant. And there are those that are fantastic and more fun but nobody buys because of the difficulty of driving them, like the Dodge Viper (Rust). There are cars that try to do the same thing, or even did it first but couldn't keep up in the long run, like Lotus (Java).

C# does everything these days, and does just about everything it does well, but it's never 10/10 in anything. Its has very consistent and well maintained and documented standard libraries. It's got a decent dependency management system with lots of well maintained public packages. It compiles down to either a portable IL or can compile to architecture-specific bytecode. Its memory management is simple and rarely needs any intervention for anything beyond advanced 3D games or HPC (which, why are you using C# for?). Performance is more than decent, support is easily available, it uses easy to learn syntax for anyone who has had any programming education in the last 30 years, and did I mention that its well maintained? New features frequently come out, and they're almost never breaking.

I can't say I think C# is the best at anything, but it's better than most at just about everything. Even things it has no business being good at. But go ahead, flame me.

insylogo
Автор

Projects every farmer should try: Cloning sheep, building spaceship, square dancing to meet women

sheriffderek
Автор

"I don't know what to build" goes away once you identify things that annoy you and think you can improve. There are more things I want to build than I have time for. It's never-ending.

RainOrigami
Автор

I wrote a compiler in Java of a language similar to C back when I was doing my masters. Great experience, and very interesting to understand how things run when you compile your code.

xcuu
Автор

Father Primeagen with his majestic soothing voice puts out a banger again...

jawadalamoush
Автор

Writing a emulator can be quite easy and equaly valuable if you made based on you own "fantasy architecture". Just put together a program counter with a few memory adresses and basic set of assembly operations implemented through functions, and you can make a very simple virtual processor that can teach you the basics in hardware emulation.

MrVinicius
Автор

A piece table is perfect if you want to be able to handle humongous files which wouldn't fit in RAM. For anything that would though, just use a line array and be done with it. Simple, reliable, fast.

longlostwraith
Автор

Recently made a single thread synchro http server from scratch using sockets, was really fun learning how to parse incoming data into http request format(straight from http specifications), routing the uri to handlers (parsing the path) and request response cycle. It's very basic but got to learn a lot.

pixalquarks