I have recently come to the realization of how rusty I am at programming. I haven’t been doing enough small applications to keep APIs, etc. in memory. A few years ago, when I was pretty new, I studied and programmed compulsively, but I haven’t been giving as much in school of late.
To solve this problem, I have decided to go through a sort of training regime. The first phase is to brush up on or become more proficient at I/O, and implementing basic algorithms. As I progress, I will probably focus more on specific languages. The second phase may be to develop a basic application in these languages, hopefully changing languages and challenges every week or so. I may stagger the study, focusing on a few at a time. We will see how things go.
These are my target languages:
- C (I have been competent, but file input always got me)
- C++ (This was once my preferred language. I was never very good at operator overloading, and I need to brush up on templates.)
- Java (I was thrust into Java in school. I do not know the API very well at all.)
- Perl (I have used this at work for web development, but most of what I did was maintenance, so my skills are not very polished)
- Bash Scripts (I am decent at the command line, but I don’t really know how to use parameters with bash scripts.)
- Ruby (I know very little.)
- Common Lisp (I don’t know much, but I have done a few minor projects)
Things to practice:
- I/O (Files, network)
- Data Structures
- Web tech (maybe)
Ideas for possible problems to solve:
- Basic utilities, like bash functionality
- Problems from programming contests
Although none of these things seem impressive, that is secondary to the point; to practice. I don’t know that anyone plays Hanon for fun, although simply working through exercises can be a good way to relieve stress.