1) You'll likely get better/more response if you prefix your post with "Ask HN: " (lots of folks have triggers for that type of thing)
2) You don't have to be a mathematician to be a good programmer. Tons of great programmers were not comp-sci majors so don't let that sort of thing get you down. If you've done "some basic noodling here and there... in a few languages" and you want to improve as a programmer, I'd advise you to:
- Pick a language
- Pick a pet project
- Buy a few books or take a few online classes that are on your chosen language
- Begin reading the book
- Implement your project while reading the book
- Find some sample apps written in your language and review how they did things differently
- Finish your book and buy another book/class that is specific to your language
- Pick a new pet project and implement it
- Review some open source apps written in your language
- Contribute to some open source apps
At this point you're likely ready to spend a bunch of time reading non-domain specific books but, up until this point, the value you would receive from reading books not directly related to a specific language/task is debatable. Now that you've had some experience, I think this is a great time for books like:
* The Pragmatic Programmer
* Code Complete
* Head First Design Patterns
* The Mythical Man-Month
* Design Patterns: Elements of Reusable Object-Oriented Software
(Those are all titles of books BTW)
Next up: build a startup!
Notice there are no math books in my list. This is different from what others would propose but, given the scant description you wrote, I don't see any need for math except to satisfy a possible desire to learn.
Thanks for the response. Sorry for the scant description. I've done stuff in Python, Java, Javascript, C#, PHP, Actionscript. I like them all, they all taught me different things about the possibilities of syntax (I think I like python's syntax the most), dynamically typed versus statically typed, the perils of cross-browser coding, OO programming, and so on. But my approach has been very much coding on the run; and very much from a verbal point of view. That is, more about how modelling problems verbally, and viewing code as a way of expressing that.
I am really interested in investigating at a deeper level so I can think in a more mathematical way about programming problems. Efficiency, the basic algorithms you should know, and so on. I will look into those books you suggested. I haven't read any of them! Again, thanks for taking the time to respond. Then, perhaps, a startup, as you say!
Its a good introduction, but it will require you to be decent at math and know how to do proofs.
On the other hand, if you are interested in how programs can express things, then maybe you want to learn about some CS theory. Specifically, some lambda calculus would be good to learn, but I don't have any good suggestions.
Note: All of these will be easier to read if you are pretty good at programming, so I'd say follow at least the first piece of advise above.
1) You'll likely get better/more response if you prefix your post with "Ask HN: " (lots of folks have triggers for that type of thing)
2) You don't have to be a mathematician to be a good programmer. Tons of great programmers were not comp-sci majors so don't let that sort of thing get you down. If you've done "some basic noodling here and there... in a few languages" and you want to improve as a programmer, I'd advise you to:
At this point you're likely ready to spend a bunch of time reading non-domain specific books but, up until this point, the value you would receive from reading books not directly related to a specific language/task is debatable. Now that you've had some experience, I think this is a great time for books like: (Those are all titles of books BTW)Next up: build a startup!
Notice there are no math books in my list. This is different from what others would propose but, given the scant description you wrote, I don't see any need for math except to satisfy a possible desire to learn.