有没有一种简单的评定标准,判定你到底是不是程序员呢?当你具备哪像能力的时候才有资格和底气说出自己的一名程序员呢?记住,我们程序员也是有着自己的骄傲。
作者
PaulaTulis
译者
弯月,责编
毛中政
以下为译文
从几周前,我突然开始认真地思考自己是否担得起某些专业的标签,这是前所未有的事情。
上大学的时候,我从来不需要犹豫是否要告诉别人我是一名学生。当拿到第一份实习岗位的时候,我也会毫无畏惧地说出自己是一名实习生。而在那之后的几份工作中,我依然认为当有人问起我的职业时,我也会理所当然地回答。
后来,我在深思熟虑后做出了一个重要的决定:1)放弃客服的工作;2)学习编程。起初我的目标非常简单:重新加入劳动者的队伍,成为一名技术人员。然而,在这个过程中,我逐渐开始对自己的身份感到迷茫。
是的,在参加培训班期间,我是一名学生。但是哪种学生呢?我又学到了什么呢?通常,我会说:“我就读于编程培训班,我正在学习Web开发。”但是我非常小心,我没有说“我是一名程序员。”
在培训班毕业后,我依然需要面对这个不可避免的问题:“你是干什么的?”,然而我却发现自己对这个问题的答案感到越来越迷茫。通常,我不得不说:“哦,我刚参加了一个编程培训班,现在我正在找工作!但以前我是做某某工作的”,随之而来的还有紧张的笑声和耸肩。
如果有人直截了当地问我:“你是程序员吗?”我可能会说:“希望有一天我能成为程序员!”或者说:“我正在朝这个方向努力!”类似的言论可能会让别人以为我在滥竽充数。然而,实际的情况还不至于此。
转变
事实上,很多人都会重回学校或参加培训班,他们希望学习一套全新的技能来改变自己的职业发展,在写这篇文章之前,我会说人们对待这种转变的态度并不公平,其实这种转变就像改变发型一样没什么大不了。
试想一下。如果你是长发,而你想改变发型,那么去剪短就好了(当然剪的要有品位!)。在走进美发店之前,你是一头长发;走出美发店时,你是一头短发。以前你是长发,而现在你是短发。就像一个简单的二进制开关,很容易解释。
然而,在决定学习编程时,你需要做周全的考虑,而且你会在很长一段时间内经历无数次的转变。这种转变既不是线性也不是二进制,对我来说,无论是在内心深处对自己还是对外人解释这种转变都非常困难。
在第一天打开笔记本电脑学习编程时,你是程序员吗?在搭建好本地开发环境后,你是程序员吗?在提交第一个PR后,你算程序员吗?在终端上输出“Hello,World!”之后呢?当你提交完最后一个项目,顺利从培训班毕业后呢?当然,在这之后,你就可以称自己是一名程序员了,是吗?
多种多样的“程序员”
如果你像我一样,每当有人问及:“你是干什么的?”时就会感到焦虑,那么希望本文能让你释怀一二。
首先,我们需要强调一个事实:即编程的世界里有各种各样的职位头衔,你很难决定自己是否是一名程序员。下面举几个职位头衔的例子:
软件工程师:软件工程师指的是“将软件工程的原理应用于计算机软件的设计、开发、维护、测试和评估的人。”是不是让人感觉摸不到头脑?
Web开发人员:Web开发是“专门从事或使用客户端-服务器模型开发Web应用程序的程序员。”
前端Web开发人员:这种Web开发专注于“使用HTML、CSS和JavaScript将数据转换为图形界面,方便用户查看数据并与之交互。”所以说,他们开发的也是Web应用程序,只不过更具体?
后台Web开发人员:这种Web开发专注于“服务器端框架、Web服务器和数据库系统之间的交互”。
全栈开发人员:全栈开发是“能够承担数据库、服务器和系统工程等所有工作的工程师”,此外他们还精通HTML、CSS和JavaScript。所以说,前端+后台=全栈?(也就是传说中的独角兽开发人员!)
程序员:计算机程序员是“创建计算机软件的人。计算机程序员指的是计算机领域的专家,也可以指为多种软件编写代码的多面手。”
如上所述,这些角色之间存在很多重叠和互换性,但是它们都有一些共同的基本元素,其中之一就是如何为计算机程序编写代码的知识。这个提示非常有帮助性!
“所做即所为”
正如上述职位头衔所示,各个类型的程序员之间存在某种联系。在清楚这一点之后,下面让我们来深入探索程序员的含义。在我看来,“程序员就是一个能够编写代码的人”。
通常,我不会学别人在演讲结束后,故意扔掉麦克装酷,但是这句话确实值得让我尝试一次。纵观软件工程师、前端开发人员和计算机程序员等所有的职能,我认为能够编写代码是不可或缺且最基本的能力。
根据这个定义,如果你能够编写代码,那么你就是一名程序员。
我反复阅读这个定义,又反复打量自己,最终我意识到自己确实是一名程序员,而且我绝对可以称自己为程序员。万岁!
当然,我还是一名新手,可能我需要频繁地使用Google,远不及行业内一般的专业人士,有时我自己都不相信自己,但是每天上下班时,我都会大声告诉自己我是一名真正的程序员,我有这个能力。
虽然我很不解如何才能成为一名“优秀的”程序员、“水平出众的”程序员或“明星”程序员,但是在去掉那些华丽的形容词后,真相就会大白——成为一名程序员!
现在,让我们回到本文开头提及的标签,为自己确定所有必要的工具和信息。我的答案是:我知道如何使用特定的计算机编程语言编写代码(有多少代码真的能运行并不是决定性因素,谢天谢地!),没错,我就是一名程序员。你呢?
如果你仍然不确定,那么就想一想小孩子。当一个成年人问一个3岁零8个月的孩子:“你多大了?”时,孩子很可能会说:“我3岁零8个月了”。但是,如果有人问一个成年人同样的问题,你觉得成年人会说:“我30岁零8个月了”吗?当然不会。当有人问你多大时,你只需简单地说出自己的年龄,根本不会在乎那8个月。
在经过一些研究和自我反思后,我相信虽然我们有些许的不安,但我们应该更加坚定。请记住:当人们问及你的职业时,他们并不是想揭穿你或报警。如果你会写代码,那么你就是程序员。
好了,废话不多说,我去改bug了!
原文: