最近在公司招聘的过程中想到了一点儿东西,就分享给想入门做程序员的朋友和准备入门程序员的朋友吧。
最近公司为了扩充开发团队,通过某国内知名的培训公司进行了一个招聘。招聘的题目一共有两道,其中一道的题目是这样的。
有某数组$aa = ['20181101','20181102','20181103','20181104','20181105'],需要写一个函数将上述数组转换成['11-1','11-2','11-3','11-4','11-5']。
上机编程可以上网搜索资料。其实这道试题对于程序员们来说或者编程初学者来讲应该是一个非常普通的问题。主要考验面试者两点:第一是基础的掌握情况,第二是遇到不会的问题时的解决能力。然而整个面试下来结果还是差强人意。
所以通过这件事,我想对想入门程序员行业的朋友分享几点我自己的看法。
1、入门程序员这个行业,不要先想一个月挣多少钱,如何让自己变得值钱更为重要。
我知道很多人通过培训机构进行学习的目的就是想轻松的拿高薪,但说实在话,轻松拿高薪程序员这个行业显然是不合适的。因为作为一个程序员每天写的并不仅仅是冰冷的程序,而是如何通过你的代码实现企业的价值和自己的价值。就像之前我给别人说的那样,如果你做了一个旅游的APP,结果没有安排好出行人的次序,造成了踩踏事件,那么就不仅仅是程序逻辑的问题,你要为整个事件承担责任。我们经常开玩笑说程序员就是民工,所以你要做的不仅仅是挣钱,还要保障“工程质量”。
一个初级程序员目前的薪资基本上也就3000~5000左右,中等水平的可能会过万,但是无论你拿多少工资,记得让自己值钱比拿工资多少更有意义。
2、编程中要懂得“悟”。
每个人都不是十全十美的,而编程编的说白了就是解决问题的思路。就拿上面测试题来讲,新问题出现的时候你可能一脸懵逼,说实话这个问题我为什么作为面试题呢?因为我第一次处理这个数据的时候把array_walk的返回值赋值给了数组导致数组变成了一个布尔型。其实这道题并不复杂,只要稍微有基础的人第一眼印象就会遍历数组,对每个数组元素进行处理。其次细心的人会发现每个数组元素都是日期格式,那么无论什么语言JS也好,Java也好还是PHP都提供了时间日期的处理函数,那么上网搜索问题就迎刃而解了。
整个答案应该不超过6行代码。所以对于初学者来讲遇到问题并不可怕,首先要对你所学的语言的基础掌握牢固,其次多观察,有没有规律,找到规律了问题就很容易解决掉了。
说实话我个人到目前为止学的语言也有那么几种,但是每个语言中的函数除了常用的几十个以外,基本上都记不住。用到的时候就会先找开发文档有没有类似处理的函数,如果没有再自己写,如果有就直接用。所有的开发语言都是有共性,比如我们要获取一个日期,js可以new一个Date,PHP有date函数,Java也有,这样一想其实编程这件事学习起来就简单的多了。
3、数学思维是解决一切问题的关键。
进入编程这个行业,对于初学者来讲可能听到很多人说,编程的人应该英语很好吧?其实不尽然。编程中当你研究了一些开源库之后你会发现优秀的项目一般英文单词都限定在英语四级之内。所以大家一看函数名就知道什么意思,什么功能而无需注释。只有编程到了一定阶段你才会发现数学其实是编程中的关键。比如我们要做一个关键词过滤,比如我们要做十万张图片的鉴黄又或者我们需要对图像中的人物进行边缘检测,那么这一切都需要建立数学模型,选择算法。当然如果你只是做一个很不知名的商店的评分,那么你可能感受不到数学的牛X,我只能告诉大家生活中处处都有数学的影子。我们去商店买水,工人盖楼……所以想要把编程学到极致,学好数学一定可以帮你事半功倍。
今天就打这么多字吧。有不同意见的也欢迎在下方交流,以上只是对初学者的一些想法的分享。