<story><title>Ask HN: How can I become a self-taught software engineer?</title><text>I don&amp;#x27;t know where to exactly start. I was thinking of first learning Python by studying from the book &amp;quot;Automate the Boring Stuff.&amp;quot; Then for the actual CS stuff, maybe taking the online course CS50 offered by Harvard, then moving on from there.&lt;p&gt;But after learning Python then what? I&amp;#x27;m not exactly sure where my interest lies or what I actually feel like building. Thus, I&amp;#x27;m not sure if I want to go the web route, which seems common to many, or going some different area?&lt;p&gt;I looked at the Google Software Engineer minimum qualifications, just to get an idea of areas to pursue. It reads: &amp;quot;Experience working with two or more from the following: web application development, Unix&amp;#x2F;Linux environments, mobile application development, distributed and parallel systems, machine learning, information retrieval, natural language processing, networking, developing large software systems, and&amp;#x2F;or security software development.&amp;quot;&lt;p&gt;I&amp;#x27;m not so fond of mobile development, and web I&amp;#x27;m unsure of. From those areas which are most accessible to a non-CS&amp;#x2F;Math&amp;#x2F;Engineering degree holder (bachelors in biology)? I believe Machine learning and NLP are more suited to Masters&amp;#x2F;PhDs? So maybe they are out of the question.&lt;p&gt;Any advice on how to tackle my journey in becoming a Software Engineer? Maybe an outline on how to approach my learning in steps?</text></story><parent_chain><item><author>zellyn</author><text>Mostly-joking-but-I-would-absolutely-make-good-on-it Offer: I will ask you one obnoxious* question at a time, with no deadlines, until you are a self-taught software engineer.&lt;p&gt;The first question is: What is the sum of the numbers from 1 to 1024. Please use Python, not the Gauss&amp;#x2F;two-triangles-make-a-rectangle mathematical method.&lt;p&gt;* - “obnoxious” means it&amp;#x27;s a leading question: it&amp;#x27;s simple to state, but you might have to learn a bunch of crap to even really fully understand the question.&lt;p&gt;Sample far-future questions:
- Does it seem magical that you can turn an NFA into a DFA?
- How does a shell pass stdout from one process to the stdin of the next?
- Why is the Frame Pointer technically unnecessary, but useful?
- Why do people complain about Go&amp;#x27;s nil pointers? What&amp;#x27;s wrong with them?</text></item></parent_chain><comment><author>eliah</author><text>That is a kind offer and probably a good way to go, but I have a small objection: I think at the end of it, OP would be a zellyn-taught software engineer, not a self-taught software engineer.</text></comment>
<story><title>Ask HN: How can I become a self-taught software engineer?</title><text>I don&amp;#x27;t know where to exactly start. I was thinking of first learning Python by studying from the book &amp;quot;Automate the Boring Stuff.&amp;quot; Then for the actual CS stuff, maybe taking the online course CS50 offered by Harvard, then moving on from there.&lt;p&gt;But after learning Python then what? I&amp;#x27;m not exactly sure where my interest lies or what I actually feel like building. Thus, I&amp;#x27;m not sure if I want to go the web route, which seems common to many, or going some different area?&lt;p&gt;I looked at the Google Software Engineer minimum qualifications, just to get an idea of areas to pursue. It reads: &amp;quot;Experience working with two or more from the following: web application development, Unix&amp;#x2F;Linux environments, mobile application development, distributed and parallel systems, machine learning, information retrieval, natural language processing, networking, developing large software systems, and&amp;#x2F;or security software development.&amp;quot;&lt;p&gt;I&amp;#x27;m not so fond of mobile development, and web I&amp;#x27;m unsure of. From those areas which are most accessible to a non-CS&amp;#x2F;Math&amp;#x2F;Engineering degree holder (bachelors in biology)? I believe Machine learning and NLP are more suited to Masters&amp;#x2F;PhDs? So maybe they are out of the question.&lt;p&gt;Any advice on how to tackle my journey in becoming a Software Engineer? Maybe an outline on how to approach my learning in steps?</text></story><parent_chain><item><author>zellyn</author><text>Mostly-joking-but-I-would-absolutely-make-good-on-it Offer: I will ask you one obnoxious* question at a time, with no deadlines, until you are a self-taught software engineer.&lt;p&gt;The first question is: What is the sum of the numbers from 1 to 1024. Please use Python, not the Gauss&amp;#x2F;two-triangles-make-a-rectangle mathematical method.&lt;p&gt;* - “obnoxious” means it&amp;#x27;s a leading question: it&amp;#x27;s simple to state, but you might have to learn a bunch of crap to even really fully understand the question.&lt;p&gt;Sample far-future questions:
- Does it seem magical that you can turn an NFA into a DFA?
- How does a shell pass stdout from one process to the stdin of the next?
- Why is the Frame Pointer technically unnecessary, but useful?
- Why do people complain about Go&amp;#x27;s nil pointers? What&amp;#x27;s wrong with them?</text></item></parent_chain><comment><author>xtagon</author><text>Please make this an app</text></comment>