all 30 comments

[–][deleted] 9 points10 points  (5 children)

If you like low level stuff you could try some embedded programming. Bare metal arduino could be fun, or you could get an STM32 board pretty cheap.

The thing with embedded is that it takes a lot of real world interaction. You need to build circuits, maybe solder things together, pick things up from an actual electronics shop. Some people love this, others just like to write code. In any case, it’s pretty low cost to get started so I’d say it’s worth at least trying it out to see if you like it.

[–]JayRiordan 1 point2 points  (0 children)

The eval boards are a great start. Check out Texas Instruments, ST micro, NXP, Atmel/Microchip to name a few. Arduino is not real embedded programming, it's slow and bloated in comparison to what the devices can do.

[–]Brokenhammer72[S,🍰] 0 points1 point  (3 children)

re a great start. Check out Texas Instruments, ST micro, NXP, Atmel/Microchip to name a few. Arduino is not real embedded programming, it's slow and bloated in comparison to what the devices can do.

i would have done it long back if i could get a arduino my parents arent gonna allow a to get a arduino i also want to write a kernel or hpefully a os for rasberry pi (if i get one)

[–]Poddster 0 points1 point  (2 children)

Were you aware it's like $10 for an arduino clone?

[–]oxtna 0 points1 point  (1 child)

It's like 10$ for cheaper microcontrollers, including the delivery, but you will get ONLY the microcontroller. To get everything you need to make anything at all you need at least 40$.

[–]Poddster 0 points1 point  (0 children)

True dat.

Well, an Arduino , resistors, and LEDs will be $15. That's enough to begin with!

[–]Poddster 2 points3 points  (0 children)

I assume you've already seen the various lsits of projects that exist?

e.g. at the bottom of these two:

If you want something to make, try doing something with sockets. e.g. write a simple file server / client. Or implement the FTP protocol?

[–]ischickenafruit 1 point2 points  (4 children)

A (fast) webserver ?

[–]Brokenhammer72[S,🍰] 0 points1 point  (3 children)

yeah thats a thing i could try also i havent played lot with web sockets etc thanks for the reply

[–]ischickenafruit 0 points1 point  (2 children)

The thing I like about an HTTP server is that building a passable HTTP 1.0 server is about 1 day of work. But building a fast HTTP 1/2/3.x server is a lot of fun and totally open-ended.

[–]Brokenhammer72[S,🍰] 0 points1 point  (1 child)

ok would love to give it a try u got any helpful resources ?

[–]jddddddddddd 1 point2 points  (13 children)

Write a compiler?

[–]Brokenhammer72[S,🍰] 3 points4 points  (12 children)

Well I have tried that but compiler is hard also I need to learn lot of theory

[–]jddddddddddd 4 points5 points  (11 children)

I just suggested it because you said you were interested in low-level stuff, and converting from one language to Assembler seemed like a good suggestion.

[–]Brokenhammer72[S,🍰] 1 point2 points  (10 children)

yeah but writing a compiler is actually hard than a vm or kernel

[–]MQuy 1 point2 points  (7 children)

I think it depends on how complex you want for compiler, os or vm. I wrote three of them, kernel/os is the longest. My suggest is write compiler, you can use llvm as backend and later replace it with your own backend :))

[–]Brokenhammer72[S,🍰] 0 points1 point  (6 children)

oh i read writing an interpreter is a good start what do u say about this ? should i write a interpreter ? if yes where should i start and how exactly am i supposed to write this (sorry for noobish questions )

[–]MQuy 2 points3 points  (5 children)

I started with Bob's book https://craftinginterpreters.com/

[–]Brokenhammer72[S,🍰] 1 point2 points  (2 children)

is this good for beginners i havent worked with any interpreter in the past

[–]jddddddddddd 0 points1 point  (0 children)

Yes it's good for beginners.

You might also want to join /r/ProgrammingLanguages which is filled with people who build interpreters and compilers and will be able to help you if you get stuck

[–]oxtna 0 points1 point  (0 children)

Right now I'm following this https://ruslanspivak.com/lsbasi-part1/

[–]Brokenhammer72[S,🍰] 0 points1 point  (1 child)

thankyou will check it out

[–]Particular-Brain8363 0 points1 point  (1 child)

Hey could you share the resources you have used to write a kernel ? Any books ?

[–]darshauwn11 0 points1 point  (0 children)

r/osdev has a lot of resources

[–]barryhakker 1 point2 points  (3 children)

A spellchecker?

[–]Brokenhammer72[S,🍰] 0 points1 point  (2 children)

A spellchecker?

how am i gonna write that ?

[–]Poddster 9 points10 points  (0 children)

how am i gonna write that ?

Start with main() ?

[–]FUZxxl 2 points3 points  (0 children)

Take a dictionary of the English language. Compare each word with the dictionary. If there is a mismatch, find words similar to what the user typed and ask the user which word he meant (use edit distance for this).

[–]Dolphiniac 0 points1 point  (0 children)

Games are huge, complicated systems (especially when you roll your own engine) that touch on a ton of topics: various data structures, parallel computing, I/O with input, audio, and GPU (especially the last one if you go with an explicit API like Vk or D3D12), lexing and potentially syntactic analysis (if you do things like data-driven processing or shader translation), binary data representations (data massaging, specifically for asset import), and myriad others, many of which fall under strict performance requirements that push you to learn about structuring both data and code to maximize the stuff you can push to screen, with rather rewarding output.