【Side Project】 做Side Project前的准备

曾有一个刚大学毕业的朋友(以下称朋友)问我关於求职的问题

朋友: 我非本科系毕业,又没经验要怎麽找软件工程师的工作?
我很随意的回答: 找个题目做一做,就好有经验啦。
朋友: 那我要怎找甚麽题目做?
我: 随便做啊!
朋友: ...
我 : ...

学习发现(了解)需求

前面这段对话,应该不仅在这边遇到到过,职场上各式场景都会看到,
总归就是一句我要做甚麽?
其实,有时候不回答,不是不愿意告诉你,而是...我也不知道要做甚麽。
在职场上也是有很多热心的前辈都很愿意分享一些现在比较流行或是有趣的题目让你做。
但会遇到几个问题:

  • 可能对这题目不感兴趣
  • 包含太多,目前不具备的技术
  • 失去了观察需求的机会

最後一点,也是我认为最重要的一点。
当你成为工程师开始的那一刻,就开始成为接收问题,解决问题的那一方。
再有一点规模的公司,可能会需要你看懂规格文件,
小一点的公司,也会有人来告诉你客户想要开发的项目。
甚至工作一段时间可能还会有机会去听客户说一些天马行空的故事,
必须从故事中找撷取重点,汇编成客户想要的结果。
既然如此,我们可以从做Side Project的时候就开始练习观察需求。

如何发现需求

我们可以透过几个管道去发现不同的需求来做我们专案的题目,
像是我们可以看看网路上目前火红的话题或生活中常见的话题。
例如: 看到某游戏现在很火,但是官网做得很烂,游戏物品的资讯给的都不是很齐全
又或是家中的菜每次都放很久放到忘记 ......等。
我们可以从这些日常上常见的问题去思考,我们应该要做怎样的题目,
一来通常这类型的题目都比较简单,二来说不定还可以顺带解决我们日常常见的问题。

第一次做Side Project要注意甚麽?

做项目的时候每个人都是基於不同的理由去做开发,
开发的方式与目的也都不尽相同。
这边给一些第一次做项目的建议:

  • 短时间内能完成
  • 能够独自完成
  • 订定简单明确的目标
  • 检讨和维护

短时间内能完成

做专案最常遇到的问题就是做到一半就抛弃掉,
即便是在公司中这种现象也不少见。更别说这是一个自主性做的开发。
当我们做一个项目花了大把大把的时间在专案上,
却不见成效的时候往往会让人开始怠惰起来,
所以不如一开始我们就设定一个较短周期的专案。
建议一开始做最好把时间在一周内可以完成的小专案,最长也不要超过一个月
一方面避免时间久了无法坚持下去,也可以避免突如其来的事情让专案无法持续下去。

能够独自完成

当必须组成一个团队来完成这个项目的时候,不仅需要花时间分配工作,
无法专注在解决问题上,还可能因为人数的增加导致整个专案周期要拉长,
最惨的是当有人中途离开可能会导致专案无法继续下去。

订定简单明确的目标

初出茅庐的程序猿大多都有着远大的梦想,
想着要做出个甚麽惊天动地的东西出来。
怀抱着这种想法的人10个里面大概有9.9个最後一个项目都没做完,
还是乖乖地待在公司里面当程序猿,最後渐渐的把梦想消磨殆尽。
所以我们在一开始必须订定一个简单明确的目标,
最好是觉得以自己目前能力完全能实现的项目。

检讨和维护

不仅是Side Project 公司中遇到的专案也都免不了这个步骤,
当你完成项目只是你现有技术的展现,检讨跟之後维护更版才是进步的开始。
想走管理阶层的可能可以去注意 时间的控管、或是进度的安排是否合理。
或是想要作一个SA、SD,看看系统的框架是否稳定好维护、
又或是想要精进Codeing技术Design Pattern的运用、
甚至想当起个老板,那也可以去注意如何去行销自己的这项产品,
让这套产品能为自己带来获利。
当我们开始面对这些问题的时候,就是进步的开始。

结语

做一个专案简单来说就是

  • 找到问题
  • 解析问题
  • 解决问题
    然後重复以上循环。

下一篇开始正式跟大家一起做一个Side Project


<<:  Day02:先生先生,请问你装了什麽进去?

>>:  铁人赛 Day14-- MySQL函式 -- 查询资料分页(我傻眼,昨天没上传到)

Day 10:为你的 Hexo 增加页面:标签、分类与自订页面

昨天介绍新增文章,今天要来介绍新增页面。这两者有什麽差别呢?一般来说如果是跟网站有关的资讯、或是一些...

JS 29 - 一个 div 就能完成的发光游泳圈!

大家好! 今天我们要实作网页完全载入前的载入游泳圈! 我们进入今天的主题吧! 样式表 #loader...

[第二十二天]从0开始的UnityAR手机游戏开发-APP内撷取画面

在玩AR APP时都有一个拍照功能,本次章节会介绍如何撰写Unity的截图功能 先在Project新...

【Day12】插槽 Portals

Portals 是一种让 children 可以 render 到 parent component...

Day 22 : 案例分享(7.1) 库存与制造 - 库存移动(调拨)流程

案例说明及适用场景 库存是odoo中很特别的功能或流程 单纯以功能的思考核心有二个,复式库存及推拉规...