网上好多程序员加班加到GG的消息一堆,那么程序员真的没有业余时间吗?在大厂我就不知道了,因为没去过,但一般企业,其实忙的时候,也就忙那么几天,我在上一家公司的时候,我们一个同事,一般就干2个小时的工作,其他时间就学习,老板还很喜欢他,他也挺喜欢那种感觉,也许很多人都会觉得这样的生活也太爽了吧。其实我也一样,只不过我自己不太喜欢那种状态,自从我加入程序员的行业,我就想凭借自己的所学,去打造那些去改变世界、造福人类的软件出来,但只在公司上班,那我的这个想法估计就得变成白日做梦了,永远不可能实现。于是乎一年前我离职和朋友开始创业,一年过去了,虽然没有多大的成果,但是过得非常开心,虽然累,但自己每一次的努力,都在走向那个初衷。前几天和前同事打电话聊天,他说他过得很压抑,想换环境。我就在想一个问题,再换环境,不就是再换一个地方给别人挣钱,去帮别人实现别人的梦想吗?做出结果,有多少和你有关系呢?那么为什么不拿自己多余的时间,去和一些志同道合的人,共同筑梦呢?不成,你也没什么损失,唯一就是损失点你打游戏、少睡几个小时的时间。但是万一成了呢?那可能就会改变你的整个人生了呢?程序员业务时间应该干点什么?我觉得应该找些志同道合的人,共铸宝剑,施展自己的平生所学,去实现一个梦。但只局限于大神级别的人物哈,刚毕业的小白还是好好学习,后期才能去筑梦。

我有个朋友,业余时间就是开发游戏打发时间:

开发游戏……

我先说个秘密,要想有业余时间,最好找个全远程在家办公的工作,每天光通勤时间就能省俩小时。俩小时啊,干点啥不香?如果是海外远程的就更好了,大部分时间都是天高皇帝远想浪就浪没人管你……

我大概从4年前开始有个想法,学习编程的过程和游戏很像(闯关打怪,同时闯关之后有无比的愉悦感,当然我是说我有愉悦感,根据我的观察不是每个人都有愉悦感,有些人甚至会厌烦),那么我能不能设计一个游戏,闯关的过程就是学习的过程呢?这个过程中游戏性的拿捏需要恰到好处(我感觉我还没做好……),不能太好玩,否则玩家会倾向于耍小聪明不写代码,也不能太无聊,否则玩家根本玩不下去。

后来这个想法愈发的强烈,我就从2020年10月开始搞。10月跟我媳妇回丈母娘家,晚上十点钟把娃哄睡了之后一个人抱着电脑到客厅开工。周末有的时候把娃跟她妈丢到商场里我自己在KFC点一杯可乐开工。日常早上六七点间起床开工到9点上我正经的班,然后下午四五点本职工作结束之后开工。

现在是2022年3月,一年半已经过去了,离我设想的成品还有很远,不过终于可以放一个预览版出来见人了,在这里,浏览器打开就能玩

游戏的类型应该算是MMORPG吧,每个人都拥有自己的一个副本。现在的情节主要是完成简单的编程任务摧毁外星虫子防御塔拯救世界什么的(我玩的游戏少,这个脑子目前想不出来啥更好的情节了)……

这里有个双关梗……

至于多人游戏之间的新玩法我还没想清楚(比如你和你的队友一起刷题可以额外拿金币?或者你可以和队友结婚(无论男女),然后经验加倍?)。

大部分的代码是开源的,没开源的未来迟早也会开源:https://github.com/ByteLegend/ByteLegend

我觉得游戏的主要亮点在于催促你去真正的写代码,去思考,而不是只看视频,看完了一堆视频一动手发现还是啥也不会。比如你要学习Git,我们会在野外放一个宝箱,打开宝箱的钥匙就是git version的输出:

你要学习调试器,我们会放一个仓库,需要你真正调试之后获得密码。

你要通过这里的两扇门,就必须运行程序获得通关密码。在这个过程中你被迫配置好了IDE,学会了切换分支操作。

游戏的后端依赖GitHub API和GitHub Actions。因为众所周知的原因,国内访问这些东西是很痛苦的,所以游戏用了很多魔法保证用户的体验:

所有的项目都配置了项目级别的Maven仓库镜像,Maven wrapper的下载地址也指向了国内CDN。所有的GitHub API调用,包括GitHub头像的地址都被魔法劫持到了国内地址:

魔法在里面

用的技术栈主要是Kotlin Multi Platform/React/Canvas/WebSocket/Vert.x。这一套玩意有多新呢,这么说吧,我开始做的时候,前端的Kotlin JS还是alpha状态(现在好像也是)。其实我做了几天就意识到我需要自己发明一系列的东西:地图格式、动画效果、CI/CD,等等等等,还好最后都发明出来了。

虽然目前还是个玩票项目,但是我一直在认真做,连自动化测试也有好好在写,比如这个是浏览器自动化测试,用代码把整个游戏流程跑一遍:

还有很多想做的东西没有做,现在看来目测要继续做个几年了:

