程序员的护城河是什么 ?
其他行业的从业者都有自己的各种从业证书,但是程序员啥也没有。
这样乍一眼看下来,程序员好像还真的没有自己的护城河,但我认为程序员最大的能力其实就是建模解决问题的能力,严肃点儿说,就是如何把一个复杂的东西拆解得简单化,把大任务转化为小任务的能力。
别小看这个能力,我们虽然接受了十几年的义务教育,但是关于如何分析问题,解决问题的能力其实是最薄弱的,因为课堂上我们只能学到些基础,等真正进入社会以后,做得才是实打实的实践。
文案写作要求你只要会文案就行了吗?No,你还得会作图、会修图,会用 h5,会排版、会蹭热点、会做好看的动效,再往上走甚至还要有基本的文学素养和审美;做工程只知道理论数据就行了吗?No,你还得会改图、会沟通、会主动学习、会协调人际关系,还得懂点管理,这样的例子还有很多,放到哪里都能看到。
为什么刚出社会的我们啥也不会?不就是没有这种拆解问题的能力吗,才会带着学生思维,处处碰壁。
当了程序员以后,我最大的收获就是形成了一套完整处理问题的逻辑:遇到问题、拆解问题、及时解决,拿我刚开始学 python 的时候为例,调试程序出红字了,IndentationError 了怎么办?逐行检查,发现缩进多一个空格,改了。
做类型转换的时候,把动态类型跟静态类型弄混了,怎么办?翻视频查资料,发现是字符串连接错了,后面改成 type()函数进行类型检查,处理数据转换也更得心应手了。
部署应用时崩溃了,什么情况?后面问到了解到本地环境和生产环境中的库版本不一致,后面开始用虚拟环境来隔离项目依赖,添加 requirements.txt 保持一致性。
后面我把这套编程的内在逻辑移植到其它语言的学习中,比如说 Lisp、Java、iVX(这个比较特殊,一会说)都算是融会贯通吧,不会对未知的事物太过恐惧,然后就是逐步拆解。像 iVX 在快速做应用方面确实帮到很多,构建产品原型非常快,Lisp 的宏系统和动态类型系统很适合快速开发复杂的原型,抽象程度高,各有所长。
总结下来,我觉得程序员真正的核心,其实就是解构问题的能力,让你不会对未知的事物太过恐惧,我自己也觉得程序员可能是对这个世界最富有好奇心和挑战性的一批人(不然也不能拿那么高的薪水不是?),共勉。
评论