I'm now in my mid-twenties and I've been coding on and off for about fifteen years. I started with Perl and C (now long since forgotten) and work mainly now in PHP. I work in project management at an international research organization, and I've been put able to put my limited skills to use building applications using the LAMP stack with JavaScript and JQuery on the front end. I also do a lot of analysis stuff with Stata. This is all pretty elementary to a trained programmer.<p>The thing is, my knowledge is really unsystematic and I lack familiarity with many fundamental CS concepts. Yes, I write apps that work— I've created complex applications on my own and for work, and I pride myself on finding creative technical solutions to challenges within my organization.<p>But I have lots of ideas for things I want to build, and I want to build them the right way. I'm worried that I'll pick the wrong tools and write bad code, and make security and execution mistakes that better coders would laugh at. I don't have the time to study CS intensively or to take a more formal coding class. I don't want to be a professional programmer, necessarily— I just want to be able to execute my ideas in a more professional way.<p>Any advice is welcome.
Don't worry about picking the wrong tools - everybody does that and a CS education won't help.<p>If you want an informal coding education, I 100% recommend Code Complete [1]. Its an old book but absolutely fantastic. Please give it a try.<p>If you want to improve your CS education, Google (the company not the search engine) recommends interviewees read Introduction to Algorithms before their interview and do practice problems on Topcoder [3].<p><pre><code> [1] http://www.stevemcconnell.com/cc.htm
[2] https://mitpress.mit.edu/books/introduction-algorithms
[3] https://www.topcoder.com/</code></pre>