So I have recently (a year ago....) taken a class, my first programming class (I am 45 ATM), at community college. It was C++ for Engineers and Scientists and was essentially a 16 week course into C++ where we went from Hello World to writing some relatively simple interactive software to perform calculations and computations for a user. I deeply enjoyed it but haven't messed around with it in a while, though it tickled an itch that I never knew I had. I found out I loved programming. I watch a load of videos on software and whatnot so its something that obviously deeply interests me.
This spring, I plan on taking possibly two classes at once and lately I have been wondering something that I would like some feedback on from the plethora of software dev's that frequent our little corner of the ether.
About half way through my class last year, my boss at the time (a software developer himself) mentioned to me the idea of writing in-line assembly in C++ for certain tasks that can be done more directly and faster as assembly, even though the compiler will do it for you. That doing certain things directly in this way, is a way to guarantee that the end result, is not the interpreted outcome based on the compiler, but the exact outcome that the engineer intends.
This blew my mind, the idea of writing in one language, inside another language. Bear in mind, this was my first foray into software so its no wonder that this was like some sort of odd magic.
So here then is my question. Would be benefit me to take a class in Intel Assembly? I believe it would as the way it was explained to me by my professor, my boss, our former IT director, that learning software from the beginning at a low level teaches you to think and act like a programmer and helps teach you to write robust and efficient code. With that in mind, would it not then make sense to be at least a bit knowledgeable in Assembly?
I really would like some honest real-world thoughts on this and have an open discussion that might not only benefit me, but others as well. We have a lot of wildly intelligent people here and its a waste to not exploit their knowledge and experience.
@Adrian A @VernK @cerving @jderimig @troj @Chad
Please tag other dev's on the forum as well who you believe would have some insight on this
I am a sr electromechanical design engineer so my interests are in microcontrollers and other devices that interact with the outside world, collect data, do things, etc. What exactly, I really don't know! That was one the hardest things I realized when I became able to somewhat write useable code......what do I do with it!?!? That still is a complicated question, but I do have some new ideas that I would like to try out, small things that I can build on. One of the things that interest me are timed events and interrupts because, well, in order to do things that are automated, you need a state machine and for that, you need timing. So understanding that is a good place to begin. Though, thats not directly my question, but I thought it might be relevant in some fashion.
Thank you all in advance!!
Side note, I have a lot of micro's that I have bought over the years with the hopes of tinkering with. Arduinos and clones, STM32 blue and black pill dev boards, PIC micro's, Raspberry Pi Pico (microcontroller, not the computer). Those are the platforms that I have to work with. I have VStudio through work and school and I work in a Windows environment and have zero knowledge of Linux other than knowing what it is.
This spring, I plan on taking possibly two classes at once and lately I have been wondering something that I would like some feedback on from the plethora of software dev's that frequent our little corner of the ether.
About half way through my class last year, my boss at the time (a software developer himself) mentioned to me the idea of writing in-line assembly in C++ for certain tasks that can be done more directly and faster as assembly, even though the compiler will do it for you. That doing certain things directly in this way, is a way to guarantee that the end result, is not the interpreted outcome based on the compiler, but the exact outcome that the engineer intends.
This blew my mind, the idea of writing in one language, inside another language. Bear in mind, this was my first foray into software so its no wonder that this was like some sort of odd magic.
So here then is my question. Would be benefit me to take a class in Intel Assembly? I believe it would as the way it was explained to me by my professor, my boss, our former IT director, that learning software from the beginning at a low level teaches you to think and act like a programmer and helps teach you to write robust and efficient code. With that in mind, would it not then make sense to be at least a bit knowledgeable in Assembly?
I really would like some honest real-world thoughts on this and have an open discussion that might not only benefit me, but others as well. We have a lot of wildly intelligent people here and its a waste to not exploit their knowledge and experience.
@Adrian A @VernK @cerving @jderimig @troj @Chad
Please tag other dev's on the forum as well who you believe would have some insight on this
I am a sr electromechanical design engineer so my interests are in microcontrollers and other devices that interact with the outside world, collect data, do things, etc. What exactly, I really don't know! That was one the hardest things I realized when I became able to somewhat write useable code......what do I do with it!?!? That still is a complicated question, but I do have some new ideas that I would like to try out, small things that I can build on. One of the things that interest me are timed events and interrupts because, well, in order to do things that are automated, you need a state machine and for that, you need timing. So understanding that is a good place to begin. Though, thats not directly my question, but I thought it might be relevant in some fashion.
Thank you all in advance!!
Side note, I have a lot of micro's that I have bought over the years with the hopes of tinkering with. Arduinos and clones, STM32 blue and black pill dev boards, PIC micro's, Raspberry Pi Pico (microcontroller, not the computer). Those are the platforms that I have to work with. I have VStudio through work and school and I work in a Windows environment and have zero knowledge of Linux other than knowing what it is.
Last edited: