A Programming Hobby
marco.org
marco.org
There are, of course, much pleasure in these things, but what I enjoy most is building and releasing new "stuff" into the world. There is perhaps something primitive about building articfacts that give you pleasure, enhance your life, or make you more productive.
Refreshing to read something like that here on HN, especially when you share this instrumental approach. If I remember correctly, DHH also said something along those lines somewhere.
I prefer a hybrid - choosing to care about the craft and take it seriously, but make the improvement thereof useful to producing things.
While PHP has some rough edges and language level design flaws, it supports everything one needs to write structured and well designed code.
This PHP hate shit is just stupid.
Disclaimer: I use python.
Early on in life there is the ever present exchange "Hi, I'm Chuck I <foo>" where <foo> is some tag, some referent, that hopefully is common with the person you are talking too and that sets up a series of linkages, defines behaviors and expectations, and can inform on conversations that may or may not be interesting. When I was in my mid twenties I realized I was saying by rote "I'm an engineer." And that would then grease the conversation along.
But after a while I had things I did at work, and things I did as a hobby, and things I was interested in, and had a few awkward sort of exchanges that went something like "Hi I'm Chuck, I'm an engineer" ... various technical discussions ... "what do you think of the hypothesis that petroleum is a biologic process?" ... pause ... "Uh, I thought you were an engineer."
Then once I realized the conversational rut I was in I started just cutting it off, "Hi, I'm Chuck."
Now that is really funny around introverts since you leave them with no place to go. And a lot of folks I socialize with are fundamentally introverts. So that isn't a good conversation starter. :-)
But once you realize its a conversation starter, not a definition of who you are, you can go back into discovery mode, like "Hi I'm Chuck, I'm curious about that gizmo you're carrying ..." etc.
And you realize, as Marco and Matt have you want to know "who" you are. I've decided I'm the equivalent of the 'curiosity' thing you pull out of GLADoS in Portal.
I'd argue that programming is a lot more core to anything software than mathematics is to most architectural firms.
Sure, OK, perhaps for a very simple SEO based scheme software product, maybe the "programming" is a trivial part of the whole deal.
On some level, it's like a fruitless discussion. Unless, you or anyone seriously claims that for the majority of software, the actual programming is really trivial or tertiary part of the process, then you would just be wrong. Otherwise, I don't really see what the usefulness is in debating programming as "simply a means to an end."
I didn't take the gingko, black liquorice, and pig adrenal tissue cause that wasn't a thing in 2008. But everything else. Remove toxic people. Quit your crappy job. Remove dreadful stuff from your TODO list. Tea instead of coffee. Sparkling water instead of booze. Sleep a lot. Do yoga. Figure out which foods upset your digestive tract (for me that was dairy and gluten).
Burn out is a real thing and almost every person I know in tech that has been doing it for a while has dealt with burn out.
I hope to write out my thoughts and experiences but I'm wary because I want to be helpful without coming across as a medical professional, a new age guru, or a self-help blogger.
As for design patterns, I think we are in agreement (at least in principle) about their worth as a starting point. I am not at all saying that GoF (or any other design pattern text) should be followed. Rather, that anyone seriously considering themselves a programmer should have an understanding of the design patterns that are pertinent to their language/methodology, and hopefully their own opinions on which make sense or not.
I likely have too high of a standard for the term programmer, but feel it has been steadily lowered by this type of talk and wanted to at least try to move the bar back up.
Interesting tidbit on this concept. When I was 17 I had a cycling accident where I flew over a car and landed on my hip quite badly. I gave up the bike for ten years (wasn't a huge fan anyway), then eventually thought I better get a bike again. So after not riding for ten years, I had a bike out on a test ride in a side street, and on that first-ride-in-ten-years, I was riding quite happily hands-free. There really is something to not forgetting how to balance on a bike. I decided not to push my luck and resumed a normal pose before I reached the speed bump though...
Is there a good explanation of design patterns conducive to a "functional" programmer's point of view? Most importantly, one that doesn't motivate the problem in terms of objects? (Objects in the solution are fine, but if the problem only arises when you use objects I might as well go back to Haskell.)
The one pattern I know holds its water is the Visitor pattern.
http://norvig.com/design-patterns/
Fair warning: it reiterates Rayiner's point upthread.