不知道LZ看没看过圣斗士星矢这部动漫,首先你得问问自己,想学编程,你有没有像星矢一样持之以恒百折不挠一步一个脚印忍受常人无法想象的困难和痛苦的品质,没有?你说偶开玩笑逗你,那好,下面的不用看了,因为你确实不适合学。
如果你只想着挣大钱,劝你别碰这行,一句话,别来找虐。为什么?你看到的手机APP,各种应用,要想开发出来,不知道需要多少种技术。拿最常见的网站开发,需要后台数据库mysql,数据格式json,xml,各种网络协议,还有网站开发语言PHP, JSP,,等等不下十几种技术。而每一种技术都是一本厚厚的五六百页的书,需要最少一年多时间掌握一门技术。最要命的,每种技术互不交叉还跨度很大,每种技术都有自己的设计理念和很多很多“天坑”在等着你攻克,你问问你自己,你有这个恒心和意志力天天捧着本大部头的书天天看,天天上机操作学吗?你说有,那好,你看电视上那些富二代天天潇洒地到处游玩泡妞基本于你无缘了,因为你根本就没时间,谈个恋爱都困难,还想打网游玩王者?那算了,你还是别碰这行了,别耽误你玩游戏享受生活了。
程序员加班很恐怖,工作制通常是996,即早9晚9周六还要上班,晚9下班还是早的,一般到晚上十点。你想那时夜深人静了人家都休息抱着老婆孩子睡觉了,你还在工作中,是不是很崩溃?
第2,程序员耗脑太严重。工作中需要十几个小时大脑不停地运转。需要设计算法,不断地把代码改来改去来适应客户一天几变的需求。很多功能没有现成的解决方案,还经常遇到一些天书一样的疑难问题,bug,实际工作中突发状况千奇百怪,你可能见都没见过的bug,崩溃,需要一点一点查几万行的log日志。而且也需要百度,google,英文论坛寻求帮助,理解错误信息是什么意思。所以英文不好的没耐心的还是算了吧,不适合这行。
第3. 程序开发首先是非常难学的,任何一门编程语言都有自己独到的思想,概念设计,很多情况下一门语言与另一门语言没有多大关系,知识经验无法串用。而且工作中你还不得不用到这些技术你不得不去学。而且程序技术日新月异,新类库新SDK每天都会推出,你需要日复一日不断地学习新技术。如最新视频解码技术,游戏引擎等等,而这些新技术可是国内没有书和任何资料的,需要你到英文官方网站去找实例看文档去学,更要命的,新的技术和老的还没太大关联,你得重头去学。而且老板急赶项目不会给你什么时间,一般三天就是极限了,你需要这么短的时间快速掌握一项新技术…
综上,你明白程序员为什么总要加班了吧,也知道这行不是人干的吧。为什么说程序员干到三十干不动。很简单,以这种消磨人生所有时间状态,你生命中只有加班加班工作工作学习学习,你将不能顾家不能跟朋友聚会不能再有自己一点点休闲时间,更别说谈女朋友恋爱了,以这种状态你能坚持到三十岁?偶想那简直是个奇迹了
软件开发一般学什么?
很高兴能回答您这个问题,以下偶为大家分享,偶个人对这个问题的看法与想法,希望偶的分享能给大家带来帮助,也希望大家能够喜欢偶的分享。
看到这个问题,作为一个从业的IT老兵,个人觉得软件开发这个概念太过庞大,它既涉及到很多行业领域,又能包含各种具体的开发技术,面面俱到的描述会让人无所适从而且其实也不可行。个人建议学习软件开发不用着急马上入手学习编程语言,应从计算机原理开始,由底层上上层,循序渐进,由硬件到软件。虽然所花的时间会长一点,但会学的比较扎实透彻。
计算机原理的学习
首先最好学习下计算机背景知识,包括计算机发展历史,二进制计算原理。总之从科普角度全面的了解计算机的含义。这块的资料很容易在网络上获取。其次学习下计算机的硬件知识,包括CPU,内存,输入输入设备,搞清楚这些设备的用途,有条件的话可以跑跑电脑城,自行配置组装一台计算机,这是有好处的。学习以上的内容原因在于再高级的计算机语言,都要通过控制硬件来实现。先熟悉硬件,了解计算机的运行机制,才会对软件设计有扎实的理解。
选择一门编程语言
在众多的计算机编程语言中,选择一门语言进行入门学习。建议选一门相对“低级”的语言,比如C语言,它其实是一种介于高级语言和低级语言之间的语言,它有控制硬件的能力,可以通过指针直接操作计算机内存。学习好C语言可以让你透彻的理解计算机原理,也会对变量,数组,内存存储等这些基本概念有本质的理解,这些是其他语言所不能带给你的。一般来说,熟练掌握C语言后,学习其他语言会比较容易。另外,C语言得入门书很多,比如谭浩强版本得就比较经典。
比技术本身更重要的是习惯的培养
最后,编程要一开始就养成良好的习惯,例如变量命名,书写格式都要有规范。刚开始看似会浪费时间,但习惯养成后,以后就轻松了。此外,要重视架构,架构即设计模式,它本身也是软件工程中的一个重要组成。编写一个程序的时候不能只顾完成功能即可,一定要思考软件能不能分个模块,能不能层次化,方便以后扩展。比如完成一个特定功能有好几种算法,那能不能设计成工厂模式,方便以后扩展算法,这样做,看似代码复杂化了,但是其内涵就要比普通做法提升了很多。所以设计模式其实就是编程思维的一种重要表现形式。
总之,不管哪个行业,不要被五花八门的具体技术所困扰,选择原理性的,基础性的技术去学习,并且坚持实践。长此以往,才能举一反三,触类旁通。
在以上的分享关于这个问题的解答都是个人的意见与建议,偶希望偶分享的这个问题的解答能够帮助到大家。
学习编程需要考哪些证书?
本人本科英语专业,研究生计算机专业,现在在国内一家知名互联网公司工作。
需要考哪些证书?
其实对于计算机专业求职来说,学习编程考证书不重要。
而且容易的证书往往没含金量,而且没必要;有含量的证书,又非常难考。
对于初学者、计算机专业本科生甚至研究生而言,更重要的是有扎实的编程功底,扎实的计算机专业基础。
对于计算机专业而言,计算机等级考试几乎没啥含金量,甚至显得不专业,而且浪费时间。如果你觉得“闲着也是闲着”,就喜欢考试,可以考一考,但是至少考到计算机三级,甚至四级。
如果实在是想考一些证书的话(尤其是非计算机专业,想从事计算机专业工作),推荐可以考虑考软考初级、中级和高级(大学里过高级的并不多)。
当然还有很多认证如Oracle认证、微软认证、思科认证等,这些一般校招求职不需要,而且很难考。
偶的体会
偶从接触编程到现在已经,五六年的时间了。
从一个英语专业到计算机专业,偶也考了很多证书:英语专业八级、英语专业四级、大学英语六级、大学英语四级、软考初级程序员、软考中级软件设计师、计算机二级C语言、计算机三级数据库等。
也拿过很多省级和全国的计算机比赛获奖。
在校招求职过程中,企业更看重的是计算机专业基础是否扎实(数据结构、算法、计算机网络、操作系统等)、所选的技术方向的技术(偶是Java工程师)主要是否扎实(Java的基础、Java的高级内容)。
其次是有没有大型比赛经验,有没有实习经历。
最后英语和软考证书只是锦上添花。