初级程序员,到高级需要学习哪些东西
很多初学者,在一开始学习IT时都不知道如何入手,小编今天就根据自己的经验给大家说说,初学者最重要的三个问题。
《计算机基础》学习
《计算机基础》,这是所有读者大学最开始都会上的课吧,我问了群里的仔,他们都说是的,我想大家也是。在计算机基础中我们会学到计算机的历史、计算机的特点、进制转换、内存管理、线性数据结构、网络请求协议等等。
计算机基础真心很重要,无比重要,究极重要,为啥我这么说呢,里面涉及的计算机知识还有很多网络协议的知识,大家以后一定会用到,我可以负责的告诉你,面试也一定会问,什么Http、Https、Tcp/Ip、三次握手、四次挥手面试不要太常问。
Tip:这里有个小插曲就是我身边那个架构师团队Leader这周面试阿里p8岗位的时候,我以为问的都是什么源码,中间件的究极操作,我想大家跟我想的一样,但是大家错了,反而问的很多计算机的基础知识。
我聊天大概问了一下面试内容,有什么求二叉树的镜像,内核态和用户态的理解,计算机的缓存页等。大家是不是惊了,这他*不是我校招的题目么?怎么P8级别的大佬还问这个?其实很好理解,大家想一下到了一定的工作年限技术的广度深度都有一定的造诣了,你写代码就这样了没办法优化了,机器配置也是最好的了,那还能优化啥?
底层,我们都知道所有语言到最后要运行都是变成机器语言的,最后归根究底都是要去跟机器交互的,那计算机的底层是不是最后还是要关注的东西了?
福利:他这周会来我们公司面试,届时我会详细问一下具体的面试内容,如果大家想看我可以到时候整理一下写出来,看看那种级别的强者的世界到底是怎么样的。学完计算机基础你基本上对计算机的整个知识体系都一知半解了,对于编程或许还是很懵懂,但是你现在已经要踏入编程的门了。
继续选择走全栈道路或者走大数据方向。
有的小伙伴可能会纠结于要全面还是要精通某一方面,其实这个无所谓好坏,关键是要看你自己。你是想去大厂做一个某一领域的技术专家,还是想自己独当一面,自己喜欢的才是最好的。话说回来,即使你想钻研某一方面,也不是说这些东西就不用学了,即使精通某一方面,也必然是先广泛涉猎,再慢慢确定自己的方向。
松哥大学自学 Java 的时候就是这样,当我不知道哪些东西重要哪些东西不重要的时候,我就都学,反正大学生有大把时间,我甚至连 Dreamweaver,Fireworks,Flash 三剑客都学了,甚至利用 Dreamweaver 上简陋的功能做了一个动态网站。这些东西你说学了没用吗?其实不见得。
当我学了很多之后,在未来某一天,突然就顿悟了,把这些学过的东西串起来了,有一种醍醐灌顶的感觉。
想所有的语言都是语法基础开始的
编程语言的基础语法也都是大同小异的。If、For、While等关键字,List、Set、Map等集合,Int、float、Double等基础类型,大家第一次学的时候我想也不会知道,这些关键字将会陪伴我们走完各自的程序生涯吧?
接下去就难一点比如JDBC、IO、文件流啊什么的,帅丙依稀的记得当时还是代码里面写SQL然后查询,也不知道记错没有。学到这里,你可能觉得你JavaSE无敌,出去可以找工作了,反正当时的帅丙,觉得自己可以闯出一片天了,不知天高地厚,四处炫技。
但是幼稚的我根本不知道,未知的前方还有什么等着我,我也不知道自己其实才刚入门,但是如果要往WEB方向发展,这些倒是基本足够了。 但是你到现在为止学的东西都是服务端的东西呀,怎么让你的服务端东西展示给别人看呢?这个时候我们就应该去做个丑不拉几的页面,进行简单的交互了,你这个时候要学HTML 、Servlet、MySQL、 JavaScript、Tomcat、CSS等。
目标呢就是写出第一个动态网站,也许只是个登陆功能,只能展示下个人资料,但这是很重要的一步,你要弄清楚的是,一个用户的点击产生的请求,是从哪里发起,哪里接收,哪里处理,哪里返回,你得理解浏览器和服务器的关系和分工,Cookie和Session,Request和Response。
Tip:我记得我刚出来面试就有面试题是这样的,一个Http请求从网页发起到服务端产生数据返回中间经历了些什么,或者Spring做了什么?大家可以思考一下。
以上三点就是初级学者最容易思考的三个问题,希望我的回答能够给小伙伴们一些帮助~
文章来源:网络 版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理
相关文章
- 少儿编程值得报班学习吗?程序员被问懵了!
- 00后程序员都开始学习并精通使用SpringCloudRibbon了,你真会吗
- 作为程序员,你可能不知道,Stream竟然还有应用进阶学习?
- 网络编程学习笔记9-第一个netcat的实现(thread-per-connection)
- IDEA 中如何调试 SpringFramework 学习源码
- redis学习(三):List数据类型详解程序员
- redis学习(五):Set数据类型详解程序员
- Swoole学习(二)Swoole之TCP服务器的创建详解程序员
- Swoole学习(五)Swoole之简单WebSocket服务器的创建详解程序员
- Swoole学习(六)Swoole之定时器的创建与清除详解程序员
- Swoole学习(七)Swoole之异步TCP服务器的创建详解程序员
- Kafka学习之(二)Centos下安装Kafka详解程序员
- RabbitMQ学习之(一)_初步了解RabbitMQ、RabbitMQ的使用流程、为什么要使用RabbitMQ、RabbitMQ的应用场景详解程序员
- Windows Azure 如何学习Azure详解程序员
- AI科技大本营深度学习文本、语音和视觉等影响未来的全新趋势详解程序员
- 机器学习训练集之traing 、validation、test data set详解程序员
- Struts2学习笔记三 访问servlet详解编程语言
- Linux的强大之处:学习使用它的秘籍(linux的用法)
- Windows程序员学习Linux,C语言不可少(学linux用不用c语言)
- 教程学习Oracle OGG:视频教程精选(oracleogg视频)
- 学习Linux内核,走上程序员之路(linux内核教程)
- 络训练Linux520网络技能大赛:学习、提高、胜出(linux520网)
- 学习Linux系统编程,开启程序员之旅(Linux系统编程)
- 深入浅出:学习SQL Server基础知识(sqlserver基础题)
- Oracle免费视频学习,助你成为程序员专家(oracle免费视频下载)
- PrototypeNumber对象学习
- php学习笔记类的声明与对象实例化
- ASP.NET的事件模型(很适合学习的文章)
- 总结一周内学习的Sql经验(一)