Thursday, January 6, 2011

When is it OK to "cheat"?

As I mentioned, one of my New Year's resolutions is to try and get 1 Project Euler problem done per week. I should openly admit at this point that I have been painfully slow in solving even the easiest of the problems, and recently I've been stuck on Problem #3, which requires you to find the largest prime factor of a big number. I've been struggling to figure out the best way to approach it, and right now I have a program that literally loops through a list of prime numbers and prints them. Pathetic.

So, in the interest of getting a different perspective, I Googled the problem. I felt uncomfortable doing this. I feel like I should be able to complete these problems with no help, if I just sit and think about it long enough, but obviously this was getting me nowhere. I found a solution that I'm going to implement that makes far more sense, is cleaner, and isn't pathetically brute-force like my current code.

So, the question that lingers in my mind is, how important was it that I worked it out myself vs. looked up a blogged solution vs. just looked up sample code? At what point am I really just cheating myself in the interest of not having to think too much? Is it even that important in this case?

I'm working on Project Euler to improve my shoddy math skills, as well as attempting to keep up with fairly basic programming (usually to learn how to use new languages as well, such as Lisp), so I suppose as long as I still accomplish those goals, it's all good.

Wednesday, January 5, 2011

On Distractions

I have a lot of trouble staying focused, largely due to the fact that I work on a nice computer with full Internet access in a very laid-back work environment. However, my lack of productivity is a constant source of frustration and stress, so I've been working on turning myself into a more focused, productive worker.

I made three major changes in my work life that have made a massive difference. First of all, I cut my coffee habit cold turkey. Like, completely. It was less rough than I expected, especially since I'm still allowing myself to have a cup in the morning (before work, none during), and every once in a while I'll sneak a coke during lunch (I also drink tea all day). I noticed immediately, however, that I was far less irritable and distract-able. Besides that, I've freed myself from the caffeine roller-coaster that often resulted in frustration and many hours wasted.

Next, I started keeping a Google Docs TODO list, that I keep open on my browser at all times. It doesn't necessarily keep me focused exactly, but it does allow me to get back on track when I do get distracted. The other benefit of the TODO list is that if I think of something I need to do that's not directly related to work, I add it to the list, rather than breaking my concentration and starting a massive Internet-tangent on a whim.

The last step was to start running during lunch, which gives me the perfect chance to clear my head and come back to work refreshed and focused. Not much else to say about this other than that it works.

Also, I'm only about 1/4 of the way through book 2, but I'm making great progress on it. Hope to have another "COMPLETED" update sooner rather than later!

Tuesday, January 4, 2011

Book a Week #1 Complete!

Ok, so I cheated slightly and started with a book I was over half-way finished with. Sue me. Next up is Neil Gaiman's anthology, "Stories". It weighs in at a little over 400 pages, but I'm confident I'll breeze through it. So far the stories are pretty light reading (nice book to start the year out with). After that I'm planning to dig into Huxley's "Brave New World", which I bought recently.

I wanted to post something about motivations and such but I'm not motivated enough right now to do so (oh-ho!). More to come sooner rather than later.

Monday, January 3, 2011

Book a Week, #1

I missed posting this weekend due to being extremely busy, but I'm back and have started my book-a-week resolution by (almost) finishing A Guide to the Good Life: The Ancient Art of Stoic Joy by William B. Irvine. I intentionally linked to the BoingBoing article where I first heard about this book; the author made a few guest posts on the site later that convinced me to buy it. I assume a quick search will pull up his posts on the site, they're excellent.

The intention of the book is to not only introduce Stoicism, but provide a guide to becoming a practicing Stoic in modern times. Although I disagreed with the author on a few different points, I enjoyed the overall message of the book, and appreciated his effort to illustrate how living without a coherent philosophy of life is detrimental to our pursuit of happiness.

The philosophy focuses on changing yourself and how you handle your own emotions and desires, rather than attempting to find satisfaction in things external to yourself. I've been working to decrease the negativity and anxiety I've spent my life dealing with, and I found a lot of his advice very helpful (and was pleasantly surprised to realize I was already doing most of what he suggested).

After I complete this book, next up will be "Stories", a short fantasy story collection put together by Neil Gaiman and someone else whose name escapes me (links and so on when I start it).

Friday, December 31, 2010

Resolutions 2011

I'm embarking on a project with a friend from Indiana in which we decide on a maximum of 4 New Years resolutions and attempt to follow through with them by updating blogs every day and posting progress. One of the shared resolutions, besides attempting to blog more in an effort to become better writers, is to complete 54 books this year, essentially attempting to read a book a week. For myself, I'm going to attempt to complete at least one Project Euler problem a week, and I may even try to start playing some instruments again. It will be a challenge, but we're both hoping the blog and each other will hold ourselves accountable.

Happy 2011!

Tuesday, November 2, 2010

All-Consuming Web

I've taken on some new challenges, including rebuilding my personal web page, and, in the process, learning to become a better designer. At this point, unfortunately, this consists of learning how CSS works rather than graduating to a more philosophical discussion of what a "good" web design is. I know what kinds of web pages I like, but I have none of the required skills to make my own look the way I want yet.

In the meantime, I'm going to have to do SOME project in C++...

Wednesday, October 27, 2010

The Political Programmer

"You know, most programmers are libertarian", my workmate stated.

"I know", I replied, attempting to imply in my tone of voice that I had met many of these abstract libertarian programmers my workmate spoke of.

"It's because they think, 'Hey, I can solve this problem myself, I don't need any help!'".

"Yeah, they're also massive assholes".

I'm not a libertarian. I believe in giving as much help as possible, with the hopes that I'll receive some help in return. Maybe this makes me a bad programmer.

I finally began to come to terms with the idea that, not only am I a *bad* programmer, it was very likely I would never become a decent, or even remotely competent programmer. I'll certainly never be the hackers I romanticize. But, really, this no longer bothers me. Now that I've thrown off the shackles of insecurity, I'm free to learn at my own pace, and I'm starting to REALLY enjoy it. I read whatever strikes my fancy, work on whatever personal projects excite me in my off time, and this has been an amazing turn-around. I'm not trying to get through that C++ book to become a C++ super-guru anymore, I'm just reading it because I'm enjoying it. I'm no longer allowing myself to be embarrassed by a lack of knowledge in any topic anymore, and as a result I'm free to learn more.

If you find yourself becoming a slave to an ideal image of yourself, it may be time to re-asses that image and figure out if you really want to be that abstract that ideal, or if the ideal is what is really holding you back.