Java小白白的职业困惑

二十二画生 发布于 2017/05/22 10:54
阅读 2K+
收藏 1

JAVA开发者的职业规划毕业两年了,还能不能去软件公司实习?自己学了一些技术,很多技术都懂,但是没有怎么实践过,也没有进行系统的软件开发流程,工作两次了,每次都是几个月,第一次做了一个ETL工程师,工作了三个月,另一个工作了两个月,是软件开发,但是没有学到什么东西,就是粘贴复制了,我还想继续在这个软件开发行业干,但是在无锡找不到工作,都要有经验的,有没有从事软件工作的给我讲讲,或者给我支个招

加载中
1
至少20个字符
至少20个字符

不如来北京?在北京生活的压力会逼着你前进,不前进就得死,或者灰溜溜的滚回去。你还是没有逼自己,人如果被逼急了,技术学起来很快的,看你的经历就知道你对自己的要求很低,而且没有动力。现在成家了,有孩子了,有压力了吧,有压力了那你有动力前进了吗?一个城市不可能所有的公司都不招没经验的,只是你没找到或者你不满足他们的需求,强大自己才是你现在要做的事情

1
新de代码
新de代码

      那个神秘又深邃的概念,叫做“原力觉醒”。

 

      你以为你在学习技术,实际上你是在找回自己尘封的原力。

 

      关注OSC很久了,在职业板块也看过很多技术人的困惑,看的多了发现许多人拥有着相同的职业发展问题,爱好技术但是工作经验不足没做过什么项目啦,资深技术人员发现自己没有技术壁垒还不如刚毕业的学生工资高啦,是该转行还是继续坚守技术岗位啦。人就是这样的,当身在其中面对多方扑面而来的问题与压力时,大脑就会疲于应付这些具体问题,而没有精力来解决根本矛盾。所谓解决根本矛盾就是能够类似于“一键清除”那样的功能,能够使你做了最少的行动,去解决更多的问题,大多社会事务中的问题都有一个“中心问题”,它会供给养分来培养更多的子问题,一举消灭问题的源头,其他问题也就迎刃而解了。

 

      回来说一下职业发展,开头说了,你以为你是在技术岗位上通过自己的劳动给公司提供技术解决方案,从而积累自身经验,但其实这只是假象,真正的本质是通过对自身的探索,解放“原力”,通过找回的力量,来更好的生活,而工作,只是运用自身力量解决公司运转过程当中问题的社会行为,是自我觉醒的附属品。

 

      有人说你说的这一堆“玄乎奇异”的东西,能解决实际问题么,不是江湖术士当街上的假把式吧,大伙别急,问题还是要一点一点才能解释清楚地,接下来具体说明一下上面那堆“玄幻文字”是怎么理解的。

 

      要解释一下这个“原力”,大伙肯定首先想到的是《星球大战》里面的情节,我也确实觉得只有这个词才能充分说明问题的本质。“原力”在《星球大战》电影中是整个系列的核心概念 ,而本文只是借鉴其形,重新赋予了它内涵,想了解电影当中的“原力概念”可以去搜索引擎搜下解释。这里的“原力”,可以解释为“原始力量”,提供一个描述性的话语大家可以近似的体会下这个概念的味道——“远古蛮荒时代祖先遗留下来的强大神力”。

 

      好像越说越远了哈,回到现实世界继续咱们的讨论。许多人认为自己工作了很多年还是不能精于技术,自己是很喜欢技术也很上进的人,但就是不能晋升为大神的程度。实际上是方法论的问题。成为一个程序流水线上的熟练工是很容易的,只需要记住自己工作当中具体怎样实施,但想成为大神,第一步却是放下技术 ....... 因为成为大神的方法,在技术之外的地方。

 

      古希腊科学泰斗泰勒斯的水平,在现在也就是初中数学生的水平,因为科技在不断进步,我们是站在巨人的肩膀之上才拥有现在的水平。那么我就曾经在想,信息技术领域发展了六七十年,按道理来说,也应该是当今技术人比曾经上古时代的程序人要强大的多,但实际上呢,并不是那样的。信息技术虽然日渐进步,但我们离系统却原来越远,时间久了,我们忘记了信息技术的物质基础是硬件,忘记了软件是硬件的使用,软件是动态的硬件,是集成电路上逻辑门的开关和闭合。我们忘记了自己可以成为“别人”的能力,我们现在只记得我们自己是Java工程师,PHP工程师,Python工程师,数据库管理人员。最终我们只看到当下自己在那里,不知道自己从哪里来,也不知道自己以后要去往哪里。

 

      导致这些的原因是业务复杂度的发展,导致了分工。分工没有错,错在我们只记得自己分工以后的身份,忘记了为什么分工,和分工以后我们该干什么,以后该怎么办。最终能力就被限制住了。

 

      从信息技术诞生的蛮荒时期,到信息领域的快速发展,再到现在IT市场的复杂分工,人员的宏观能力分布大体是个“山坡曲线”,从开始的上山,到达山顶,再到下山。而这个山顶就应该是我们原力所在的地方,我们要走回去看看我们从哪里来,如何达到技术顶峰,然后如何到了谷底,最后怎么才能摆脱这样的困境。另外提一点,信息技术的前沿还是一直在上升的,前沿的意思就是当时时代最高最强的高度,刚才我们只是说了一个所有人员的技术分布,这个是有区别的。

 

      再来说下方法,为什么大神可以举一反三,触类旁通,现在可以看出他们找到了自己的“原力”,这种能力不是外界给予的,而是自己开发自身能力得来的,开发哪里?开发智能的发源地。哪里是只能的发源地,没错,就是大脑。

 

      我们都忽视了大脑的能力。拿电脑对比一下,除了运算速度和数据持久性人脑落后于电脑,其他方面例如图形渲染和情感表达,都是电脑所不及的,大家现在跟我一起比上眼睛,一起做一个实验:想象一个圆形,类似于呼啦圈,从圆心开始以一定半径开始画一个圆,然后想象这是一个球体的过心切面,渲染出半个球体,然后以这个球体为基础,补完另外一半,然后把它染上喜欢的颜色,比如红色,然后把它稍微拉长,变成气球的形状,之后在底端记上一条绳子,然后开始拥有无数个同样的气球,但是颜色不同,他们慢慢地高飞,周围是树木与绿地,背景是美丽的夕阳,气球就这样慢慢的飞远 .......

 

      以上的渲染过程,如果熟悉场景,大脑是一瞬间就渲染完成了,但是大家想一下电脑如果实现同样的场景渲染,要装多少软件支持,要进行多少软件编码的工作,所以人脑在这方面是远远强于电脑的,也就是我们每个人天生都自带一部“超级电脑”,只是一些人还没有找到驱动它的正确方法。还有其它很多方面的功能,有兴趣的朋友可以私下一起讨论研究一下。

 

      所以说电脑的本质实际是人脑的延伸,是强化了记忆与运算速度的人脑辅助。这时区别就明显了,技术一般的人们没有认清这个本质,以为技术就是使用电脑,而电脑是我们工作的地方和媒介。而大神却注重人脑与电脑的结合,认清本质,所以成为万中无一的技术人员。

 

      对大脑的开发理论上应该在我们的幼年学生时代就开始了,那时候我们学画画,学算术,就是在锻炼与开发大脑,其实之后的高等教育,直到我们离开这个世界之前的学习,都是属于大脑开发。如果有机会大伙可以去看一下从初等教育,到高等教育各个年级的教育大纲与目标,我们就可以看出国家在高层次上的教育指导还是很科学与实用的,之所以最后变成了“应试教育”,只是因为各地教育资源,与师资力量的有限性,毕竟,有些人自己都没有教育好,就赶鸭子上架当了老师,去教育学生,它们不会想到自己是在赋予孩子一生的智力财富,只是例行公事,顺便混口饭吃而已。不过话又说回来,十几亿人口的国家,曾经吃饭都成问题,教育这种费时耗财的事情,不是一朝一夕就能彻底解决的,我们国家一直在教育方面投入更多的资源,来改变目前的现状。

 

      那么作为我们这种“已经被耽误的大龄技术人员”来说,难道就没有办法了吗?其实还是有办法的,教育问题不止在中国,在全世界都是个难题,所以被耽误的并不是少数人,大部分人都被耽误了。解决被耽误的最好的方法,就是现在开始改变,转变思想与方法。现在流行的“终生学习”概念,就是破局之道。要改变学习是学生时代的事情这种概念,学习是一辈子的事情,学校只是教育场所,是更好的进行学习的地方,但学校不代表学习本身,只要是想改变自身状况的人们,都需要通过学习来改变命运,不要被现在金钱至上的社会腐败思潮所诱导,那些说学习没用,挣钱才是王道的人,他们其实也是学习了一些本领才发家致富的,只是他们没有意识到而已。

 

      说了这么多,来点干货吧,职场上技能成长需要的东西,列举如下:

 

