3 ms·
Ok, so this is actually a topic which I've been thinking about quite a lot over the years. Back in college there was naturally a strong emphasis on writing you
by TrackerFF 7y ago
Ok, so this is actually a topic which I've been thinking about quite a lot over the years.
Back in college there was naturally a strong emphasis on writing your own code, after all, you're supposed to be learning. In the end, we had to roll out everything on our own - rarely, if ever, did we get to use libraries or frameworks.
They were extremely strict on plagiarism too, so you were constantly afraid of your code getting flagged (for whatever reason).
All of this really created a mindset that using libraries = cheating. Same with looking up help on the web.
It took me years to get rid of that mindset, simply because it didn't feel right.
- Stratoscope 7y agoWere you allowed to use a compiler? If so, you weren't writing your own code. You were just writing a description of the code in some human oriented programming language, and the compiler wrote the actual code for you. Also, the compiler almost certainly linked in a runtime library - more code you didn't write. But let's skip the compiler and its runtime, and even any assembler, and just write raw binary machine code. Now you're writing your own code, right? Well... On any modern processor, your so-called "machine code" is just a high level language that the processor compiles into its own internal operations - which don't look anything like your machine code and don't even get executed in the same order. So you're not writing the code the machine runs. You could avoid this issue by writing code for an older processor like the 6502, where your code bits go straight into the logic circuitry as is. In fact, that would be a darn good idea - you would learn a lot doing it!
- runeks 7y agoNo, no. Compilers don’t write (their own) code, they translate (our) code.
- growse 7y ago> No, no. Compilers don’t write (their own) code, they translate (our) code. No, no. Developers don't write (their own) code, they simply translate the (customer's) specifications.
- Gibbon1 7y ago> simply translate the (customer's) specifications. LOL no! If I did that my customers would go out of business.
- Stratoscope 7y agoIt was an allegory. A metaphor. A silly story. Here is a true story. When I first started programming, we were told that professional companies developed software as follows. (Of course we were a scrappy timesharing startup, so we took shortcuts, but this is what we were told the pros did.) • A systems analyst took business requirements and created a specification. • A programmer took the specification and used it to draw flowcharts. • A coder took the flowcharts and converted them into code in a particular programming language, hand-written on coding forms. • A keypunch operator took the coding forms and punched the code onto cards. Pop quiz! Who actually wrote the code: the programmer or the coder?
- xaedes 7y agoThe keypuncher?
- Stratoscope 7y agoYou may be closer to the mark than you realize. A good keypunch operator wouldn't just type in your code, they would also do some basic sanity checks on it, and either fix some of your bugs as they punch, or hand you back your coding form with some notes marked on it. After all, you didn't want to have to wait many hours or a full day to get back your card deck and printout to find what you did wrong. When you found a keypunch operator like that, you would seek them out every time, maybe even bring them little gifts. Of course now we are all our own keypunch operators!
- SAI_Peregrinus 7y agoFunnily enough my computer engineering course in college was pretty much this comment. Learn to code in C & ASM. Learn to hand-compile to ASM, and hand-assemble to machine instructions for the CPU we were using. Now learn VHDL. Implement a processor on an FPGA. Write a (tiny, minimal, not fully standards compliant) C compiler for it. You're back to step 1. Of course we didn't implement the synthesizer, or place & rout logic, or bitstream format, or the FPGA itself. You have to stop somewhere.