我的编程自信来自哪里?
我的编程自信来自哪里,或者说我的编程自信该来自哪里?
三流的大学,英语不过四级,数学不知道线性代数和离散和基本数值分析,唉,想想真是悲哀,10年前大学毕业不知道这些,10年后依然不知道。为什么不去学习点英语那?英文技术材料直接百度翻译了。为什么不去学习点数学那?很想学,不知道从哪里着手。
身边很多人都发财了,做生意了,创业了,离开了说是吃青春饭的编程行。断断续续的上班、干活、自己瞎折腾。08年毕业一直c/c++编程。做过嵌入式产品、视频流媒体、pc应用软件、mfc、qt、window游戏、网络软件、linux和windows、stm32、工控plc上位机。上到web java .net 下到单片机 电路图不懂,基本接触了软件开发的各个行业。数据库之类不用提sqlite mysql access oracle甚至sybase teredata之类。协议如http ftp xmpp mqtt socket通信拿来即用。当下流行移动开发android ios了解点。
软件行业还能干什么?以上都是体力活,真的应用软件就是个体力活.所有编程活动都是"码农",我这里的“码农”不是贬义词。农民在种地之业余时间出去建筑工地搬砖,所有编码都是搬砖活动。想好干什么,怎么干,设计好思路 流程 c++这种实现就是搬砖活动。同理,也许搞电路的 设计好电路,实现也就是搬砖。美工设计好,使用psd实现一样,如设计师设计好大楼,“农民工”来搬砖一样。本人非常尊重“农民工“,尊重劳动人民。正如路遥歌颂伟大的劳动者,一切劳动都值得尊敬。反而设计师天天设计,空中楼阁不一定能做出来自己的设计一样。然而,一切有设计,再搬砖。也有无设计之间搬砖者。谁又敢说前者一定优秀于后者。
同理,懂一流英语、懂一流数学者,正如”毛“革命之理论派与实践派一样。也许自己的理论都难以在软件中实现。学历高而理论高者,搬砖和编码能力可能不如我们。然所有要求高学历的公司,我是从来进不去的。面试360、阿里巴巴、百度等所谓大公司,随便来个char*啥字符串就把你打回家。去此类公司面试,纯属为了体验生活。也去过亚信、神码之类所谓上市公司,无话可说。最可恶之新浪、橡果国际之类公司。
当下,人们对于工作和生活,因个人处境不同而不同。单说编程技术:我所合适的工作,必然是所谓程序员开发中20%以内的。如果公司做不出成绩,真的呆不下去。朝9晚6无作为做不了 做不到。
知识有什么用,回老家打算当个维修工人的时候,一台4,5吨的大型电机放在你面前,修理下10万块,那时候你会觉得物理、电磁、绕线圈、数字电路、模拟电路是多么重要的事。甚至会开挖机都是重要的技能。3线城市以下哪里有使用c++写代码的工作,ghost一个系统的才是高手。
图像处理很多软件居然是vc6写的,二维图像二值化、倒置、镜像等等各种小算法,二维数组转换就是线性代数,其他某高手说就是初中数学。矩阵转换。例如杭州信雅达的银行票据识别系统,就是很多银行使识别票据的。影像存储数据库oracle吧。《用c++实现数学算法》有二维矩阵转换数组。勿论opencv之类。
游戏开发,2d棋牌 3d游戏引擎,脚本lua python啥的。天龙八部用ogre引擎,甚至有些军用雷达也用osg引擎。手机游戏自己开发引擎的更少,卓望的一个棋牌游戏,引擎是irricht啥的。当下流行unity3d。引擎做引擎的事。蓝港开发佣兵天下,也许失败就是失败在要自己开发引擎。 引擎2d 3d 除了x,y 多个z坐标,都不知道能做啥,何况一向反感游戏行业。
机器视觉,什么cuda pcl搞个体测,测测脂肪。
嵌入式产品,从内核,uboot 驱动程序 到 web cgi。软件都不重要,重要的是产品选型,量产,硬件电路设计,一款年销售千万的小产品,代码只有10几个.c文件,c语言写的。类似企业启明星辰之类。
安全行业,什么北信源、朗威、中孚等,window linux 都是基础的文件处理 系统处理 查个注册表之类。提一下鼎普科技,3年前,面试笔试都通过了,让去上班,签合同的时候,嫌弃学历太低,让你回去。所谓的跟国家部门打交道的公司。国家公务员之类的要求学历高,把我们的国籍都开了吧。顺便提一下,应用软件适合所有平台,都用wstring了,谁用char*直接骂死。
马云考了3年,也就是普通大学。但他喜欢上英语。如果你不断拥抱世界,你是否足够了解中国。知识,没有使用场景,真的不知道该怎么学。学了不知道用什么用。
也许,除了基本学科,也许学了反而有害。如你懂点技术,懂点web 还懂点设计 是不是就想当老板。我干不了,我可以指挥别人干。那需要有钱,有项目。
学点算法,三流大学,大企业会让你当算法工程师吗? 正如很多人,能力 学历 知识 机遇 才成为了某某某某。
这里,单说:该怎么提升基础知识,我比较想学硬件和数学。英语你要是能做个金山词霸之类的可以学学。改善一种算法,做一个产品。或者解决一种工业流程,图像视觉+传感器解决个问题之类。
程序员很多通病,认为自己写的代码很厉害很重要,其实产品设计、测试bug的也很重要。能以”码农“的心态当需求、设计、测试的为设计人员的有多少那?
顺便,提下调试,代码是调试出来的,很多如果实现,程序问题,都是跟踪调试,单步,远程调试,做到无色无味无代码,执行出来什么就是什么吧。
对于企业,重要的是产品取得成功,而不是你或者我,或者某某某有多么高的学历。对于我,大企业或者欺负我的领导、公司,我能说你是装逼公司吗? 但我完全理解你。要是我 我也不要这样的人。但还有很多不开眼的公司,哪怕我这样的,也好像合适的行业能干好。2000游戏行业认为你垃圾,嵌入式4000干的很成功。8000视频行业认为你不行,安全行业12000干的不错。工作啊,人生啊。
希望,不开眼的公司,能有一个灿烂的前程。
巨头他们也有自己的悲哀