现在大三,刚经历完一轮春季实习校招。面了AT两家公司都通过了。
但现在自己审视一下简历上写的项目,其实都是很简单的东西,只是基础的编码,没什么值得写的地方。
我想现在开始写一些真正有用的、能拿得出手的项目,该怎么开始呢?
回复内容:
4.28 更新
发现之前有一点没说到的。项目按性质分就两种,要么是造轮子,要么不是。而拿得出手的项目基本上都得是造轮子的。但是造轮子这个事,确实比较难,虽然我经验也不多,还是能体会到。拿 Python 来说,大家都觉得语法优美程序清晰,但是一旦要造轮子,黑魔法/dirty hack 啥的都少不了。之前我在评论里说“怎么体现技术水平这件事完全取决于本身有多少技术水平”,如果一个人水平到了,那么经过一段时间的研究+编码确实能写出拿得出手的项目,但是如果没有到,就不要想直接写出一个多么牛逼的东西。thefuck 虽然是开脑洞的项目,但也不是随便一个人就能写出来的。
一个关注度高 star 多的项目,根据我的观察,主要有四个特点,一般来说满足一条就够了,两条的话这个项目 star 得上千了。
1. 解决了某个痛点
2. 已经有类似的东西,但是新方案性能比已有方案好,或是易用性更好,或者功能更多
3. 脑洞足够大
4. 把某个流行的项目 port 到另一种语言
拿最近比较火的几个项目举例:
解决了痛点的:bndr/pipreqs · GitHub
,直接从代码生成 requirements.txt
yhat/rodeo · GitHub
:相当于是一个 IPython 的扩展版
nvbn/thefuck · GitHub
:脑洞型项目代表,最近火到不像样
jonathanslenders/pyvim · GitHub
:Vim 的纯 Python 实现
既然楼主大三,能力上肯定没法和那些有经验的开发者相比,所以我建议你考虑第三条。
用脑洞来弥补经验的不足!! 最后既然有机会还是来安利一下 ezcf (,,・ω・,,):laike9m/ezcf · GitHub
,这个算是个不那么痛的痛点吧。
流行的项目都是一点都不高深的,因为一般人只能遇到一般的问题。你解决了大牛的问题,只有那几个人崇拜你。你解决了一般的问题,全世界都崇拜你了。所以这得看你的雇主到底是为什么样的人服务的。
譬如说你去BAT,就算你花一天写个razor.js这种玩具级别的东西,都肯定直接秒了。
譬如说你去EDG,那这事情就复杂了……你得说,你们不是说那个export(还是extern忘记了) template写出来的代码太难维护所以让ISO毙了这个feature嘛,烂爆了,看我这个。
不为任何人写软件,想想自己平时有哪些工具用着不顺手,给自己写一个更好的。从设计到编码,一个版本又一个版本,或许中间还要经历一次重构,但一个月下来你就会发现无论是对产品还是技术,你都有了更深刻的理解。
程序员不应该做键盘党。
感觉哪里不对呢⊙﹏⊙
Kaggle: The Home of Data Science
金融数据大赛
黄金联赛
https://openresearch.baidu.com/不谢。
最好的办法就是从github上找Star多的开源项目,clone下来后阅读人家的代码,分析人家的项目需求,然后变相到自己的需求,举一反三。如别人的项目需求是做一个简单的webchat, 你可以再次基础上做一个举一反三做一个webpush,或者功能更加丰富的webchat.
注意:遵守开源和自由软件许可证.如果自己参加工作了,那么拿得出手的项目就是你给公司开发的东东了.
既然有基础编码,就从基础下手呗,把经常重复使用的code整理成库,积少成多,库多了框架就有了,写中小规模的就不成问题,建议看下这个
https://github.com/gozfree/libraries。
当然GUI的另说。
计算机大二生默默看着你们用好多我不懂的专业术语(雾)
楼主既然都有能力过AT面试,这方面不应该有所迷茫吧
广告也重要
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn