Yeah, the biggest issue with management in general (and performance reviews in particular) is that it's focused on what people are doing poorly at/where they need improvement.
Good managers find out what each employee is awesome at and get them doing it. If you hire someone and what they love to do and are great at isn't what you need at your company, then you've hired the wrong person. But I know lots of people who left a job because they kept asking to be moved to a different role, different team, etc, and nothing happened.
Managers: focus on what each person is great at and loves to do.
It's a pendulum. If management blows smoke and kissy faces all day at me telling me my poo doesn't stink, that's not helpful. If they only point out what is being done incorrectly, that's not good. A blend between the two plus upward reviews (my opinion) have been best when i've seen them in use.
Unfortunately, most companies and people don't design and execute performance reviews well.
Great article. I learned to code in my 30s, and about six months later the full meaning of it dawned on me: I could make any of my crazy ideas happen myself! No need to find someone else, no need to wait, I could just do it. It was awesome.
A secondary problem with going it alone for coding your MVP is that you don't amass skills at the same rate as someone who is working full time as a programmer.
You can learn quite a bit more material if you are under the gun to get changes made for clients who are paying you, and this can be multiplied when you are working with other people who know more about solving programming problems.
For what it's worth, I aspire to be the "technical founder" for a couple of startup ideas that I work on, but I quit doing other things with my one-man-shop media business.
My strategy (as someone who programmed in HS/College and quit for a decade, and who is now moving from being a wordpress hack to owning a more diverse set of programming tools to solve the problems I am give) has been to find work as a freelancer for a progressively higher-level agencies.
Even though ultimately my goal is to have the tech chops to realize my vision (and working for other people is a sideline to that), it doesn't hurt that I've been making a really good living programming for other people while learning how to do a diverse set of technical tasks.
This plan, of course, has taken me two years so far, and I have budgeted another two years for the same path.
If your time frame is short for a real product, indeed: "you need a team of people to succeed while the getting is still good".
I disagree. Ideas are cheap. Experience is valuable.
The way to tackle large problems is to tackle enough small problems to build the experience and track record you need, not 'find-someone-to-pay-me-to-hire-someone-else-to-do-it'.
REST is a great starting point for an API, but generic REST interfaces (in Rails, Django, or any other framework) are relied on too heavily. I'm especially interested in mobile APIs, which have very specific considerations that REST doesn't answer well.
Building a generic data back-end for mobile is very hot right now, with lots of funded startups in the space. Some of them are just offering a REST API, which frankly any Rails or Django developer could produce in about 10 minutes. Mobile APIs need to be different, mostly due to slow or non-existent connections, and require additional thinking. More details here:
http://ow.ly/9YMrM
Anybody know of any mobile back-end providers that are thinking innovatively about this? I've consulted a few of these startups and they all seem hesitant to make any choices that go beyond REST...but as far as I'm concerned, offering a generic solution for something that mobile devs have to develop every time they create an API would be well worth it. A simple example is to accept a guid for every created object and return that guid in the response. It's something you have to do to know that the object has been sent successfully to the server, so why make the developer code it every time?
That, or a nice way of using different mimetypes to indicate which representation you want.
Also, http status codes perfectly solve the problem of needing to know wether an object was sent to the server successfully. No need to reinvent the wheel and mess with guids imo.
Not only a nifty idea for fuel, but a way to deal with our ant overpopulation! As with other biofuels, it may have the downside of increasing the price of formic acid as a foodstuff.
And if you've never tried ants over shoe-string potatoes, you should -- they add a delicious, lemony flavor! Just remember to check your teeth for ant-legs after dinner. :)
Reminds me of a TED talk[0], about how we'll probably have to eat a lot of lower-trophic-level food in the next few decades, as the population of Earth increases -- stuff like crickets, and other insects.
"Some economists argue that mass privatisation would have worked if it had been implemented even more rapidly and extensively." This is always the argument about any failed policy. These researchers should do a wider study that includes privatization efforts before 1990.
We could conduct some pretty sweet experiments in virtual worlds. Would libertarianism really work if it were the law? A real welfare state? Privatization of a communist country? Start a virtual world with those laws and see what happens. Some obvious drawbacks include:
- self-selection of participants (you could get around this by controlling who is allowed to participate)
- lower motivation (being unable to pay your actual rent has a pretty different effect from having a low virtual bank account balance)
- natural anonymity of avatars (there are plenty of things people do online they'd never do in real life)
But a well-done research study could probably account for a lot of those things.
Maybe the IMF should conduct some virtual world experiments before shoving their current pet policy down the throats of millions of people whose government just collapsed. This isn't the first complaint I've heard that goes, "The policy forced on X country by the IMF turns out to have ruined everything. Oops."
This is impossible. In fact, the whole pursuit of mathematical economics and economic modelling is flawed. Se here for a fuller explanation: http://mises.org/daily/3638
Yeah, I don't see the benefit. If you default "from" to Current Location, the maps interaction is three taps (edit, bookmarks, choose). While this app would be one swipe, there's the added decision of which app to use when wanting directions, and I think that probably takes up more brain space than the extra tap.
Taking a day off is much harder than doing something in particular that's fun. I rarely "take a day off" -- frankly, it's boring. But doing something in particular is much easier. He's your friend, so you probably know what he likes -- suggest something. An all-day hike, paintball, star-trek marathon, you could even toss around romantic ideas he could do with his wife. Give him something specific to do that's compelling, and I bet he'll be more likely to do it than "take time off."
It's hard to tell from your post how much of this is about you and how much is about your startup's culture. For each case, figure out what you can do to improve the situation.
You:
I completely agree with patio11's diet & exercise point. Strenuous exercise (over 30 min) releases endorphines that act as both analgesics and sedatives, and are shown to reduce depression, increase self-esteem, etc. You owe it to yourself and your startup to do this life hack no matter what the cause of your current unhappiness.
Of course, diet, sleeping well, and taking time off/socializing are also great ideas. The important thing is to take action now before it affects your life/startup any more than it has.
Your startup:
If you think some of your resentment or depression is due to dysfunction in your startup, then come up with ways you can improve it. Focus on actions you can take rather than on ways other people/the group could change. I also find that people are more likely to change when asked to do something than when asked to "not do" something.
For example, if workaholism is an issue, it's easy to fall into outward/"don't do" thinking like this: telling the group that the amount of time required is making you unhappy, and that it should change. Instead, try saying something like, "I think I'll work better if I take a whole day off every two weeks and I'd love it if people joined me. My first day off will be x day, and I'm going to go hiking, let me know if you want to come." People love to join a good idea.
Yep, just what I was going to mention. I started using GTD a few months ago, and it is a great way to rip the bandaid off of dozens of little not-yet-made decisions. As part of GTD, you regularly turn every "to do" into a next action step...or throw it out. It really cleans out your brain from all the things that you "might do someday" but haven't decided yet.
As someone who learned to program in my 30s (spent my 20s as a professional musician) I can't agree more. The book that was recommended to me was K&R, which I found so dry as to be impossible to read through. The first book I really used was C++ in 21 Days, which has you writing working programs from...well, from day 1.
I always thought the reason for this problem in teaching programming is that what you need to know when switching to a new language is totally different from what you need to know when you don't know how to program. If you already know how to program, the first thing you need to know is the syntax: data types, iterators, etc. It's like being a carpenter and going to a new shop -- what are the tools? But if you don't know how to use the tools, being told the torque on an impact wrench is completely useless information. Not only is it useless, it's easy to look up, and therefore a waste of time to teach.
I now help teach the Boston Python Workshop, a weekend workshop for non-developer women and their friends. We do cover loops and data types on Saturday morning, but then all afternoon is projects -- building programs that cheat at scrabble, access twitter, and draw colored grids.
I totally understand why experienced programmers teach the way they do -- it's what they'd want to know. But the focus should not be on the language, it should be on the skill of how to program regardless of language. And yes, that's really hard to teach.
Good managers find out what each employee is awesome at and get them doing it. If you hire someone and what they love to do and are great at isn't what you need at your company, then you've hired the wrong person. But I know lots of people who left a job because they kept asking to be moved to a different role, different team, etc, and nothing happened.
Managers: focus on what each person is great at and loves to do.