1.软件工程

是不是很少听到过这个词汇?或者听到过也没有仔细研究过相关的内容?之所以第一个上来就是软件工程,是因为他涵盖了信息项目当中的几乎所有内容,这方面的知识管理人员会比较熟悉,从需求提出,到需求分析,项目设计,编码,测试,部署,后期运维与技术支持,阐述了诸如项目开发过程,项目管理,软件质量管理等方面的内容。读了软甲工程的东西,就会发现,编码只是软件过程的一个阶段,我们应聘的虽然是Java工程师,但在小公司实际上干了整个软件过程的事情,我们即使需求分析师,又是代码设计师,又是编码工程师,又是测试人员,有时候还客串一下子技术支持与客服的角色。虽然我们平时用的语言不同,但是企业的IT企业的发展离不开软件工程里面的框架和方法,了解相关的内容,对工作的宏观认识,会有一个高屋建瓴般的提升。推荐书籍《软件工程》— [英] 萨默维尔 著。

 

2. 面向对象

虽然面向对象是现在的主流编程范式,就算我们每天运用的是C++,Java这类语言,也不一定理解面向对象的本质。这方面的书籍推荐《面向对象分析与设计》— [美] GradyBooch格雷迪.布奇),RobertA.Maksimchuk罗伯特.A.马克西) 等著。这是我读过的最好的介绍面向对象的书籍。

 

