Importance of Side Projects
rawsyntax.com
rawsyntax.com
I am a single core processor.
I am pretty much capable of doing pretty much just one thing at a time. I've tried to multi-task to the point of switching off from what I'm doing at work to something else but it just doesn't work. One or both of them suffer.
I tend to be engrossed in what I'm doing at work. If I'm bored with what I'm doing I'm in the wrong job and that just doesn't last long before I throw in the towel.
Sometimes I'll work on that problem more. Sometimes I'll just do research/reading on that or related topics.
But I just don't really have the knack of switching off from solving that problem and picking up something else with equal vigour.
I have the same issue when it comes to learning new programming languages. I tend to have limited success when doing it on my own. Where I succeed is when I HAVE TO learn a new language, typically because that's now my job.
It reminds me of the scene from Swordfish where Travolta and Jackman are being chased in the car by a hit team, Travolta hands over the wheel to man the machine gun. Jackman says "I don't know how to drive this." "Learn!" was the response.
I get the feeling that the US (I'm Australian) has cultural differences that come into play here. For example, the education system in the US seems to have a very strong focus on extracurricular activities, something that doesn't seem to exist (to anywhere near that degree) in Australia. This includes sports, social clubs, community service and so on.
So much so that it can be an important part of getting into the right college and then the right graduate school (Australian universities, at least when I got my degree, typically just looked at your Tertiary Entrance Score and that's about it; in fact the whole system was AUTOMATED on that). The TES being a scaled combination of exam and coursework.
I wonder if there is a culture of multitasking because of this?
Whatever the case... I am a single core processor.
I often feel like I've gotten stuck for a bit on a main project, and it'll help me to stay away from it a little bit by working on a challenging distraction project. That gives me time to mull over the main project (mostly not at a conscious level), which will often be easier to get traction with after I've made some progress on the distraction.
So perhaps I am single core, but with a pipeline design. ;)
In your case, it could be caused by many factors. One possible reason is that your task switching itself is the bottleneck, say, saving current context into stack and loading previous context from stack. It's very fast in computers just a few memory access and overwriting a few registers, human brain cell is different storage, the process may take much longer. Not sure if it can be trained to be faster though.
Another possible cause (and maybe worse) is that the main memory is very limited, such that only one of tasks can stay in the memory, every time you need to switch to another task, you encounter a page fault that triggers the OS to load the task from the much slower hard drive. I guess maybe it's the case in brain as well, there are areas for storing short-term memory and for long-term memory respectively, while the former has faster access speed but much limited capacity.
In your case, in order to maximize your throughput, you make the multitasking OS running into a batch mode.
QUOTE
California is unique in that its laws expressly establish that the employer owns trade secrets created by an employee. (Cal. Labor Code Sec. 2860). However, an employer in California would not own trade secrets created on an employee's own time without the use of employee materials. Although the law does not require a contract, it's a good idea to buttress your position in California by the use of a written agreement.
UNQUOTE
The popular answer: buy another battery (carry two) and explore another job.
My interpretation was that if I did work-for-hire e.g. contract work that I never owned (because it was done for a client), then I could develop a portfolio (while not true side projects) outside of work. An extension to that is to work on projects with diffuse ownership (many people on the team). A further extension is to work on purely pro-bono projects (I do find pro bono projects more creatively fulfilling than the constrained business app-type contracts)
Either the headhunters for mobile app developers either don't understand the side project thing or the companies that are using headhunters don't understand it. A company said 'Yes, you can work on your side project as long as it does not use any of the code that we write here'. Really? They don't seem to understand that any decent programmer is constantly rewriting/refactoring/debugging/refining their personal, homegrown library of code and that there is a fair amount of infrastructure/frameworks that is never written from scratch. So, I think this is why so many BigCos are now turning to training their in-house developers on native mobile stuff.
I'm not sure I've worked with many programmers at all who read on the side let alone make much of anything. Maybe my experience is just weird.
Side projects rock! They sniff out your true interests and true motivations. But.. I doubt they're for everybody, naturally.
But then I slap myself (figuratively, of course) and remember to "just do it". To just release any kind of working code, never mind if it's a suboptimal design, never mind if there are a few bugs or if it's slower than it could be. The important thing is to release anything. The code can be improved upon after that.
So, yes, side projects are very important!
http://www.exratione.com/2011/03/the-side-project-considered...
"It seems strange to me that there exist developers who do not have side-projects: exploratory exercises in coding, tinkering, and scratching personal itches that run on the weekends, or here and there in the evenings as a replacement for mindlessly consuming mass-market entertainment. Do these people not enjoy their chosen profession?"
If it wasn't done as a side project then it isn't really relevant.
For the first few years, I literally did zero programming on the side. I simply didn't have the energy left. I used it all up at work.
But then a couple years ago, I started having enough energy. Now, I love to do side projects... That is, if I can find one worthy of stealing my free time. (Lately that hasn't been a problem, though.)
So I can imagine it quite readily, even for the most avid programmer.
Some of them will die away but some will stick. Here're my recent more successful side-projects.
http://www.previouslook.com/hnews
Android game Starxscape.
I always have had some small-ish projects on the side. Some for fun, some for more serious things.
Most didn't make it past the prototype phase, expect two of them. And one of them helped me a lot when I was interviewing for the current job (it is actually a non-trivial/large project).
As long as they don't become your main focus, small projects will actually help on your day to day job. (you end up applying a lot of the things that you learn on your side projects, to your day to day job).
Cool, game ww250. BTW are you looking for a job? I am working currently at Yammer, and we are looking for few good Android developers. (iOS as well). shoot me an email at ardit33@gmail.com
Now my main project gets to be my family, which is really a great life. Envy me.
Looking back, that served two purposes - one, nothing beats face to face debugging and arguing over the merits of various UX approaches and two, having that weekly meeting was a hard deadline - that pushed each of us to get their stuff done and committed to the repository before the meeting (even if it was 5 min. prior to the meeting).