However there's one general thing which bugs me about work life: During my uni time, I always found time to study beyond the "required stuff" (i.e. to pass the exam) and focus on the fun part (aka. study for f's sake). Looking back over the last year, I haven't been able to read any scientific book, learn a new programming language, read any fundamental papers nor any published specification of my field. It just feels like there's no time for things which are important but not urgent and instantly useful.
I assume this problem doesn't only apply to people in a big corporation but even more so for people in a startup, where time is scarce and execution is king.
How do HN people organize their time in this regard? How much time do you spend in actively learning fundamentals vs. time spent on building stuff?
Being able to show off something you've built is better than showing a certificate for something you studied for.
I have the feeling that google has significantly changed the way I store things in my head (for the better or worse). Instead of remembering how things are done and why so, I at best save a mental hyperlink to the information or worse, I just rely on google to be available and give me the tutorial/code snippet I need at that very moment (and again forgetting all afterwards).
Being forced to reproduce what you've learned at least once without having google is actually useful (at least for the way my brain works).
Approach everything with a "beginner's mind". Never blow through a new tutorial cutting and pasting even if you are very experienced in the area. Take your time, learn as a beginner, but leverage your experience to instantly jump from beginner to expert once you have the necessary domain knowledge.
When I do this, I find I get a better understanding of things faster and also retain it for a lot longer.
Favor books over the web. Books generally have better exposition.
Build something you actually care about. You can refer to the tutorials to get the basic skeleton up, but fleshing out the details is where you'll learn and retain.
I had very little time to do any of my personal self education or projects (not all of them are programming related either).
I chose to resign from a great company and a great job to pursue my own interests. I've been pinching pennies everyday for the last seven months living off of what passive income I have. I've been (with more-or-less consistency) rising at 6AM every day, showering then meditating and running a spaced repetition program for thirty minutes. Three days are dedicated to projects and two days dedicated to self education.
When I speak of self education I am not speaking exclusively of programming which seems to be the common interpretation amongst techies - it's a full fledged curriculum involving Mathematics, Logic, Rhetoric, Psychology, Physics, Philosophy, and etc...
I've completed two major projects in that time and actually read more books in the last seven months than I ever did in the three years I spent in the work force. 9-to-5 is quite a sham, unless you happen to have a job working in the R&D department of some corporation where you have the opportunity to explore, learn, and be creative that the other cubicle workers do not share.
After seven months though, I'm a bit weary of pinching pennies - I want to be able to eat out at a nice restaurant when I want to or buy that new computer because I want to; or go sailing for the weekend with my girlfriend and friends. Many things require money. My solution here? No job, but contract work - I now have a two month contract that will make me enough money to live for another seven months. I've also considered going into part time contracting so that I can continue to make money but also have enough time to pursue my polymath interests.
Good luck, leaving the group mind is worth the risk (it really turns out there isn't much risk) - you will feel much more free with your intellectual pursuits, projects, and personal development.
Feel free to drop me an email (vp[at]dinhmail.de) when you're traveling to Germany. Beers on me :-)
My primary interest is not in a web startup though - my true love is Aerospace; I'm refining my math and other skills/knowledge so that I can minimize the amount of time I might have to spend doing pre-requisites and get the heart of an engineering degree.
I'm still on the fence about school, but I would love to pursue aerospace engineering.
Your comment reminds me of a discussion I had with my cofounder long time ago (yes I have tried the startup path multiple times). We were discussing how this pattern of wildness, of strong desire to produce things follows an almost relaxing, reflecting period. The discussion arose while we were learning about the coding and refactoring cycle during the extreme programming days in Karlsruhe, Germany where I used to study.
The only other factor is time of year. I tend to learn during Christmas because when I was in college I used that time for reading and reflecting between semesters. I still get the urge to just sit and read and explore around that time of year.
It's like Jeff Bezos said:
"I always tell people, if we have a good quarter it's because of the work we did three, four, and five years ago. It's not because we did a good job this quarter."
This is a pattern that I've (anecdotally) noticed in successful entrepreneurs and programmers... the ability to focus on the long term at the expense of the short term (but without sacrificing the short-term).
Long story short, if you are in an employment situation where your employer will not let you spend any more time learning new things, you should consider employment elsewhere.
I totally agree with your long term statement. And I do also agree with you on the fact that just learning without execution renders your learning useless.
The thing is, how do you juggle between these two extremes? @imp notes below:
"I let my own ambitions determine which zone I'm in, and they last from a couple weeks to months."
The cycle seems to come naturally to him. For others like @Ixiaus it takes more conscious effort (I assume, since he quit his job to be able to learn the things which matter to him).
Of course, if that's something you're already doing, kudos. Now, if we're talking about things that don't apply to anything at all, your choices are either going to have to be:
1. Find a way to "sneak in" an hour or two a week if it doesn't interfere with your tasks. 2. Learn it on your own time.
If your management/clients aren't going to allow option 1, you may just have to decide whether you want to learn on your own time or if you want to find a job where you can spend a bit of time learning.
Reading hacker news, stack overflow or even researching ideas on how to get through the problem in what I´m building allows me to "merge" learning and building.
It´s hard to build stuff in Erlang and learning Lisp at the same time, for example.
Try to merge both activities in some way and you will be good.
Take up projects which are 60% stuff you know how to do and 40% things you'd like to learn (the numbers are just made up, but you get the point). Even better, get paid for learning (e.g. competition with prizes or learning in a corporate environment)
And I'm telling you, even then, convincing managers is not easier than convincing any other investor.
Finding a job is hard. Finding your passion is much harder.
I found that I stopped learning things when I started working for someone else. Then when I started working on my startup, I started learning things again.
In a startup, getting stuff done is the most important thing. There's no one else to get stuff done, so if you need something and you don't know how to do it, you have to learn how. And unless you're an amazing programmer, it's usually predictably awful.
Only recently, I realized that this was a good experience nevertheless, but which has to stop now. It was good because it made it clear to me, what my preferences were as well as my strength and weaknesses. In other words who I am. Now I am taking my time for my interests (meditation, art and self-consciousness). This leads me to the following main messages as answer to your questions:
1.) You need to learn what you really want from life. And this, like every learning process, takes time and detours.
If you want to learn technology-related stuff, then you chances are pretty high that you may find an employee that is willing to give you freedom for personal projects, where you can learn and experience on your own (i.e. google's "Innovation Time Off"). If this isn't possible where you are now, then you may consider looking for another job where you can bargain this as part of your contract.
If, instead, we are talking about learning for personal growth or "self education" as Ixiaus wrote, then it becomes really interesting. Here I agree with Ixiaus. One way is to make some sacrifices for what you really want to do: e.g. earning less money but having more time for "self education". If your are ready for that, then look for a part-time job indeed, or build-up a sustainable startup were you don't have to make millions a year and report to a venture capitalist, but instead where earning some $10k is enough.
2.) Admit and be aware of your weaknesses. Several times, I find myself blaming myself for not being able to do this or to do that in the way and speed I wish it to be done. And when I have the time, I sometimes find myself spending that rare time with whatever.
But this is ok, as long as I continue working on my self, gradually improving the conscience use of my time. In particular, consider this: 6 hours of deep sleep are enough. This gives me some extra hours in the early morning and/or late evening for practising whatever I want to (meditation and yoga). Discipline is key, I always have to remember!
3.) The more dependent you are (the more money you want or believe to need or need), the less time you will have for "self education".
The dependencies can come from difference sources: your employees, your venture capitalist, your customers, your spouse, your children, ...., your expectations. Each of those relationships are chains around your neck. One first need to be aware of them, not imperatively avoid them. Then one can gently work towards reducing those dependencies, if one wishes to do so.
Initially I thought that as with my high school programming job, I'd learn a lot at work. I also bought into a certain sense of obligation: "I'm salaried, so work doesn't stop after 8 hours a day!" I came to realize that work wouldn't be completely intellectually fulfilling, and that I value intellectual growth over corporate loyalty. I decided to explicitly dedicate time for intellectual advancement apart from my regular job responsibilities.
So, my first antidote to intellectual stagnation was to apply for tuition reimbursement and enroll as a part-time grad student. I made arrangements to work half days on MWF or take very long lunches TT. Real-life lectures are better than online ones because you can ask questions, and the homeworks and exams are very helpful for giving you an objective reference on your progress.
That didn't help my salary or my future job prospects (as far as I can tell), but I'm very glad I did it. I think it worked out well for my employer during that time, too, because it kept me happy enough stick around at a lowish salary for a couple years when I was performing very well but not feeling very challenged at work.
The second thing is that I maintained my ACM membership and read Queue and CACM. I think that helps me to stay somewhat aware of the progress of the field. I've used the digital library several times to help me with particularly thorny programming problems at work.
Finally, if you're not doing new stuff at work, try to motivate yourself to do something new at home. Maybe you just implement an algorithm you read about from CACM Research Highlights or whatever, or maybe you join a programming club and volunteer to teach a topic. I think it's very important to keep doing and not just reading.
However, an advantage of a large company is that there are many opportunities to do very different things. Look for job rotation opportunities. Seek out R&D organizations and try to move there. If you are so inclined, look for opportunities in emerging products and try to hop on board to help with marketing, sales, or anything business related.
2) I take formal classes in my areas of weakness.
3) I schedule my time rigorously.