十几年前我也写点代码,用Borland C++ Builder。也还依稀记得第一次看到“Hello World”时的心跳。如今程序员进化成了一个有趣而特殊的人群。除了程序员,还有哪个社会群体有专属的段子集?国家在进步,科技在创新,而“青年的动人之处,就在于勇气,和他们的远大前程。”我是打杂的耶。
我能做程序员吗?在Reddit和其他网络社区,这是个夹杂在编程热门话题里的常见问题。自我怀疑,在初学者的心里很普遍。他们往往想着,总有那么一刻,这个怀疑将会彻底消失。
那么,你怎么知道已经修成正果了呢?
也许你可以上网去订一本朋友推荐给你的书。Robert C. Martin (Uncle Bob)写的《Clean Code》是一本很好的书!但是当你满怀雄心壮志,兴冲冲潜心投入进去时,却发现书里那些言语读起来就像外星文,而且概念模糊不明。自我怀疑生长了,但是并没有吓退你。
忘了这破书吧——让我们去看在线课程!
你跑到Treehouse上注册,开始沿着他们所谓的“轨道”学习。啊,现在你开始学习了!或者至少你认为是在学习(某种程度上,还真是)。这样过了很多个小时,你已经可以做出一个手机app,或者一个能用的web网站。在那一刻,你感觉挺骄傲。你也的确应该骄傲。于是,你向朋友们和家人展示你的作品。他们的反应是“噢,挺酷……挺不错……是不是?”
充满了自信的小气球漏了点气,不过还行,你还可以漂浮在半空。
在完成了几条Treehouse轨道,还有些别的手把手辅导教程后,你确定你是一名程序员了。合乎逻辑的下一步冒了出来,“到了把我头脑中的app变成现实的时候了!”
你启动选好的IDE,姿势很完美,手指准备在键盘上狂奔,你准备好要在显示器这块画布上填绘代码了。
问题是,一片空白。所有那些教程和你读的那半本书,在这一刻没有为帮你做好准备。你凝视着深渊,它也反过来凝视着你。自我怀疑在你双肩上坐了下来,在你耳边轻语:“Hello……想我了吗?”它比你想象中的重多了。
在此刻,我认为你真的只有两个选择:
领悟到你的怀疑是对的。你不可能做个程序员。你就是不够聪明。没准如果你上完了那些CS课程,或许你能够做到。但是它就是不适合你。Ok,你已经证明了,于是你转去人生的下一站。真的不必感到羞愧。如果这是你的决定,这是100%好的决定。但在这一刻,你不是程序员(我说“这一刻”,是因为我相信你可以随时回来,再次尝试)。
你再次翻开几周前买的那本书。快速翻看,寻找“如何开始一个Xcode项目”那一章。你找到了,可也没什么帮助。于是你重新登陆进Treehouse,再次访问课程。有点帮助了,但是你还缺点什么。于是你试了点别的——你在Google里Google得天昏地暗。冷不丁地,你注册了StackOverflow,它成了你的新主页。又过去了数不清的小时,那个app可以运行了,它说:“Hello World,这是我第一个程序的起点。”你知道前面的路还很长,但此刻,那新鲜出炉冒着热气的程序像只刚破壳的小鸡凝望着你,你是一名程序员了。
如果你挑了选项#2,自我怀疑会慢慢爬下你的肩膀,轻声说出最后分别的话语:“干得不错。我们还会再见。”
瞧,一切就是这样。你会写到一百行代码,而怀疑会再次露出头来。你会在这个行业度过两年时间,它又会再次浮现。如果你可以在这场持续的战役中坚持战斗——如果你期待着战斗,愿意倾尽全力去找寻问题的答案,那么我认为你已经如愿以偿了,百分之百地。
许多人在程序的海洋里第一次游泳时失去了勇气。困难让他们觉得就要被淹死了。但是我在这儿告诉你,最初你只需要踏一踏水。
买几本书。注册在线课程。YouTube上看教程。最重要的,构建你自己的程序——不管有多么小!
学习,构建,重复。
让这成为你的符咒吧!
因为你是程序员。
作者Alan Scarpa,一位iOS开发者。
https://medium.com/@alanscarpa/can-i-be-a-programmer-2acbe241c317#.y38p2s5qi