与 Shawn McCool 的 8 个问题

发布时间 作者

8 Questions with Shawn McCool image

本周我很高兴邀请 Shawn McCool 参加 Artisan Files 面试系列。如果您不熟悉 Shawn,他运营着 Laracon EU 会议,是 Laravel 播客 的前主持人,并且是 Laravel 的早期采用者之一。

您能告诉我们关于您自己的情况吗?您是如何开始编程的?

我是一位 33 岁的美国软件开发人员,住在荷兰。四年前,我和我的妻子和两个孩子一起搬到这里,开始了一段冒险之旅。

我从 10 岁开始编程。那时我已经非常喜欢在学校的 Apple IIe 计算机上玩 Oregon Trail 游戏。后来,当我去了我的朋友 Jeremy Cole(现在是一位著名的数据库专家)家时,他向我展示了他们家的 IBM PCjr 和 gwBASIC,这就是一切开始的地方。

最终,他们家买了一台新电脑,然后以 100 美元的价格将 PCjr 卖给了我们家。我将电脑放在自己的房间里,两年后,我已经用 BASIC 语言编写了 200 多个程序。我写过各种各样的程序,从原始游戏到原始管理应用程序。真的,我能想到什么就写什么。这简直是一种痴迷。

在接下来的几年里,我发现了 Turbo Pascal 7,然后是 C 和 C++。后来,我在 14 岁左右开始沉迷于 Linux,也就是 SNES9x 在 Linux 上首次实现声音的时候。我和 Linux 几乎形影不离。

我几乎不记得生活中没有对编程充满热情的时候。

您现在正在做一些有趣的事情吗?

我最喜欢的项目之一是 Laracon EU。它是官方的欧洲 Laravel 大会,我把它当成自己的孩子一样爱护。我和我的合伙人一年到头都在为它工作,倾注了我们的心血和灵魂。对我们来说,这不仅仅是一场技术大会。我们希望它能给我们的与会者带来深刻的体验。毕竟,这是我们与其他社区成员见面的机会,也是我们把更多人带入活跃社区的机会。

我非常专注于教育,我认为会议是教育的绝佳媒介。我正在筹备一些其他的会议,就像 Laravel 一样,这些会议的主题都与我内心深处的东西息息相关。我希望很快能谈谈这些会议。

在开始客户项目时,您的典型项目流程是什么?

开始一个项目真的很困难。在我看来,最难的部分是了解客户的思维方式,他们真正想要/需要什么,以及管理他们的期望。

我总是会交付一个几乎没有功能的版本作为开发的第一个“阶段”。这样,我们一直在交付,并且可以完成所有的设置工作。当客户进来查看我们的进度时,他们的头脑开始思考,他们往往会对自己的真正需求有更多了解,这将有助于开发的后续阶段。

您必不可少的“应用程序”有哪些?

嗯…… 对我来说,必不可少的应用程序是:

  • PHPStorm
  • IntellijIDEA
  • Navicat
  • Sublime Text
  • Virtualbox
  • Vagrant
  • Telegram
  • Steam

我认为这些已经涵盖了一切。

您如何安排一天?您是否遵循固定的工作时间表?

我的妻子在阿姆斯特丹攻读博士学位。所以,她早上 6 点起床,以避开火车高峰时段。这意味着早上送孩子们去学校的任务就落在了我的肩上。幸运的是,我和他们上学的学校只有 2 分钟的路程。

所以,我早上 7 点起床,准备午餐,给他们喂饭,让他们准备好,然后送我的四岁女儿去学校。之后,我基本就自由了。通常,我会去一家咖啡馆,坐下来,喝一杯卡布奇诺,然后查看邮件。之后,我会尽量完成剩下的最难的任务,这样我就可以在下午放松一下。

我发现,如果下午没有时间放松,孩子们放学回来的时候,我会变得很暴躁。所以,对我来说,这很重要。当我早点完成压力最大的工作时,就能很容易地做到这一点。

您认为成为程序员最好的部分是什么?

我认为成为程序员最吸引人的地方在于你最终的思维方式。正如我之前提到的,我从 10 岁起就痴迷于编程。所以,23 年后,你可能会想知道我的思维方式是由于编程而产生的,还是因为我的思维方式而爱上了编程。

无论如何,编程教会了我如何思考。你学会了事物是如何真正运作的。你学会了,环境在改变,以前看起来好主意的事情,现在可能看起来就不那么好了。能够将大型问题分解成许多小问题,然后将许多小问题的解决方案组合成一个大型解决方案,是一件大事。

无论你是否是一名程序员,这些技能都推动着世界前进。

能够创造自己想要的东西,这是一件非常了不起的事情。例如,我痴迷于定制用户体验。我的笔记本电脑基本无法被其他人使用,因为我使用的是与 QWERTY 不同的键盘布局,而且我不使用堆叠窗口管理器,还有其他一些原因。

我非常喜欢思考如何改进我和机器的互动方式,然后尝试这些方法。

最糟糕的部分呢?

我不知道成为程序员有什么特别不好的地方。但是,我可以说,软件开发行业确实有一些不好的地方。软件开发人员经常受到极其糟糕的对待。他们通常不被重视,也没有得到培养。

我认为,这种情况 partly 是因为我们中很多人都是“从街上走进来”的。对于那些没有学习到成为“资深”水平所需的 5000 个知识点的人来说,这份工作可能非常困难。

但是,有趣的是,现在有更多可供学习的资源。当我刚开始的时候,我们必须连接到 BBS,才能找到其他人的源代码。通常没有关于如何做事的说明书(我们作为孩子能够找到的),我们必须从我们能找到的资源中学习。在我所在的学校,只有我的朋友 Jeremy 和我是真正会编程的人。

现在,教育从互联网的各个角落涌现出来。这真是一个宝库,它改变了人们的生活和学习方式。

如果开发者能够保持热情并对学习内容有良好的品味,那么他们就能拥有非常美好的生活。但是,我们的行业还处于起步阶段,你不能指望事情会长时间保持现状。为了获得回报,保持跟进非常重要。当我提到“保持跟进”时,我指的是跟进范式转变,而不是跟进工具。

你认为未来 5 年或 10 年,Web 开发会发生哪些变化?

我认为 Web 开发将更多地使用函数式编程范式和分布式计算。我认为我们将比现在更频繁地使用外部服务,并将更多地关注事件溯源等技术。

创建简单定制应用程序的 Web 代理机构可能会继续以类似于现在的方式进行工作。但是,我们将拥有更一致的工具。

开发者将使用更少的命令式方法,转而使用更多声明式方法。


如果你想了解更多关于 Shawn 的信息,请查看他的个人博客或关注他的Twitter。另外,如果你喜欢这次访谈,你可以下载所有其他访谈的 pdf 文件,这些访谈都在 Laravel News 上进行。

Eric L. Barnes photo

Eric 是 Laravel News 的创建者,自 2012 年以来一直在报道 Laravel。

分类
Cube

Laravel 新闻简报

加入 40,000 多名其他开发者,不错过任何新技巧、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发者必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

绝不妥协

Joel 和 Aaron,两位来自 "绝不妥协" 播客的经验丰富的开发者,现在可以为您的 Laravel 项目雇用。⬧ 固定价格 7500 美元/月。⬧ 无需冗长的销售流程。⬧ 无需合同。⬧ 100% 退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保您的 Web 应用程序取得成功。

Kirschbaum
Shift logo

Shift

运行旧版本的 Laravel?即时自动 Laravel 升级和代码现代化,保持您的应用程序新鲜。

Shift
Bacancy logo

Bacancy

以每月仅 2500 美元的价格,为您的项目配备一位经验丰富的 Laravel 开发者,拥有 4-6 年的经验。获得 160 小时的专用专业知识和 15 天的无风险试用。立即安排电话!

Bacancy
Lucky Media logo

Lucky Media

现在就获得好运 - 拥有十多年经验的 Laravel 开发的理想选择!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar: Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的力量带入 Laravel。

Lunar: Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 职位板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS 启动套件

SaaSykit 是一个 Laravel SaaS 启动套件,包含运行现代 SaaS 所需的所有功能。付款、漂亮的结账、管理面板、用户仪表板、身份验证、预置组件、统计、博客、文档等。

SaaSykit: Laravel SaaS 启动套件
Rector logo

Rector

您无缝 Laravel 升级的合作伙伴,降低成本,加快创新,帮助企业取得成功

Rector
MongoDB logo

MongoDB

使用 MongoDB 和 Laravel 的强大集成增强您的 PHP 应用程序,使开发者能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到您的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速模糊站点搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包在您的 Laravel 应用程序中添加评论

阅读文章