java
、python
、c++
、c(嵌入式)、javascript
、typescript、c#、R、go、kotlin(安卓)、scala(大数据)、ruby、php、matlab、dart(flutter跨平台移动端)、swift(苹果)、objective -c(苹果)、shell脚本、lua脚本等等。java
或者c++开始。后续可以学习python。go等语言。前端
、后端
、运维
、大数据
、测试这些。人工智能、爬虫
那些。我只能说很大程度那就是一个坑吧。因为大公司除了一些做搜索引擎的百度、谷歌、360他们利用爬虫+算法+存储做搜索引擎。而其他大公司他们都有自己产生的数据、他们更多致力于这些数据的处理,分析。而不是想着怎么爬。还有就是理性看待培训机构的python吹
,python是很方便简单,是能干很多事情。对于鼓吹的爬虫学到后面的拓展方向。要么是扩大量分布式方向拓展。要么就是分析JavaScript各种加密。如果是安卓等app还要反编译看源码查看java代码的逻辑,以前记录的浅谈网络爬虫。而AI方向
众所周知一般非985/211硕士很难找到
。并且AI重要的是数学和算法,跟编程语言关系也不大。python仅仅是一个工具
而已。前端、后台、算法(要求很高)
。前端和后台的需求远远超过其他的方向人员。因为所有网站的其他开发功能都要依赖于前端和后台。并且随着html5流行。web能干的事情也越来越多。这也极大的抢占了桌面应用和原生安卓、苹果应用。所以个人建议后端、前端、运维三个方向选择一个。当然。具体选择方向还是要根据兴趣来,你喜欢大数据(工程类要求不是很高,数据挖掘算法要求高),人工智能,爬虫,游戏开发,桌面开发等你都可以做。只不过再选择方向时候要尽早
。不要好高骛远
。根据自己所在院校、自己实际水平。以及计划研究自己想要研究的。你是想要进大厂
,还是想进小公司
呢?
对于一个普通本科生,很可能真正步入学习的时间不多。并且能够掌握的知识的广度和深度也是有限度的,还要考虑学习环境的影响。要慎重选择学习的侧重点。
操作系统
,网络
,数据结构和算法
,以及jvm
,和java的基础知识需要熟练掌握。而框架和一些高级中间件需要你了解或简单应用。但是大厂就那几个,竞争压力还是比较大的。同时,也不要有心理包袱,不要认为自己是双非的大学就进不了大厂,如果学习的早,自身积累够多,够扎实,用心准备那么进大厂也是没问题的。
个人感觉在学校的学习过程中主要有两大障碍。一个是个人障碍,另一个是学校障碍。
为自己以后做个铺垫
。这个可能有些学校好一些。但是对于我们学校的教学方案和课程。真的很想吐槽一下。虽然学习是个人的事情,但是在当前教育制度下很多学校也有无法推脱的责任。
不迎合市场
。对于这些,如果你是忠于技术的感觉还是要有所取舍。如果你要是钻研你自己的技术一直钻研下去那么你肯定会慢慢沉淀,收获很多。但是学科成绩就会降低甚至是挂科。对于其他更深的影响这里就不分析了。操作系统
,数据结构和算法
,网络
这些课程也是程序员内功区分的很大准则。还是要认真学习的。这里通过个人过程浅谈一些java方向学习的建议
万岁入门难。当你敲起hello world跑起来,那其实算不上入门。论上入门应该是把Java的基础都掌握吧。javaSE是java的核心和基础。只有这块学好在后面阅读其他代码、框架才能更加轻松容易。
<java 从入门到精通>
,内容丰富而通俗易懂。跟着书上案例敲demo就很容易入门。如果认为这本很简单,可以买一本<java编程思想>
,其他的书暂时就不建议买。网易课堂,腾讯课堂,慕课
,这些在线教育平台有很多免费课程,适合入门。并且淘宝上也有很多培训机构的课程,也是相当不错。比如黑马,尚学堂,传智播客
,各种可以从淘宝买的到。当然笔者之前各种也买了很多。你要想要可以关注笔者微信公众号:bigsai
回复对应字段自己取就行了。csdn
,博客园
,掘金
,今日头条,简书,微信公众号以及个人博客上,所以要充分利用搜索引擎
获取资源。处理问题的利器
!,并且都很重要。前言
熟练掌握一个中间件的各种应用方式和场景
。比如精通redis,或es,或某个mq。很深的水
和内容。需要深入考虑的。比如mq消息丢失,elk日志处理,使用部分大数据组件,docker容器化,还有各种集群带来的问题,各种性能问题、安全问题、运维部署集成问题和各种优化。这就很大程度需要你在工作中实践真正仅一家互联网企业,开发和维护业务。以及处理高并发和各种其他原因带来的问题。你会发现原来自己是真的啥都不会(至少笔者是啥都不会)。除了对于后端学习,了解或掌握一些其他技能还是很有必要的。
算法
:各个大厂对工程师的数据结构和算法要求都挺高,建议可以刷letcode,剑指offer(牛客),pat(牛客),这些算法在面试会经常问道或者出现在笔试。喜欢的也可以刷hdu,poj增强算法思维和能力。对于刷题入门。推荐从杭电oj第11页
或者pat乙级
开始入门。可能刚开始刷题会遇到困难。但是刷题一方面能够锻炼思维,另一方面可以巩固java的一些语法和集合使用。当你对程序复杂度有了概念,在开发时候对你有很大帮助的,你的思考点就不仅仅是实现功能,还有效率。推荐几个java学习的网站:
推荐刷题网站:
牛客
,PTA,杭电oj,poj,(cf,atcoder,vjudge有能力者考虑)推荐IT交流社区
笔者一些建议: