「Do.018」接私活儿,是否有必要?

2023-10-22 19:10

本文主要是介绍「Do.018」接私活儿,是否有必要?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首发公众号:Android程序员日记
作者:贤榆的榆
如果你觉得有帮助欢迎关注、赞赏、转发
阅读时间:2717字 6分钟

今天在之前加入的一个知识星球「代码GG陆晓明」看到了明哥的一个作业,详细如下图所示:

看到这个问题,然后就回忆了一下自己的不长的程序员生涯,然后就随手写下了下面这些回答。其实我也是想写“接私活”这个话题很久了,甚至之前也写过,但都没有这次写的这么顺手,一气呵成。

需要注意一下的是,我在审题的时候把是否值得审成了是否必要,然后就有这篇文章的题目。但其实,无论是有价值还是有必要,我的核心思想都是不变的!

我的回答

我接过私活儿,先不表态接私活到底有没有必要吧。

技术私活儿部分

这里说一下我接私活的一些感受:
平常看了很多文章写了很多的demo,但终归没有实战项目,私活儿就是一个很好的练兵场。毕竟编程是一门技能,“纸上得来终觉,绝知此事要躬行”。

我在上一家公司的时候做的东西用到的技术很有限。后来接了一个私活,接到之后开始尝试新的架构,流行的技术,前沿的框架,修复记录遇到的种种bug。在面试现在这家公司的时候很多问题都是基于那个私活儿回答的。这是我第一次接私活。

第二次是帮别人修复一个比较难搞的bug,相对而言报酬比较丰厚。

所以我做私活无非就两个目的:

  1. 为了练技
  2. 为了赚钱

根据我上面的经历接私活好像全是好处。那接私活儿就是有必要的了?

但其实不然,毕竟我还没有交代过我接私活儿的背景。上家公司是被人员外包给了一个民营银行,虽然有一定的技术氛围,但这样的组织中领导之间勾心斗角,长于算计,各种甩锅等乱想还是普遍存在的。这也就导致大家的效率过低,工作节奏慢。而另外技术方面使用的都比较老(为了更好的兼容超低版本的手机设备嘛)。这种情况下我决定做了第一个私活儿的。其实私活的钱并不多 ,但我需要用这些活来填补我的时间,用这份时间来填补我的技术。做过技术的应该多少都会经历这样一段心境。

所以可以肯定的是,如果公司有更大的自我展示的空间,我肯定不会为了那点钱去接这个私活。

你说可能是自己写demo学习也可以,这个我在开头已经讲过了不赘述。

所以这个私活必要不必要是根据自己的时间,技能程度,职位环境等多方面因素来抉择的。

第二个直接的原因是为了钱。其实即使你为了钱去做,对你来说仍然是有技能提升的。但对于一些自己都已经纯熟掌握的技能。报酬的额度,和你当时对那比钱的需要程度就成了是否有必要接私活的重要因素

我的第三个私活就是为了换一台macbook而接的。

对于上述的“私活儿”——即技术方向的狭义的私活儿。对于接这样的“私活儿”,我个人的看法是因人而异的。每个人可以根据自身的情况来决定是否有必要。

好像上面觉得例子都是有必要接私活儿的,这里也举一个没必要的。比如你在一家很不错中大型公司,比你厉害的人也比较多,市面上的一些流行框架你都有使用过。技术宽度没有太大问题。这个时候你可能需要向下深挖,去探索一下Android底层实现,流行框架的设计思想,数据结构与算法的应用…。这块儿内容可能都需要你花时间去咀嚼源码,这很难通过接私活来提升,私活可以很容易帮你拓展你的技术宽度,但很难帮你延伸技术深度。所以如果你走到这儿了,暂时是真没必要接私活儿(尽管私活儿能帮你挣钱,但如果你不是特别极度的需要那一笔钱,也是真的没必要的)。

上面简单表达了一下个人对狭义的私活儿(即技术方向的)是否有必要接的一些看法。

非技术私活儿部分

接下来我还想谈一谈技术意外的私活儿。这其实很广泛了,比如公众号,小专栏,gitchat,直播…。对于私活儿,我个人的理解是除了你的主职工作以外的所有可以给你提供额外收入的劳动都叫私活儿

对于这一类私活儿我个人的态度是有非常必要的。

仍只能以我个人为例。我做了两年开发之后,我问自己一个问题:

除了开发我还会什么?出了开发我还能拿什么养活自己?

所以开了我的第一个公众号(注意:我要打广告了)——“Android程序员日记”。我学着写技术文,写教程,写生活感悟,写不好笑的段子[流汗]。虽然我从来不曾想过要通过这个公众号来养活自己,但我我喜欢用这样的方式来表达自己。

你可能会说这是你的兴趣,又不是私活儿。注意,我是一个程序员说话是会负责的,这个公众号虽然断断续续写了两年但还是有赞赏的,它给我带来了收入,几十块也是钱嘛(手动补一个尴尬而不是礼仪的微笑)。

除此之外,我也很喜欢英语(一直想出国看一看,工作一下,生活一下),虽然英语不算差,但自己知道还有很大的提升空间。所以今年在为一本英文技术书做了试译并通过之后,我就接了这本书籍的翻译工作,这个真的特别不赚钱。翻译每千字才几十块。也是想要通过这种方式来让自己大量涉猎技术相关的词汇量吧。毕竟最快提升英语的方式是用英语嘛!

