Category: 软件工程

儿子问我软件工程师的工作体验是怎么样的?

儿子问我软件工程师(Software Engineer)都是做什么的, 他很好奇我的工作内容, 我简单的说就是写代码+调试=解决问题. 正好那天是周五下午, 娃在上Papworth上钢琴课, 我一般都在车里剪视频利用起这个碎片时间. 我抱着笔记本在车里工作, 从年初就在忙一个大的改动, 忙了有两个多月, 终于差不多了, 两同事代码审核(Code Review)都通过了就差一些小改动, 所以我在车里还在努力, 根据收到的建议提交了代码 (Push commits), 终于得到了approved, 就等着 Azure DevOps 的 pipeline 编译代码然后跑单元测试+集成测试(还有七七八八的检查: 代码覆盖 Coverage, 静态代码检测 Static Code …

系统设计: Steem区块链ChatGPT机器人

前几天, 把ChatGPT整合到了STEEM区块链上, 但最初的设计存在缺陷. 我发现其它机器人命令(!bing, !thumbup, !price, !info) 同样也有问题, 所以就借此机会重新设计重构了一下代码和结构. 这个DApps (ChatGPT机器人) 是使用JS (Node)编写的, 并由pm2管理器托管运行在一台云服务器上(VPS Server). STEEM区块链ChatGPT DApps设计缺陷 原先的设计: 进程(Blockchain)监听STEEM区块链上所有的帖子, 把满足条件的评论(含有 !ask 命令)的操作入数据库. 进程(ask) 或其他命令从MySQL中获取相应的记录, 并立即处理它们, 然后在同一进程中同步地发布到STEEM区块链. 这里会有一个问题, 确实来说, 大量并发会有问题. …

整合 ChatGPT Prompt AI到 STEEM 区块链上!

我现在是 STEEM 的 TOP 20 见证人, 高处不胜寒, 感觉不能辜负大家的期待, 得做些工作. ChatGPT 从2月份就爆火以来, 各种应用接入 ChatGPT 的API, 不过目前 ChatGPT API 还是基于 3.5版本的. 我想着整个机器人也不是难事(以前已经整过几个了), 在看视频的同时就写些代码就搞定了, 顺便还重构了一下 以便更好同时支持其它的机器人. 现在, 在STEEM 区块链上我们可以在任意帖子(暂不支持帖子本身)下回复 !ask 加个空格+你要问的问题. 不过大约需要 …

我儿子也会 Prompt Engineering

我的儿子们很兴奋地向我展示了使用微软必应(Bing)的”文本转图像(Image Creator)”功能. 他们说他们在Edge浏览器上的工具垂直栏上意外发现了这个功能. 微软必应(Bing)有给我和”图像创建器(Image Creator)”, 可以让您描述要绘制的内容. 提示工程 (Prompt Engineering)是人工智能(AI)中特别是自然语言处理(NLP)中的一个概念. 在提示工程中, 将AI应该完成的任务的描述嵌入到输入中, 例如作为问题, 而不是隐含地给出. 提示工程通常通过将一个或多个任务转换为基于提示的数据集, 并使用所谓的”基于提示的学习”或仅使用”提示学习”来训练语言模型来工作. 提示工程是一个全面的过程, 涵盖人与AI之间互动的整个周期. 它涉及对提示和基础数据结构的故意和系统的设计和改进, 以操纵AI系统朝着实现特定和期望的输出的方向发展. 随着ChatGPT(ChatGPT-3.5, ChatCPT-4甚至ChatGPT-5)成为热门话题, “提示工程”的需求日益增长. AI已经发展进化, 我们需要能够向AI提供具体的任务, 精确的要求(到位), 以便它可以完成任务. 许多职能/角色需要”提示工程”的技能. 无论是什么工作职能, 许多人在其职业道路上都可以成为提示工程师. …

谷歌面试题: 迷宫随机生成算法

据说这个是谷歌 Google 的第一轮面试题. 一般这种题目就是: 设计一个迷宫算法 (Design a Maze). 面试中应该先问清楚需求 (Ask Clarifying Questions): 迷宫需要有几条出路? (假定至少1条), 多大的迷宫? 多复杂的迷宫等等. 最容易想到的就是随机生成1和0的地图, 其中1是墙, 0是空路, 不过这种方法生成随机的效率实在是太低, 你可以跑了半天也无法生成一个有效的迷宫, 我们假定有效的迷宫是至少含一条路径. def maze(width, height): m = None while …

回忆起在美国通用电气(GE)工作的一件事/为GE Magik编程语言添加_while循环

在微软研究院面试多的一轮价值观(Microsoft Values)中, 面试官问我在过去的职业生涯中 最感谢的人是谁? 为什么? 我18年年底加入了美国通用电气 General Electric 在剑桥的办公室. 剑桥GE有一个软件部门(现在归于 GE Digital) 是做 GE Smallworld GIS 软件的. 这个软件NB的地方是基于自己开发的一门动态编程语言 Magik. Magik 语言最开始是在C开发的, 有自己的 Magik Runtime运行库, 后来在Smallworld 5版本后就把Magik编程语言用Java重新编写了, 这样的好处是可以在JVM上跑, 同时可以无缝的使用开源的JAVA库, 因为 …

我的面试谷哥GOOGLE伦敦SRE的经验和教训

今年疫情, 接到了谷哥和FB的面试邀请, 想着试试现在的水平如何便欣然接受. 每年都面试, 并不是说一定要换工作, 这是一个很好的让你在人才市场中保持竞争力, 查看自己不足, 检验你坚持刷题的一个好方法: 阶段性刷题的考核和目标. 谷哥(Google, 狗家 或被称为G家)是很多软件工程师梦寐以求的公司, 可能是媒体宣传他们家的福利有多么多么好: 有免费的员工餐厅, 有各种娱乐休闲的活动, 给的工资还高. 我5年前接到过面试邀请(当时问了一道队列+哈希表的题), 可惜当时水平太差连第一面45分钟的 coding 都没过. 再后来这几年一直投, 甚至去年找朋友内推都没法过简历关. 据统计: Google 面试成功率不到 0.2%(1000人不到2人), 难度甚至比上哈佛更大. 第一面要过一般是要BUG FREE而且不能卡. …