Advice to Aimless, Excited Programmers
51–58 of 58 posts
Re: Advice to Aimless, Excited Programmers
#52Earlier quoted context omitted.
One of the coolest programs I ever made was a tic-tac-toe with an AI that learned the optimal strategy by playing itself over and over. I wrote that in the process of learning Lisp, which made writing the program easy, and I got to exercise a lot of the language features. What was so cool about it was watching it learn, and realizing that unless I programmed it to make random mistakes, it would settle for sub-optimal…
An aside, but in case you weren't aware of it, I believe the AI strategy you describe is known as "simulated annealing".
Not necessarily. You could get much the same effect (the program learning by playing itself over and over) with many Reinforcement Learning algorithms (like TD learning, say).
There are major differences between Value Function (loosely, perceived_state -> perceived_long_term_reward map) based RL algorithms and algorithms that work only in the policy (loosely, the perceived-state -> chosen_action map) space like Simulated Annealing (or Genetic Algorithms). Barto and Sutton (somewhat loosely) use the term "evolutionary algorithms" to distinguish Value Function based algorithms from those that only manipulate policy
Re: Advice to Aimless, Excited Programmers
#53Re: Advice to Aimless, Excited Programmers
#54I think I suffer from this problem, I like to compare it to writers block or something like that, my problem is that I want to develop something but I don't know what and get frustrated at having a lack of ideas. This frustration then gets interspersed with furious bouts of development on personal projects that can last 4-6 weeks, and then I go back to another 3 months of doing nothing and hitting my head against a b…
By which I mean, if your life as you're living it isn't providing itches that you need to scratch with software, a new hobby might provide some. Or, you might spot an unserved opportunity or market.
Re: Advice to Aimless, Excited Programmers
#55My advice would have been to reinvent the wheel. Yeah it might not add to anything useful but there is an off chance it could. The reason why reinventing the wheel is good is that you have direction as to what you should implement. Trying to do something new all the time isn't possible. I used to build tic tac toe games It was never complete or useful but it helped me learn the tech I was using. Now days creating a b…
"The good thing about reinventing the wheel is that you can get a round one."
Douglas Crockford -- creator of JSON
Re: Advice to Aimless, Excited Programmers
#56Earlier quoted context omitted.
I have never done any graphics at all. All I know is bash and some awk and perl, mostly for text processing. I keep planning to learn more, which is why I read about it a bit, and browse HN, but I have too many other things I want to do too.
Who says you need graphics? o | o | o ---------- x | x | x ---------- o | o | o That (if HN doesn't mangle it) should be a fully working Tic-Tac-Toe board. You can store it as a string, hashtable, whatever you want. You could label the squares 1-9 for the prompt asking the user where to move. This is all doable with perl and a command line. Try it out, see what you learn.
Re: Advice to Aimless, Excited Programmers
#57It's funny because some of us have the opposite problem. Too many ideas, but not that much interest in learning new languages for their own sake. So when it comes down to implementing a new idea, we want it done quickly. We don't want to take the time to try to figure out how to make it in Haskell, and just revert back to Python.
I recently ran into this. Thought of implementing a new project in clojure and quickly defaulted to the language i am used to. One way to mitigate this is to re implement a small project that you have already implemented in your older language. At least you can focus on the language instead of the project nuances.
(Incidentally, the only new language I've been able to stick with after learning Python is R, because it solves completely different problems. Which means R is now my Blub for stuff that I'd like to, given some free time, try with Clojure/Incanter...)