My typical day consists of:-
- Staggering out of bed.
- Grabbing tea (decaf).
- Strolling over to laptop in spare bedroom.
- Reading emails (from customers and forum users).
- Getting more tea (decaf) + eat flapjack.
- Start Coding.
- Lunch on patio (if UK weather ok).
- More tea (super strong TeaPigs earl grey so I don’t get dozy in afternoon).
- More coding (BTW: I like coding).
- Maybe a bit of gardening (if weather good).
- More coding.
- More strong Tea.
- More coding.
- Wife returns from teaching job, starts chatting, interrupts train of thought so can’t code anymore.
- Glass of wine.
- Watch period dramas on sofa with wife + eat food.
- Wife goes to bed.
- More coding (I really like coding).
- Watch Family Guy (maybe with glass of whiskey).
- Go to bed (dream about coding).
Living the Dream Baby! 
You might have guessed that I’m a freelancer… actually I’ve now progressed a bit beyond that, because I have my own software consultancy and a team of 3 coders working for me (who also work from home). BTW: I’ve been coding professionally for 35 years. 
I started my career working for other companies, some large some small. However, although I enjoyed the social aspects of working in a team, I have a bit trouble with authority… basically I hate being told what to do. I also don’t perform well when made to work set hours. I’m a REALLY good coder, but I need to be in the right frame of mind to do it and I can’t do my best work when forced to work in particular time slots… I might find my mojo at 10pm and code for 5 hours straight, or I might find it at 11am and code right through lunch. Maybe I’m not normal, but I think there are others like me out there, so for those type of people I can recommend the freelance route.
The one big drawback of freelancing from home is that the isolation can drive you nuts! I used to think that I was not a ‘people person’ and that I could spend a whole week on my own at home without batting an eyelid. I soon discovered that this was not true. I found myself gradually going stir crazy at home, talking to myself, feeling paranoid and stressed about things that never used to bother me… I felt like I was gradually going insane 
Don’t worry, we are coders and therefore an excellent and optimistic problem solvers (sometimes over optimistic), but every problem has a solution… for me this impending madness was alleviated by spending 2 days per week out of the house, either working with colleagues (other coders) at commercial shared hot-desking facilities, or simply going round to their houses for a bit of pair programming. Actually the occasional bout of pair programming can be a really enjoyable, very effective and a surprisingly efficient way of coding. Two brains are better than one and you learn from each other too.
I also recommend playing sports or joining exercise classes, which is good too keep your body and mind healthy as well as giving you the opportunity to get more social contact. It’s particularly important to get regular exercise if you have such a sedentary job like coding where only you fingers are moving all day. Actually, it often makes me laugh to think that I make hundreds of dollars a day by simply twiddling my fingers
. Also, the endorphins, dopamine and adrenaline released during exercise are also very important for a healthy mental state.
Favorite and least favorite things about your job?
My favorite thing about my job is the opportunities for being creative and inventive all day
I also love the challenge of problem solving. In my experience, not all coding jobs are necessarily very creative, especially when you work in large companies and you are given a very well defined and narrow task to do (you are a small cog in a big machine).
I found it’s much better to work in smaller companies if you like some freedom to architect your own software and design your own UI etc. In large companies someone else will often get those jobs and you will end up just being a ‘code monkey’ (never mind how brilliant you are), you are just a resource not a person to them.
There is a great song called ‘Code Monkey’ which nicely describes some of my experiences in large companies :- https://www.youtube.com/watch?v=v4Wy7gRGgeA
Education or skills most needed?
It’s all about your portfolio… for most coding jobs these days, it’s all about proving that you can walk the walk and not just talk the talk. Honestly, I’ve met many coders with PhDs who were useless at the practical and creative process of building apps and everyday problem solving that it requires. I only hire people if they can show me examples of their previous work that demonstrates their knowledge of the particular technology I’m looking for. I don’t care if they dropped out of school at 14 as long as they can code in a structured and logical manor… and communicate what they have done to me verbally in a coherent manor. I don’t mind if what they show me was just done in their bedroom at night and they have no real commercial experience. I like to see good clean structure and lots of comments in their code too. This indicates to me that they are more likely to work better in a team.
One last piece of advise I’d like to give you… Wear sunscreen!… No, really it’s this:-
Try to direct your career towards the subject matter that most interests you, this way you will be more motivated to perform well and progress in your career. For example if you are interested in medical stuff try to find a coding job in a hospital or medical devices manufacturer, if you like architecture, go and work for an architect. Don’t go and work for an accountancy firm or a bank just because it pays lots of money… You will soon get bored and start under-performing and then feel miserable… or even get sacked!
I’ve actually worked for about 7 companies throughout my career and I’ve voluntarily taken a small pay cut every time I moved jobs. This was either because I got bored or felt under- appreciated at my current place, but I always quickly made up the losses and ended up earning way more money shortly after each move, because I chose jobs that I was interested in and hence performed way better in.
If you play your cards right and keep directing your career (and hence skill set) towards the things that you like doing… then eventually you could end up in the enviable position of waking up each day, doing your hobby and being paid for it… just like me 
Hope that helps someone
Regards
David (founder droidscript.org)