#hardware programming
Explore tagged Tumblr posts
Text
Normally I just post about movies but I'm a software engineer by trade so I've got opinions on programming too.
Apparently it's a month of code or something because my dash is filled with people trying to learn Python. And that's great, because Python is a good language with a lot of support and job opportunities. I've just got some scattered thoughts that I thought I'd write down.
Python abstracts a number of useful concepts. It makes it easier to use, but it also means that if you don't understand the concepts then things might go wrong in ways you didn't expect. Memory management and pointer logic is so damn annoying, but you need to understand them. I learned these concepts by learning C++, hopefully there's an easier way these days.
Data structures and algorithms are the bread and butter of any real work (and they're pretty much all that come up in interviews) and they're language agnostic. If you don't know how to traverse a linked list, how to use recursion, what a hash map is for, etc. then you don't really know how to program. You'll pretty much never need to implement any of them from scratch, but you should know when to use them; think of them like building blocks in a Lego set.
Learning a new language is a hell of a lot easier after your first one. Going from Python to Java is mostly just syntax differences. Even "harder" languages like C++ mostly just mean more boilerplate while doing the same things. Learning a new spoken language in is hard, but learning a new programming language is generally closer to learning some new slang or a new accent. Lists in Python are called Vectors in C++, just like how french fries are called chips in London. If you know all the underlying concepts that are common to most programming languages then it's not a huge jump to a new one, at least if you're only doing all the most common stuff. (You will get tripped up by some of the minor differences though. Popping an item off of a stack in Python returns the element, but in Java it returns nothing. You have to read it with Top first. Definitely had a program fail due to that issue).
The above is not true for new paradigms. Python, C++ and Java are all iterative languages. You move to something functional like Haskell and you need a completely different way of thinking. Javascript (not in any way related to Java) has callbacks and I still don't quite have a good handle on them. Hardware languages like VHDL are all synchronous; every line of code in a program runs at the same time! That's a new way of thinking.
Python is stereotyped as a scripting language good only for glue programming or prototypes. It's excellent at those, but I've worked at a number of (successful) startups that all were Python on the backend. Python is robust enough and fast enough to be used for basically anything at this point, except maybe for embedded programming. If you do need the fastest speed possible then you can still drop in some raw C++ for the places you need it (one place I worked at had one very important piece of code in C++ because even milliseconds mattered there, but everything else was Python). The speed differences between Python and C++ are so much smaller these days that you only need them at the scale of the really big companies. It makes sense for Google to use C++ (and they use their own version of it to boot), but any company with less than 100 engineers is probably better off with Python in almost all cases. Honestly thought the best programming language is the one you like, and the one that you're good at.
Design patterns mostly don't matter. They really were only created to make up for language failures of C++; in the original design patterns book 17 of the 23 patterns were just core features of other contemporary languages like LISP. C++ was just really popular while also being kinda bad, so they were necessary. I don't think I've ever once thought about consciously using a design pattern since even before I graduated. Object oriented design is mostly in the same place. You'll use classes because it's a useful way to structure things but multiple inheritance and polymorphism and all the other terms you've learned really don't come into play too often and when they do you use the simplest possible form of them. Code should be simple and easy to understand so make it as simple as possible. As far as inheritance the most I'm willing to do is to have a class with abstract functions (i.e. classes where some functions are empty but are expected to be filled out by the child class) but even then there are usually good alternatives to this.
Related to the above: simple is best. Simple is elegant. If you solve a problem with 4000 lines of code using a bunch of esoteric data structures and language quirks, but someone else did it in 10 then I'll pick the 10. On the other hand a one liner function that requires a lot of unpacking, like a Python function with a bunch of nested lambdas, might be easier to read if you split it up a bit more. Time to read and understand the code is the most important metric, more important than runtime or memory use. You can optimize for the other two later if you have to, but simple has to prevail for the first pass otherwise it's going to be hard for other people to understand. In fact, it'll be hard for you to understand too when you come back to it 3 months later without any context.
Note that I've cut a few things for simplicity. For example: VHDL doesn't quite require every line to run at the same time, but it's still a major paradigm of the language that isn't present in most other languages.
Ok that was a lot to read. I guess I have more to say about programming than I thought. But the core ideas are: Python is pretty good, other languages don't need to be scary, learn your data structures and algorithms and above all keep your code simple and clean.
#programming#python#software engineering#java#java programming#c++#javascript#haskell#VHDL#hardware programming#embedded programming#month of code#design patterns#common lisp#google#data structures#algorithms#hash table#recursion#array#lists#vectors#vector#list#arrays#object oriented programming#functional programming#iterative programming#callbacks
16 notes
·
View notes
Text
Cable chaos
#digitalismmm#digitalism#digital#tech#aesthetic#photography#machines#art#techcore#vintage#computer#computing#hardware#software#wires#cables#retro#internet#online#coding#programming
485 notes
·
View notes
Text
#programmer humor#programming#geek#nerd#programmer#technology#computer#phone#mac#windows#os#operating system#website#web development#dev#developer#development#full stack developer#frontend#backend#software#hardware#html#css#meme#despicable me#gru#joke#software engineer#apple
223 notes
·
View notes
Text
Paranoia 1.0 AKA One Point O (2004)
#paranoia#tech noir#hacking#electronics#hackers#computers#cyberpunk#cyberpunk movies#cybersecurity#cyberpunk aesthetic#glitch#00s#00s aesthetic#2000s#00s movies#neo noir#computer bug#microchips#hardware#programming
115 notes
·
View notes
Text
i have no computer goals. i dont have any computer wants or needs. im likea computer buddhist. this is my main barrier to coding
#i dont need to automate anything.#i dont really care about networks or graphics programming.#i dont really want to do anything hardware related.#and i DONT want to make websites.
127 notes
·
View notes
Text
DAVE: do you think the army men in toy story came like preprogrammed with horrible memories of a war they never really fought in or did andys play create those memories
DAVE: like do they come out of the bucket quietly rocking muttering about hill 40 or did andy force them to kill
JOHN: …….gonna be thinking about that one. :(
#submission#homestuck#incorrect homestuck quotes#dave strider#john egbert#mod terezi#i would say they weren't aware or had any imprinted history#mostly because from what we can tell none of the toys up until buzz lightyear had this crisis of identity#maybe they did but it we didn't see any of it and none of it is ever mentioned#and every buzz lightyear toy we see is affected by this dissociative state upon first awakening#but we also see zurg affected by this who-though he is not buzz- is of a similar make and quality#so my theory is that simpler toys with less complex internals and “programming” are not prone to this#but ones who do have internal hardware are the ones who are swayed by it most easily
117 notes
·
View notes
Text
I know this take has been done a million times, but like…computing and electronics are really, truly, unquestionably, real-life magic.
Electricity itself is an energy field that we manipulate to suit our needs, provided by universal forces that until relatively recently were far beyond our understanding. In many ways it still is.
The fact that this universal force can be translated into heat or motion, and that we've found ways to manipulate these things, is already astonishing. But it gets more arcane.
LEDs work by creating a differential in electron energy levels between—checks notes—ah, yes, SUPER SPECIFIC CRYSTALS. Different types of crystals put off different wavelengths and amounts of light. Hell, blue LEDs weren't even commercially viable until the 90's because of how specific and finicky the methods and materials required were to use. So to summarize: LEDs are a contained Light spell that works by running this universal energy through crystals in a specific way.
Then we get to computers. which are miraculous for a number of reasons. But I'd like to draw your attention specifically to what the silicon die of a microprocessor looks like:
Are you seeing what I'm seeing? Let me share some things I feel are kinda similar looking:
We're putting magic inscriptions in stone to provide very specific channels for this world energy to flow through. We then communicate into these stones using arcane "programming" languages as a means of making them think, communicate, and store information for us.
We have robots, automatons, using this energy as a means of rudimentarily understanding the world and interacting with it. We're moving earth and creating automatons, having them perform everything from manufacturing (often of other magic items) to warfare.
And we've found ways to manipulate this "electrical" energy field to transmit power through the "photonic" field. I already mentioned LEDs, but now I'm talking radio waves, long-distance communication warping and generating invisible light to send messages to each other. This is just straight-up telepathy, only using magic items instead of our brains.
And lasers. Fucking lasers. We know how to harness these same two energies to create directed energy beams powerful enough to slice through materials without so much as touching them.
We're using crystals, magic inscriptions, and languages only understood by a select few, all interfacing with a universal field of energy that we harness through alchemical means.
Electricity is magic. Computation is wizardry. Come delve into the arcane with me.
#computer programming#computer science#computing#technology#tech#hardware#software#ham radio#robots#robotics#microcontrollers
26 notes
·
View notes
Text
N64 architecture
#nintendo 64#nintendo#hardware#programming#tech#CPU#GPU#RAM#computation#MIPS#SGI#silicon graphics#NEC#90s#vintage computing
33 notes
·
View notes
Text
@beesbeesbees42 (putting this here just so i don't spam op's notifs;) THAT I DID, YES!!! it took sooooo so long because getting all the minigame exclusive items was a pain as was fishing up the remaining fish (LOOKING AT YOU, ANGLERFISH) and getting all the health upgrades from charlotte & ambrose... but i know this game like the back of my hand it is my absolute favorite game ever and that's no exaggeration 😭😭 I DIDNT KNOW U KNEW THIS GAME TOO THATS SO KEWL!!!!!!
#wolfie rambles#(former?) animal jam players AND petz enjoyers.... all cut from the same cloth i feel 🤝🤝#still though i don't feel completely content bc like. i haven't gotten all the minigame accessories' color variants -#aside from the headdress bow where i got at least three (i wanted the pink one to match clara's)#but there's like 10(ish?) minigames in whole. you don't have to win the minigames you just have to clear them#at least five times in a row before you get rewarded a new variant#some minigames you simply cannot afk to clear (like the elephant and penguin ones)#AND I COULD JUST USE A SPEEDUP PROGRAM BUT... I 100%'D IT ON REAL HARDWARE AND GAH....#okay done rambling; it's not even a big deal BUT I STILL LIE AWAKE LIKE ''i didnt REALLY 100% it though....''#same dilemma i have with the dog island. i didn't truly 100% it bc that gold bar item you only get in minigames continues to elude me
4 notes
·
View notes
Text
10 days of emotional contempt, and I finally put these OSTs on my iTunes program this Saturday. They were ready to be uploaded to my laptop’s music library by last weekend, but that dumb Spider-Man moral obligation got in the way.
#photo#hobby#habit#demon slayer kimetsu no yaiba#hashira training arc#kimetsu no yaiba#demon slayer#yugioh dark side of dimensions#original soundtrack#dvd/cd#episodes 4-6#score music#laptop#itunes#music library#uploaded#program#hardware#anime ost#anime soundtrack#10 day wait#successful weekend#busy Saturday#greedy collector#digitizing music#spoiled#otaku#in kazuki takahashi’s name#yugioh#yugioh duel monsters
2 notes
·
View notes
Text
i actually think hatori is more of an electrical/hardware engineer than an informatics/information technology/software engineering person
#from the fanbook - he says he has the ability to ''flip switches he isn't supposed to''#in other words - 1s and 0s and currents#off and on#i think at the very granular level that's the mechanics of hatori's power#and i mean this is applicable to computer science and IT - but not that much#the electrical and hardware manipulation is VERY abstracted away into programming languages#and im of the opinion that hatori... doesn't know how to program computers#also when we see him demonstrate his abilities they are either hacking drones and helicopters that are likely programmed in lower-#-level languages and place a larger emphasis on electrical engineering#or hacking radio waves which i mean that's still some sort of off-on thing#the software engineering route of changing ports n permissions n stuff is.. i think not hatori's thing#but who knows... i really like hatori infosec interpretations... its just that i also think in canon he's an electrical engineer type guy#(not shitting on electrical engineers - infact i think they do better stuff than me - the loser infosec guy who can't do physics#to save his life)#my post canon hc for him is that he cleans up and goes to post-secondary school and finally learns the theory behind all of the stuff#-he CAN do#i think he'd unlock a lot of potential that way#but what do i know i am just speculating on the mechanics of psychic powers#milk (normal)#hatori tag#ah this is just me rambling i wanted to get the thought out
13 notes
·
View notes
Text
Like that one post abt 'find out who are you and then do it on purpose' but instead its 'find out how to activate weird insane computer options you stumble into by accident using a keyboard shortcut. And then do them on purpose'
#like i saw a vid by technology connections abt microwaves#n he said he always finds out what all the buttons do even if just one will serve him fine#bcos he wants to see if he could be doing things even better or easier or just if theres any cool shit#n thats become a mantra. cutely dipping my toes into altering my laptop#i do need to take like a fundamentals class or smthn tho#im proficient in programs (esp figuring out what they do) but the actual OS and hardware i could stand to learn more abt
3 notes
·
View notes
Text
03/12/21
#digitalismmm#digitalism#digital#tech#techcore#computer#machine#hardware#software#wires#compsci#programming#aesthetic#retro#throwback#photography#machines#art
37 notes
·
View notes
Text
#programmer humor#programming#geek#nerd#programmer#python#laptop#c#meme#pc#dev#developer#full stack#fswd#software development#software engineer#software#hardware#coding#code#javascript#html#css#web development#programming meme#computer science#cs#website#apps#programs
456 notes
·
View notes
Text
Paranoia 1.0 AKA One Point O (2004)
#paranoia#tech noir#electronics#hackers#computers#cyberpunk#cyberpunk movies#cybersecurity#cyberpunk aesthetic#glitch#00s#00s aesthetic#2000s#00s movies#neo noir#microchips#hardware#programming#glitch art#deborah kara unger
33 notes
·
View notes
Text
source: https://www.moria.us/blog/2020/10/n64-part3-building-a-sample-program
48 notes
·
View notes