Subversion is really something that promotes good coding habits. Not that I have had to revert to any previous versions yet but the fact that I have the luxury of doing so is really assuring. Moreover, it actually encourages you to document your progress. The Subclipse plugin for Eclipse is really nice too. And that makes development that much more enjoyable.
Of course even with all those tools, without an interesting project there is nothing much that you are going to use them for. That is where CS498 comes in. I really do like the weekly projects that specify certain requirements in a non-rigid manner. There will be a core requirement for the project that week but you are given a liberal amount of choice in how you choose to implement it. So far the projects have been very open-ended and they do seem interesting. Also CS498 is known as programming studios. As its name suggests, you write programs for that class. A lot of code.
Sad to say, I am the kind of person that find it hard to do some coding without having someone to actually acknowledge my work. So far none of my peers actually code for "fun". Any coding would be tied to a particular class or MP. I need to be able to discuss code with people to code properly. In short, I need someone that I can talk as I talk to get feedback. Thus this class is just perfect since we have weekly discussion sessions where people get to present their code and we get to comment and ask questions. Don't ask me why I do not bother joining an open source community. It is probably because I do need to see my colleagues face to face.
So far I learned that there are definitely a lot of different way to do things. And that I am most comfortable in Java and C. Some other people are more adventurous and have taken upon themselves to dwell into more exotic languages like Ruby, O-Caml, Lisp and maybe a shot at .NET. This presented a new and interesting challenge for myself to learn such languages. I have always wanted to learn Python because I think that it is a nice language for everyday simple programming needs. Being a scripting language, it has the simplicity of being interpretable from the command line. Java is really nice for doing all sort of things but to use it for simple tasks might be overkill. Then again, how do you define simple? What if you need to make the project bigger? Would Python still be a feasible language to program in?
Also it is from this class that I have learned that my software engineering class has taught me things that most people are not even aware of. For instance, I discover that whenever I am coding in Java, I tend to rely on Junit tests. The tests just make so much sense to me. I will be honest and admit that most of the tests that I write are not comprehensive enough to be considered industrial standard. However, they are adequate for my needs. Basically I use them to ensure that as I refactor, I do not break any functionality. So far they have served me well. And as a test-infected person might say: Running those test and seeing the bar go green just gives me a boost of confidence.
It will be interesting to see how this class turns out. I believe that people who are serious about getting a job at a company take this class and find out if they really like programming or not. Programming MPs and programming these kinds of assignments are a different game all together.
PS: The current project we are working on now is a portfolio generator. You open .xml files and manipulate them and then output a website for you. This website can be used by prospective employers to see what kind of programming you have done. It is an interesting assignment and it is open to what you want to do with it. Basically I went a bit overboard and embellished it with a nice GUI. Also I plan to add sftp support and of course Markdown support so that I can write some simple slides and include them with the portfolio.Tweet
comments powered by Disqus