Hacker Newsnew | past | comments | ask | show | jobs | submit | mailey's commentslogin

Wonderful, I've been looking resources like this. It seems to me its difficult to find project ideas for students/new beginners who want to get into the field.

most of the advice I got along the lines of "get an arduino...." or "Here is some device write this complex thing for it". There wasnt any in between tutorials.

much appreciated.


speaking of, are there any benefits/disadvantages of learning data structures in java/python compared to C/C++ ?


The data structures and algorithms themselves should be the same regardless of what language you are using.

The bigger difference here would be C versus C++, as the language features present in the latter allow significantly more abstraction than the former. Implementing fundamental data structures in C can be very instructive but you will also spend more time on low-level details.

With Java and Python you can ignore memory management to some extent, as these languages are garbage-collected. That could also be a plus or a minus depending on your point of view. When learning the subject, it might be better to be forced to do manual memory management, to learn about the pertinent issues. And then once in "production", you can appreciate the convenience of a garbage-collected language.

When I studied EECS at Berkeley in the late 20th century, we used the following languages:

1. CS61A "Structure and Interpretation of Computer Programs" - Scheme/Lisp. Very highly abstracted from the machine details.

2. CS61B Algorithms and data structures - C++/Java. Allows "just enough" machine details.

3. CS61C Machine structures - MIPS assembly language and some C. All the machine details.

4. EECS 152 Computer Architecture - Implement a RISC/MIPS CPU and SDRAM controller using VHDL.


Unsure why this is downvoted? This question seems reasonable.

Personally I think Python specifically allows an easier understanding of the data structure in principal, but C/C++ would create a better understanding of data structures as they operate with constraints like memory/resource availability. Kinda depends what you’re after I think.


This spring, I completed a data structures course at a large state school. We used Java at our university because Princeton did, and I imagine Princeton did because of the ease of segmenting concepts into classes because Java bytecode is the same between the students' devices and the machines which were used to grade their assignments (our grades were determined as a fraction of the number of test-cases our code would pass).


You can also use one of these suppliers: https://www.tme.eu https://www.reichelt.com/

although shipping can take from 2 to 7 days (despite the proximity)


I've had a reasonable experience with Reichelt but their shipping charges were high, and it still took longer than 48 hours to arrive (even if they dispatch on the same day)

For some reason DigiKey seem to have absolutely perfect timing with UPS, you can track it going state-to-state in the US, and then seamlessly to Germany and on to the connecting early morning flight to Finland (via Sweden).

Now I've said this I'm prepared to have my heart broken on my next order as it goes the long way round by ship or something ;)


Can confirm TME can be pretty good. Their selection is limited, but cheap and swift shipping.


I'm interested as well in finding out about being able to flash custom firmware. Is there any other resources to follow?


I'm not really a fan of chatgpt-related topics :> lets just say it will take sometime for it, to grow on me.


I know what you mean, sometimes I wonder how small is really small, what I had in mind when I posted this thread was a project that might help me gain experience in building something related to embedded/IoT devices (routers, phones, low level but not too level that it doesn't have a kernel if that makes sense).


What kind of basic minimum hardware I would need to take on a project like this?


What kind of documentation one would normally need for this sort of project? If the documentation are not great or missing something, is there steps that could be taken to figure out the chips functions in order to implement them?


The chip has complete-ish sdk here(https://github.com/bouffalolab/bouffalo_sdk) we use as "documentation". Datasheet and the reference manual are incomplete.


Thank you, that does sound interesting, and I do have an interest in cybersecurity (just not IT security as in firewalls, incident response ...etc). I saw some interesting stuff being done recently from programming/writing code to emulate a microcontroller/CPU in something like qemu, to power glitching and bypassing protection on some chips to allow accessing serial/debug interface or even some of the mobile baseband reverse engineering/emulation being done by experienced security researchers. but I couldnt tell what kind of experience I would need to have for that sort of job, or where to start, at least I think starting with embedded projects and low level OS-related stuff would someday lead me to that career path.

> my company is hiring and likely will be all year. We probably have a use for a new SWE on the embedded side. Email me at my username at Gmail.

I'll keep this mind, thank you.


We don't do IT cybersecurity. That stuff is boring. :)

Our work is much closer to the metal. There's a big hardware component. Based on what you describe, we have work that I strongly suspect you'd find interesting. Your intuition was correct - low level coding and OS stuff is where all the goods are at.

Shoot me an email at cushychicken@gmail.com and I can tell you about what we do in a bit more detail.


Sorry about cutting the title since it was too long, I did keep most of the original article's title.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: