Ⅰ 做一个“独立”程序员需要那几种知识
信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。
虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。
第一种武器:开发工具
至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和java是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
第二种武器:数据库
为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。
第三种武器:操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。
第四种武器:网络协议TCP/IP
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
第五种武器:DCOM/CORBA/XML/WEB Services
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。
第六种武器:软件工程与CMM
现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。
第七种武器:强烈的好奇心
什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。
Ⅱ 程序员怎么厉害为什么不自己在网络上创业开发什么的
厉害的程序员都会成立自己的工作室,接一些外包。然后厉害的程序员工资都很高,企业都是供起来的,分个期权,股份什么的。不缺钱,所以对创业没什么想法,为什么创业又耗精力又耗钱,不缺钱的人为什么要创业。
Ⅲ 看完百战程序员的视频就能独立开发项目吗
百战程序员的全部视频完成后,就会有基础的项目实战能力,但是能不能开发出来就看自己掌握的怎么样了。
Ⅳ 程序员独立开发项目中遇到急手问题你们是怎么解决的
1、先问身边比较牛逼的同事
2、网络 google还是挺强大的,就是你搜索关键字得情绪点更加容易找到你要的答案。
3、换一种方法达同样的效果
4、先做别的模块
Ⅳ 程序员如何才能成为独立开发者
当你有了知识体系之后,遇到和你知识体系对应的场景相关的问题,就可以快速找到相关的知识,系统的分析问题,最终解决问题。
你看,是否拥有知识体系,导致了熟练开发者和普通开发者的一个非常重要的区别:熟练开发者能够独立负责一个模块或子系统的设计和开发工作,拥有分析问题、解决问题的能力和任务分解的能力,可以分配任务给普通开发者。
进阶修炼方向
好啦,从技术水平的角度讲,普通开发者和熟练开发者的区别就在于:普通开发者的知识不成体系,而熟练开发者构建了与某个应用场景相关的知识体系。
这样看来,普通开发者要想进阶,方向就非常明确了:构建自己的知识体系。
那么,怎么构建知识体系呢?先参考我的另一篇文章:构建知识图谱,让自己更值钱。如果后续有机会,我会重构一篇新的文章,再聊聊构建知识体系这个话题。
Ⅵ 程序员四十岁以后该怎么办
这个问题,适合我回答。我是99年毕业的计算机系本科生,所以同学基本上都是40岁上下做it的人士。我就捡着几个年轻时做过程序员的同学例子给你们说说,看看这些程序员40岁以后干啥去了。
同学A,2000年去了某大公司H做开发,因为善沟通有亲和力,后来逐渐脱离技术岗,做项目经理,售前,现在负责对外投资。
同学B,2000年去了某大公司H做开发,因为天赋好,技术岗位一路上升,做到中层领导职位,后来看好某新技术,毅然离职创业任ceo,坚持写代码至今。如今一边经营公司,一边写代码,一边组织小乐队吹拉弹唱,等着风口到来好起飞。
同学C,进入对日外包行业做程序员,现在自己组建软件开发公司做老板,时不常的还会弄弄代码啥的。
同学D,进入对日外包行业做程序员被外派日本,后来定居日本,目前仍然是做维护代码工作。
同学E,进入通讯领域做程序员,在换过多家公司之后,依然以资深专家身份玩弄着代码,并以此为乐。
同学F,经历了北漂创业,身体健康亮红灯后,再次回到软件外包行业打工。如今作为资深程序员坚持在代码第一线,还经常加班。
同学G,毕业之后不久就炒了公司,做了软件开发个体户。从共享软件到如今的APP开发,总能弄出名堂在排行榜中占有一席之地。十几年如一日,一边潇洒生活,一边弄弄代码保持排行名次。现在生活无忧,不停生孩子玩儿。
同学H,毕业后进了某大公司Z,做程序员。如今在Z司的下属公司做某项目负责人。
所以说,各个行业呢,都是有深度的,不仅仅是写代码那么简单。只要你愿意做下去,多年的行业经验积累会帮到你。
软件开发,或者说程序员工作,说到底就是一种工作。跟其他工作一样,都是用来养家糊口的。喜欢呢,就做得开心些;不喜欢呢,早点转行也好,或者继续靠这个赚钱同时,培养点其他爱好也好,都行。
Ⅶ 程序员如何才能有独立开发项目能力
难!我本身是软件工程师,我从业都十多年了,就拿网站来说吧,比如你独立开发一套PHP或者是Java的网站,通常,美工+WEB前端+后端开发+需求分析,设计的能力,相当于,你一个人,顶一个团队的工作量,连项目经理都兼任,维护客户都兼任!因为你得分析需求啊。
如果Java更难了,相当于美工(1人)+WEB前端(1人)+后端开发(3-7个),如果是APP的,还得加安卓+IOS工程师+项目经理。
如果是C++,巨难,虽然我也可以独立开发。问题是,太耗费精力了。特别是嵌入式,其实C语言都有几种,Java也有几种,其他人,半桶水,不专业的。
最终,你要给客户看到的效果!如果你美工 不行,后端不得,只要有一个严重的短板,你就不胜任真实的项目独立开发的能力,自娱自乐可以。
写驱动,谈何容易,全世界,不超过1000人会写底层的驱动。
第二个,我看到你说,做嵌入式的是学c++还是java ,我java比c++好一些,说明,你基础不行,虽然是科班出生,科班难出人才,除非自学成才的天才例外!如果天才,你这个年纪的,或者大一点的,都能独立开发了。特别是美工,需要天赋的!编程也是。需要悟性的,才有创造力,如果死读书的书呆子,没什么创造力的。少数例外。
Ⅷ 程序员在转行的时候,大部分选择什么行业
年度招聘市场经济不好,很多公司不再招聘新员工。尤其是在It行业更是雪上加霜。很多程序员想转行。那么程序员可以转行的职业是什么呢。今天我们来介绍一下。最适合程序员转业的十大职业是什么。我国的编程教育是一个广阔的市场,每年都有数十万名新成员加入这个行业,因此,如果你经验丰富,你可以成为编程讲师,获得不错的收入。很多程序员技术太强,被公司淘汰后也不担心落后。成为it自由职业者,可以在网络上接受外包开发工作,获得收入。
因为程序员的性格一般都很内向。但是如果积极锻炼自己,销售也是一个不错的选择。因为销售毕竟是公司的核心。考公务员进入事业编制是程序员的好选择。程序员本身技术太强,思维能力强,所以如果能考上有技术需求的国企或事业单位,可以说是稳定的铁饭碗。对于程序员来说,这可能是最好的出路。
Ⅸ 程序员独立研发的时候,遇到问题了你们都怎么解决啊
1.技术问题:网络,bing,SCDN,请教前辈
先网络,网络是个好老师。
网络解决不了的再bing搜索一下,我遇到很多次都是在bing上找到的。
当搜索引擎搞不定的时候,这时候需要论坛了,去CSDN找找相关的技术贴,总会有点思路。
最后就是找公司的同事,这个有些时候需要花一些代价,毕竟大家都很忙。
2.逻辑问题:有些时候会遇到很恶心的逻辑
当想不明白或者想不通的时候,我会试着一步一步把逻辑写在纸上,这样就会很清晰,如果在某一步被卡住了,那么问题的关键也找到了。当然有些时候或许一开始就走入了一个误区,从而导致了一个错误的思路,这个时候我一般会睡上一会,或者做些完全和开发不相关的事,目的是忘记刚刚所有的东西,然后从新审视问题,换个角度去考虑。
(个人经验,纯手打!)
Ⅹ 什么是有独立开发能力的程序员
1、为了做出的东西符合用户要求,需要和用户沟通,并写出大概的项目计划让用户确认;
2、需要根据项目计划和功能结构设计数据库表结构;
3、采用最熟悉的技术迅速的搭建程序框架;
4、开发的每一个阶段都需要和用户沟通,听取改进意见,并针对意见做有效的修改,修改的工作量要控制在有限时间内的同时还需要符合用户要求;
5、整个程序开发完成需要给用户演示整个程序的使用方法,并可以给用户其他相关人员培训。
(10)程序员独立开发扩展阅读:
职业要求
一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。
对于职业程序员,另外一个重要的方面就是,程序员需要不断提升自己的业务技术,技术必须一直保持在一个较高的水平,并且要不断发展,程序员也要寻找贸易的机会,要参加研讨会,在周刊上发表文章和接受职业教育,这些使程序员在自己的领域中分级或者不断并排前进。