I think the "non-technical" bit is superfluous—we're all non-technical when we first learn to code.
I learnt to code at 14 after asking my GCSE ICT (as in, Word, Excel, and FrontPage—that's the sad state of IT education in the UK) teacher what the "header files" I saw in the Deus Ex SDK were. He introduced me to Java, and, to be very cliché, the rest is history.
The main "textbook" I read was "Introduction to Programming Using Java"[1] (then in its fourth edition), which goes at a very easy pace and explain things well (I love this book, maybe its the nostalgia goggles but I'll never forget it and what it taught me). I'll add that I didn't have the Internet at home at the time; I had only a handful of resources to help me and all problems I encountered I had to solve by myself. Very "grindy".
If I were to start over, I'd probably go for a much nicer language such as Python, and use its tutorial[2] as well as Mark Pilgrim's Dive Into Python[3][4], and then move onto Django.
Basically, the best way to code is by coding—think of something to build, then build it, ideally trying a different way. Remember to read documentation and other (ideally smarter) people's code and follow (and, importantly, try to understand the reason of) best practices.
I learnt to code at 14 after asking my GCSE ICT (as in, Word, Excel, and FrontPage—that's the sad state of IT education in the UK) teacher what the "header files" I saw in the Deus Ex SDK were. He introduced me to Java, and, to be very cliché, the rest is history.
The main "textbook" I read was "Introduction to Programming Using Java"[1] (then in its fourth edition), which goes at a very easy pace and explain things well (I love this book, maybe its the nostalgia goggles but I'll never forget it and what it taught me). I'll add that I didn't have the Internet at home at the time; I had only a handful of resources to help me and all problems I encountered I had to solve by myself. Very "grindy".
If I were to start over, I'd probably go for a much nicer language such as Python, and use its tutorial[2] as well as Mark Pilgrim's Dive Into Python[3][4], and then move onto Django.
Basically, the best way to code is by coding—think of something to build, then build it, ideally trying a different way. Remember to read documentation and other (ideally smarter) people's code and follow (and, importantly, try to understand the reason of) best practices.
[1] http://math.hws.edu/javanotes/ [2] http://docs.python.org/tutorial/ [3] http://diveintopython.org/ [4] http://diveintopython3.org/