【科普】编程的门槛,到底有多高?
有许多同学,想入门编程,又找不到,有效探索的路径,很是苦恼,大大加深了,对入门的误解。今天在这里,我向大家,简单回答一下,以上的问题。
不要轻易地低估了编程(Coding),把它看作是,任何人都可以掌握的,人人都可以在电脑前敲敲键盘,就能让电脑“干活”的工作。
也不要轻易地高估了Coding,把它看作是,自己一生都难以掌握的,可望而不可即的智力活动。
为了给提问的同学,答疑解惑,如果我们解答了“编程到底难在哪里”这个问题,我想,上述这个问题,你就应该有一个清晰的答案了。
我们都知道,Coding是一种将人类的逻辑和语言,写成可以被电脑“严格执行”的一串串代码,如果你愿意把Coding,比作“用人类的语言写作”,大致也说得通。
当然,计算机执行一道道命令,比我上述极度简化的流程,还要复杂得多。Coding到底来说,其实还是可以被人类“直接识别”(得经过一段时间训练)的,可被人理解的命令行。
从底层来说,各种编译器,还要把这些“代码”,“转换成”可被机器直接识别的“010000111110100010……”的机器码,人类和计算机之间,至少还“差了一层(人类语言→机器语言)”。
上个世纪,W65C816S 机器码,当时大家,都是这样变成,你能看得懂吗?所以现在,不少编译器,都提供直观化的编辑器,语法有错误的地方,还会给你指出来;有些编译器,还自带“高级Debug”功能,对现代的程序员而言,已经算是很“友好”了。
刚才我有提到个例子,对比的是Coding和写作的难度,其实,我觉得:
从“构成”来说,即写成一段完整的代码,或是写完一整篇文章,我觉得,后者更难些。
梳理思路,构建逻辑,两者是共同的,但写“文章”,是要给更多的人看的,想要“打动”人的情感,是一个比较困难的事(不信?你去看看知乎上文笔优秀的高赞文章)。
而“打动”机器(能跑得通,运行效率高,无Bug)的标准,相对来说就要低一些,也更好“量化”一些,相信经验丰富的“大牛”们,写出的每一行代码,都是“优质”的代码。
你让一个作家,写出篇篇传世的好文,这个就很难, 你可能会问我,像@张佳玮那样的大神,每篇文章赞量不是很高么?那是因为,人家积累出了名气,他的有些文章,时效性较强,文笔方面就弱一些了,这些都是我的废话,希望能帮助你的理解。
好的,经过以上论述,我们可以得出一个大致的结论:有了随处可获得的免费资源(Google、GitHub)、靠谱的教授机构(比如我们的优就业,我就是这么无耻,哈哈~~)、可纠错的编译器、工作中时刻交流技术的同事,如果你“立志”入行,有许多科学的学习路径,也有许多愿意帮助你的人。
路都帮你铺好了,剩下的,还得你自己走,这条路,并不总是“简单”的。
无论学习哪种技能,包括编程,我认为,都要经历一段时间的“非舒适区”,举个学英语的例子吧:
假设你的词汇量掌握数为0,想看懂《纽约时报》,你就必须得从3000词,“痛苦”地背起。
Coding也是一样,对于我们中国人而言,学习母语为英语为主的国家的人,开发出的编程语言,你就必须得按照人家的“规矩”来,包括官方文档等,持续学习,也是程序员必须掌握的技能之一。
编程门槛不低的理由之一 —— 想熟练地撸代码、终身学习?先把英语捡起来吧!
Coding,对学习者的逻辑思维能力,宏观性的事物判断能力,要有更高的要求,你可能写出来一篇,文笔优美,但逻辑不太通顺的散文。但是抱歉,如果你把这种习惯,代入到Coding里电脑可能会不认你的努力。
编程门槛不低的理由之二 —— 你不是“数学家”,但在Coding的时候,需要解答很多“逻辑思维题”,说实话,挺“烧脑”的;感觉自己“脑力”不够的,请绕道吧,小优不是吓唬你。
Coding的目的,是要拿来用的,就是要让它“跑”在机器上,不管你的代码,写得有多优秀,最终只能体现在:用户使用体验,觉得更流畅、更顺滑了。如果你学习的是“后端”,即使你的SQL写得很科学,网速不好,也很有可能拖了用户体验的后腿。
编程门槛不低的理由之三 —— 即使你尽力了,你还有可能遭受各种非议。
现代化的软件编写,是一项十分“庞杂”的工作,越大型的项目(保守估计,Windows系统有7000万以上行的代码),维护和调试起来,就越复杂。很多时候,你不只是“写”代码,还要把前人工作时,留下的“疏漏”,逐一排查清楚。
编程门槛不低的理由之四 —— 你不但需要“创造”,更需要“纠正”,“纠正”的过程,相当于给别人的文章“挑刺”,是相当枯燥无味的。
看到这里,如果你依旧能坚定决心,知难而进。那么,小优还是深深钦佩你的勇气。
学习编程,最好的时间,在10岁的时候;其次,是现在。
本账号,属于“中公优就业”旗下的运营账号,账号发布的内容,均为原创。