V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zyf920425
V2EX  ›  问与答

程序员该定位的四大方向

  •  
  •   zyf920425 · 2017-09-14 15:10:03 +08:00 · 906 次点击
    这是一个创建于 2662 天前的主题,其中的信息可能已经有所发展或是发生改变。

    宽泛的意义上讲,程序员是这样一群人:他们用某种语言或技术,开发某种软件产品(系统),解决特定现实领域的问题。

    有了这个定义,我们就可以来讨论程序员的几种常见定位:

    1 解决某类问题的专业人士 2 软件架构与设计 3 技术专家 4 技术传播与布道

                                解决问题的人
    

    我到底能够解决什么问题?给别人带来什么样的方便?

    这是每个程序员首先要考虑的问题。这决定了你要在什么样的领域、什么样的公司工作,决定了你做什么产品,也决定了你要选择什么技术。

    比如你想提升远程办公的效率,那可能就会去做与协同办公、沟通、项目管理等相关的产品,像 Slack、TeamViewer、蜜蜂(全时的产品)、钉钉等。

    比如你想解决访问国外网站的问题,那可能会去做 VPN 类产品;

    王江民想解决安全问题,结果单人独骑白衣飘飘,带着江民杀毒在中关村创造了一场神话。

    当年梁肇新想解决电脑播放 VCD、DVD 的问题,于是就有了豪杰超级解霸的传奇。

    张小龙想解决邮件收发与管理的问题,才有了 Foxmail,有了 Foxmail 的成功,才有了后来进入腾讯,才有了微信。

    一旦你把自己定位成解决某一类问题的人,聚焦到某一个领域的具体问题,那么接下来的一切都顺理成章,你会很容易就能了解到解决这类问题需要什么知识、业务、技术,然后你就可以充满动力地去学习,去准备。

    当然,你也可能因此脱离具体的技术去做管理工作,甚至去创业,用你的技术来打造能够解决特定问题的产品或服务。

    所以,这个定位其实是一种元定位,可以衍生出其它的方向。

                                         软件架构与设计
    

    相对于把自己定位成解决某类问题的人,有的朋友可能更感兴趣如何做出一个复杂的软件系统,对实现这个系统的过程更感兴趣,也愿意不断去设计、实现各种各样复杂的系统,反复地挑战自己。

    那他可能给自己的定位是架构与设计。

    这也是很多程序员的梦想:做一个真正牛 B 的架构师,体验运筹帷幄与庖丁解牛带来的超强成就感。

    比如你定位到大型网站的架构与设计。那你就可能去学习 Java、http、数据库、分布式、云计算、大数据、Docker 等各种技术,以及常见的网站架构(参考李智慧《大型网站技术架构:核心原理与案例分析》),然后到一个正在发展(或者已具规模)的电商类公司去跟着公司一起成长,铸就自己的架构之路。

                                      技术专家
    

    就像教育的目的是为了让每个人都成为自己想成为的样子,但实际上教育本身却成了一种产业,考试也成了一种产业。软件开发也是类似的:技术是用来创造软件系统(产品)以便解决现实问题的,但实际上围绕技术本身也形成了新的产业。

    比如技术培训,比如各种技术认证,比如技术图书……

    所以,也有很多程序员把自己定位在技术本身,寄望于成为某一个特定技术领域的专家,建立自己的顶端优势,从而成就自己。

    比如有的人专攻 Hadoop,有的人专攻 Docker,有的人就是把 OpenGL 用的很溜,有的人在视频编码上有很深的造诣,还有的人成了 Go 语言专家,还有的人调试技术特别牛(比如《软件调试》和《格蠹汇编》的作者张银奎,膜拜一下)……

    当你在某个技术领域有深入的研究,形成了优势,你就可以把这种扎根于技术的优势复制到各种领域去解决各种问题。这也是非常好的道路。

                                  技术传播与布道
    

    我想来想去,自己的位置非常尴尬……

    因为我既没有把自己定位到解决什么问题上,也没有成为架构师,更没有在某个领域成为骨灰级专家……

    所以我只好安慰自己说,Ok,我想做的是:如何更好地帮助初学者学会一种技术,跨越从不了解到会应用这种技术解决问题的过程。

    Ok,这就是技术传播与布道的定位了。

    所以,从这个定位出发,我会写一些入门级的博客文章,讲述某种语言、某个技术点如何用,什么包括环境配置等不那么有技术含量的文章,也会写一些技术图书来帮助别人(比如《 Qt Quick 核心编程》和《 Qt on Android 核心编程》),然后我还录了一些入门级的视频课程……

    当然这个定位也可能催生一些产品,类似 Codecademy、计蒜客、萌码、慕课等。

    我有一段曾经迷惑过:作为有多年开发经验的程序员,还在博客上撰写入门级的技术文章,合适吗?当我用这个定位合理化了自己的行为后,居然不困惑了。

                                    程序员的迷茫与解脱
    

    很多程序员都很迷茫,学了一两门语言,做了三五年开发,不知道接下来该怎么办。

    这就是定位的问题:找不到自己的定位,是迷茫的根源。

    现实情况是很多人说自己是 Java 开发,前端开发,C++开发,但你真的是把自己定位到语言与技术这个层面了吗?还是说,你其实并不打算成为技术产业的一份子,只是除了“熟悉某种技术”,并不知道自己要走向哪里?

    请思考一下,在信息的汪洋大海中遨游时,你的方向在哪里?

    ……

    当你把自己定位成技术专家,那你就会努力在某个方向上建立自己的知识图谱,形成顶端优势。这条路漫长而艰难,可能三年五年,也可能八年十年。比如李飞飞聚焦在图像识别这个方向,取得了令人瞩目的成就,现在正在把图像识别嫁接到各种领域去解决实际的问题。

    ……

    当你把自己定位成解决问题的人,那 Java、C++、Spark、Docker、区块链这类技术层面的东西,就不再会困扰你,需要什么,你可能就会去学习什么,你培养的,是自己解决问题的思维和框架,是拿到任何的问题,都能快速发现解决之道。

    这种定位,还可能会引领你走出具体的技术工作,转型去做管理,因为带领一个团队,可能会更有助于你去解决更大更复杂的问题。

    定位能够产生目标,目标会让你聚焦在一个方向上,远离迷茫。所以,只要你根据自身的实际情况,找好定位,就拥有了摆脱迷茫的银弹。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2646 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 15:06 · PVG 23:06 · LAX 07:06 · JFK 10:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.