Live data from Hacker News

Low-Level Programming University – A roadmap to becoming a low-level programmer

github.com

151–160 of 168 posts

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#151
post #137

Earlier quoted context omitted.

How could someone make them selves worth even interviewing for a job like that? I do Ruby/python and Devops with some small hobby c and Linux stuff in my free time

Follow the guide in the link. Do the Arduino stuff first; being unable to do something will drive you to learn exactly as much C and assembly as you need. Learn to write network code in C. Learn how TCP/IP works and try to do weird things, such as transmitting information with ICMP (ping) packets. The next step (for that particular company's work) would be to actually reverse engineer some complex code and write abou…

I was under the impression that a lot of stuff on an arduino was abstracted away. You mostly set gpio pins to high and low. I have a raspberry pi that can do that.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#152
post #137

Earlier quoted context omitted.

How could someone make them selves worth even interviewing for a job like that? I do Ruby/python and Devops with some small hobby c and Linux stuff in my free time

I'll start with what you already have: There is a small value in the Ruby/Python experience. That kind of thing serves to script some of the tools, including: IDA Pro, Binja, gdb, and scons. There is also a small value in the Devops stuff I think, but Devops isn't my thing so... you mean server admin tasks? The hobby c and Linux stuff is most valuable. We write emulation in C. Most of us use Linux for everything, but…

Yeah devops, web server admin, automation and problems developers don't want to or don't have access to deal with.

Seems like people have a lot of experience going into that field. Most of my hobby stuff isn't that interesting. I did write a mostly working chip8 emulator lol. Thanks for the info

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#153

Earlier quoted context omitted.

Usually it's around $10K (sig-gen, scope, logic analyzer, jtag) but occasionally there's an RF test chamber and associated gear involved :) Also, if you're dealing with uCs, you'll almost always want at least a Saleae and a 100+mhz scope.

Interestingly enough, I worked as an embedded dev for 3 years already and I used a scope and a Logic analyzer maybe 1 week during this time. I do admit that my job is kind of shitty and I'm working on messy in-house frameworks. I bet Saleae + oscope are indispensable when doing board bringup or things like that tough. For my home-lab I went the el cheapo way and bought my own hackable Rigol (brought it to 100 Mhz) an…

Yea, it depends on what you're up to. Post setup, when you're just doing DSP or something you're not going to need much at all but we spin boards pretty frequently due to our contract cycle.

I've gone the same direction with my home setup. "hacked" Rigol DS1054Z + power supply and anti static mat. It's not as nice as my Tek at work but it'll do most of what I want. I usually just borrow the saleae from work if I need one and I have a little bus pirate that's occasionally indispensable for SPI/serial/I2c stuff

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#154
post #152

Earlier quoted context omitted.

I'll start with what you already have: There is a small value in the Ruby/Python experience. That kind of thing serves to script some of the tools, including: IDA Pro, Binja, gdb, and scons. There is also a small value in the Devops stuff I think, but Devops isn't my thing so... you mean server admin tasks? The hobby c and Linux stuff is most valuable. We write emulation in C. Most of us use Linux for everything, but…

Yeah devops, web server admin, automation and problems developers don't want to or don't have access to deal with. Seems like people have a lot of experience going into that field. Most of my hobby stuff isn't that interesting. I did write a mostly working chip8 emulator lol. Thanks for the info

The chip8 emulator is definitely good. That sort of thing counts. You could add a JIT. :-)

You might want to see what you can do with an interactive disassembler. Your choices are:

1. IDA Pro freeware version -- this is x86 only and kind of obsolete

2. IDA Pro demo version -- this is wonderful except that you can't save your work and it times out after about an hour

3. Hopper -- this is cheap

4. Binja (binary ninja, from Vector 35) -- mid price

Grab some firmware updates off the web, especially for things you happen to own, or some normal executables. See how well you can understand them with the interactive disassembler. You might need to decompress them; look for magic numbers that indicate compression.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#155

Earlier quoted context omitted.

That's not how I understood it - I thought it was about the upper limit of theoretical parallelism. But I'm an EE, so maybe I misunderstood some finer points?

An upper limit on the benefits . To me, an upper limit is a negative result. When Leon (in Blade Runner ) finds out that he only has 4 years to live (an upper bound) he takes it pretty hard. Amdahl: A fairly obvious conclusion which can be drawn at this point is that the effort expended on achieving high parallel processing rates is wasted unless it is accompanied by achievements in sequential processing rates of ver…

Thank you for the excellent explanation; I will consider it more thoroughly.

I think mathematicians consider an upper limit a positive bound - positive, in the sense of being well defined; you're using negative in the other sense? I actually like that quite a bit.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#156
post #151

Earlier quoted context omitted.

Follow the guide in the link. Do the Arduino stuff first; being unable to do something will drive you to learn exactly as much C and assembly as you need. Learn to write network code in C. Learn how TCP/IP works and try to do weird things, such as transmitting information with ICMP (ping) packets. The next step (for that particular company's work) would be to actually reverse engineer some complex code and write abou…

I was under the impression that a lot of stuff on an arduino was abstracted away. You mostly set gpio pins to high and low. I have a raspberry pi that can do that.

An Arduino is just a micro controller with a standard set of pinouts for easy access to peripherals. You don't have to use the IDE and high level programming language. At least for the AVR based ones you can write pure C or assembly, build it with the AVR tool chain, and upload and run it natively. I'm sure you can with ARM or Intel based Arduino clones too.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#157

The bearishness here surprises me. The more a company spends on infrastructure, the more they need low-level people. A good low-level programmer can reduce cost requirements 10x or more. Any company spending millions or billions on infrastructure can make enormous savings by hiring the right people. Crucial for Google, Amazon, Facebook, and even midsize startups can see a big improvement. And its difficult to fill th…

The creation of that which is novel is another allure.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#158

Earlier quoted context omitted.

Maybe! We are located near Orlando, FL with offices all over the country. If you are comfortable with low level hacking, assembly, C, etc. then it might be a good fit. The only hard requirement is you must be a US citizen.

Well, I was in fact born in America, and have been comfortable with low-level hacking for years.

Cool! I saw your LinkedIn profile and passed it onto our recruiter type person. She's going to reach out to you.

Re: Low-Level Programming University – A roadmap to becoming a low-level programmer

#159
post #151

Earlier quoted context omitted.

Follow the guide in the link. Do the Arduino stuff first; being unable to do something will drive you to learn exactly as much C and assembly as you need. Learn to write network code in C. Learn how TCP/IP works and try to do weird things, such as transmitting information with ICMP (ping) packets. The next step (for that particular company's work) would be to actually reverse engineer some complex code and write abou…

I was under the impression that a lot of stuff on an arduino was abstracted away. You mostly set gpio pins to high and low. I have a raspberry pi that can do that.

You busted me. I have never programmed with Arduino, just Atmel boards. I wrongly assumed they were similar. I guess Arduino is leaps and bounds easier.
Post reply on HN