宽泛的意义上讲,程序员是这样一群人:他们用某种语言或技术,开发某种软件产品(系统),解决特定现实领域的问题。
有了这个定义,我们就可以来讨论程序员的几种常见定位:
- 解决某类问题的专业人士
- 软件架构与设计
- 技术专家
- 技术传播与布道
解决问题的人
我到底能够解决什么问题?给别人带来什么样的方便?
这是每个程序员首先要考虑的问题。这决定了你要在什么样的领域、什么样的公司工作,决定了你做什么产品,也决定了你要选择什么技术。
比如你想提升远程办公的效率,那可能就会去做与协同办公、沟通、项目管理等相关的产品,像Slack、TeamViewer、蜜蜂(全时的产品)、钉钉等。
比如你想解决访问国外网站的问题,那可能会去做VPN类产品;
王江民想解决安全问题,结果单人独骑白衣飘飘,带着江民杀毒在中关村创造了一场神话。
当年梁肇新想解决电脑播放VCD、DVD的问题,于是就有了豪杰超级解霸的传奇。
张小龙想解决邮件收发与管理的问题,才有了Foxmail,有了Foxmail的成功,才有了后来进入腾讯,才有了微信。
……
一旦你把自己定位成解决某一类问题的人,聚焦到某一个领域的具体问题,那么接下来的一切都顺理成章,你会很容易就能了解到解决这类问题需要什么知识、业务、技术,然后你就可以充满动力地去学习,去准备。
当然,你也可能因此脱离具体的技术去做管理工作,甚至去创业,用你的技术来打造能够解决特定问题