我的计划是 2019 年成为一名更好的开发人员。
我知道你可能在想什么:“快到二月了,那些老掉牙的新年决心帖子还在我的时间线上滚动(现在在 dev.to 上)。” 我不怪你!虽然我通常不参与新年决心的狂热(通常最后都会因为没能坚持下来而感到沮丧),但今年我感觉我需要一个,我需要制定一个好的计划,如果我想在年底看到切实的成果。
原因
回顾 2018 年,这一年我在洛杉矶一家小型 IT 咨询公司找到了我现在的第一份工作——网页开发人员,熟悉了许多新的网页技术和“最佳实践”,并且成为“与 Google 一起成长”的顶尖申请者之一,并获得了Udacity移动网页专家纳米学位的全额奖学金。
虽然这听起来不算糟糕的一年,但缺乏切实的成果让我感到沮丧。我仍然没有一个像样的作品集,我没有完成大部分我开始的在线课程,我没有为开源项目做出贡献,我对TDD了解不多,也没有写足够多的博客文章,等等……
只有我这么想吗?其他优秀的开发人员是怎么做到的?我得花多少年周末时间写代码才能成为一名优秀的开发人员?
我知道我必须采取不同的做法,但是该怎么做呢?
然后,我做了一些研究......
首先,我发现我并非唯一有这种感觉的人。Erik Trautman 在这篇文章中解释了学习编程的多个阶段及其难点。我意识到我目前正处于他所说的“绝望的沙漠”阶段:
当你进入第三阶段时,知识面会更加广阔。现在你需要了解要使用哪些工具、要学习哪些语言、底层计算机科学基础知识、如何编写模块化代码、面向对象、良好的代码风格以及如何寻求帮助(仅举几例)。每次访问谷歌或 Hacker News,你都会陷入新的“兔子洞”,被更多你不知道但又觉得应该知道的东西淹没……
即使你能够运行一些应用程序,在成为真正专业人士的宏伟蓝图中,也很难不感到迷失。很难衡量你的进步。你怎么知道你需要学什么,或者你是否在学习正确的东西?
此外,Quincy Larson 在他的学习编码的故事中完美地描述了我的情况:
但作为个人,面对如此多的选择,决定学什么真的很难。我深有体会,因为我自己就是那条绕着十字路口转圈、追着一辆车又一辆车的狗。一个优秀的程序员的技能组合可以描述为T型,在很多领域都有浅显的知识,但至少在一个领域拥有深厚的知识。但经过几个月的压力和努力,我的技能组合变成了更像下划线的形状。
其次,我发现了一条出路。幸运的是,Erik Trautman 和 Quincy Larson 不仅完美地描述了我的情况,还提出了一条出路。他们给出的建议如下:
-
设定目标。我意识到我试图同时学习太多东西。我需要写下我的目标,并学会对那些可能毫无意义、分散注意力的有趣事物说“不”。
-
找到一条路径(写一个计划)。我需要写一个能引导我实现目标的计划。这样我就能决定要遵循哪些课程并坚持下去。
-
专注。我相信这篇文章能帮助我保持理智,即使在困难时期也能坚持这个计划。我需要始终相信自己的判断,并牢记我今天写这篇文章的原因。分享这篇文章,我公开承诺将遵循这个计划,并在年底写下它的结果。
目标
回到 T 型程序员的问题。我希望对一般的 Web 开发概念和技术有深入的理解,但同时也希望对Ruby on Rails有更深入的了解。
我选择Ruby on Rails的原因有很多,但为了简洁起见,我只想说,Ruby 和 RoR 的使用让我意识到,我想以编写代码为生(即使在我获得计算机科学学位之后)。想要了解更多关于 Ruby on Rails 为何如此有趣的原因,您可以阅读DHH 的《Rails 教义》。
总之,我的目标是成为一名更好的 Ruby on Rails 开发人员,并最终找到一份 Rails 工作(远程、副项目或代理工作)。
计划
我决定把计划分成四个部分。这样能帮助我专注于需要学习的内容,并对我想要完成的项目有一个清晰的认识。
1) 我将从一些 Web 开发概念开始学习,主要是去年我尚未确定的概念。2) 3) 我将开始使用Thoughtbot 的Upcase及其学徒计划作为指导,研究 Ruby on Rails。4) 我将熟悉 Vue.js,并将其整合到一个最终项目中。
Q1-Web开发
目标
- 提高设计技能
- 使用 Figma 制作月度项目原型
- 改进 GIT 工作流程
- CSS 网格和 Flexbox
- SCSS
- Webpack 基础知识
- 使用 Ruby 提高解决问题的能力
- 回顾数据结构概念。
- BEM - 块元素修饰符
- 7-1 模式
- 每月至少写一篇文章。
资源
- Sarah Drasner 为开发者设计
- Thoughtbot 为开发者设计
- Thoughtbot 的《精通 Git》
- Jen Kramer 撰写的《CSS 网格和 Flexbox 用于响应式网页设计》
- Jonas Schmedtmann 撰写的《高级 CSS 和 SASS》
- Sean Larkin 撰写的Webpack 4 基础知识
- Colt Steele 的DS 和算法大师班
项目
- 完成个人网站(作品集)。Lighthouse 评分 90+
- 为朋友、企业、非营利组织搭建了两个网站。Lighthouse 评分 90+
每周承诺
- 练习至少 4 个 Codewars Katas
- 每天学习与项目相关的资源 30 分钟到 1 小时。
- 每周花 5 - 10 小时从事项目工作。
Q2-Ruby on Rails(第 1 部分)
目标
- 更深入地理解 Ruby
- 了解 TDD 基础知识
- RSpec
- 构建以下功能:上传到 S3、Auth0、电子邮件交易。
- 使用 Heroku 进行部署。
- 使用 Capistrano 进行部署。
- 参加至少一次 Ruby LA 会议。
- 前往 RailsConf
- 每月至少写一篇文章。
资源
- 《剧本》:Thoughtbot 视频版
- 使用 Code4Startup 的 Ruby on Rails 构建 Airbnb
- Thoughtbot 的测试驱动 Rails
- Thoughtbot 的 TDD 基础知识
项目
- Thoughtbot 的 Ruby 挑战
- 使用 Ruby on Rails 构建 Web 应用程序。
- 部署 Web 应用程序
每周承诺
- 练习至少 4 个 Codewars Katas
- 每天学习与项目相关的资源 30 分钟到 1 小时。
- 每周花 5 - 10 小时从事项目工作。
Q3 - Ruby on Rails(第 2 部分)
目标
- 构建以下功能:通过短信进行用户识别、实时消息传递、使用 Stripe 付款、搜索。
- 清理代码和重构
- 每月至少写一篇文章。
资源
- 使用 Rails 搭建 Airbnb 教程 pt-2
- Thoughtbot 的中级 Ruby on Rails
- Thoughtbot 的重构
- 高级 ActiveRecord 查询
- DHH 的《论如何更好地编写软件》
项目
- Thoughtbot 的 Rails 测试练习
- 为之前的项目添加新功能。
- 重构代码。
- 提高 Web 应用程序性能。
每周承诺
- 练习至少 4 个 Codewars Katas
- 每天学习与项目相关的资源 30 分钟到 1 小时。
- 每周花 5 - 10 小时从事项目工作。
Q4-Vue.js 和最终项目。
目标
- 复习并提高 JavaScript 技能。
- 对 Vue.js 有深入的了解
- 在 Rails 项目上使用 Vue.js。
- 为开源项目做出贡献。
- 每月至少写一篇文章。
资源
项目
- Vue 30 天体验
- 使用 Rails API 后端和 Vue.js 前端创建应用程序。
每周承诺
- 练习至少 4 个 Codewars Katas
- 每天学习与项目相关的资源 30 分钟到 1 小时。
- 每周花 5 - 10 小时从事项目工作。
结论
正如我之前提到的,通过与你们分享这一点,我公开承诺遵循该计划并在年底写下其结果。
本指南并非权威指南,我希望向您学习,因此如果您有任何建议或意见,请告诉我。
谢谢你并祝我好运!
文章来源:https://dev.to/carloteran19/my-plan-to-become-a-better-developer-in-2019-4li7