Hello from North Carolina
-
- Posts: 4
- Joined: Mon Nov 23, 2020 9:37 pm
Hello from North Carolina
Stumbling across this is one of the happier moments in my life. I'm a professional web/app dev for 3+ years now with no computer science background (I went through a coding bootcamp) and I've been struggling to find different ways of "teaching" myself computer science. While I've found lots of great resources and have started toying with the idea of fiddling with assembly on the raspberry pi, I've been jealous of everyone that "got started" on all these old systems from the 80's where you "had" to use BASIC or assembly. This is literally a dream come true for me!
- desertfish
- Posts: 1097
- Joined: Tue Aug 25, 2020 8:27 pm
- Location: Netherlands
Hello from North Carolina
That is great to hear.
It's how I started as well (as a kid), on the Commodore-64 in the mid 80's first basic but quite soon assembly.
Later, assembly on the Amiga and then C -> C++ -> Java and Python -> C# and Kotlin (present time).
-
- Posts: 913
- Joined: Tue Apr 28, 2020 2:45 am
Hello from North Carolina
"Learning Computer Science" is a pretty broad goal and, short of getting an actual degree, is difficult to quantify. If you want to learn the basics of computer science, like why languages do what they do, there a lot of things to explore. A lot of great content on YouTube, actually, as good as any University lecture. Chances are, coming from web stack straight into 8-bit assembly, you'll be hopelessly lost. You may want to try gradually stepping down your level of abstraction. Build a console-based program with Python, then try to do the same thing with C. Learning the different languages and seeing how they deal with data should help you connect the dots. If you want to press further down the ladder of abstraction, then try assembly. Doing ARM assembly for a Raspberry Pi is not the best idea, as that is a platform designed to have many layers of abstraction between bare metal and userspace. The X16, however, is a perfect platform for learning assembly. It was designed to have you directly access everything, not depend on a big operating system and countless drivers and services.
-
- Posts: 39
- Joined: Sun Sep 20, 2020 12:04 am
Hello from North Carolina
Where in North Carolina? I'm just north of Asheville.
Hello from North Carolina
On 11/24/2020 at 9:13 PM, SlithyMatt said:
Doing ARM assembly for a Raspberry Pi is not the best idea, as that is a platform designed to have many layers of abstraction between bare metal and userspace.
I have not dug into many assemlies yet, but wait. Are you saying that in some systems (like RPi) I will not get to the lowest programming level, even if I'm coding in assembly?
-
- Posts: 913
- Joined: Tue Apr 28, 2020 2:45 am
Hello from North Carolina
8 minutes ago, Cyber said:
I have not dug into many assemlies yet, but wait. Are you saying that in some systems (like RPi) I will not get to the lowest programming level, even if I'm coding in assembly?
It depends. You can create an assembly program that runs entirely within Raspbian userspace, just like you would with C. But if you are looking to get all the way down to bare metal, you can do that, too, but the platform is not meant for that, so it will be an exercise in frustration more than anything, unless you were actually trying to create your own custom kernel. Either way, the experience of writing in ARM assembly for a complex (it's small but INVOLVED) system like the RPi will be a far cry from a simple system that's meant to be an assembly programming target like the X16 or any other 8-bit system.
Hello from North Carolina
Welcome, Chad! You'll find a continuum of fans here, ranging from hardware nerds to business nerds, and everynerd in between. There's a place for you!
-
- Posts: 4
- Joined: Mon Nov 23, 2020 9:37 pm
Hello from North Carolina
On 11/25/2020 at 5:59 PM, mrdoornbos said:
Where in North Carolina? I'm just north of Asheville.
Smack dab in Charlotte actually.
-
- Posts: 4
- Joined: Mon Nov 23, 2020 9:37 pm
Hello from North Carolina
On 11/24/2020 at 2:13 PM, SlithyMatt said:
"Learning Computer Science" is a pretty broad goal and, short of getting an actual degree, is difficult to quantify. If you want to learn the basics of computer science, like why languages do what they do, there a lot of things to explore. A lot of great content on YouTube, actually, as good as any University lecture. Chances are, coming from web stack straight into 8-bit assembly, you'll be hopelessly lost. You may want to try gradually stepping down your level of abstraction. Build a console-based program with Python, then try to do the same thing with C. Learning the different languages and seeing how they deal with data should help you connect the dots. If you want to press further down the ladder of abstraction, then try assembly. Doing ARM assembly for a Raspberry Pi is not the best idea, as that is a platform designed to have many layers of abstraction between bare metal and userspace. The X16, however, is a perfect platform for learning assembly. It was designed to have you directly access everything, not depend on a big operating system and countless drivers and services.
Hey thanks for the advice, you're spot on in every way. I've been at this for a while actually and have done all the things!
EdX is the best free online video based stuff I've found, plus the speaker acts likes he's on crack so it never gets boring lol
Code the Hidden Language of Computer Hardware and Software is a book that has been great for starting from absolutely nothing
Inside the Machine is a book that is awesome but not for starting from scratch, you gotta know some stuff first
Haven't messed with Python much, but have created various CLI's via Node, Ruby and Rust
Also a huge fan of shell scripting (Bash in my case)
Currently fiddling with the Rust language more and more, playing with libraries that interface with openGL to try and make some crappy 2D games
You're very right about assembly not being great on the pi, I fiddled with an Arduino 3+ years ago and was pleasantly surprised how easy it was to program (thought it would be harder going into it). I don't really have that anymore but I do have a pi lying around which is why I started seeing about fiddling with that for some basic assembly stuff. I'm probably gonna put that on hold now though and just wait for the X16 release, since it is literally everything I've been wanting.