如何成为一个打杂的程序员

如何成为一个打杂的程序员

随着软件开发的积累和发展,现在程序员几乎很难碰到那种非常大,非常艰难的问题了。比如写一个linux内核,独立设计TCP/IP,比如实现一套搜索引擎,整一套游戏引擎,做个图像优化算法。对于国内大部分程序员来说,是没办法没机遇碰到这种的,你所碰到的大部分问题都有现成答案,你只需要整合会用就OK了,然后需要去整体把握来解决业务问题,所以大部分人估计都只能当一个普普通通的程序员了,那么,我想我的些许经验也许有点用。大神请绕路~

我既不是计算机科班出身,也不是大公司出来,08年数学系毕业,进入一家私营企业待了快7年,幸好不是外包公司,有充分的时间学习尝试,我不是牛人,但我自问是个能解决大部分问题的人。

总的来说,我这7年大概这么分的:
08-10 3年左右时间,程序逻辑,业务沟通能力
11-12 2年时间,UI细节能力
13-14 这段比较杂,主要还是偏产品,设计,运维,团队管理,项目管理方向思考比较多

所以我算是机遇不错,干得比较杂,虽然原来对这个也是很烦躁,对整体性解决问题有点感觉。会c,c++,java,javascript,object-c,做过前端,后台,终端,APP。

我把程序员最重要的几部分列出:

  1. 系统理解:包括平台,语言,底层,中间件,前端,后台,网络通讯等
  2. 逻辑思维:包括代码分层,设计模式,整体架构,业务转程序的理解
  3. UI细节:对UI的敏锐,空间感的把握,绘图,控件的理解
  4. 解决问题的能力:学习能力,开发人员的思维习惯,程序员的沟通描述语言,搜索查找资料的能力,英语能力,主动思考咨询能力

我的逻辑思维比较强(单指程序员的思维,抽象思维一般般),学习能力也还一般,所以前面3年练习系统理解和逻辑思维其实对我难度不大,3年时间,从底层,中间件,UI,后台服务器,网络等都摸了个遍,各种设计模式,适配器,观察者,状态机,反应堆等都能基本熟练运用。比如,进公司3个月时间基本能对项目的整体架构有把握了,1年时间就敢拿着C++去写后台服务器了。但我认为,这方面也是能训练的,训练方式就是重构,不停重构你的代码,要让别人看你的代码函数名就能反馈出整个业务逻辑,分层逻辑,尤其是那种中枢式的模块,你需要控制进,控制出,控制调度,同步异步,堵塞,绝对不能乱。我在入职第一个月里第一个模块重构了3次,相当于完全搞了4遍。然后,多去理解设计模式,设计模式完全是对思维逻辑的训练,是程序员间的通用语。最后,多看别人代码,多参与开源项目,理解别人的开发思路也是一种打破自己固化思维的训练方式。

然后沟通方面,基本能听懂别人说话,虽然情商不高,但在开发团队中足够用了,主动性语言表达能力偏弱,不过说出来别人也能听懂。这方面也可以通过去看别人代码学习,你学会站在别人角度思考,就基本能好好沟通了。另外,设计模式,UML等也是一种沟通语言。
但平时也注意多和团队人员沟通,多和外部人员沟通,参加开发者线下会议,别闭塞。

UI细节其实是很惨的,对这方面一开始是很抗拒的,天生美感比较欠缺,一开始认为命令行是最好最酷的交互界面哈。
后来是逼着自己学的,比如空间感的把握,我是这么练习的,一开始拿尺子量,一个个像素对,后面大概拿手指量,粗量,最后就练习到能拿眼睛量大概了。这时你就有直觉了,拿了东西,粗略扫一眼,能看个大概哪里做的不好,差10几像素,哪里有点不对称,哪里有点不协调,然后看着就是会不顺眼。所以我觉得什么东西都是可以通过训练练习改变的。
像控件的理解,这方面全是经验积累,你放一个文本控件,就得考虑文字大小,颜色,字体,对齐,间距,边距,呃,这个文本是变长的,还得考虑文本长了能不能换行,溢出后是省略还是走马灯等等。放一个图片控件,就得考虑前景背景,考虑放大缩小拉伸变形问题。做动画,就得考虑开始,中间,结束,时间,帧速,异步,可控等问题。
对色彩的理解,一直还是个问题,这方面倒是可以依赖设计师就行。不过,提升自己的品味,多习惯用好的产品好的软件,如mac等能有效提升右脑在这方面的直觉。

至于解决问题的能力,学习是最重要的,擅长学习的人,解决问题都很强,我学习不算太强,虽然囫囵吞枣学了很多,也算能融会贯通,但是一直对学习这方面总结的比较少,缺乏科学系统的方法,最近才算有所悟,等成熟了再总结下。可以去看看李笑来,郝培强之类的学习方法。
但起码的动力我还是比较足的,比如碰到一个完全没听过的玩意,你要有动力去查找,去思考是什么,干什么,为什么,要去和已有的知识体系联系起来。
关于程序员的日志打印,好的程序员的日志,知道哪些关键点要打印,哪些没必要,基本碰到问题,拿日志看一眼就知道了。
而程序员的思维习惯,要学会透过现象看本质,出问题了,就得深入思考,先看看打印bug,大概分析分析,你是程序员,不是用户,不要问出为什么挂掉的傻x问题。基本,你能用程序员语言描述出问题,解决思路也就有了,比如这个地方为什么空指针?顺路一找就可以了。
搜索,起码得会google搜索吧,多在stackoverflow,github上混着,基本上你日常碰到的问题100%都是能找到答案,当然前提是你能正确的描述问题。
英语,读写文档,搜索问题时都是必备的,你甚至得学会用英语去描述问题来搜索。

最后,程序员必须明白,就算是打工,你也是在忙自己的事业,用心做好事情,同时不停提升自己,投资自己,成长才是你最大的财富。
也就是你得拿着卖白菜的工资,操着卖白粉的心~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,263评论 25 707
  • 先说项目开发过程中团队人员的分工协作。 一 人员安排 毕业至今的大部分项目都是独立完成,虽然也有和其他同事协作的时...
    SnowflakeCloud阅读 10,724评论 3 59
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,074评论 6 244
  • 本文主要讲解了Android 权限管理方面几个点:1)Android 权限背景知识(业内人士可跳过);2)...
    freddyyao阅读 3,244评论 1 11
  • 这里有一个人 正在毁灭自己 嘘 不要打扰他 在这个世界上,生命总是被不厌其烦地歌颂,而我却向往毁灭。 有何不可呢?
    树桠啊阅读 319评论 2 2