I could write a book on this! But the section that resonated most with me was: "Look to Other Fields, Learn From Other Fields"<p>My elevator pitch background: I first learned to code when I was at school, back in 1982 (which, technically, makes me a 40 year programmer), learning Basic for the exam, and simple games on those new-fangled programmable calculators. Then I went in other directions - lab tech, soldier (for 7 weeks), bartender etc. I bought my first computer (Amiga 500!) in 1990, but wasn't allowed near a computer at work until 1993. I coded my first "professional" website in 2001, and another in 2006; but I only landed my first full-time web developer job in 2014. Also: I failed my final school exams quite badly - I finally got my degree (with the Open University) in 2011.<p>tl;dr: If there's a way to make my life-path more difficult, I'll generally embrace it.<p>The reason why I'm a web developer is because of my strange hobbies: writing poetry; and constructing worlds/languages. For me, it's never been enough to dabble in my hobbies. I want to share them with the world (whether the world wants it or not) and, back in the mid-90s the simplest way to do that is via the internet using whatever tech I could lay my hands on at the time.<p>+ I delved into deep-learning HTML (and, later, CSS/JS) because I needed my poems to display in the same way as I formatted them on the page. I taught myself about how to create PDF docs using (PHP) code, and learned about crafting eBooks, because I wanted an easy way to distribute my poems beyond the website. I taught myself the basics of SQL because I needed a way to organise and manage the poems on the website; building my own PHP templating system was driven by similar necessity.<p>+ My interest in computer graphics grew from my need to display maps on my conworld/conlangs website. I learned about the mad universe of font creation, and displaying fonts in a page, because my conlangs each had their own conscript (one of them logographic!). My database skills evolved as I built lexicon pages for each of my conlangs, and an encyclopaedia detailing each of my societies and nations. My interactive/animated graphics learning started from the need to explain/explore my world's biology.<p>+ My biggest learnings, which have been massively useful in my professional coding career, are the soft skills around dealing with people, organisations and the politics which go with each. I surprised myself during my brief army career when I discovered I was quite good at team-working, that I didn't have to do everything myself. Lab work taught me how to cope with boring, repetitive tasks. Bar work taught me how to talk to strangers, how to cajole them into spending more money, and how to get rid of them at the end of the session with minimal violence. My 18 years in the civil service taught me everything I will ever need to know about navigating office politics; it also taught me that the work I do can have an impact far beyond the office (or the code), that learning and caring about my clients/stakeholders is as important as impressing my line managers. It taught me about effective delegation and distributed working - how to get colleagues to happily give their best efforts to meet my, and our, objectives and deadlines.<p>Another tl;dr: there's no single path to becoming a good software engineer, no book of rules setting out the steps required to building a successful, profitable career in the industry. Just do your best, be nice to people, and value/love your family and friends.