3.UML

UML统一建模语言,是目前使用度最高的面向对象设计表示法,之所以我们对系统和代码有一种认识不清的状况,就是因为代码只是编码阶段的产物,只是一个编码实现,是编译器才认识的东西,而人是很难理解复杂系统的代码实现的,而UML标识的系统结构,才是适合人类理解记忆的形式。推荐书籍《UML精粹:标准对象建模语言简明指南》— [美] 福勒Martin Fowler) 著。

 

4. Java

楼主是Java出身,相关方面的东西就不多说了,前面三项如果都有所了解,再来看Java的东西,也就清除熟路了,相关书籍就不多说了。

 

5. 编程语言原理

在精通了Java内容之后,就该“跳出Java学Java”,没使用过非Java的语言就不会明白Java的优点与缺点,面向对象的语言要了解,非面向对象的范式也要了解,诸如函数范式,逻辑范式,约束范式,冯诺依曼范式,Java只是编程语言中的一种范式中的一种语言。所有范式或者语言都有自己的特定的应用范围,没有最好的语言,只有最好的解决方案。推荐书籍《编程语言原理》 — [美] Rober W.Sebesta 著。

 

6.算法与数据结构

就算是小型项目,也是需要运用到算法与数据结构的知识的,只是开发框架封装好了算法,我们只是在跑逻辑才没有感觉到而已。只会跑逻辑的人注定只能靠框架吃饭,没有办法靠自己的能力吃饭,所以还是重视算法与数据结构吧。推荐书籍《算法导论》— [美] Thomas H.Cormen 等著。

 

7.操作系统

平时我们都是用Java开发,实际上我们是用Java调用操作系统开放的接口,去驱动硬件工作,所有的软件最后都要通过操作系统转换成硬件指令驱动硬件动作。操作系统就是软件的航空母舰,承载着数据库,系统,应用程序这些所有软件。当了解了编程语言相关的知识后,必然要对操作系统有所了解。推荐书籍《现代操作系统》— [荷] Andrew S.Tanenbaum 著。

 

8.网络

单个主机如果不联网的话,只能是信息孤岛,正是有了网络,才让信息共享与通信成为了可能,我们不再是单打独斗,一些项目开发的顽疾,就在网络优化上,构建高质量的Java程序不仅要会用网络,还要懂得网络的深层概念与知识。

 

9.数学

如果想更加深入的了解信息与计算的本质,就要研究数学了,数学虽然难学,但是它的作用是巨大的,整个信息产业的技术可以粗略的看成数学原理的实现,对于程序员来说最实用的就是学习离散数学,推荐书籍的名字,就叫做《离散数学及其应用》— [美] 肯尼思 H.罗森 著。

 

10.脑开发

最后的这一个就是所有技术的基础要素,所有的技能都需要通过大脑来处理与存储。整个人类事务从某一个角度去看,也是大脑控制信号的存储,处理与传输,代码的源头就是大脑,代码只是表达形式,大脑中的神经元链接与电信号传递才是代码的根本源泉。相关资料就不多说了,有兴趣的话可以搜索一下相关的概念与课程。

 

      以上这些假如都有所掌握,就算不是精通的程度,也可以获得近神之力了。 从1到10层次不同,也许我只想精通Java,对数学和其他的没什么兴趣,那么了解其中的一个两个内容就够用了。另外,这个知识列表只是个人的一种认知,还有很多知识领域没有涵盖,成神之路有许多条,就看个人的实际情况与选择,顺序与内容都不一定相同,上面只是启发式罗列,仅供参考。

 

      如果楼主觉得这些知识学科太多,实在看不进去,我给楼主讲个自己身边的故事。我有一个当兵的朋友快退伍了,自己想学一些知识等以后出来自己经商,我根据朋友的兴趣爱好推荐了一个相关的领域,朋友说这个我挺喜欢的,有没有相关的资料可以学习,我就推荐了一些资料,朋友说在部队没时间上网选资料,我就在网上帮朋友下了单。过了半个月,我问朋友那些资料还符合他的口味吗?朋友说,你那些书都太厚了,真没兴趣和精力去看。我就和朋友说,这个我就没办法帮你了,如果你饿了,我可以给你做饭吃,你懒得来取,我可以给你端过去,你懒得自己用手吃,我可以喂你,但是你说你懒得去嚼去咽,那就真的没办法了,神仙也没办法,有些事情别人可以替你做,而有些事,只能自己做。我们大多期望成功后的光芒四射,却忽略了成功所付出的东西,没有去铺设成功的铺路石,我们只能在想象中满足一下自己,然后回到真实世界面对残酷的现实。

 

      楼主跳过上面的冗长叙述直接来看结尾的话,估计是丧失了深度思考与阅读的能力,这个没有太好的办法解决,只有通过常年累月的阅读与深度思考,少看手机,远离朋友圈,少接触碎片化快餐式的信息,长此以往,才能有所恢复。这个有一些技巧,有时间可以一起交流一下。关于职业发展与技能成长之前写过相关的内容,由于时间太长,忘记了在哪里,索性就从头写了一下,技术的道路不平坦,希望你以后能够找到自己的大神之路!

