<story><title>Putting the “You” in CPU</title><url>https://cpu.land/</url></story><parent_chain><item><author>mgaunard</author><text>How can you call yourself a programmer if you don&amp;#x27;t know the basics?&lt;p&gt;If you&amp;#x27;re gonna skip education, you better make up for it by going above and beyond what they teach with your self-learning.</text></item><item><author>__bjoernd</author><text>Confirmation Bias. How many &amp;quot;programmers&amp;quot; went through a traditional university CS course?</text></item><item><author>mgaunard</author><text>wouldn&amp;#x27;t any programmer already know this, assuming you studied for a bachelor&amp;#x27;s degree or more?&lt;p&gt;At least if you didn&amp;#x27;t skip the computer architecture and operating systems classes.&lt;p&gt;For me it was a common thing to define an ISA, implement a simulator and assembler, and hand-write some assembly as part of learning how computers work.  
A dedicated man might go the extra mile and implement it in FPGA, or write a LLVM backend.&lt;p&gt;Then there is all the operating system aspect. It&amp;#x27;s quite common to implement your own kernel there to learn, or at least to modify an existing one.</text></item><item><author>dwrodri</author><text>Love resources like this. I’m getting my feet wet in the RISC-V world, and it’s clear that people who want to push FOSS forward are going to need knowledge like this to get software working well on all of the SBCs that are coming out.</text></item></parent_chain><comment><author>xenocratus</author><text>This sort of gatekeeping is the kind of reason why a lot of people are put off by engineers - &amp;quot;oh, you don&amp;#x27;t know X? You&amp;#x27;re clearly not a software engineer&amp;quot;.&lt;p&gt;There&amp;#x27;s a reason abstraction layers exist, perhaps you should try and figure out why your mental model of software does not account for that.</text></comment>
<story><title>Putting the “You” in CPU</title><url>https://cpu.land/</url></story><parent_chain><item><author>mgaunard</author><text>How can you call yourself a programmer if you don&amp;#x27;t know the basics?&lt;p&gt;If you&amp;#x27;re gonna skip education, you better make up for it by going above and beyond what they teach with your self-learning.</text></item><item><author>__bjoernd</author><text>Confirmation Bias. How many &amp;quot;programmers&amp;quot; went through a traditional university CS course?</text></item><item><author>mgaunard</author><text>wouldn&amp;#x27;t any programmer already know this, assuming you studied for a bachelor&amp;#x27;s degree or more?&lt;p&gt;At least if you didn&amp;#x27;t skip the computer architecture and operating systems classes.&lt;p&gt;For me it was a common thing to define an ISA, implement a simulator and assembler, and hand-write some assembly as part of learning how computers work.  
A dedicated man might go the extra mile and implement it in FPGA, or write a LLVM backend.&lt;p&gt;Then there is all the operating system aspect. It&amp;#x27;s quite common to implement your own kernel there to learn, or at least to modify an existing one.</text></item><item><author>dwrodri</author><text>Love resources like this. I’m getting my feet wet in the RISC-V world, and it’s clear that people who want to push FOSS forward are going to need knowledge like this to get software working well on all of the SBCs that are coming out.</text></item></parent_chain><comment><author>zerodensity</author><text>If only this was how it worked :(&lt;p&gt;From my experience a substantial fraction of programmers learn the absolute minimum to get a job.&lt;p&gt;Then they either learn on the job or ask the same questions over and over again, never learning. The latter being the really annoying people to work with.</text></comment>