(转载)程序员该如何定位?看这四大方向

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

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

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

解决问题的人

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

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

比如你想提升远程办公的效率,那可能就会去做与协同办公、沟通、项目管理等相关的产品,像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、区块链这类技术层面的东西,就不再会困扰你,需要什么,你可能就会去学习什么,你培养的,是自己解决问题的思维和框架,是拿到任何的问题,都能快速发现解决之道。

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

……

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

最后,送一张图,供定位时参考:

时间: 2024-08-11 09:57:54

(转载)程序员该如何定位?看这四大方向的相关文章

CSDN日报20170412 ——《程序员该如何定位?看这四大方向》

[程序人生]程序员该如何定位?看这四大方向 作者:安晓辉 我到底能够解决什么问题?给别人带来什么样的方便? 这是每个程序员首先要考虑的问题.这决定了你要在什么样的领域.什么样的公司工作,决定了你做什么产品,也决定了你要选择什么技术. [Android 开发]Android 应用"反调试"操作的几种方案解析 作者:程序员大雄 在之前介绍了很多破解相关的文章,在这个过程中我们难免会遇到一些反调试策略,当时只是简单的介绍了如何去解决反调试,其实在去年我已经介绍了一篇关于Android中的安全

Java程序员们值得一看的好书推荐

转载自知乎 原作者:mdcc "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料对着书上的代码自己敲的时候方便"看完书之后再次提升自我的最好途径是看一些相关的好博文",我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学

转载 程序员技术练级攻略

转载 程序员技术练级攻略 博客分类: 转载 本文转载自陈皓(http://coolshell.cn/articles/author/haoel) 博客: http://coolshell.cn/articles/4990.html 月光博客6月12日发表了<写给新手程序员的一封信>,翻译自<An open letter to those who want to start programming>,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的

[转载] - 程序员对内存的理解

程序员对内存的理解 原文链接 在C和C++语言开发中,指针.内存一直是学习的重点.因为C语言作为一种偏底层的中低级语言,提供了大量的内存直接操作的方法,这一方面使程序的灵活度最大化,同时也为bug埋下很多隐患. 因此,无论如何,我们都要对内存有一个清晰的理解. 一.对内的分配 32位操作系统支持4GB内存的连续访问,但通常把内存分为两个2GB的空间,每个进程在运行时最大可以使用2GB的私有内存(0x00000000—0x7FFFFFFF).即理论上支持如下的大数组: char szBuffer[

转载---程序员发展之路

今天看到一篇写得挺不错的文章,转载过来收藏起来. 从我做小程序员开始,就从未间断的在论坛看到有人在问程序员的出路在哪里,其实我很能理解这些人的想法,在行业做了几年,有些感想跟大家随便聊聊. 俗话说,365行,行行出状元,此话也适用于IT行业,尤其是程序员. 当你迷茫找不到出路,又想快速成长和提高的时候,有两种方案可以供你参考: 1.努力成为你工作环境中最优秀的人(技术最好的人): 2.跳槽,去另外一家公司做比你能力要高的工作. 针对工作环境的不同,分为大环境和小环境(人多和人少): 1.小环境,

[转载]程序员的激情其实是一种痛苦

我不是一个“充满激情的程序员”.我觉得,固定8小时工作之后,就应该去做点别的事情,比如说看看科幻小说,和我亲爱的妻子聊聊天等等.当别人问起,我会正儿八经地这么回答,“这才是所谓的生活.你也应该试一试”. 其实我内心非常看不上那些充满激情的程序员,他们所谓的激情就是一天花上12甚至16个小时坐在电脑前写代码,或者为了写代码而牺牲了自己的爱好.睡眠以及人际交往,有时候甚至连基本的生活自理都无暇顾及.这哪还是激情啊,这分明是一种强迫症. 大男子主义亦或是偏执狂? 我们的文化不对劲.如果我们迷恋上一个女

[转载] 程序员如何成功追到女神?

原载自:http://www.linuxeden.com/html/news/20151003/163105.html 今天我们谈一个你们这群单身狗已经掌握却一直没怎么用的技能:“追求女生”. 1.广泛涉猎恋爱技能,进行自学 交给你一个项目,遇到不会的开发工具怎么办?学啊!我们程序员拥有超强的自学能力. 星座,塔罗牌,看手相,大姨妈陪护,这些能引起女生共同话题的知识不要以为没有用,你就当学习一门新的编程语言嘛!一点都不难对不对? 要充分利用知识管理,我们不会谈恋爱,但是我们可以收集资源自学啊!我

[转载]程序员路上用到的各种优秀资料、神器及框架

好东西不是随便收集下,发篇博文,骗些点赞的!积累了5年多的东西,是时候放出来跟大家见见面了. 或许有的园友在14年的时候收藏过我的一篇"工欲善其事.必先利其器"的博文,时隔3年,已经做了N多更新,那篇文章也已被我删除,迁移至GitHub,重新进行管理. 这篇文章,大家可以推荐.收藏,让更多的人在园内看到,让福利普照. 因为这篇文章,我以后不会更新. 但项目依旧会更新,所以,更好的做法是,请到GitHub上Star:be-a-professional-programmer 前言 成为一名

[转载] 程序员的态度

原文: http://jjyy.guru/how-fewer-bugs/ 文章中的态度对于开发人员来说非常重要, 我们需要有精益求精的态度. 在开发一个新模块的时候, 往往很多人都有这种想法, 设计都经过充分的思考和讨论, 但是随着模块不断迭代, 精益求精的态度被慢慢消磨了, 所以所有的开发人员都应该时刻保持精益求精的态度, 遇到公共部分太多的代码, 要及时抽象和封装, 遇到不合理的设计, 及时纠正, 虽然这样做可能会对预期工期产生影响, 但是我觉得是值得的, 而且作为leader, 我愿意为这