新de代码
新de代码
回复 @lnShaYa : 额,能工作的话只需要找个培训机构培训三四个月就可以了,上面列的是成神路上需要的东西,毕竟,想要成为大神这种物种,是有些难度的,不过之所以有难度,等你成神的时候,技术壁垒和不可替代性就显现出来了。
lnShaYa
lnShaYa
大哥,这上面都是必要的学习课程吗?
0
谁偷了我的名字
谁偷了我的名字

那你为何不考虑换个地方发展?还有你的意思是你已经毕业两年了?但是看你的工作经历只有几个月?

天鹅天鹅
天鹅天鹅
看到媳妇生孩子,你就已经是人生赢家了
二十二画生
二十二画生
回复 @铂金小虫 : 就这样我就荒废了这么久了,愁死了啊
二十二画生
二十二画生
回复 @铂金小虫 : 是计算机,这个问题怪我,当时毕业做了一个ETL工程师吧,然后觉得学不到也不感兴趣,就辞了考研,然后三个月去准备考研了,没复习完当然没有考上,然后就培训了JavaEE。培训完到了16年8月份,回济南工作了一个黏贴复制的JavaEE开发,干了不到三个月没转正,说不符合经验,我编了一个一年经验啊,进去之后和人家应届生一样的水平。后来半年就是媳妇生孩子我就陪产
铂金小虫
铂金小虫
回复 @二十二画生 : 不考研本来就应该自学或者提早培训了,你本科不是计算机的?
二十二画生
二十二画生
是的,我大四没有考研,毕业后考研又没有考上,然后又培训了Java,后来辗转耽误到现在了,心里急的狠
0
铂金小虫
铂金小虫

我是无锡的,最近找工作发现低端岗位少了很多,开发岗位也不是很多。没有经验的话确实很难。

二十二画生
二十二画生
前几天软件面试问我软件开发流程,给我一个流程图,我就无语了,因为培训的时候最多学过UML图,模型图,没有见过真正开发流程图呢,愁死个人
0
Rezeroer
Rezeroer

java 和前端 莫入 现在跟以前不一样了

二十二画生
二十二画生
我早就入了,只是现在舍弃不了,不舍得啊
0
tsuno
tsuno

虽然 新技术 很多,但是公司一个般都会选择比较成熟的旧技术(安全稳定),开发也多半是照抄或者找开源项目复制黏贴,完全自己写,一个是没那个时间,另一个是很容易出现问题,也许发展初期准备走纯开发路线的会走比较新潮的技术路线,大公司一般都是用自己的类库,知道写的什么,也方便维护。学习技术....

首先你要运用熟练,然后明白底层的实现原理,然后再就看你是想怎么做了。。大概就是这样?

tsuno
tsuno
回复 @二十二画生 : 还是能学到东西的,关键是看自己。有没有钻研的想法,就比如 你现在的技术肯定比入职之前好很多了。
二十二画生
二十二画生
我们当时的管理平台就这样做出来的,我觉得不能学会什么东西
0
君千殇520
君千殇520

学习还是得多靠自己,不管是什么公司,做的东西都基本是一样的,你不上升到一定层次是接触不到核心点东西,尤其是大公司。想锻炼,建议还是去中小公司。
另外,多看看源码,多关注关注开源项目,不管什么技术,都是在基础上发展封装来的。

0
KMSFan
KMSFan

骚年,靠自己

0
一只小桃子
一只小桃子

无锡地方不行

二十二画生
二十二画生
那你推荐一个地方
0
-飞客-
-飞客-

看来你对 编程  没兴趣, 果断转行

返回顶部
顶部