我想搞个地图,上面游荡着很多野怪,每个野怪就是一道算法题目,刷题就是杀怪……

我想往游戏里面嵌入一个音乐播放器……

我想让玩家可以互相沟通,碰到问题一起讨论……

我还希望扩展到更多的语言,Python、Go、Rust……

程序员会怎么打发业余时间?相关推荐

  1. 作为程序员,你的业余时间都在做什么?

    作为程序员,你的业余时间都在做什么呢? 除了写代码,平时还喜欢做什么? 和大家分享一下丰富的生活吧~

  2. 程序员:你的业余时间是怎么被浪费掉的?

    作为一名程序员如何有效的管理自己的业余时间,会成为和别人拉开差距的重要因素.当然你不能把每天的每一分钟都充分利用起来.这个目标不可能实现.我们可以做到的是找到自己在哪一方面浪费的时间最多,然后逐渐的去 ...

  3. 天才程序员之陨落:业余项目创业 Cloudflare,公司上市前患病失去自理能力

    作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 说起Cloudflare,可谓是大名鼎鼎,它承担了互联网10%网络请求,帮助受保护站点有效抵御分布式拒绝服务攻击. ...

  4. 成为一个程序员要花多长时间

    理解专业程序员 成为一个程序员要花多长时间  http://book.csdn.net/ 2007-3-27 10:18:00 图书导读 当前章节:成为一个程序员要花多长时间 · 目录 · 前言 · ...

  5. 为什么程序员不擅长评估开发时间?(转)

    一个曾经与我一起工作过的经验丰富的项目经理声称,他拿到程序员的时间估算以后,先将它乘以π,然后转化下一个时间数量级后,才能得到真正的值.1天转化成3.14周.他过去因为程序员不擅长估算时间而吃尽了苦头 ...

  6. 程序员如何精确评估开发时间?

    一个程序员能否精确评估开发时间,是一件非常重要的事情.如果你掌握了这项技能,你在别人的眼里就会是这样: 靠谱 经验十足 对需求很了解 延期风险小 合格的软件工程师 正规军,不是野路子 评估开发时间的重 ...

  7. 编程开发学习笔记之程序员如何用1年时间获得3年成长(图)

    2019独角兽企业重金招聘Python工程师标准>>> 编程开发学习笔记之程序员如何用1年时间获得3年成长(图) 前言 这世界存在这么一个银行,你一出生,就自动享有这家银行为你开设的 ...

  8. 程序员:多用吐槽的时间做点实际的事情

    不好意思,如果图片不能查看,请访问 下面地方查看,谢谢! 程序员:多用吐槽的时间做点实际的事情 昨天晚上很晚才睡觉,夜深的时候,静下心来,想想这一天,也想想这一年. 也就在昨晚加入一个知识星球,&qu ...

  9. 拜托!程序员的工作不能用时间来衡量

    昨天跟一个小伙伴聊微信的时候,他说起自己身边的一个同事,每次都按时下班,而自己却经常加班.感觉自己被分配的任务量是他的几倍,内心很不平衡. 我觉得这事不能这么看,程序员的工作量不能只看工作时间来衡量. ...

最新文章

  1. 谈谈你对Android NDK的理解
  2. cpio.gz文件解压方法
  3. 魔棒工具--RegionGrow算法简介
  4. win10 jenkins svn android studio 自动化打包教程 以及一些问题的解决办法
  5. 数据库多表连接查询详解
  6. Linux下cat命令各种用法
  7. 关于DJANGO MODELS的个人理解和RELATED_NAME的使用
  8. java 获取发布后的路径问题_Java中的路径问题实例分析
  9. wifi 2.4g 5g 区别_关于路由器的2.4G以及5G,你不知道的那些事
  10. Leetcode#102Binary Tree Level Order Traversal
  11. lol服务器维修2020,lol2020年5月29日停机维护到几点 英雄联盟维护公告是什么
  12. xampp配置虚拟主机
  13. 简单的docker下载安装jenkins
  14. 教你如何在微信浏览器下载APP
  15. GeoGebra数学绘图神器
  16. 华为eSight网络监控平台安装-最新版本
  17. VelocityTracker简介
  18. Arcgis 镶嵌栅格报错999999,且生成x3569458.tif文件
  19. ipvs 导致syn 重传问题
  20. Revit空闲事件(Idling Event)增强和外部事件(External Event)

热门文章

  1. 牛客竞赛习题:这个合理吗? [C语言解法]
  2. python 引用其他目录py文件_Python引用其他文件夹下的py文件
  3. 技术和业务,到底哪个重要?
  4. 保存图片到相册/图库___Android基础篇
  5. Windows实时运动控制软核(一):LOCAL高速接口测试之C#
  6. 51Nod-1289 大鱼吃小鱼
  7. 如何让开关打开_打开汽车引擎盖很简单?做对的新手司机没几个,这种做法很危险...
  8. 《什么是项目群管理 》
  9. 基于Python的多人聊天室的设计与实现
  10. KDBC1210题解