[1]主要就是讲一下一般软件工程的学习路线。
C语言入门之Hello World
一般大一的时候,都会学习C语言和数据结构,C语言的类似这样:
int main(){
printf("hello world");
return 0;
}
这个函数在输出终端上( 一般是屏幕 ) 打印一个文字,然后退出什么也不做。 尽管它看似很简单,但是其实C语言也是封装了一层,才看似简单 (虽然作为底层语言来说,可能大家第一次学它的时候也不会那么简单。。)
printf有个东西,叫做变长参数,类似于这样
printf("%s","Hello");
这个%s是一个占位符,代表它即将被一个字符串替代并且显示在屏幕上 (现在虽然看起来有点过时了)
那C语言里面还有其他的知识和函数在此就不一一赘述
C语言入门之黑历史(雾)
顺便说一下C语言的历史,C语言其实是在贝尔实验室被开发出来的,当时是为了移植Unix到其他型号的机器上 (当时的Unix由汇编写成) (其实机器码才是最好的语言) (雾)
结果不知道怎么肥事C语言和Unix都红了。。。
所以我推荐大一新生们在学会C语言后,可以试试看用Linux 系列的系统(最好先学一下命令,比如gcc的编译命令最好要会一些) 。当然用Windows也没啥关系。 (Linux 是进阶难度,Windows是普通难度,自己取舍) (当然到后期大家基本都会一些Linux了)
如果经济充裕,可以了解下(macOS的系统)(基于Unix)......(这个纯属个人喜好,仁者见仁,macOS也是有缺点的,比如极其难用的文件管理器Finder,而且写窗口程序的自动忽视以上建议)
(这条在任何时候都是附加可选项,只是会让你更舒服地写代码,我就是在大二挣了点外快才买下它的。。)
大一下学期
啊该死的数据结构!红黑树是什么!线段dp是什么鬼!自动机又是什么!(大雾)
**数据结构是很重要的!!!
再说一遍,数据结构很重要!**
这个阶段你可能会觉得数据结构好难啊什么的,那确实会有些难。但是你还是要把基础的链表,栈,队列,循环队列,树和图这些部分搞清楚。
因为以后的编程生涯当中,是缺少不了它们的。就和房子和设计图纸一样,它们就是一块一块的设计图纸
编程的本质确实就是对数据的一个处理过程,数据结构告诉你要怎么组织这些数据才能够比较好地进行处理。
另外一个重要的点:
算法
大家可能觉得算法太难了什么的,还是那句话,基本的算法要掌握,比如基础的搜索算法的思想,还有贪心算法,以及一些经典的数学题的算法(最小公约数,最大公倍数)这些 (主要用来锻炼思维)
当你把这些都学会了,如果对算法还有更深的兴趣,你可以再学一些进阶算法
比如: 动态规划,搜索剪枝等
检验算法的最佳途径就是去oj网站上练习题目。
虽然大家可能不打acm,但是刷题还是有一些用的,当然要根据自己情况,挑选一些好题目。
到这里有人可能觉得编程很无趣?No
你想开办网站吗?你想做一些厉害的东西吗?PHP,Python?神经网络?
欢迎来到大二的课堂
一般来说,我们学校大二教的是java的基础语法。当你java的基础语法学会之后,学习的是java的进阶版本===> JSP,当然,这中间还会学习数据库原理等必要的课程。
到现在为止其实你可以自己开发一些简单的web应用了,比如一些网盘系统什么的。这中间,你最好能够自学一下html,JavaScript和css一些前端的内容。
我在这简要说下PHP,Python和Java三个语言吧 ( 因为考试,等我更新吧hhh)
PHP 是Rasmus Lerdorf开发的一个解释/编译器,最初是为了维护网站的个人主页用的,到现在已经推出到PHP 7了,因为诞生于互联网,它的初衷就是为了互联网站的快速开发使用的。因为吸收了C语言,java语言的特点,你会发现它上手特别快,简直在和写C语言一样( 而且函数库也是比较丰富的,各种轮子随手就用hhh)
Java的话,由来是Sun公司在1990年代为嵌入式硬件开发的程序,原本Sun是打算使用C++来开发这些程序的,但是发现这些硬件支撑不了这么大型的程序,于是乎,Sun公司就召集一匹人马,吸收C++的精华,屏蔽C++哪些不科学的特点(多继承) 和指针,发明了Java语言,因为硬件种类繁多,他们就想做一个通用的程序。因此Java虚拟机和字节码就诞生了。他们通过软件虚拟了一下硬件,打算说服厂商使用这种语言。但是回应者寥寥无几。好在互联网的风在1994年吹起来了。通过Applet技术(可以理解为在浏览器嵌入一段小程序),让Java慢慢地变得火热了起来。从此Java跻身世界主流语言前几名。
Python 是1991年诞生的编程语言,是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。通常深度学习/人工智能,神经网络方面用的比较多。和PHP一样是解释型语言,轮子也比较多。
(软件项目管理考试好难啊。。)
大二的这时候,我建议多学一门你感兴趣的语言,不一定非是JAVA,当然你JAVA肯定是要学好的~ 。 比如我就学了PHP,它可以做很有趣的事情,比如exg的排班系统。(准备给它修改些东西)。
根据你的兴趣爱好,你可以选择只发展后端,或者前端和后端都一起发展。
大二还会学到数据库,以及javaEE,这两门虽然不难,但是确实是要掌握好的。以后做小公司的简单的系统,基本就是从数据库的增删改查一步步上来的。
数据库讲的挺好的,主要是数据库的原理 + 实践,有兴趣的可以上网查,在这里就不再赘述。
java是你找工作的保底语言,java在专业的计划中是处于一个较为核心的地位,但是这不是说你就只能用java找工作了。也有很多学长学姐找工作用的是其他语言,如果你不喜欢java,那就在课余时间学其他语言就行的,但是java还是不能放弃,因为毕竟考试要过嘛hhhh
像我大二就学了html css javascript 这些前端基础的,然后又去做了微信小程序的开发了。
大二的很多专业核心课是不可忽视的,比如软件体系结构当中的设计模式,对于大三学习框架和理解框架的使用起到非常大的帮助。
软件需求和软件工程让你理解软件公司从软件产品生产的一整套流程。
大三
大三应该对自己要从事的方向至少要有个模糊的概念了,比如选择前端开发?或者后端开发?想用什么语言开发,开发什么类型的软件之类,然后根据自己的选择去往那个方向去学习。
同时学校也会教你们java的架构,比如MVC模式,Controller,Service,Dao分包,后面还会教一个虽然用很少的Structs2框架。
你们也可以根据前后端的方向,去自学Vue.js 或者 Spring 框架,或者两个都学。我来分别说说前端(Vue技术) 和 后端(Java) 的学习路线
前端: Html+css+javaScript => Jquery + ajax + Bootstrap(可替换) => Vue.js + Vuetify框架(可替换其他css框架) (当然还有Angular.js 等等就不说了)
后端: JavaSE => JSP + Servlet => Servlet进化(可选 ,Controller + Service +Dao) => Spring + SpringMVC + Mybatis(可替换,但是这个比较主流) => Springboot + Mybatis
其他语言也是大同小异,先从语法开始,再学到框架的使用,再到框架的深入原理这些,然后就是架构方面往上了。
也有搞深度学习等等领域的,但是确实因为比较难门槛比较高,这方面比较火的方面还是利用BP神经网络,归纳出模型进行深度学习,在这方面我了解不多,因此不能深入下去了。具体有兴趣的话可以去上网了解。
大四
大四会有实训,其实内容就是我上面说的那些,如果你都掌握熟练了,这次就是运用这些知识写出一个小的系统来了~所以完全不方。
之后就是找实习 + 毕业论文咯,根据你自己的领域,所涉猎的也不一样,所以我没办法仔细说明~但是大体就是往你的那个方向继续深入下去,对于找到一份高薪的工作是比较有利的。
因为是纯技术文章,所以没有讲部门社团这些,但是沟通也是和技术必不可少的,没有良好的沟通团队的效率就提升不上去。因此部门和社团也很值得去参加,但是需要搞清目的,进去混分虽然也不是不可以,但是还是不被推荐的。
讲的可能有些错误和遗漏,欢迎批评指正哈哈哈
END (总算写完了,从4月份到快8月份= =)
(本文可能持续更新)
9 条评论
nbnb
ヾ(✿゚▽゚)ノ
惊了阿羊嘛哈哈哈
有点意思
惊了hhhh
盯d=====( ̄▽ ̄*)b
2333惊现家香dalao
(^__^)