做一个程序员需要学多少必备技能才合格呢
做一个程序员需要学多少必备技能才合格呢
做一个程序员需要学多少必备技能才合格呢
在大学里学的是计算机专业,所以顺道学了不少计算机系的基础课程,总体来讲学得很不好,直到大四毕业,我才勉强下定决心要以写代码为生(现在想想,可能是当时实在想不出其他出路)。大学4年,很遗憾的事情就是我没有弄清楚该去真正学些什么东西。
毕业后第一份工作,在一家小公司写servlet/jsp,说实话,我写的很烂,当时带我的人对我的工作很不满意,直到有一次,项目经理跟我谈说,你的工作表现你也看到了,差点就被开掉了,不过我觉得还是要在给你机会。。。当时,我真的是自信心崩溃到极致,觉得自己这段时间其实很努力,但为什么还不入门路。。这次经历给了我非常大的影响,之后的不久,我终于明白了怎么去写那些servlet/jsp,于是我努力的写那些代码,不久,我就成了公司新员工里面,做东西最快的人。当时还发了个公司的什么最快进步奖给我。我想第一份工作给我最大的感受是,想要做为一个程序员,你得先明白,程序是个什么东西。
一年多以后,servlet/Jsp实在不想写了,于是换到另外一家公司,做聊天软件的J2ME客户端。其实我当时不懂J2ME,在刚入职的一个月里,啃完CLDC和一些会用到的JSR的英文文档,然后每天去看项目的代码,有任何问题就去问周边的同事。不久,我也慢慢能写一些J2ME的代码了。接着,我加入了新版客户端的项目组,开始做一些UI组建。最开始,我写一个Text组件,就是把文字显示到屏幕上,还要根据屏幕可显示区域的宽度、高度对文字做调整。没几天,我就信心满满的写完了这些代码,原来写客户端代码也不难啊。不过不久,当同事要用我的组件时,问题百出,以至于同事跟经理抱怨说,这么基础的组件应该给有经验的人去写啊。。 这次,虽然我的工作做的很烂,可自信心倒没受多少打击,因为已经工作一年多了嘛,脸皮厚了不少。但是我心里知道,我的工作肯定哪里出了问题,否则我的组件应该能经受住使用者的考验的啊。这份工作中,我学到了不少东西,首先呢,脸皮要厚一点,不会就追着去问,其次,没有想清楚的话,写出来的东西经不住考验的。再次,英文资料好像更准确啊。当然还有一些具体的编程技术。
大概又过了一年多,大家都说J2ME快完蛋了,android已经开始大兴其道,公司里面也有人在做android客户端,可我还在写没有前途的J2ME.恰好,qq群里有人发消息说招人,我脑子一热,扔了份简历过去。于是,一个多月后,我就到了新的公司上班,这家公司是一个做手机的厂商,而我也可以参与android的开发。在这个公司的前3个月,基本啥活没干,除了学习android之外,就是各种培训和等待。大概待到5个月的时候,我实在坐不住了,我去跟经理说,有没有活可以给我干。经理说我考虑下,不久便安排给我一个项目,让我去把它维护好了,然后集成到产品里面。可当我拿到代码时,傻眼了,2w多行代码,而且很多地方写的很复杂,看了好几天也没看懂。好吧,不管了,这件事既然是我负责,那怎么都应该挺住。在接下来的快2个月里,我每天都扑在这两万多行代码里,解决里面的bug,理解里面的设计思路、代码风格、编程技巧,使用公司的工具链,从发布、审核到持续集成等等。我了解到了很多我平时不知道的东西,我解决了发现了的所有的bug。可是最终,我并没有把这个项目维护到可以发布的程度,最后一关的AT&T的稳定性测试宣判了我的这个项目的死刑,随后这两万多行代码慢慢的从我的提交列表里面消失掉了。我第一次明白了,竟然还有如此严格的质量测试,也明白了什么叫风险与代价,虽然这些代码,我已经用monkey模拟跑过了5个钟头,但是依然被ATT测试蹂躏2个钟头之后挂掉。我也明白了,要预防风险,你就必须提前考虑到,否则,等到那个不好的事情发生,你已经没有机会了,你的努力会白费。
在这家公司我还做了另外一个项目,做的很辛苦,甚至于项目后期了,我们还加班加点把整个项目的结构重写了一遍。这个项目被人重视,甚至被当作新产品的一个卖点写到宣传海报里面去。可我们真的搞出很多事情,有一次,软件部门的头头报给我们几个软件崩溃的bug,于是这些小头头们着急了,整天拉着我们解决各种各样的问题,整天压着我们要把bug list里面的问题尽快搞定。幸好,我们最终都搞定了。软件成功发布,虽然它不如预期的那么完美,但是至少,在新产品里有它的身影,而我自己每天也在用。。这个项目最大的感受是,决定必须有实践结果的支持,我们刚开始的方案,因为最终不能满足性能要求,不得已,在项目后期加班加点换实现方案。而且,我也第一次感受到一个好上司,真的很重要。因为最后公司部门重组,我们几个给某些领导带来麻烦的人,好像不是很受欢迎啊。我想,如果一个只为自己考虑的管理者,应该是这样的吧。
6。于是通过猎头介绍,到了现在这一家。这几天,我带领的团队终于完成了一个移动互联网的项目,老板拿着最近的版本去给他的朋友看去了,可我自己在想,还不完善啊,我们需要在努力下,好让老板(主抓市场)去卖我们的产品的时候更有面子一点。。这段时间里,我学到最重要的东西是,老板也不容易,有时候得替老板想想;执行力很重要;在小团队里,你自己的技术视野和细节都很重要,因为出了问题,肯能需要你去解决;学会激励别人;除了学会快速学习之外,还要能帮助团队成员快速学习;不要逃避问题,因为你就要是那个问题解决者(任何问题,不管技术和其它)。。等等
昨天跟第一家公司带我的朋友聊起,他说,你现在太拘泥于细节,你现在要从代码的层面出来,站在更全面的角度去把握整个团队的工作,建立框架,建立模式,这样你的团队才能高效执行。。。。 总之,他说的话我也不是太理解,也许需要时间。不过我想,自己一个人走的太累的时候,可以找找周边的朋友帮你分析和指导下,因为可能,在一年多以前,我也在看stackoverflow上那篇,技术人员应该读什么书,是的,那些书我会去读,可我现在更重要的是要解决工作中所碰到的问题。
请看下回
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OkHttp3源码解析(三)——连接池复用
OKHttp3源码解析系列 OkHttp3源码解析(一)之请求流程 OkHttp3源码解析(二)——拦截器链和缓存策略 本文基于OkHttp3的3.11.0版本 implementation 'com.squareup.okhttp3:okhttp:3.11.0' 我们已经分析了OkHttp3的拦截器链和缓存策略,今天我们再来看看OkHttp3的连接池复用。 客户端和服务器建立socket连接需要经历TCP的三次握手和四次挥手,是一种比较消耗资源的动作。Http中有一种keepAlive connections的机制,在和客户端通信结束以后可以保持连接指定的时间。OkHttp3支持5个并发socket连接,默认的keepAlive时间为5分钟。下面我们来看看OkHttp3是怎么实现连接池复用的。 OkHttp3的连接池--ConnectionPool public final class ConnectionPool { //线程池,用于执行清理空闲连接 private static final Executor executor = new ThreadPoolExecutor(0 ...
- 下一篇
安卓面试中高级安卓开发面试之——2018秋招各大公司招聘细节披露
各大企业秋招流程: 杭州/阿里/数据技术及产品部:2轮技术面+交叉面+hr面深圳/腾讯/OMG/腾讯视频:2轮技术面+hr面北京/百度/百度APP研发部:3轮技术面+文化测评北京/爱奇艺:3轮技术面深圳/vivo:1轮技术面+hr面+线下交流会北京/一点资讯:3轮技术面+hr面 北京/360:2-3轮技术面+2轮HR面(一般第一轮的笔试现在已经略过了,不用笔试了) 常见面试题: Android: Activity Q :说下Activity的生命周期? Q :onStart()和onResume()/onPause()和onStop()的区别? Q :Activity A启动另一个Activity B会回调哪些方法?如果Activity B是完全透明呢?如果启动的是一个Dialog呢? Q :谈谈onSaveInstanceState()方法?何时会调用? Q :onSaveInstanceState()与onPause()的区别? Q :如何避免配置改变时Activity重建? Q :优先级低的Activity在内存不足被回收后怎样做可以恢复到销毁前状态? Q :说下Activity...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器