普本大三软工,怎样在打基础和项目中抉择

感谢邀请。
这不是抉择的问题。
两者是相辅相成的关系。
当感觉自己对写项目代码熟练了,要去翻一遍基础书籍,然后再看一遍自己曾认为熟练的代码,你会发现其代码烂透了。
这时候,你会想着去重构烂代码,重构完成后,你会发现自己又有对项目代码熟练的感觉,这时候你再去翻一遍基础书籍,然后再看一遍自己曾认为熟悉的代码,你会发现其代码烂透了...
如果觉得我说的不对,先按我说的执行一遍,如果你执行一遍后,依然认为我说的不对。
恭喜你,你可以出去找工作了 XD

■网友
感谢邀请。
因为是想要工作,所以目前阶段当然还是继续深入Java EE 的学习。把主流的框架都学习一遍,SSM必须掌握,SSH了解(大多数外包公司的老项目还是用着)。前端主流框架任意了解一个,项目必须有一到两个,而且是自己完整的独立的开发出来的。至于SpringCloud、SpringBoot、SpringSecurity,还有阿里的框多多少少了解一下,不一定要知道怎么熟练的运用,但要知道它们是为了解决什么业务而产生的,大概的原理什么,当然要是会用了,那肯定是最好不过了。
对于那几门基础知识,肯定是必须掌握的,毕竟目前计算机的一切开发都是建立在这几门课程上的。不过你现在的时间已经来不及学这些了。但有些捷径可以走,比如在下一次秋招(校招)或者春招的前一两个月,去牛客网找面经和题,买目前市场上主流的面试书《程序员面试宝典》、《剑指offer》等,可以将落下的一些基础知识短时间补回来。不过在以后的发展中还是要明白最基础的东西。比如并行原理,分布式原理,存储原理,网络通信原理等这些都是大型公司开发中最重要的几个核心,你说你对基础知识掌握不牢靠,怎么能很好应付这些?肯定有人说用的时候再去学,到那个时候还有多少时间去系统的学?半吊子水平不仅害自己还害项目。其实这一点也是软件行业为什么烂代码丛生的原因之一。目前太多的开发者就是只想着拿来用,拿来改改,看不太懂但能应付项目就可以了,而恰好这些人大多还喜欢做着梦,有朝一日还能出任CTO,当个架构师。
下面说说我周围的朋友。
刚好我大学里也学得是Java EE方向,我身边同一届的朋友都是JavaEE方向。其他几个朋友都已经去北京和深圳工作了,也有一部分人留在本地找到了很好地工作。
这群人里有去小米的,有去蚂蚁金服的,百度作业帮,差一些的就是中兴软创,金蝶,中冉。下来就说说这些人的区别:
去蚂蚁金服,去百度作业帮和小米的这几位,在大学期间有在猪八戒上面开自己的店,然后包活赚些钱。然而他们不仅技术过硬,在基础课程上面的掌握也是非常过硬的,他们都有区域级、国家的ACM或者软件程序设计大赛。
在大厂面试过程中,是要求面试者牢固掌握这些基本的基础知识,对数据结构、操作系统和计算机网络会问的多一些(出题率按从大到小排),计算机组成原理几乎不怎么出现。去小米的那位,在远程技术面试时,对方出了几道算法题(有刁难的题),他很快的解决了,然后就跳过后面二三轮,直接给了最终面。具体的详情他也并没有详说。但这个事给我们的启发是,对算法等基本知识的掌握程度对找工作是有绝对的帮助,甚至是决定性帮助。他在大学主攻C++,Java基本是玩的时候学的,Java EE方向的就学了3个月只会个Servlet和Spring,然后投了个JavaEE 方向的工作,但是他上岗后,小米让他学PHP。
再来说说去中兴软创,金蝶,中冶赛迪等企业的这几位,我们在整个大学也参加过ACM,不过每天主要是学Java EE的那些框架然后做些WEB,在学习中总是觉得框架根本就学不完,而且对框架的学习仅仅停留在会用,对框架原理的掌握也并不是很足。我们去面试的时候,基本上是直接问Java EE方面的知识,主要的提问点在于Servlet,数据库,还有SSM框架的掌握。SSH里的Spring和Hibernate问的多一些。对于数据结构主要问常用的排序算法,栈和链表。操作系统一般就问些银行家算法,置换算法。哦,对了!还要多接触一点其他相关的知识,比如Java在大数据这方面的运用。


推荐阅读