现在大三,刚经历完一轮春季实习校招。面了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面试,这方面不应该有所迷茫吧
广告也重要
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn