How to get started with low - level programming?

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

Post Reply
kordag
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 5
Joined: Tue May 28, 2013 12:24 am

How to get started with low - level programming?

Post by kordag »

Hello, I'm a novice programmer or at least I would consider myself one. I spent most of my last years in high school and my current time learning multiple programming languages but not actually doing anything useful. Main reason I ended up doing this is because I kind of had an interest in everything from web development to game development to kernel development. Recently I've been really trying to figure out what I would like to do and I realized that I always loved computer hardware and I found the software associated with it very interesting. I would like to know where to start? I've read many suggestion. Some people recommend buying some device that Linux doesn't support and write drivers for it or help work on the kernel. Others say get one of the Arduino products or something similar and mess with that. I'm not really sure what books to read or what to do. Can anyone give me some advice?
User avatar
MarauderIIC
Respected Programmer
Respected Programmer
Posts: 3406
Joined: Sat Jul 10, 2004 3:05 pm
Location: Maryland, USA

Re: How to get started with low - level programming?

Post by MarauderIIC »

I realized the moment I fell into the fissure that the book would not be destroyed as I had planned.
kordag
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 5
Joined: Tue May 28, 2013 12:24 am

Re: How to get started with low - level programming?

Post by kordag »

The Raspberry PI looks like it would be fun to mess around with. I found the "Baking Pi – Operating Systems Development" course and I'm reading through it now although I need to buy the equipment. So do you think this would be a good place to start?
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: How to get started with low - level programming?

Post by dandymcgee »

kordag wrote:The Raspberry PI looks like it would be fun to mess around with. I found the "Baking Pi – Operating Systems Development" course and I'm reading through it now although I need to buy the equipment. So do you think this would be a good place to start?
The best place to start is the one that holds your interest long enough for you to ACTUALLY start. ;)
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
User avatar
bbguimaraes
Chaos Rift Junior
Chaos Rift Junior
Posts: 294
Joined: Wed Apr 11, 2012 4:34 pm
Programming Language of Choice: c++
Location: Brazil
Contact:

Re: How to get started with low - level programming?

Post by bbguimaraes »

As a proud rπ owner, I have to say you can get only fun out of one of those. If you need some help getting started, I started a series on my blog a while ago (which I'm going to continue when I get some free time, I swear!).

I hope you don't mind the advertising =)
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: How to get started with low - level programming?

Post by Falco Girgis »

Just don't use their high-level APIs and drivers (and especially don't use Java), or I will smack the shit out of you. The entire point is to code close to the metal, and those APIs do nothing but make the high-level CSers who don't know anything about memory mapped IO, registers, peripherals, caches, or architecture feel like they're doing embedded development when they really aren't.

/rant.
User avatar
Vincent
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 6
Joined: Fri Apr 26, 2013 1:32 am
Current Project: Learning C++, Java, and OO
Favorite Gaming Platforms: PC, Famicom and PS2
Programming Language of Choice: C++, Java
Location: Spain

Re: How to get started with low - level programming?

Post by Vincent »

I think that understanding basic computer science (as Falco said >> computer architecture, components, chipsets, memory, cache, registers and other good stuff alike)and low level coding in Assembler, then getting yourself deep into C++ is a great way to go from clueless to super saiyan.
"Stop bitchin' and start codin' !!!" by myself
kordag
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 5
Joined: Tue May 28, 2013 12:24 am

Re: How to get started with low - level programming?

Post by kordag »

Yeah I understand what Falco is saying. I just wasn't sure if doing something like finding a platform and coding for it from nothing was a good idea. I think I'm going to buy one of those starter kits or something similar. Anyone have suggestions on a micro controller to buy? I looked on other forums but pretty much everyone has a different answer. Preferably one with good documentation on the micro controller itself and not just the APIs they use. The Raspberry Pi is cool but it will cost around $80 or $90 for me to buy and I just don't have the money right now.
User avatar
Vincent
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 6
Joined: Fri Apr 26, 2013 1:32 am
Current Project: Learning C++, Java, and OO
Favorite Gaming Platforms: PC, Famicom and PS2
Programming Language of Choice: C++, Java
Location: Spain

Re: How to get started with low - level programming?

Post by Vincent »

aren't there any simulator softwares of a gadget like those ? It might not be the same as havin the tual device but still...could be a start.
"Stop bitchin' and start codin' !!!" by myself
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: How to get started with low - level programming?

Post by dandymcgee »

Well you can always start with x86 ASM while saving up. There are a ton of great resources to read and learn.

One of my personal favorites is "The Art of Assembly Language" which you can find for free online:
http://www.ic.unicamp.br/~pannain/mc404 ... sembly.pdf

I learned quite a few nifty concepts that helped me understand not only assembly better, but programming and computers in general.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
kordag
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 5
Joined: Tue May 28, 2013 12:24 am

Re: How to get started with low - level programming?

Post by kordag »

So I keep looking around and found the MSP430 LaunchPad Value Line Development kit. It is a $10 kit that is suppose to be really good. Also thanks for the help everyone.
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: How to get started with low - level programming?

Post by Falco Girgis »

kordag wrote:So I keep looking around and found the MSP430 LaunchPad Value Line Development kit. It is a $10 kit that is suppose to be really good. Also thanks for the help everyone.
Excellent choice. The MSP430 is a fantastic little truly embedded platform. It doesn't have enough RAM to store all of the printf formatters, and I don't think it even had a heap when I developed for it in college. It has many peripherals that you can play with and interface hardware through, and MSP430 assembly was fucking awesome.

I posted all of my MSP430 (and x86 assembly) assigments here, so you can check them out:
http://elysianshadows.com/phpBB3/viewto ... f=6&t=4015
kordag
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 5
Joined: Tue May 28, 2013 12:24 am

Re: How to get started with low - level programming?

Post by kordag »

Yeah that is why I bought it and thanks for the link. Also I just bought a Dreamcast. Not sure why but I'll do something with it at some point.
Post Reply