我今年而立,没学历转行学java的java,原来是跑业务的,工作八个月,工资3000元,还没原来业务时的基本工资

3.5K501 条评论分享收藏感谢收起赞同 2.1K287 条评论分享收藏感谢收起194166 条评论分享收藏感谢收起赞同 2713 条评论分享收藏感谢收起87年的转行干程序员,那公司说我年龄太大了
[问题点数:40分]
本版专家分:9123
结帖率 61.76%
CSDN今日推荐
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
本版专家分:9123
匿名用户不能发表回复!|
其他相关推荐
原文地址:http://blog.csdn.net/jingwen3699/article/details/7939882
今天看到了一篇文章,很受启发,只要你肚子里没有货,你随时可以失业,只要你有本事,任何时候都不会失业!
下面是我看到的文章:
最近我过了40岁生日。 一个朋友开玩笑的对我说:嘿,我想这个意味着你已经老的不适合再去编程了吧!,我表面上哈哈一笑,但心里却触动不少。
我,一个老程序员,也是一个学生,把玩过甚多语言,大多不精。我既非名牌学校,也不是高学历,仅代表一部分比较蛋疼的人。
接触PHP也是很早了,从04年的OFSTAR开始的,到现在六年了,期间也接触过不少的语言。从脚本JS到底层的C语言。
坦诚的说,我不是个高手,但是我相信自己比大多数人接触的知识面要宽广,深刻些吧。
同时我也是一名学生,从东南大学到西电,对计算机的爱好一波三折。
我这里想说几个
千万别做程序员,尤其别做Java这种门槛低,入门快的程序员(别跟我说Java搞精通了也很牛之类的,原因不解释,做5年以上就知道了),程序员本来就是我见过最坑爹的职业了。。。Java程序员更是,现在满地都是Java培训机构,不出3年,你就不值钱了,就像3年前的C++一样!而且Java贬值更快,因为他比c++简单多了,培训个3个月,直接上岗,你说你怎么保证自己是不可替换的?而且现在Java程序员的整体
告别程序员生涯,一点感慨,与诸君共勉(转CSDN)再过几天,我就正式告别程序员生涯了,这也是我最后一次以职业程序员身份在CSDN发表文章。小弟谈谈入行几年来的感受,做一个人生阶段的自我总结,同时希望能给后来者带来点参考意见,能在这段路上走的更好。本人2002年下半年正式入行,至今2007年4月一直从事软件开发工作。上大学选择这个专业是阴差阳错,但接触之后对计算机产生了强烈的
int main()
int i,j,t;
for(i=10;i
t=i%10*10+i/10;
if(t==j&&i-j==27)
printf(&%d &,i);
针对工作几年的程序员工程师,经常会遇到瓶颈,这个瓶颈不一定技术上的,也可能是职业发展上的.一般技术的职业规划会有两个方向
架构师,系统分析师,CTO
这种往往是走纯技术路线, 发展到最后都是在公司中深入某一块技术,例如存储,MQ,通信,等等,后面发展路线也往往是架构师/系统分析师,技术专家,高级培训师,然后就是技术总监
产品经理,项目经理,部门
网友一:本人专科,14年零基础跨行转IT培训。一开始就没学不好,会怎么样的概念。结果一路学下来,班上排名靠前吧。出来工作了两年,已经比较顺利了。成都月薪能上w,跟着一个很有能力的架构师混。所以我说并不是培训不行,是人不行!我遇见的形形色色的人,有专业出身,有培训的。总结一下,1,其实培训更好,基础扎实。专业出身的若非自身爱好的,很多知识面真不行。2,培训的眼高手低,有天赋的少,煞笔居多。出来就漫天...
  做网管已经做了两年多了,一无所成.但也多少了解了一些关于Microsoft,Cisco,HuaWei的认证和产品使用方面的东西了.自知是离不开网络世界了.做程序员的想法,一是纯粹生活所迫,毕竟招聘程序员的很多很多,而网管则是凤毛麟角.中国需要网管么?程序员扔出一个脑细胞就把公司网络搞定了.二是身边周围的程序员太多,其中很多不乏是我不屑的,他们也能写出程序,也能自称程序员,我为什么不能.还有一些
30岁转行做程序员到底行不行?在互联网发展迅速的今天,很多人会产生这样的想法,这篇文章告诉你,没有什么不可以,关键看你怎么做。改变职业是一件吓人的事情,有时候还会成为一件危险的事情。年龄越大,危险就越高。从头学起一样东西,难度总是非常高,尤其是当你身边的人都比你年纪小,而且比你成就高的时候。我在30岁的时候进入科技行业,在这个旅程中我收获了难忘的经历,见到了优秀的人,并且得到了许多机会。 20 多
作为程序员一直迷茫原来是可以解决的。。。最全Java程序员的学习和发展方向
本文为大家总结了Java程序员要学习的东西和职业发展方向,非常全面。建议大家仔细阅读,收藏备查。
一、技术积累
(1)代码规范
1.1.1、通常的模块分布:一般如果你要实现一个web应用,你从后台将数据展示到前端页面,在一个比较大的公司,你少不了跟其他项目有交集(你调用他的接口,他依赖你的接口),这样下来,整个公司有很多个模块,怎么做到很好的联系。
回到刚刚的模块分布,你的一个web应用,应当需要分成三个模块:core模块、service模块、web模块。web模块就是展示到页面,后台代码而言主要就controller层了,其他逻辑基本都放在core了,service模块就是一些接口类和参数dto等等,接口的实现类在core模块。
这样下来,web模块只需要依赖service模块,同样的其他系统依赖你的接口也仅仅是依赖service模块,然后利用远程调用方式消费你的接口服务。
1.1.2、代码层级结构 针对后台服务项目,一般分为对外接口层、service层、Dao层。Dao层就是与数据库交接的接口层,service层主要调用Dao或者外部系统的接口,复杂的逻辑基本都放在service层;一些方法需要提供给其他模块调用的时候,就封装在对外接口层,只有对外接口层是暴露。
这里说的只是层级结构,还有与层级结构无关的,也是需要归类的,比如对外部系统接口方法封装的我们放在一个目录下面,一些常量和工具类等我们放在common目录下面。当然还有其他考虑,尽量让整个模块有层次感,代码才不会太乱,更好的维护。
1.1.3、总结上面两点:可能不少猿友觉得上面啰嗦又不像代码规范,其实这两点也是代码规范的一部分,主要引导大家往结构清晰好维护的思维方向走,多思考吧。
1.1.4、对于一些需要异步处理的,不要直接new一个thread,应当使用线程池。使用线程池的时候应当对线程数量大小合理设置,一般最大不超过50个,当然还需要考虑你的IO和CPU,怎么分析网上搜搜吧。
1.1.5、容器类变量,如果变化比较大且频繁,尽量定义的时候设置初始容量大小,减少扩容带来的消耗。
1.1.6、分支判断if…else的时候,最常符合的条件处理放在前面。
1.1.7、对象比较的时候常量放前面,养成好习惯,减少空指针的出现。
1.1.8、减少synchronized中等待处理的代码,能放在外面就尽量放在外面。
1.1.9、下面到数据库了,我觉得还是在这里说了好点,一般查询比较慢,很有可能是没有建索引或者索引没用到,多去检查一下。
1.1.10、两个大表的关联查询,可以使用二次访问数据库替代,先查出A表的数据,利用关联字段再查B表的。不要一味想着一条sql搞定最好。
1.1.11、坚决避免,查全表数据或者数量大的数据,返回list加载到内存中,一不小心查了100w数据,又查得比较频繁,内存的爆了。有这种风险的改成分页查询。
1.1.12、不要select *,按需取列。
1.1.13、多考虑避免事务里面有长连接或者长事务,如果大量这种情况出现占用数据连接,会影响性能。一些无必要的逻辑可以放到事务外执行。
1.1.14、对字段的加减乘除处理放到sql,严格避免先get处理,然后运算在set到数据库里面,并发情况非常容易导致失真。
1.1.15、方法里面代码不要太长,注意封装,命名语义化,代码整洁。常挂嘴边的,没放心上,一如既往的给自己埋坑,举个博主的例子,那会刚毕业也是没放心上,关注公众号:Java编程精选,最近把我们组长不写代码,一到代码评审我就害怕,检视到有问题的代码,毕业生吧就说这代码以前就是这样写的,问题最终肯定都落我身上,现在感觉代码是自己的孩子,只能有空自己偷偷的优化一下,怕出问题还得非常仔细。
(2)SQL规范与性能优化
1.2.1、先提前声明,博主工作用到是MySQL,可能有些场景只针对MySQL。说到SQL优化,一些概念必须要理解,不然死记硬背一两天就忘记了。特别是执行计划的概念。
1.2.2、什么是执行计划:a.决定如何访问表数据,是否通过索引,是否排序等。b.多表关联是先访问哪个表。c.多表关联时,使用哪种连接方式,不过现在MySQL只有嵌套连接(嵌套循环,顾名思义就是将一个表为出发点,将该表全部记录逐条去遍历另外一张表的记录)。
1.2.3、SQL执行顺序:a.检查语法是否正确。b.检查表是否存在、权限是否满足等。c.根据统计信息(如data length,rows,index length、索引唯一度),生成较优的执行计划。d.根据执行计划,进行数据检索、过滤、合并、排序等操作。访问数据时,内存中如存在表数据,则直接进行操作;否则,从磁带读取表数据,放入内存,再进行操作;如内存不足,则内存中较冷数据涮出内存,再从内存中读取数据。
1.2.4、索引:查询的时候如果使用上了索引,可以提高效率,因为建立了索引后,可以理解为数据字典的结构存储,因此根据条件查询的时候更加高效。下面看一下MySQL常用的索引类型的概念。
a.普通索引:在创建普通索引时,不附加任何限制条件。这类索引可以创建在任何数据类型中,其值是否唯一和非空由字段本身的完整性约束条件决定。建立索引以后,查询时可以通过索引进行查询。例如,在student表的stu_id字段上建立一个普通索引。查询记录时,就可以根据该索引进行查询。
b.唯一性索引:使用UNIQUE参数可以设置索引为唯一性索引。在创建唯一性索引时,限制该索引的值必须是唯一的。例如,在student表的stu_name字段中创建唯一性索引,那么stu_name字段的值就必需是唯一的。通过唯一性索引,可以更快速地确定某条记录。主键就是一种特殊唯一性索引。
c.单列索引:在表中的单个字段上创建索引。单列索引只根据该字段进行索引。单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引。只要保证该索引只对应一个字段即可。
d.多列索引:多列索引是在表的多个字段上创建一个索引。该索引指向创建时对应的多个字段,可以通过这几个字段进行查询。但是,只有查询条件中使用了这些字段中第一个字段时,索引才会被使用。例如,在表中的id、name和sex字段上建立一个多列索引,那么,只有查询条件使用了id字段时该索引才会被使用。
e .全文索引:使用FULLTEXT参数可以设置索引为全文索引。全文索引只能创建在CHAR、VARCHAR或TEXT类型的字段上。查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度。
例如,student表的information字段是TEXT类型,该字段包含了很多的文字信息。在information字段上建立全文索引后,可以提高查询information字段的速度。MySQL数据库从3.23.23版开始支持全文索引,但只有MyISAM存储引擎支持全文检索。在默认情况下,全文索引的搜索执行方式不区分大小写。但索引的列使用二进制排序后,可以执行区分大小写的全文索引。
还有空间索引,平时也比较少用。目前只有MyISAM存储引擎支持空间检索。目前博主也只接触过InnoDB存储引擎。
1.2.5、一般一张表索引不要超过5个,而且避免重复索引,而且也不是建了索引,根据索引字段条件查询,索引就会起作用。
1.2.6、一般哪些场景会导致索引失效:a.使用like关键字匹配字符串第一个为”%”的场景。
b.条件中包含or、in、not in、&&关键字,默认不走索引的。c.访问表上的数据行超出表总记录数30%,变成全表扫描。d.查询条件使用函数在索引列上,或者对索引列进行运算。e.多列索引中,第一个索引列使用范围查询,只能用到部份或无法使用索引。f.多列索引中,第一个查询条件不是最左索引列,上面多列索引概念中也有提到。肯定还有更多的场景,但是博主现在能想到的场景就这些了。
1.2.7、不能同时使用两个索引,一个过滤数据,一个用于排序(主键除外)。
1.2.8、DML语句如果使用索引,会导致lock全表;如果使用了非唯一索引,可能只是锁住一定范围。对此,建议更新/删除数据尽量用上索引,如果可以最好用上主键或唯一索引,另外事务要及时提交。
(3)关于事务的一些建议
如果没有听过事务这么个概念,网上了解学习一下,先理解一下各个事务类型的含义吧:a.日志记录尽量放在独立事务里面,避免后面的异常发生导致日志丢失。b.上面已经几次提到,尽早提交事务,避免事务过长,因此写代码的时候,一些可以不放到事务的逻辑可以移到外面,长事务看能否拆成两个事务。
(4)关于数据库连接池
可能一些猿友都少去注意吧。先来看看一些参数,这里只罗列了博主比较关注的,更多的可以自行查看一下配置。
initialSize :默认值是 0,连接池创建连接的初始连接数目。
minIdle :默认是 0,连接数中最小空闲连接数。
maxIdle :默认是 8 ,连接池中最大空闲连接数。
maxActive :默认值是 8,连接池中同时可以分派的最大活跃连接数。
maxWait :默认值是无限大,当连接池中连接已经用完了,等待建立一个新连接的最大毫秒数 (在抛异常之前 )。
validationQuery :一条 sql语句,用来验证数据库连接是否正常。这条语句必须是一个查询模式,并至少返回一条数据。一般用“ select 1 ”。
minEvictableIdleTimeMilis :默认值是 1000 * 60 * 30(30分钟 )单位也是毫秒,连接池中连接可空闲的时间。
timeBetweenEvictionRunsMilis :默认值是 -1 ,每隔一段多少毫秒跑一次回收空闲线程的线程。
对于minEvictableIdleTimeMilis、timeBetweenEvictionRunsMilis这两个参数,timeBetweenEvictionRunsMilis必须大于1且小于minEvictableIdleTimeMilis,建议是minEvictableIdleTimeMilis的五分之一或十分之一。
(5)对于前端的几点建议
1.7.1、一些图片压缩后再使用,性能方面提高不小吧(可以使用熊猫图片压缩)。虽然自己前端比较菜,但是估计也有不少猿友跟我一样偶尔需要兼顾前端吧。毕竟刚毕业不久。
1.7.2、关于移动端页面重构兼容不同屏幕大小的问题,建议doc的fontSize,实时获取屏幕的宽度,然后除以320再乘以16,当然16可以根据自己情况去调。然后其他一些单位尽量用rem,这样无论什么大小的屏幕都等比例缩放。感觉比@media效果好很多。
关于技术积累这一块,之前罗列的提纲还挺多的,写到后面感觉没什么精力了,有些三言两语似乎说不清楚啊。
二、工作心得
(1)沟通协作第一
工作中必然少不了团队协作,积极主动去沟通的人做事总是更加靠谱。道理大家都懂。但是我们需要把想法问题,简洁明确的表达给对方。另外总是以沟通的心态面对问题,而不是抱怨。如果觉得上级分配的任务难度太大了,你可以尝试跟他沟通,获取他有很好的建议或解决方案。
(2)谨慎记录与排漏
感觉现在挺经常是开一两个会,测试同时偶尔找你排查一下环境问题,一天下来其实写代码的时间并不多。一些关键点,非常建议提前记录下来,方便接回被打断的思路,同时避免一些逻辑或功能点的遗漏。
(3)思路清晰与效率
建议动手写代码之前,建议先理清思路,关键逻辑,需求细节,这样后面写代码的时候效率比较高,而且质量也比较好。
(4)主动与多管闲事
清楚自己的工作范围,自己心里有个界限,有些属于别人工作范围的事情,可以你提出的建议是好的,但是最好还是在合适的场景和时机提出。
(5)心态与工作状态
程序员,总会有被坑的时候,或者不顺心的时候,尽量尝试控制一下自己的心态。
(6)可持续发展观看待技术与业务
这点是我自己希望做到的。对于责任心而言,或者是说一个优秀的程序员。很多时候并不是完成产品提的需求就好了。多为它着想,代码可维护性和扩展性高不高。一些功能点也可以提出自己的想法,不要总是被动的接受产品的需求,业务功能拓展性好的话,可以减少产品改动需求。
三、学习方向与职业发展
(1)先广后深还是先深后广
对于博主而言,其实接触的技术点还算比较多的,但是了解的都不深入,个人性格而言,比较偏向于实用驱动,如果在实际使用场景有用到再去深入学习,这样边学边用才能比较集中注意力。像一些同事,他们喜欢把一样东西研究得很深。
(2)业务经验也应当注重
技术人员必然是技术优先,但是等你到了一定工作年限,其实业务经验也是非常重要了。
之前领导找我年度工作谈话就有说过他们招高级工程师的时候对业务经验也非常看重,是否有自己独特的见解。相信道理大家都懂,但是平时有没有这样的意识,有没有去做又是另外一方面了。平时也可以多学习业务方面的知识。
(3)相同的工作年限为什么当过项目经理的人更吃香
因为他们对业务理解更加深入,代码质量问题落在他头上,项目的人员协调与时间安排规划,责任越大,思考的问题就越多,遇到的问题处理经验就越丰富。把控能力也比较强。
(4)怎样能进入学习状态,并且坚持
要想集中注意力学习技术,需要安静的环境,需要耐得住寂寞,因此你需要没有人打扰的环境,比如在一个集体居住环境,几个朋友一起住,一般多数回想着去哪玩,朋友在玩游戏,估计也是对你的一种诱惑吧。可以早点到办公室学习或下班学习一段时间再回去。或者选择自己一个人住。
(5)如何把握住学习的时机
学习最能集中注意力的情况是有着比较强的好奇心和求知欲。所以一般一些技术分享或者老员工讨论的问题,可能很多概念知识你都不懂,这时候你就可以去学习了解这些知识。
或者你工作中遇到的问题,尽量刨根问底的去弄清楚是什么原因导致的,不要一些老司机帮忙解决了就一了了之。或者是其他同事遇到的问题,你都可以去了解一下。
(6)你更适合走一条怎样的职业道路
刚毕业不久的猿友,一般都是会比较心浮气躁的,对技术求知欲很强,特别是一些高大上的技术,什么大数据、云计算、架构等等,有些偏向于技术研究,有些偏向于业务。
大部分程序员可能都会选择偏向于技术研究的,于是乎对偏向业务的不怎么感冒,因此觉得天天做这些东西没什么意思。这时候,静下来分析一下,你到底适合哪种方向。你能否静下心来对技术研究很深入,能否耐得住寂寞。
四、关于生活
(1)良好与糟糕的生活状态的区别
需要警惕一下自己是否进入了一种糟糕的生活状态,工作上不温不火,似乎现在的技术已经足够用了,完全没有目标没有计划,无法集中注意力学习,日子就这样一天天过去。
(2)17年自己的一些期望吧
希望活得更坚定些,保持着一定的求知欲和规划,向成为自己希望成为的人努力吧,包括一些习惯、处事方式等等。
如果你还想了解到学Java自学能不能学会?2018年学Java能赚多少钱?企业招聘Java的要求是什么?转行学Java多久能月薪过万?等问题,你可以加java的学习裙,【群号】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点22 条评论分享收藏感谢收起赞同 1210 条评论分享收藏感谢收起

我要回帖

更多关于 转行做java 的文章

 

随机推荐