先说两个自己的例子,下面我想上面的例子说说为什么接技术以外的私活是有必要的。

其实,这里仍然是有前提的——做你喜欢的事。在这样一个多元的社会中T型人才更加具有竞争力。虽然T字的这一"一"是指尽量扩展通用技能,如学习能力、创新能力、批判性思维、表达能力、解决问题的能力…。但每个人是可以针对自身的情况和自己对自身的期望从这些通用能力中进行抉择的。

直接提升这些能力是有一定难度的,但我们可以通过持续做自己喜欢的事情来间接扩展这些能力。这就是我说的接技术以外的私活儿是有必要的,尽管你自己都不曾意识到这是在接私活儿。要知道往往这些“私活儿”更容易可以帮你打开视野,开拓思维,提供多个角度来看待这个世界。直到有一天,它也终能回答你,除了开发你还会什么?出了开发你还能拿什么养活自己?

最后,我还想拿着键盘在街头卖艺!


上面就是我的看法,你对私活是怎么看的呢?可以在下方留言。

推荐阅读

系列文章

  • 「Do.006」Android实战项目(1)——我想说“开始吧”
  • 「Do.007」Android实战项目(2)——使用Github进行版本管理
  • 「Do.008」Android实战项目(3)——Git 分支管理模型
  • 「Do.009」Android实战项目(4)——AndroidStudio插件推荐(磨刀)
  • 「Do.014」Android实战项目(5)—— gradle 配置release与debug环境分离

其他

  • 「Do.002」有道云笔记–好用但不安全
  • 「Do.011」你是主动选择还是被动接受
  • 「Do.013」在中国,原创到底有多难?
  • 「Do.016」图解Win电脑下载腾讯视频转mp4
  • 「Do.017」如何高效使用Win电脑?

这里除了安卓技术分享,还有职场心得、人生感悟、面试经验、学习笔记、旅游攻略、生活摄影。一个不满足于现状的程序员,一个“不专注”于Android的公众号。

这篇关于「Do.018」接私活儿,是否有必要?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/263081

相关文章

Codeforces Round #113 (Div. 2) B 判断多边形是否在凸包内

题目点击打开链接 凸多边形A, 多边形B, 判断B是否严格在A内。  注意AB有重点 。  将A,B上的点合在一起求凸包,如果凸包上的点是B的某个点,则B肯定不在A内。 或者说B上的某点在凸包的边上则也说明B不严格在A里面。 这个处理有个巧妙的方法,只需在求凸包的时候, <=  改成< 也就是说凸包一条边上的所有点都重复点都记录在凸包里面了。 另外不能去重点。 int

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

【408DS算法题】039进阶-判断图中路径是否存在

Index 题目分析实现总结 题目 对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。 分析实现 对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图) 1.图的BFS BFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程中遇到结点i就表示存在路径start->i,故只需判断每个结点i是否就是stop

linux 判断某个命令是否安装

linux 判断某个命令是否安装 if ! [ -x "$(command -v git)" ]; thenecho 'Error: git is not installed.' >&2exit 1fi

为控制器的方法添加必要参数

前言:做这个系统时,要求每次调用接口时要传操作人、操作人电脑ip、菜单id,然后计入log。本来前端读取到然后加入请求头,后端写入log即可。但是老大要求后端也要把控必传参数,避免前端忘记。所以就写了这个。IOperationFilter 这个是百度知道的。主要用于在Swagger生成的API文档中动态地添加或修改操作(即API接口)的元数据。 用处:可以自动地为 Swagger/OpenAPI

如何判断一个数组中是否包含一个字符或字符串

第一种方法:遍历数组 String[] arr1 = {"1","2","3","4","6","7"}; for (int i = 0; i < arr1.length; i++) { if("5".equals(arr1[i])) { System.out.println("包含"); }else { System.out.println("不包含"); } } 第二种方法:先把数组

postgres数据库中如何看查询是否走索引,以及在什么情况下走索引

在 PostgreSQL 中,可以通过 EXPLAIN 或 EXPLAIN ANALYZE 查看查询计划,以判断查询是否使用了索引。除此之外,了解索引的使用条件对于优化查询性能也很重要。 1. 如何查看查询是否使用索引 使用 EXPLAIN 查看查询计划 EXPLAIN 显示 PostgreSQL 如何执行查询,包括是否使用索引。 EXPLAIN SELECT * FROM users WH

模拟退火判断一个圆是否可以放在一个多边形内

/*给定n个点的一个多边形,一个圆的半径,判断圆是否可以放在多边形里*//* ***********************************************Author :rabbitCreated Time :2014/7/3 22:46:38File Name :2.cpp**********************************************

【微信小程序】检测版本是否更新

关于销毁 当用户点击了右上角的胶囊按钮关闭小程序,或者滑动屏幕返回手机主页面(离开微信),这时候小程序并没有直接销毁,而是进入了后台。当再次进入微信或者再次打开小程序,又会从后台进入前台。 只有当小程序进入后台一定时间(也就是时间过长),或者系统资源占用过高,才会被真正的销毁。 冷启动 & 热启动 冷启动:小程序首次打开或者销毁后再次被打开。 热启动:是指从后台切换到前台,或者小程序在后台运

oracle查看表是否被锁住

Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作, 那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容。 锁表查询的代码有以下的形式: select count(*) from v$locked_object; select * from v$locked_object; 查看哪个表被锁 select b.owner,b.object_n