> I don't get the "9 to 5 wouldn't make you a great engineer" about not being passionate, some people are passionate but have other life obligations like kids or other activities.
I think what the engineer is trying to convey is that a great software engineer thinks about code beyond just the job. I don't think the engineer literally means being a workaholic or the literal 9am-5pm shift, but the engineer has pet projects of his or her own that aren't necessarily related to work, as well as thinks of programming beyond just a paycheck as a personal interest (just as a photographer or any other craftsman would).
I've hired many programmers. The most disappointing ones were ones that only did exactly what their work told them to do. They would never read technical stuff or things like Hacker News on their days off.
The best programmers were the ones that built pet projects for their own needs. I remember one guy would write a script to download new wallpapers for his laptop to cycle through the hours of the day. If I recall correctly, Gmail was an engineer's pet project (when 20% time existed). Some contribute to Stack Overflow; others to open-source and to blog posts.
It's a lot like being a good restaurant cook or musician. You enjoy cooking, not just for the pay, but for how the craft empowers you. A good cook will think about what sides will pair with that steak, while an average cook will probably robotically sling together a dish. A good engineer will show passion.
That's a relief. Three kids mandate 9 to 5 work hours. There isn't much quality time or mental energy to dedicate after that.
It's a relief because whatever energy I have left I spend on books, articles, papers. Those things have helped my 9 to 5 in a big way. I bring what I learn to the job.
It doesn't beat hands on practice. I do itch to work on practice projects and I'm hoping when the kids are a little older, I'll have more time and energy for that.
In any case, my kids are my number one. The day my first was born was the day my motivations and my reason for being shifted.
I couldn’t agree with you more. I wish I could do more than give you an upvote, so here is an internet cheers and just know there are a lot of people who feel the same way. I also love what I do, read when I can, but at the end of the day I work hours which allow me to be with my kids and wife as much as possible. I hope to keep getting better, to become a great engineer, but I will take the slower road if it means more family time.
Exactly the same :) the guilt of not spending time with my kids and my wife is too much. There have been times where I've tried to sit down and work on something but it's no fun when there's a strong feeling of "I should be spending this time with my family".
The other thing I've noticed is that the separation and challenge of raising children has made me more productive. You don't know stress until you've had a newborn. There are things at work that used to affect me and I look back now and think "how was that even a problem?"
> There have been times where I've tried to sit down and work on something but it's no fun when there's a strong feeling of "I should be spending this time with my family".
That doesn't sound like a recommendation for becoming a parent. In fact it sounds the opposite - "don't have children, or you'll guilt yourself out of every other thing you could be doing".
Well life is about choices. People are free not to have children. But yes, when you do you bear a certain level of responsibility to them. I think a lot of people would characterize sitting in your office building CRUD apps every night so that you have a sweet green GitHub calendar while your kids sit alone on the couch watching TV as an abdication of that responsibility.
Well it's not for me to recommend. I don't recommend it if you don't feel you've got where you need to be and that matters very much.
There's tonnes of reasons why I wouldn't recommend parenthood. I don't think I was ready by any margin. All I'm saying is that I don't regret it and I consider it the best decision of my life.
I'll say the selfish thing. There isn't (and rightly so) any law that requires us to have children. I say use it. Let the suckers who want children raise the children we need to take care of us when we are to old.
My personal recommendation us when in doubt, err on the side of not having children. Don't make life harder on you than it has to be.
You don't know stress until you've had a divorce due to all of these after hours spent studying the latest fad. That is real stress and that happens to a lot of programmers. I am dealing with that personally, I have had 2 kids and I have done the best I could. Newborn stress is nothing compared to a divorce from a long term marriage.
>>In any case, my kids are my number one. The day my first was born was the day my motivations and my reason for being shifted.
Your kids should be your number one priority, absolutely.
Make no mistake though: when you have kids you are trading off professional development outside of work for raising a family.
Nothing wrong with that, but the trade off definitely is there. People who ambitiously work on personal projects in their spare time will, on average, advance faster than those who are 9-5'ers.
I wish it was more socially acceptable to not have children. In many parts of the world, there is still so much stigma if you marry and don't have a child within a couple of years. I am hopeful things will change and we can swing down the total fertility rate to below one.
I'm 34 and living in Berlin - I know a low of people within ±10 years of my age here and MANY have no kids and aren't planning on having any. The norms are changing in a lot of major urban areas.
> when you have kids you are trading off professional development outside of work for raising a family.
I believe that having children gave me more motivation and reason to be better at the things I do. It also forced me to structure my life a lot more which can have beneficial effects on productivity too.
> Having children has made me happier and more fulfilled in ways that I could never have imagined.
That's my main problem with it, it's super selfish to procreate. I don't feel I have the right to force new life (with all the pain and suffering that entails) onto this world for the sake of making me happy. I love my potential children too much to do that to them.
I don't want to have kids in the slightest, but this is not accurate at all. You can have kids for both reasons, and enjoying the lives of your kids is not wrong if you love and care for them for their sake alone as well. In fact, when I tell people that I don't want kids, people go the other way and tell me I'm being selfish not to.
Give one reason why you do anything you do without "I want".
Wanting something isn't selfish. It entirely depends on what it is you actually want.
Oh yes, you could argue from a hardcore libertarian stance that altruism does not exist and every action is inherently selfish but is that a good way of looking at the world? I think not.
If it's an accurate way of looking at the world, you've just demolished your own reasons for not having kids.
You don't want kids because it's selfish? That must mean, using objectivist reasoning, that to you not having kids is even more selfish. So your reason for not having kids is no reason at all if you subscribe to that sort of shit.
As for good, in the same way that you reduce a lot of things down to one thing that is objectively true but isn't really useful for everyday life.
Sure, I accept that it's possible to reduce down and argue all behaviours are selfish. Does that provide insights about the world? Nope. Does it explain human behaviour adequately, even if fundamentally accurate? "Why does inequality negatively impact inequality?" Because people are selfish?
On the flip side, there is some probability that your child may save 1 or more lives.
On the flip flip side, there is some chance your child may take 1 or more lives.
Arguing about the selfishness of procreation is silly. It is your biological purpose. Whether you choose to run with that or not is down to you. It is not selfish if you choose whatever way.
As a parent, my children come first. I would die for them. You make that choice when you have children. That is NOT selfish.
Perhaps it can be viewed in the same vein as Michael Jordan's "for the love of the game" contract clause. The clause stipulated that MJ would be able to run off whenever he wanted to join a pickup game, let him remember why he plays. Now, it'd be probably unreasonable for engineers to say to their manager, "hey, I'm going to take a few days off because I want to contribute to an open source project". But my point is whether they ever have a "for the love of my craft" perspective at anytime in their life. How that actually manifests in reality, good question.
Its not unreasonable, given that some companies demand passionate rockstar unicorn engineers, yet most companies will not grant that request - they will instead exploit that passion into workaholism and leave you holding the bag when you burnout. So as engineers, we must demand equally that "passion" not be a requirement.
Lots of companies don't actually want "rockstars". I know someone from college with incredible quantiative and programming skills. He started taking rigorous college level math classes and writing his own compression schemes in high school. He got his undergrad degree in about 2 years by getting permission to enroll in 4+ graduate computer science courses each semester instead of doing the normal curriculum.
When he got hired to do boring tech work at the company I worked at, he just freaked everyone out. The questions he asked were too pointed and he would just do things correctly instead of doing what his boss said. Since he was extremely gifted and had offers to work at other (better) firms, threat of job loss didn't mean anything. All his managers basically hated him.
I know people like that, and I think I've been that person before at my first job. I would argue that someone with great quantitative and programming skills who "freaks out" their coworkers is not a rockstar. To be a rockstar developer, you have to have good enough communication skills to work within your team.
A rockstar developer wouldn't ask questions of their coworkers that would embarrass them; a rockstar developer would phrase questions and concerns in a way that the other people on their team could understand. A rockstar developer wouldn't do something contrary to what their boss said, they would explain why would do something a different way before doing it (or explain why it's better). Now, if coworkers or management are too incompetent for even that, sure, even the best developer would have a bad time.
Part of being a rockstar developer is, in short, knowing how to work with developers who may not be as good as you. I've been there before and while it can be tempting to use that opportunity as a way to establish hierarchy (sadly important if your company stack ranks) by asking technically challenging gotcha questions and showing off how smart you are, it creates a toxic work environment and disrupts other people's work. It's much better to help people grow and not to overwhelm them with technobabble
"Now, if coworkers or management are too incompetent for even that, sure, even the best developer would have a bad time."
I haven't worked with his team, but based on my experience with the company, it's possible that there was some of this, and people being so demoralized that they let the incompetent guy with the most standing make stupid decisions and then just do what he says. But they may not have been as bad.
I admit some envy of people who find their passion early and make the most of every year of their life leading up to a career, but if he's so smart and driven, why is he working at some "boring tech" company as a cog under some layer management? Why doesn't he consult solo and reap the fruit of his precociousness?
> I admit some envy of people who find their passion early and make the most of every year of their life leading up to a career
Don't. At least some of us are having a bad time working because of it.
I found programming in my early teenage years, and - excuse me if I sound arrogant - by now, I've already seen or worked with anything even remotely interesting programming-wise that a regular coding dayjob could throw at me. Gluing together CRUDs from random libraries gets boring very quickly. Solving problems in large systems becomes day-to-day drudgery, because you know that there isn't much smarts there either - all those problems are, unavoidably, self-inflicted. As the codebase grows, you spend bigger and bigger fraction of time allocated to a task on routing - figuring out how to transport some information or command from one piece of the system to another, without turning everything into spaghetti or setting it on fire.
The usual things I see cow-orkers excited about is "oh, I'll get to use generics in Java for this, I've never used generics before!", or "this will teach me Framework X, it's surely a powerful tool that will be very useful for me in the future". They didn't get through this phase in high school, so they're full of excitement about work, however bullshit the project is. If you "found your passion early", you don't get that - all that remains is the bullshit project.
The point being, most of the work I've seen in this industry is pretty meaningless, and it's harder to do if you don't have the comfort of being constantly excited by even most trivial insights in programming. People who started late are better off, because the enjoyment they get through learning also helps them show up and do the work they're being paid for. They don't need to spend time on side projects after work just to retain their love for the craft.
I started programming when I was 8, on the family Apple ][. By my late twenties, I was ready to give it up. Working on legacy code bases for bad bosses has a way of sucking the joy out of software engineering (kind of like after four years in the Army I never wanted to go camping again).
But about the time my kids were old enough to no longer need constant, unrelenting supervision (all my kids were born by the time I was 25) I began taking up side projects again, which has largely renewed my love of programming.
So now I put up with the drudgery of the day job so I can go home and work on something I enjoy (I mean really, the day job could be anything at this point - programming just pays better than anything else I could do, and occasionally an interesting problem at work pops up). Which is also why I tend to become extremely resentful if forced to work very much overtime :)
I never saw it that way before -- but as someone who found programming in their early teenage years too, this sounds very familiar. I still feel a sense of excitement when I learn something new, but it wears off very quickly because most new technologies are just another way of doing the things you did before. E.g. I got to learn Type Script recently, but after a couple of days of getting used to the syntax it felt just like all the other frontend frameworks out there... It's true that most regular coding dayjobs mainly consist of gluing together libraries and solving (often) self inflicted problems, and it's so frustrating!
Well, it was just an internship he got through a relative. He ended up there after getting dinged from Google due to some issue with his class standing or something. He got a much better job after, and then suffered some very tragic personal circumstances, so I'm not quite sure what he is up to now. But I have great hope for his future.
of course the the corporate overlords want engineers to spend free time doing side projects. Usually they can claim those side projects as their own via the employment contract.
I hear this sentiment a lot. I don't think it has much merit if any. Were musicians practicing scales daily 9-5 (+ occasional overtime when a customer urgently needs a modus they're not familiar with) - would you expect them to "enjoy" another 3h of fingering, possibly on some other instrument, in their spare time - because it "empowers" them and it's "a passion"?
I have been in music for some time, and this is almost exactly what great musicians do. There is definitely a time for activities that are ‘neccessary’ or ‘good practice’ to spend time on, and then there is a large amount of time they almost subconsciously spend in their field: they just enjoy having a beer with friends (at a jam session), having a chat (about music), hanging back (with their instrument), waste time on YouTube (watching poor quality phone recordings of musicians they look up to). Some don't think about anything else. Some have other interests. But I cannot think of one great musician that doesn't touch music when they're ‘off from work’.
There is a difference between coding in your off time and reading Hacker News. What you're describing is someone who is relaxing not working. Aka great don't work long days mastering an instrument, just put in their 9-5 and casually have fun. So sure, if someone does not keep abreast of computing in their free time that's not a great sign, but deliberate practice works best a few hours a day not 10+.
PS: What side projects do provide is a way to have more experience than your number of years in the field would suggest. But, that has heavy diminishing returns.
I played a wind instrument for 10 years, ending in senior year of high school. I got quite good (if I do say so myself, lol) and had the opportunity to learn from a few excellent musicians in private instructions, chamber music, and the like. I have to say, I agree with the OP. The best musicians I knew critically listened to different pieces of music in their spare time, reflected on their performances, and so on. From what I could tell, music permeated every aspect of their lives, even if they weren't spending their free time practicing technical fundamentals. Their love of the art was such that I don't think they could stop that if they even tried to.
I think having someone who does their coding at work works better for people later in their career, or who have at least done a good solid couple of years of development professionally. For those early into their profession, I usually recommend people dump as much time as they can while they can to get to that point faster, that way when life changes such as they decide to have kids, or focus energy in other passions instead, they are better prepared to make the transition.
In addition, there is a real danger early in a developer's career that their resume becomes a signal of being a weak developer if they don't put in the effort to progress - I have seen this happen to multiple developers who did not take seriously the need to reach a certain level.
Now to tackle the analogy directly, there is a lot of competition for positions in the music world - musicians have to work pretty hard to get stable jobs, or carve out positions of prestige. The most successful musicians I know do it very often, whether it be arranging songs, practicing their musicianship, and immersing themselves in as many musical communities as possible.
I think what the engineer is trying to convey is that a great software engineer thinks about code beyond just the job. I don't think the engineer literally means being a workaholic or the literal 9am-5pm shift, but the engineer has pet projects of his or her own that aren't necessarily related to work, as well as thinks of programming beyond just a paycheck as a personal interest (just as a photographer or any other craftsman would).
I've hired many programmers. The most disappointing ones were ones that only did exactly what their work told them to do. They would never read technical stuff or things like Hacker News on their days off.
The best programmers were the ones that built pet projects for their own needs. I remember one guy would write a script to download new wallpapers for his laptop to cycle through the hours of the day. If I recall correctly, Gmail was an engineer's pet project (when 20% time existed). Some contribute to Stack Overflow; others to open-source and to blog posts.
It's a lot like being a good restaurant cook or musician. You enjoy cooking, not just for the pay, but for how the craft empowers you. A good cook will think about what sides will pair with that steak, while an average cook will probably robotically sling together a dish. A good engineer will show passion.