(Replying to PARENT post)
Just don't be surprised that people doing code outside of work will probably get better jobs / get hired more easily.
Some people are really passionate about the field, and don't really see it as "working" I think it is important for these people to have both professional projects and personal ones.
But like a lot of people that are passionate about something, a few of them will end up being light years ahead of people just doing it for money, or seeing it as a "regular job" just like any other job.
(Replying to PARENT post)
(Replying to PARENT post)
Couple this with our field's aggressive skepticism that anyone really knows how to program, regardless of prior achievements ("reverse a linked list, you big fat liar who lies") you've got a powerful motivation to ensure that you can work outside of your long-term work projects. Because, let's be frank, a lot of us, after spending a lot of time hacking on some particular system, really get serious atrophy in our abilities to work with a clean sheet.
There was a point where I would have been able to confidently bang out some bizarre NFA graph or SIMD algorithm in Hyperscan from memory but would have been hard-pressed to remember how to open a file in C++ and read from it...
A compromise would be to constantly look for opportunities to extend what you do (in terms of range, public visibility, etc) at work. If you can't, you run the serious risk that any evidence that some significant work was yours will be hidden away (unless you're working on open source) from the perspective of any future employer.
This may be a point of negotiation with your current or future employer - you may have to put your hand up and say "I want to do something public facing" (i.e. "I want to spend X% of my time as a developer evangelist" or "I want to do our blog on Y" or "I think we should open-source part Z and I'll lead it").
Obviously these things are not magically easy, especially the more junior you are. I drove the process of open-sourcing Hyperscan (not for the reasons in this post but for other strategic reasons) and that was a pretty hefty process and a big ask, even for a senior person.
(Replying to PARENT post)
But I understand that other people might require less exercise than I do.
(Replying to PARENT post)
If you had, say, 20% of your work week to practice on skills, technologies, patterns or ideas that weren't a direct deliverable: would the average you still feel compelled to spend so much of your free time additionally practicing skills (ultimately to the benefit of your employer)?
We bemoan the scourge of scope creep and the waste of mass meetings. Businesses demanding only short-term saleable output from developers is another drag on sustainable productivity.
(Replying to PARENT post)
I also recommend to do that. In my opinion, the more you challenge your knowledge and opinion by trying something new, the better you become at your profession.
(Replying to PARENT post)
40 hours of meaningful work pays off tremendously IME, unfortunately itβs quite easy to be doing closer to 0 hours of meaningful work than 40.
(Replying to PARENT post)
Quite a few very productive people, who work during work, and then later - do something different (so not "coding another app", or even other ways of spending time with a computer). It seems to be healthier long term - I met much fewer burnouts among them.
It is not binary - such people do once in a while time to learn something new. But it is very different from having a "second job".
...
At the same time, I don't know many companies that do like side projects (well, some offer non-negotiable contracts de facto forbidding them, vide Google).
If a company looks for a person with inner passion, usually it is a hope to channel it into company's work, to get (instead of a 9-5 worker) a 9-9 worker. The best companies I worked for do not interfere with someone's side projects.
(Replying to PARENT post)
Is there a difference in their work output? Absolutely there is, in my experience here. Contrary to my prior assumptions, it is actually the _die hard_ tech guys that
- Produce excellent work
- Produce a consistent amount of work over long periods
- Keep up to date with tech
- Don't really seem to suffer "burnout"
- Consistently improve their skills and progress their careers
- Have a high probability of being enthusiastic about a new project, technology or their work
Where as the ones who are "work-only" programmers (not always) tend to
- Produce excellent work in short bursts, and then average work the rest of the time
- Do not produce consistent amounts of work over long periods
- Not only struggle to keep up with tech, but actively _fight_ the idea of having to learn something new
- Have a high probability of going to management to discuss their "burnout" and take extra time off
- Seem to have one specialized skill set that neither improves nor gets worse - they just float around the same level
- Rarely show enthusiasm for a new project, technology of their work
People often refer to "burnout" in the context as a short term solution - but I honestly think that "burnout" as we know it is a result of someone who has already "checked out" or "lost the passion" for what they do (or perhaps, they never had it, and just went into this career for other reasons)
This seems really grim for the non _die hard_ people, so here's some positive traits I've seen in them that are usually lacking in the _die hard_ people.
- Typically have much better communication skills
- Usually better at reasoning for which technology to use in a project (ignore "language or framework of the week")
- Are better with customers and maintaining relations
- Provide more support to their colleagues
- Willingness to take on different kinds of tasks (no attitude of "that's not my job")
I think it's fair to say that balance is key between these very dynamic cultural traits we observe as programmers.
EDIT: formatting
(Replying to PARENT post)
As an individual, there are a number of edges that you can leverage to your benefit: raw talent, acquired skills, shipped products, your network, and politics. Which ones you build and practice is your own affair, but for your future's sake at least build SOME of them.
(Replying to PARENT post)
(Replying to PARENT post)
Some of the best developers I've ever worked with do very little coding outside of office hours.
They all had a passion for it, and they tended to do some goal-oriented projects outside of work time now and again, but not be constantly hustling a side project or attempting to pick up a ton of new skills every single evening.
The implication that you can't be the best unless you're dedicating another 20-30 hours a week on top of your day-job is just wrong. And the idea that throwing another 20-30 hours a week outside your day job at coding will make you better at it than someone that doesn't also isn't really borne out by experience.
You can be passionate but have other hobbies and your own life away from the screen. The passion is the important thing. (OK, and the skill, you need an aptitude for this stuff)
(Replying to PARENT post)
I'm really curious about people claiming to work more than 40h a week. How much of those hours are productive work? Are they really any more productive than anyone working less hours? Do they all eventually burn out? Are they happy?
(Replying to PARENT post)
I think this should be applied to tech community posts as well - you don't need to be working at a big tech company, be a millionaire, have your own successful solo project etc. to be happy with life. Constantly comparing yourself to other people is a fast path to unhappiness.
(Replying to PARENT post)
Maybe just try to stop shaming people who enjoy coding at home, for a while? I have no idea why this rhetoric is considered ok.
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
Ideas come all the time, usually from those other areas of life. When I have a new idea, it makes a mess all over my browser tabs and desktop while I read all about how to implement it (data sources, existing projects). The idea consumes my thoughts. I talk about it to people who I meet. When I should be praying, I'm thinking about the algorithm. The obsession is probably rather weird to non-technical people, like my long-distance girlfriend.
If I'm in the office but haven't got any pressing deadlines for company work, I'll do some coding on my side project. It's not usually something that can make money, though it is usually educational. I want to be able to publish it on my Github, although I often procrastinate writing the documentation. Some companies (e.g. Google) say that they support innovation, but they want to own all my intellectual property, and that means that I'm not allowed to pursue ideas while working there. I've avoided such companies for specifically that reason.
When I finally do write it up, my software Show HN will sometimes get onto the Hacker News front page, or hardware on Hackaday. Very rarely, someone might see that and offer me a job. I suppose that's the reason I've written less documentation these days; I'm waiting until I hear a visa result and then I'll know about which country I should be working in.
My ideas don't make money. I'm probably the only user. Yet in practice, side projects have helped me build up a code base that I can use for all programming tasks, including at work.
In case you're wondering what kind of ideas these are, here's a small sample from the last year: EspUSB WiFi keyboard manufacturing, 12V and mains to USB adaptor inside a car form factor, WiFi to VGA on an ESP8266 for PPT slides, Fondant (JavaScript bookmarklet to load pdfjs library to open a PDF file to run a self-contained web app stored as PDF attachments), MySpace Dragon Hoard by country/language/genre for learning languages through music, a Chinese/English chatbot based on song lyrics to automatically write love letters.
I don't judge people who only code as work; they're better at making money than me, and are definitely more likely to be promoted to management and have a good career. All these other things inspire me in a way that LeetCode just doesn't. Therefore other people get interviews much more easily, and know how to sell themselves. I'm bad at front-end design, so as a portfolio most of these look like rubbish. When I have a job (like now!), I don't need to worry about food and shelter, and the rest of things in life mean I'm quite happy, really. Being contented means I'm not interested in the "hustle", so I'll never make as much money and I know it, but that isn't important to me. I hope this resonates with some other passion-programmers, and I'd like to hear any opposing or similar perspectives.
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
Many of the most famous coders aren't just coders, but supercoders.
Because software has a marginal cost of 0 (development cost rather than per unit manufacturing cost) there is pressure to become a supercoder.
I have an analogy for this:
Think of the life of a supermodel. Not just a normal model, but a supermodel.
If you want to be a supermodel, I believe it's not enough to just diet while you're at work, and come 5 p.m. or the end of a shoot start gorging on chips, sugary beverages, fast food, candy bars and ice cream until shooting starts the next day. Instead I believe a supermodel is on a "diet" all the time, through their whole career; it's part of their lifestyle. They wouldn't be a supermodel if it weren't.
Analogies are leaky but could this be true for "supercoders" too?
Maybe a supercoder is not going to be able to clock out at 5 p.m. and not think about or touch code until the next day. Maybe it is a lifestyle.
It seems clear that there are "supercoders", such as Linus Torvalds or John Carmack in the world.
Are there any who don't have coding as a "lifestyle" and who just coded a few hours a day while they built their careers as a supercoder?
As with being a supermodel, not everyone needs to be a supercoder, even to be a professional coder, and that's okay.
However, I think supermodels are more beautiful than everyday people, and supercoders code better than the average coder, too. They command different salaries, dictated by supply and demand.
(Replying to PARENT post)
Yes, of course it's perfectly ok to have a life of not programming outside of work.
But these types of articles are always missing the point: it's not all about your inner feelings but about the _others_ you don't control who value passion programmers more than 9-to-5 programmers.
If you truly want to be at peace with this blog's advice, what you're really saying is that you acknowledge that many companies, hiring managers, startups, etc value the nonstop hobbyist programmer but don't care.
On the other hand, many 9-to-5 programmers who want to compartmentalize their coding to work hours feel resentment and unfairness that many in the business world prefer the passion programmers with side projects, github contributions, hackathon competitions, etc. This blog post will do nothing to convince those hiring managers to treat the 9-to-5 programmer and the weekend programmer as exactly equal. That's unrealistic.