程序员还没有30K月薪,看你现在到底能做到以下几点?
很多人都觉得编程是一个比较特殊的职业,整天的加班,想不起来陪媳妇或陪老公。还整天自嘲为码农,屌丝等等。这是传统意义上的一个程序员的真实写照,但优秀的程序员都具备什么特质那?
对编程特别喜欢,听到说编程的坏话就会急眼
1、真正的编程的高手,从骨子里是非常认可编程这份职业。而且中间不会有转行业这个想法,而且会作为一辈子的事业忠诚的对待。别看他们自嘲为码农或者搬运工,但是你真要说编程这个职业不行,真会给你急眼。会以工匠精神对待这份职业,都会的认真对待遇到的每个知识点,兢兢业业,持之以恒。
之前在看到一个帖子,有个学美术的自称学了半年就能独立做游戏,由此这结论编程也就这么回事。结果引起了一群高手的狂轰滥炸,在追问下这哥们就是利用cocos2d-x游戏引擎做的开发,被大家一顿讽刺,最后直接不说话了。有个好心的哥对美术哥指出。大家之所以喷你是因为你没有站到尊重别人的角度去思考问题。有的人是真的对编程充满了热爱,你的话相当于侮辱了他们,换位思考,如果别人侮辱你,侮辱你热爱的行业,你会不会生气。如同别人说你家孩子这也不好,那也不好,你能受得了?
基本上都有职业病,眼疲劳,颈椎病是最常见的
2、任何一种职业都存在不同程度的,对身体的损伤。程序员由于整天盯着电脑,长期坐着。职业病就该出来找你麻烦了,水平越高,职业病表现的越明显。水平的高低和付出的时间是成正比的。所以建议热爱这份职业的或者为了养家糊口进入编程行业的,多去参加一些户外的运动,特别是羽毛球,对颈椎的恢复效果不错。
因为热爱所以即使会得这么多的慢性病,但从未想着转行,毅然选择坚守,是真爱。
极其注重提炼编程思想,语言以工具对待
3、编程是一个认知知识技能的过程,对同一个事物的理解,随着知识层次的提高感受又不同。目前存在各种的编程语言,各种项目千差万别。所以想靠一种语言打天下或者掌握一个项目技巧就想一通百通很难。而编程思想就能概括一些场景,就能以抽象模型的方式提炼出来。
特别一些架构师,未必真是什么语言都懂但是能通过抽象模型,提炼融合成一个系统,让这个系统能经得住各种环境的压力测试,并且能够真正转化为到用户手里能用的产品,这仅仅是靠掌握几种语言是办不到的。说到这里并不是强调编程语言不重要,作为一个优秀的程序员必须有一个特别熟练的语言,这是最基本的基础。有了一种熟练的语言再去切换到别的语言,触类旁通就比较容易。
在学习过程中不要过份对于一门语言推崇,可以适当分散点时间提炼编程思想。多去研究一些设计模式,工程思想。
持续优化代码,对写的代码不停的打磨,直到自己满意
4、优秀的代码都是经过千锤百炼出来的,在软件行业叫代码重构,实现同样的一个功能不停的找到更优的解决方案。这点在google的chromium代码更新速度就可以看的出来,看代码的更新绝不是仅仅增加某个功能,对于之前的老代码有了新的想法就会立即尝试,这点可能和我们平常开发一个工程软件有点相悖,这要在建立在对代码超强的驾驭能力的基础之上。google集合了全球2000多名工程师在做一个浏览器项目,并且这些工程师分散在全球各地,沟通是个问题,貌似很多不可能的事情在这都不是问题,对google确是个例外。在google环境下锻造出来很多牛逼的工程师绝非偶然,环境氛围感染着大家去这么做。
浅尝辄止绝不会让自己磨练成高手,让自己做的每一件事情,每一个细节,都尽力做到最好,才会锻造成精品。
5、不排斥新技术,不停的在新技术中提炼自己专业技能,活到老学到老很多程序员都感叹技术更新太快,软件行业本身是一个更新速度比较的领域。真正的高手从来都不排斥技术的更新,反而特别关注一些前言的新技术,为随时转变到新技术作准备。不断的让自己的之前的技术认知融汇到新的技术中去,也不会因为自己年龄增加而停止对新技术的学习。
在国外一些比较大的公司里,一些四十多岁的工程师还是大有人在,在中国都被称为怪物了,会被人认为这么大年纪了还在苦逼的写代码,没办法中国的软件人才的更新换代太快了。一批批的毕业生走向编程界,其实一些真正技术公司对于一些年龄大的技术人员持欢迎的态度,经验也是本钱,家有一老如有一宝,年龄绝对不是自己不去进取的理由。
那就得需要美女来当催化剂呦
- Android Linker 与 SO 加壳技术
- Go语言操作mysql数据库简单例子
- go语言的sql包原理与用法分析
- WordPress免插件生成完整站点地图(sitemap.xml)的php代码
- Go语言常用字符串处理方法实例汇总
- 硬盘故障时如何强制关机:Input/output error
- 举例讲解Go语言中函数的闭包使用
- 实现WordPress提交评论的时删除该页面的WP-Super-Cache缓存的方法
- php自动生成百度开放适配PC页-手机页pattern对应关系sitemap.xml
- Linux系统最大文件打开数优化,解决Too many open files报错
- 【Dev Club 分享】安卓单元测试:What, Why and How
- WordPress记住评论用户信息的js版本,直接操作cookie无视缓存
- 禁止百度转码和百度快照缓存的META声明
- 单机MySQL数据库优化推荐的编译安装参数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- css的border-radius注意点
- js的join split startsWith endsWith
- 详解length charAt indexOf lastIndexOf includes concat slice substring substr详解
- sort实现
- border-radius
- USACO Training Section 1.1黑色星期五Friday the Thirteenth
- background-clip默认从border开始的哈
- background-origin默认从padding-box开始的哈
- USACO Training Section 1.1 坏掉的项链Broken Necklace
- 简易通讯录类实现原理
- 盒子模型box-sizing属性的用法
- JeecgBoot配置及前后端分离HelloWorld项目
- POJ 3122 Pie
- POJ 2456 Aggressive cows
- css内容 元素 元素空间的练习