Why I Go Home: A Developer Dad’s Manifesto

Why I Go Home: A Developer Dad’s Manifesto

http://adamschepis.com/blog/2011/09/15/why-i-go-home-a-dads-manifesto/

 

 

TL;DR I love my job, I love my career, I love solving hard problems, and I love crafting great software. Just not as much as a I love my daughter.

When I was younger, i was one of the developers who would get to work early, code all day, leave the office after everybody else, and then get back online and code at night. It didn’t matter what I was coding on, I just wanted to be coding. Then a funny thing happened. My wife and I had a baby.

When I found out that Jen was pregnant I was ecstatic. Not only because getting to that point was a difficult process, but because I have always known that I wanted children. I wanted to be a father. No, I wanted to be a great father. I made a promise to myself and my unborn child that I would, at the very least, be a father who was present, and around, and available.

At this point you may be thinking “How is that going to work? The caffeine-fueled, crunch-time, death march prone careers of developers don’t exactly jive with being home for dinner.” This is true. For me this came down to priorities and a simple realization: If you screw up at your job you can always get another one, but if you screw up your family, especially your relationship with your children, it will stay with you and stay screwed up forever.

So I made the choice that I would be home to spend time with my daughter everyday, even if it was going to adversely affect my career. So I get to the office around 6:30-6:45am every day, I put in about 9 solid hours of work, and I take off to head home around 4pm. The hours between 4:30 and 7:30pm are sacred. They belong to my daughter. The hardest part about this is that I work with a lot of people on the west coast (who, as a function of culture tend to start their days later) and its very natural for them to schedule meetings at 2pm or 3pm PST. This directly conflicts with the time I have set aside for playing with my daughter, so I try to reschedule or decline most of these meetings. Of course, I try to be pragmatic and if something incredibly important comes up on the job I will be here, no matter what the time. The bar is pretty high though, and the reason for that goes back to my earlier realization. Once my daughter is in bed I am free to spend time with my wife, code on something else, or work if its necessary. Calling into an 8pm or 9pm meeting with west-coast teams is not unheard of.

At first I had a lot of guilt about leaving my comrades behind to suffer during hard times. That was reinforced during my performance appraisal when one of the pieces of feedback I got through our peer review process was that as a team leader, it would be nice if i was around when the team had to stay late. But if you look at the breakdown of my time, I spend 9+ hours working each day, and only 3 with my daughter. If that’s unfair to anyone, its unfair to my daughter.

By doing this I’ve actually discovered that I can be more productive when I get away from the code for a while. I drive home, play with my daughter, eat dinner, bathe her, read her books, and put her to bed. All this time my brain is still spinning. My subconscious is still tossing problems around and searching for solutions. There is plenty of research that shows the benefits of taking breaks from hard problems if you want to solve them. Plus, few things keep you on your toes like playing with a precocious two year old.

Sure, I don’t pump out the same sheer volume of code that I used to partly because these days I spend more time mentoring, but also because the lines of code I do write are better.)

Another ancillary benefit I discovered is that I don’t feel as burned out. Death marches and late nights take a lot out of you. As a result you . Nowadays I come into the office energized with my thoughts organized and ready to put in solid hours at work. When you work crazy hours you yo-yo between 20 hour days and 8 hour days that really only have a few hours of productivity (or none at all!) Decision making suffers when you are overtired, and you fall behind on everything else outside of your job that needs to get done. To make matters worse, this trend is self-amplifying. You go crazy trying to finish one project because the demands were unreasonable or it was poorly scheduled or estimated (or other legitimate stuff came up, but schedule didn’t budge) and so you necessarily go easy at the beginning of the next cycle or project because you are burned out. This causes you to fall behind and dooms you to another round of late nights and misery.

Even if you don’t have a great reason like I did, kick the death marches to the curb. You may even find that prioritizing a few hours to spend on some worthy pursuit outside of work will make you even better at your job. While you’re at it, pick up a copy of Rework from the guys at 37signals. It covers a lot of this stuff.

Time well spent

Time well spent

posted on 2013-04-25 17:55 RockyLOMO 阅读(...) 评论(...) 编辑 收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于YOLOv9实现工业布匹缺陷(破洞、污渍)检测系统python源码+详细运行教程+训练好的模型+评估 【使用教程】 一、环境配置 1、建议下载anaconda和pycharm 在anaconda中配置好环境,然后直接导入到pycharm中,在pycharm中运行项目 anaconda和pycharm安装及环境配置参考网上博客,有很多博主介绍 2、在anacodna中安装requirements.txt中的软件包 命令为:pip install -r requirements.txt 或者改成清华源后再执行以上命令,这样安装要快一些 软件包都安装成功后才算成功 3、安装好软件包后,把anaconda中对应的python导入到pycharm中即可(不难,参考网上博客) 二、环境配置好后,开始训练(也可以训练自己数据集) 1、数据集准备 需要准备yolo格式的目标检测数据集,如果不清楚yolo数据集格式,或者有其他数据训练需求,请看博主yolo格式各种数据集集合链接:https://blog.csdn.net/DeepLearning_/article/details/127276492 里面涵盖了上百种yolo数据集,且在不断更新,基本都是实际项目使用。来自于网上收集、实际场景采集制作等,自己使用labelimg标注工具标注的。数据集质量绝对有保证! 本项目所使用的数据集,见csdn该资源下载页面中的介绍栏,里面有对应的下载链接,下载后可直接使用。 2、数据准备好,开始修改配置文件 参考代码中data文件夹下的banana_ripe.yaml,可以自己新建一个不同名称的yaml文件 train:训练集的图片路径 val:验证集的图片路径 names: 0: very-ripe 类别1 1: immature 类别2 2: mid-ripe 类别3 格式按照banana_ripe.yaml照葫芦画瓢就行,不需要过多参考网上的 3、修改train_dual.py中的配置参数,开始训练模型 方式一: 修改点: a.--weights参数,填入'yolov9-s.pt',博主训练的是yolov9-s,根据自己需求可自定义 b.--cfg参数,填入 models/detect/yolov9-c.yaml c.--data参数,填入data/banana_ripe.yaml,可自定义自己的yaml路径 d.--hyp参数,填入hyp.scratch-high.yaml e.--epochs参数,填入100或者200都行,根据自己的数据集可改 f.--batch-size参数,根据自己的电脑性能(显存大小)自定义修改 g.--device参数,一张显卡的话,就填0。没显卡,使用cpu训练,就填cpu h.--close-mosaic参数,填入15 以上修改好,直接pycharm中运行train_dual.py开始训练 方式二: 命令行方式,在pycharm中的终端窗口输入如下命令,可根据自己情况修改参数 官方示例:python train_dual.py --workers 8 --device 0 --batch 16 --data data/coco.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights '' --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15 训练完会在runs/train文件下生成对应的训练文件及模型,后续测试可以拿来用。 三、测试 1、训练完,测试 修改detect_dual.py中的参数 --weights,改成上面训练得到的best.pt对应的路径 --source,需要测试的数据图片存放的位置,代码中的test_imgs --conf-thres,置信度阈值,自定义修改 --iou-thres,iou阈值,自定义修改 其他默认即可 pycharm中运行detect_dual.py 在runs/detect文件夹下存放检测结果图片或者视频 【特别说明】 *项目内容完全原创,请勿对项目进行外传,或者进行违法等商业行为! 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值